{"version":3,"sources":["vendor/ember-cli/app-prefix.js","geotechnical-data-platform-new/adapters/-json-api.js","geotechnical-data-platform-new/adapters/acceleration-value.js","geotechnical-data-platform-new/adapters/application.js","geotechnical-data-platform-new/adapters/axial-displacement-value.js","geotechnical-data-platform-new/adapters/axial-strain-value.js","geotechnical-data-platform-new/adapters/bending-strain-value.js","geotechnical-data-platform-new/adapters/bluvibev2_backup.js","geotechnical-data-platform-new/adapters/calibration-calibration-profile.js","geotechnical-data-platform-new/adapters/calibration-type-profile.js","geotechnical-data-platform-new/adapters/displacement-value.js","geotechnical-data-platform-new/adapters/event-frequency.js","geotechnical-data-platform-new/adapters/event-ppa.js","geotechnical-data-platform-new/adapters/event-ppv.js","geotechnical-data-platform-new/adapters/firmware-value.js","geotechnical-data-platform-new/adapters/frequency-ppa.js","geotechnical-data-platform-new/adapters/frequency-ppv.js","geotechnical-data-platform-new/adapters/gateway-temperature.js","geotechnical-data-platform-new/adapters/gateway-value.js","geotechnical-data-platform-new/adapters/gateway.js","geotechnical-data-platform-new/adapters/google.js","geotechnical-data-platform-new/adapters/instrument.js","geotechnical-data-platform-new/adapters/load-value.js","geotechnical-data-platform-new/adapters/log-viewer.js","geotechnical-data-platform-new/adapters/packs-validation-type.js","geotechnical-data-platform-new/adapters/readings-value.js","geotechnical-data-platform-new/adapters/reconnection-value.js","geotechnical-data-platform-new/adapters/rig-profile.js","geotechnical-data-platform-new/adapters/rssi-value.js","geotechnical-data-platform-new/adapters/strain-rate-value.js","geotechnical-data-platform-new/adapters/strain-value.js","geotechnical-data-platform-new/adapters/temp-value.js","geotechnical-data-platform-new/adapters/temperature-gateway-value.js","geotechnical-data-platform-new/adapters/temperature-value.js","geotechnical-data-platform-new/adapters/uploads-value.js","geotechnical-data-platform-new/adapters/uptime-value.js","geotechnical-data-platform-new/adapters/velocity-value.js","geotechnical-data-platform-new/adapters/vendor.js","geotechnical-data-platform-new/adapters/voltage-value.js","geotechnical-data-platform-new/app.js","geotechnical-data-platform-new/authenticators/basic-auth.js","geotechnical-data-platform-new/authenticators/jwt.js","geotechnical-data-platform-new/authenticators/myauth.js","geotechnical-data-platform-new/authenticators/oauth-jwt.js","geotechnical-data-platform-new/authorizers/google.js","geotechnical-data-platform-new/component-managers/glimmer.js","geotechnical-data-platform-new/components/-dynamic-element-alt.js","geotechnical-data-platform-new/components/-dynamic-element.js","geotechnical-data-platform-new/components/adict/create-alert.js","geotechnical-data-platform-new/components/adict/create-instrument.js","geotechnical-data-platform-new/components/adict/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/adict/edit-alert.js","geotechnical-data-platform-new/components/adict/edit-instrument.js","geotechnical-data-platform-new/components/adict/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/adict/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/adict/raw-data.js","geotechnical-data-platform-new/components/adict/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/adict/temporal-CABLE-chart-dropdown.js","geotechnical-data-platform-new/components/adict/temporal-MPBX-chart-dropdown.js","geotechnical-data-platform-new/components/adict/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/advanced-filter.js","geotechnical-data-platform-new/components/alert-row.js","geotechnical-data-platform-new/components/alerts-list.js","geotechnical-data-platform-new/components/analytics/packsValidationAnalyticsMainPage.js","geotechnical-data-platform-new/components/analytics/sensorCalibrationAnalyticsMainPage.js","geotechnical-data-platform-new/components/array-path-layer.js","geotechnical-data-platform-new/components/base-layer.js","geotechnical-data-platform-new/components/blu900gw/create-alert.js","geotechnical-data-platform-new/components/blu900gw/create-gateway.js","geotechnical-data-platform-new/components/blu900gw/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/components/blu900gw/edit-alert.js","geotechnical-data-platform-new/components/blu900gw/edit-gateway.js","geotechnical-data-platform-new/components/blu900gw/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/components/blu900gw/raw-gateway-data.js","geotechnical-data-platform-new/components/blu900gw/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/components/blu900gw/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/components/blu900gw/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/components/blu900node/create-alert.js","geotechnical-data-platform-new/components/blu900node/create-gateway.js","geotechnical-data-platform-new/components/blu900node/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/components/blu900node/edit-alert.js","geotechnical-data-platform-new/components/blu900node/edit-gateway.js","geotechnical-data-platform-new/components/blu900node/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/components/blu900node/raw-gateway-data.js","geotechnical-data-platform-new/components/blu900node/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/components/blu900node/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/components/blu900node/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/components/blucell/create-alert.js","geotechnical-data-platform-new/components/blucell/create-gateway.js","geotechnical-data-platform-new/components/blucell/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/components/blucell/edit-gateway-alert.js","geotechnical-data-platform-new/components/blucell/edit-gateway.js","geotechnical-data-platform-new/components/blucell/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/components/blucell/raw-gateway-data.js","geotechnical-data-platform-new/components/blucell/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/components/blucell/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/components/blucell/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/components/blugate/create-alert.js","geotechnical-data-platform-new/components/blugate/edit-alert.js","geotechnical-data-platform-new/components/blugate/edit-gateway.js","geotechnical-data-platform-new/components/blugate/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/components/blugate/nvd3-temporal-gateway-line-chart_old.js","geotechnical-data-platform-new/components/blugate/raw-gateway-data.js","geotechnical-data-platform-new/components/blugate/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/blugate/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/components/blugate/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/components/blugate/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/components/bluvibe/create-alert.js","geotechnical-data-platform-new/components/bluvibe/create-gateway.js","geotechnical-data-platform-new/components/bluvibe/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/components/bluvibe/edit-alert.js","geotechnical-data-platform-new/components/bluvibe/edit-gateway.js","geotechnical-data-platform-new/components/bluvibe/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/components/bluvibe/nvd3-temporal-gateway-line-chart_old.js","geotechnical-data-platform-new/components/bluvibe/raw-gateway-data.js","geotechnical-data-platform-new/components/bluvibe/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/components/bluvibe/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/components/bluvibe/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/components/bread-crumbs.js","geotechnical-data-platform-new/components/bs-accordion.js","geotechnical-data-platform-new/components/bs-accordion/item.js","geotechnical-data-platform-new/components/bs-accordion/item/body.js","geotechnical-data-platform-new/components/bs-accordion/item/title.js","geotechnical-data-platform-new/components/bs-alert.js","geotechnical-data-platform-new/components/bs-button-group.js","geotechnical-data-platform-new/components/bs-button-group/button.js","geotechnical-data-platform-new/components/bs-button.js","geotechnical-data-platform-new/components/bs-carousel.js","geotechnical-data-platform-new/components/bs-carousel/slide.js","geotechnical-data-platform-new/components/bs-collapse.js","geotechnical-data-platform-new/components/bs-dropdown.js","geotechnical-data-platform-new/components/bs-dropdown/button.js","geotechnical-data-platform-new/components/bs-dropdown/menu.js","geotechnical-data-platform-new/components/bs-dropdown/menu/divider.js","geotechnical-data-platform-new/components/bs-dropdown/menu/item.js","geotechnical-data-platform-new/components/bs-dropdown/menu/link-to.js","geotechnical-data-platform-new/components/bs-dropdown/toggle.js","geotechnical-data-platform-new/components/bs-form.js","geotechnical-data-platform-new/components/bs-form/element.js","geotechnical-data-platform-new/components/bs-form/element/control.js","geotechnical-data-platform-new/components/bs-form/element/control/checkbox.js","geotechnical-data-platform-new/components/bs-form/element/control/input.js","geotechnical-data-platform-new/components/bs-form/element/control/radio.js","geotechnical-data-platform-new/components/bs-form/element/control/textarea.js","geotechnical-data-platform-new/components/bs-form/element/errors.js","geotechnical-data-platform-new/components/bs-form/element/feedback-icon.js","geotechnical-data-platform-new/components/bs-form/element/help-text.js","geotechnical-data-platform-new/components/bs-form/element/label.js","geotechnical-data-platform-new/components/bs-form/element/layout/horizontal.js","geotechnical-data-platform-new/components/bs-form/element/layout/horizontal/checkbox.js","geotechnical-data-platform-new/components/bs-form/element/layout/inline.js","geotechnical-data-platform-new/components/bs-form/element/layout/inline/checkbox.js","geotechnical-data-platform-new/components/bs-form/element/layout/vertical.js","geotechnical-data-platform-new/components/bs-form/element/layout/vertical/checkbox.js","geotechnical-data-platform-new/components/bs-form/element/legend.js","geotechnical-data-platform-new/components/bs-form/group.js","geotechnical-data-platform-new/components/bs-modal-simple.js","geotechnical-data-platform-new/components/bs-modal.js","geotechnical-data-platform-new/components/bs-modal/body.js","geotechnical-data-platform-new/components/bs-modal/dialog.js","geotechnical-data-platform-new/components/bs-modal/footer.js","geotechnical-data-platform-new/components/bs-modal/header.js","geotechnical-data-platform-new/components/bs-modal/header/close.js","geotechnical-data-platform-new/components/bs-modal/header/title.js","geotechnical-data-platform-new/components/bs-nav.js","geotechnical-data-platform-new/components/bs-nav/item.js","geotechnical-data-platform-new/components/bs-nav/link-to.js","geotechnical-data-platform-new/components/bs-navbar.js","geotechnical-data-platform-new/components/bs-navbar/content.js","geotechnical-data-platform-new/components/bs-navbar/link-to.js","geotechnical-data-platform-new/components/bs-navbar/nav.js","geotechnical-data-platform-new/components/bs-navbar/toggle.js","geotechnical-data-platform-new/components/bs-popover.js","geotechnical-data-platform-new/components/bs-popover/element.js","geotechnical-data-platform-new/components/bs-progress.js","geotechnical-data-platform-new/components/bs-progress/bar.js","geotechnical-data-platform-new/components/bs-tab.js","geotechnical-data-platform-new/components/bs-tab/pane.js","geotechnical-data-platform-new/components/bs-tooltip.js","geotechnical-data-platform-new/components/bs-tooltip/element.js","geotechnical-data-platform-new/components/cable/create-alert.js","geotechnical-data-platform-new/components/cable/create-instrument.js","geotechnical-data-platform-new/components/cable/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/cable/edit-alert.js","geotechnical-data-platform-new/components/cable/edit-instrument.js","geotechnical-data-platform-new/components/cable/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/cable/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/cable/raw-data.js","geotechnical-data-platform-new/components/cable/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/cable/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/chartjs-scatter-library.js","geotechnical-data-platform-new/components/circle-layer.js","geotechnical-data-platform-new/components/circle-marker-layer.js","geotechnical-data-platform-new/components/create-new-blast-event-form.js","geotechnical-data-platform-new/components/create-new-seismic-event-form.js","geotechnical-data-platform-new/components/dash-map.js","geotechnical-data-platform-new/components/data-export-form.js","geotechnical-data-platform-new/components/data-export-gateway-form.js","geotechnical-data-platform-new/components/data-import-form-seis.js","geotechnical-data-platform-new/components/data-import-form.js","geotechnical-data-platform-new/components/data-import-gateway-form.js","geotechnical-data-platform-new/components/data-tables-details.js","geotechnical-data-platform-new/components/dconv/create-alert.js","geotechnical-data-platform-new/components/dconv/create-instrument.js","geotechnical-data-platform-new/components/dconv/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/dconv/edit-alert.js","geotechnical-data-platform-new/components/dconv/edit-instrument.js","geotechnical-data-platform-new/components/dconv/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/dconv/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/dconv/raw-data.js","geotechnical-data-platform-new/components/dconv/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/dconv/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/div-overlay-layer.js","geotechnical-data-platform-new/components/dppc/create-alert.js","geotechnical-data-platform-new/components/dppc/create-instrument.js","geotechnical-data-platform-new/components/dppc/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/dppc/edit-alert.js","geotechnical-data-platform-new/components/dppc/edit-instrument.js","geotechnical-data-platform-new/components/dppc/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/dppc/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/dppc/raw-data.js","geotechnical-data-platform-new/components/dppc/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/dppc/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/dropdown-option.js","geotechnical-data-platform-new/components/edit-my-profile-user-modal.js","geotechnical-data-platform-new/components/ember-modal-dialog-positioned-container.js","geotechnical-data-platform-new/components/ember-modal-dialog/-basic-dialog.js","geotechnical-data-platform-new/components/ember-modal-dialog/-in-place-dialog.js","geotechnical-data-platform-new/components/ember-modal-dialog/-liquid-dialog.js","geotechnical-data-platform-new/components/ember-modal-dialog/-liquid-tether-dialog.js","geotechnical-data-platform-new/components/ember-modal-dialog/-tether-dialog.js","geotechnical-data-platform-new/components/ember-popper-targeting-parent.js","geotechnical-data-platform-new/components/ember-popper.js","geotechnical-data-platform-new/components/ember-wormhole.js","geotechnical-data-platform-new/components/fa-icon.js","geotechnical-data-platform-new/components/file-field.js","geotechnical-data-platform-new/components/file-gateway-upload.js","geotechnical-data-platform-new/components/file-upload-seis.js","geotechnical-data-platform-new/components/file-upload.js","geotechnical-data-platform-new/components/filter-text-input-alert.js","geotechnical-data-platform-new/components/filter-text-input-events.js","geotechnical-data-platform-new/components/filter-text-input-gateway.js","geotechnical-data-platform-new/components/filter-text-input-log-viewer.js","geotechnical-data-platform-new/components/filter-text-input.js","geotechnical-data-platform-new/components/frequency-display-records-dropdown.js","geotechnical-data-platform-new/components/frequency-event-tabs.js","geotechnical-data-platform-new/components/gateway-alerts-list.js","geotechnical-data-platform-new/components/gateway-list-children.js","geotechnical-data-platform-new/components/gateway-list.js","geotechnical-data-platform-new/components/gateway-selector.js","geotechnical-data-platform-new/components/geojson-layer.js","geotechnical-data-platform-new/components/hid/create-alert.js","geotechnical-data-platform-new/components/hid/create-instrument.js","geotechnical-data-platform-new/components/hid/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/hid/edit-alert.js","geotechnical-data-platform-new/components/hid/edit-instrument.js","geotechnical-data-platform-new/components/hid/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/hid/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/hid/raw-data.js","geotechnical-data-platform-new/components/hid/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/hid/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/image-layer.js","geotechnical-data-platform-new/components/instrument-drop-down.js","geotechnical-data-platform-new/components/instruments-list.js","geotechnical-data-platform-new/components/interactive-layer.js","geotechnical-data-platform-new/components/key-import-form.js","geotechnical-data-platform-new/components/key-upload.js","geotechnical-data-platform-new/components/leaflet-map.js","geotechnical-data-platform-new/components/log-viewer.js","geotechnical-data-platform-new/components/mapbox-gl-call.js","geotechnical-data-platform-new/components/mapbox-gl-control.js","geotechnical-data-platform-new/components/mapbox-gl-image.js","geotechnical-data-platform-new/components/mapbox-gl-layer.js","geotechnical-data-platform-new/components/mapbox-gl-marker.js","geotechnical-data-platform-new/components/mapbox-gl-on.js","geotechnical-data-platform-new/components/mapbox-gl-popup.js","geotechnical-data-platform-new/components/mapbox-gl-source.js","geotechnical-data-platform-new/components/mapbox-gl.js","geotechnical-data-platform-new/components/marker-layer.js","geotechnical-data-platform-new/components/micro/create-alert.js","geotechnical-data-platform-new/components/micro/create-instrument.js","geotechnical-data-platform-new/components/micro/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/micro/edit-alert.js","geotechnical-data-platform-new/components/micro/edit-instrument.js","geotechnical-data-platform-new/components/micro/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/micro/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/micro/raw-data.js","geotechnical-data-platform-new/components/micro/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/micro/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/modal-dialog.js","geotechnical-data-platform-new/components/multiDExto/create-instrument.js","geotechnical-data-platform-new/components/multiDExto/dExto-children-table-row.js","geotechnical-data-platform-new/components/multiDExto/dExto-children.js","geotechnical-data-platform-new/components/multiDExto/edit-instrument.js","geotechnical-data-platform-new/components/multiDExto/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/multiDExto/raw-data.js","geotechnical-data-platform-new/components/multiDExto/selected-dExtos.js","geotechnical-data-platform-new/components/multiDExto/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/my-profile-sidebar-addon.js","geotechnical-data-platform-new/components/my-profile-sidebar-home.js","geotechnical-data-platform-new/components/my-profile-sidebar-more.js","geotechnical-data-platform-new/components/my-profile-sidebar-users.js","geotechnical-data-platform-new/components/my-profile-sidebar.js","geotechnical-data-platform-new/components/navbar.js","geotechnical-data-platform-new/components/node.js","geotechnical-data-platform-new/components/oneforone/create-alert.js","geotechnical-data-platform-new/components/oneforone/create-gateway.js","geotechnical-data-platform-new/components/oneforone/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/components/oneforone/edit-alert.js","geotechnical-data-platform-new/components/oneforone/edit-gateway.js","geotechnical-data-platform-new/components/oneforone/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/components/oneforone/raw-gateway-data.js","geotechnical-data-platform-new/components/oneforone/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/components/oneforone/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/components/oneforone/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/components/pack/create-alert.js","geotechnical-data-platform-new/components/pack/create-instrument.js","geotechnical-data-platform-new/components/pack/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/pack/edit-alert.js","geotechnical-data-platform-new/components/pack/edit-instrument.js","geotechnical-data-platform-new/components/pack/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/pack/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/pack/raw-data.js","geotechnical-data-platform-new/components/pack/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/pack/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/pagination-links.js","geotechnical-data-platform-new/components/path-layer.js","geotechnical-data-platform-new/components/piezo/create-alert.js","geotechnical-data-platform-new/components/piezo/create-instrument.js","geotechnical-data-platform-new/components/piezo/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/piezo/edit-alert.js","geotechnical-data-platform-new/components/piezo/edit-instrument.js","geotechnical-data-platform-new/components/piezo/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/piezo/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/piezo/raw-data.js","geotechnical-data-platform-new/components/piezo/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/piezo/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/point-path-layer.js","geotechnical-data-platform-new/components/polygon-layer.js","geotechnical-data-platform-new/components/polyline-layer.js","geotechnical-data-platform-new/components/popup-layer.js","geotechnical-data-platform-new/components/popup-list.js","geotechnical-data-platform-new/components/production/calibrationMainPage.js","geotechnical-data-platform-new/components/production/packsValidationMainPage.js","geotechnical-data-platform-new/components/raw-drop-down.js","geotechnical-data-platform-new/components/raw-frequency-events-drop-down.js","geotechnical-data-platform-new/components/raw-port-drop-down.js","geotechnical-data-platform-new/components/rebar/create-alert.js","geotechnical-data-platform-new/components/rebar/create-instrument.js","geotechnical-data-platform-new/components/rebar/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/rebar/edit-alert.js","geotechnical-data-platform-new/components/rebar/edit-instrument.js","geotechnical-data-platform-new/components/rebar/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/rebar/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/rebar/raw-data.js","geotechnical-data-platform-new/components/rebar/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/rebar/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/rebarv2/create-alert.js","geotechnical-data-platform-new/components/rebarv2/create-instrument.js","geotechnical-data-platform-new/components/rebarv2/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/rebarv2/edit-alert.js","geotechnical-data-platform-new/components/rebarv2/edit-instrument.js","geotechnical-data-platform-new/components/rebarv2/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/rebarv2/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/rebarv2/raw-data.js","geotechnical-data-platform-new/components/rebarv2/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/rebarv2/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/record-selector.js","geotechnical-data-platform-new/components/rectangle-layer.js","geotechnical-data-platform-new/components/root.js","geotechnical-data-platform-new/components/searchable-select-option.js","geotechnical-data-platform-new/components/searchable-select.js","geotechnical-data-platform-new/components/settings-about.js","geotechnical-data-platform-new/components/settings-general.js","geotechnical-data-platform-new/components/settings-more-clear-logs-confirmation-modal.js","geotechnical-data-platform-new/components/settings-more.js","geotechnical-data-platform-new/components/settings-sidebar.js","geotechnical-data-platform-new/components/single-save-checkbox.js","geotechnical-data-platform-new/components/single-save-datetime-picker.js","geotechnical-data-platform-new/components/single-save-gateway-inputs-array-table-row-cells.js","geotechnical-data-platform-new/components/single-save-geo-input.js","geotechnical-data-platform-new/components/single-save-input-InstType.js","geotechnical-data-platform-new/components/single-save-input-numeric.js","geotechnical-data-platform-new/components/single-save-input-password.js","geotechnical-data-platform-new/components/single-save-input.js","geotechnical-data-platform-new/components/single-save-inputs-array-table-row-cells-2.js","geotechnical-data-platform-new/components/single-save-inputs-array-table-row-cells.js","geotechnical-data-platform-new/components/single-save-instrument-anchors-rebar.js","geotechnical-data-platform-new/components/single-save-instrument-anchors.js","geotechnical-data-platform-new/components/single-save-interval-dropdown.js","geotechnical-data-platform-new/components/single-save-lookup.js","geotechnical-data-platform-new/components/single-save-select-alt.js","geotechnical-data-platform-new/components/single-save-select-non-model.js","geotechnical-data-platform-new/components/single-save-select.js","geotechnical-data-platform-new/components/single-save-time-picker.js","geotechnical-data-platform-new/components/slough/create-alert.js","geotechnical-data-platform-new/components/slough/create-instrument.js","geotechnical-data-platform-new/components/slough/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/slough/edit-alert.js","geotechnical-data-platform-new/components/slough/edit-instrument.js","geotechnical-data-platform-new/components/slough/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/slough/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/slough/raw-data.js","geotechnical-data-platform-new/components/slough/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/slough/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/sortable-table-header.js","geotechnical-data-platform-new/components/spatial-blast-dropdown.js","geotechnical-data-platform-new/components/spatial-event-dropdown.js","geotechnical-data-platform-new/components/spatial-group-dropdown.js","geotechnical-data-platform-new/components/spatial-seismic-dropdown.js","geotechnical-data-platform-new/components/spatial-time-dropdown.js","geotechnical-data-platform-new/components/spatial-window-dropdown.js","geotechnical-data-platform-new/components/svg-instrument.js","geotechnical-data-platform-new/components/temporal-blast-dropdown.js","geotechnical-data-platform-new/components/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/temporal-display-records-dropdown.js","geotechnical-data-platform-new/components/temporal-event-dropdown.js","geotechnical-data-platform-new/components/temporal-group-dropdown.js","geotechnical-data-platform-new/components/temporal-seismic-dropdown.js","geotechnical-data-platform-new/components/temporal-window-dropdown.js","geotechnical-data-platform-new/components/thermo/create-alert.js","geotechnical-data-platform-new/components/thermo/create-instrument.js","geotechnical-data-platform-new/components/thermo/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/thermo/edit-alert.js","geotechnical-data-platform-new/components/thermo/edit-instrument.js","geotechnical-data-platform-new/components/thermo/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/thermo/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/thermo/raw-data.js","geotechnical-data-platform-new/components/thermo/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/thermo/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/tile-layer.js","geotechnical-data-platform-new/components/tilt/create-alert.js","geotechnical-data-platform-new/components/tilt/create-instrument.js","geotechnical-data-platform-new/components/tilt/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/tilt/edit-alert.js","geotechnical-data-platform-new/components/tilt/edit-instrument.js","geotechnical-data-platform-new/components/tilt/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/tilt/raw-data.js","geotechnical-data-platform-new/components/tilt/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/tooltip-layer.js","geotechnical-data-platform-new/components/torii-iframe-placeholder.js","geotechnical-data-platform-new/components/vendor-instrument.js","geotechnical-data-platform-new/components/vibe/create-alert.js","geotechnical-data-platform-new/components/vibe/create-gateway.js","geotechnical-data-platform-new/components/vibe/create-instrument.js","geotechnical-data-platform-new/components/vibe/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/vibe/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/components/vibe/echarts-frequency-event.js","geotechnical-data-platform-new/components/vibe/edit-alert.js","geotechnical-data-platform-new/components/vibe/edit-gateway.js","geotechnical-data-platform-new/components/vibe/edit-instrument.js","geotechnical-data-platform-new/components/vibe/frequency-chart-dropdown.js","geotechnical-data-platform-new/components/vibe/frequency-events-dropdown.js","geotechnical-data-platform-new/components/vibe/nvd3-frequency-line-chart.js","geotechnical-data-platform-new/components/vibe/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/components/vibe/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/vibe/raw-data.js","geotechnical-data-platform-new/components/vibe/raw-frequency-events-data.js","geotechnical-data-platform-new/components/vibe/raw-gateway-data.js","geotechnical-data-platform-new/components/vibe/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/vibe/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/components/vibe/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/components/vibe/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/components/video-layer.js","geotechnical-data-platform-new/components/welcome-page.js","geotechnical-data-platform-new/components/wire-single-save-inputs-array-table-row-cells.js","geotechnical-data-platform-new/components/wire/create-alert.js","geotechnical-data-platform-new/components/wire/create-instrument.js","geotechnical-data-platform-new/components/wire/create-new-raw-data-value-form.js","geotechnical-data-platform-new/components/wire/edit-alert.js","geotechnical-data-platform-new/components/wire/edit-instrument-port-drop-down.js","geotechnical-data-platform-new/components/wire/edit-instrument.js","geotechnical-data-platform-new/components/wire/geo-pt-edit.js","geotechnical-data-platform-new/components/wire/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/components/wire/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/components/wire/raw-data-dropdown.js","geotechnical-data-platform-new/components/wire/raw-data.js","geotechnical-data-platform-new/components/wire/roc-pws-edit.js","geotechnical-data-platform-new/components/wire/spatial-chart-dropdown.js","geotechnical-data-platform-new/components/wire/temporal-chart-dropdown.js","geotechnical-data-platform-new/components/wms-tile-layer.js","geotechnical-data-platform-new/controllers/alerts.js","geotechnical-data-platform-new/controllers/application.js","geotechnical-data-platform-new/controllers/blast-events.js","geotechnical-data-platform-new/controllers/create-alert.js","geotechnical-data-platform-new/controllers/create-gateway-alert.js","geotechnical-data-platform-new/controllers/create-gateway.js","geotechnical-data-platform-new/controllers/create-instrument.js","geotechnical-data-platform-new/controllers/create-lookup.js","geotechnical-data-platform-new/controllers/edit-alert.js","geotechnical-data-platform-new/controllers/edit-gateway-alert.js","geotechnical-data-platform-new/controllers/edit-gateway.js","geotechnical-data-platform-new/controllers/edit-instrument.js","geotechnical-data-platform-new/controllers/edit-lookups.js","geotechnical-data-platform-new/controllers/forgot-password.js","geotechnical-data-platform-new/controllers/frequency-events.js","geotechnical-data-platform-new/controllers/frequency-events/frequency-event-edit-form.js","geotechnical-data-platform-new/controllers/frequency-events/frequency-event.js","geotechnical-data-platform-new/controllers/frequency-graphs.js","geotechnical-data-platform-new/controllers/frequency-graphs/frequency-graph.js","geotechnical-data-platform-new/controllers/gateway.js","geotechnical-data-platform-new/controllers/index.js","geotechnical-data-platform-new/controllers/instruments.js","geotechnical-data-platform-new/controllers/keys.js","geotechnical-data-platform-new/controllers/list-lookups.js","geotechnical-data-platform-new/controllers/log-viewer.js","geotechnical-data-platform-new/controllers/login.js","geotechnical-data-platform-new/controllers/my-profile.js","geotechnical-data-platform-new/controllers/packs-validation-analytics.js","geotechnical-data-platform-new/controllers/packs-validation.js","geotechnical-data-platform-new/controllers/progress-bar.js","geotechnical-data-platform-new/controllers/raw-data.js","geotechnical-data-platform-new/controllers/raw-frequency-events-data.js","geotechnical-data-platform-new/controllers/raw-gateway-data.js","geotechnical-data-platform-new/controllers/register.js","geotechnical-data-platform-new/controllers/reset-password.js","geotechnical-data-platform-new/controllers/seismic-events.js","geotechnical-data-platform-new/controllers/sensor-calibration-analytics.js","geotechnical-data-platform-new/controllers/sensor-calibration.js","geotechnical-data-platform-new/controllers/settings.js","geotechnical-data-platform-new/controllers/spatial-graphs.js","geotechnical-data-platform-new/controllers/spatial-graphs/spatial-graph.js","geotechnical-data-platform-new/controllers/temporal-gateway-graphs.js","geotechnical-data-platform-new/controllers/temporal-gateway-graphs/temporal-gateway-graph.js","geotechnical-data-platform-new/controllers/temporal-graphs.js","geotechnical-data-platform-new/controllers/temporal-graphs/temporal-graph.js","geotechnical-data-platform-new/controllers/vibration-events.js","geotechnical-data-platform-new/data-adapter.js","geotechnical-data-platform-new/helpers/-element.js","geotechnical-data-platform-new/helpers/active-class.js","geotechnical-data-platform-new/helpers/alert-get-id.js","geotechnical-data-platform-new/helpers/and.js","geotechnical-data-platform-new/helpers/app-version.js","geotechnical-data-platform-new/helpers/arrayAt.js","geotechnical-data-platform-new/helpers/bs-contains.js","geotechnical-data-platform-new/helpers/bs-default.js","geotechnical-data-platform-new/helpers/bs-eq.js","geotechnical-data-platform-new/helpers/bs-noop.js","geotechnical-data-platform-new/helpers/bs-size-class.js","geotechnical-data-platform-new/helpers/bs-type-class.js","geotechnical-data-platform-new/helpers/buttonclass.js","geotechnical-data-platform-new/helpers/calibration-language-library.js","geotechnical-data-platform-new/helpers/calibration-library.js","geotechnical-data-platform-new/helpers/cancel-all.js","geotechnical-data-platform-new/helpers/compare-anchors.js","geotechnical-data-platform-new/helpers/current-date.js","geotechnical-data-platform-new/helpers/did-insert.js","geotechnical-data-platform-new/helpers/did-update.js","geotechnical-data-platform-new/helpers/div-icon.js","geotechnical-data-platform-new/helpers/element.js","geotechnical-data-platform-new/helpers/ember-leaflet-assign-to.js","geotechnical-data-platform-new/helpers/ember-leaflet-eq.js","geotechnical-data-platform-new/helpers/ember-leaflet-hash.js","geotechnical-data-platform-new/helpers/ember-leaflet-or.js","geotechnical-data-platform-new/helpers/ensure-safe-component.js","geotechnical-data-platform-new/helpers/eq.js","geotechnical-data-platform-new/helpers/format-number.js","geotechnical-data-platform-new/helpers/frequency-event-language-library.js","geotechnical-data-platform-new/helpers/frequency-event-library.js","geotechnical-data-platform-new/helpers/frequency-events-library.js","geotechnical-data-platform-new/helpers/frequency-events-validate-for-red-warning.js","geotechnical-data-platform-new/helpers/get-array-element.js","geotechnical-data-platform-new/helpers/get-array-value.js","geotechnical-data-platform-new/helpers/get-packs-validation-progression.js","geotechnical-data-platform-new/helpers/get-packs-validation-verdict.js","geotechnical-data-platform-new/helpers/gt.js","geotechnical-data-platform-new/helpers/gte.js","geotechnical-data-platform-new/helpers/icon.js","geotechnical-data-platform-new/helpers/if-empty-string-or-null.js","geotechnical-data-platform-new/helpers/if-meet-sub-model-requirement.js","geotechnical-data-platform-new/helpers/ignore-children.js","geotechnical-data-platform-new/helpers/is-after.js","geotechnical-data-platform-new/helpers/is-array.js","geotechnical-data-platform-new/helpers/is-before.js","geotechnical-data-platform-new/helpers/is-between.js","geotechnical-data-platform-new/helpers/is-empty.js","geotechnical-data-platform-new/helpers/is-equal.js","geotechnical-data-platform-new/helpers/is-greater-than.js","geotechnical-data-platform-new/helpers/is-instrument-anchors-set.js","geotechnical-data-platform-new/helpers/is-same-or-after.js","geotechnical-data-platform-new/helpers/is-same-or-before.js","geotechnical-data-platform-new/helpers/is-same.js","geotechnical-data-platform-new/helpers/is-stroke-length-required-and-set.js","geotechnical-data-platform-new/helpers/lat-lng-bounds.js","geotechnical-data-platform-new/helpers/loc.js","geotechnical-data-platform-new/helpers/logger.js","geotechnical-data-platform-new/helpers/lt.js","geotechnical-data-platform-new/helpers/lte.js","geotechnical-data-platform-new/helpers/make-timestamp-global-format-aware-bluvibe.js","geotechnical-data-platform-new/helpers/moment-add.js","geotechnical-data-platform-new/helpers/moment-calendar.js","geotechnical-data-platform-new/helpers/moment-diff.js","geotechnical-data-platform-new/helpers/moment-duration.js","geotechnical-data-platform-new/helpers/moment-format.js","geotechnical-data-platform-new/helpers/moment-from-now.js","geotechnical-data-platform-new/helpers/moment-from.js","geotechnical-data-platform-new/helpers/moment-subtract.js","geotechnical-data-platform-new/helpers/moment-to-date.js","geotechnical-data-platform-new/helpers/moment-to-now.js","geotechnical-data-platform-new/helpers/moment-to.js","geotechnical-data-platform-new/helpers/moment-unix.js","geotechnical-data-platform-new/helpers/moment.js","geotechnical-data-platform-new/helpers/network-library.js","geotechnical-data-platform-new/helpers/not-eq.js","geotechnical-data-platform-new/helpers/not.js","geotechnical-data-platform-new/helpers/now.js","geotechnical-data-platform-new/helpers/on-document.js","geotechnical-data-platform-new/helpers/on-window.js","geotechnical-data-platform-new/helpers/on.js","geotechnical-data-platform-new/helpers/or.js","geotechnical-data-platform-new/helpers/packs-validation-analytics-library.js","geotechnical-data-platform-new/helpers/packs-validation-language-library.js","geotechnical-data-platform-new/helpers/packs-validation-library.js","geotechnical-data-platform-new/helpers/page-title.js","geotechnical-data-platform-new/helpers/parseint.js","geotechnical-data-platform-new/helpers/perform.js","geotechnical-data-platform-new/helpers/pluralize.js","geotechnical-data-platform-new/helpers/point.js","geotechnical-data-platform-new/helpers/range.js","geotechnical-data-platform-new/helpers/ref-to.js","geotechnical-data-platform-new/helpers/searchable-select-get.js","geotechnical-data-platform-new/helpers/searchable-select-highlight-match.js","geotechnical-data-platform-new/helpers/sensor-calibration-analytics-library.js","geotechnical-data-platform-new/helpers/singularize.js","geotechnical-data-platform-new/helpers/sum.js","geotechnical-data-platform-new/helpers/task.js","geotechnical-data-platform-new/helpers/unix.js","geotechnical-data-platform-new/helpers/utc.js","geotechnical-data-platform-new/helpers/validate-dExto.js","geotechnical-data-platform-new/helpers/validate-initial-channels.js","geotechnical-data-platform-new/helpers/will-destroy.js","geotechnical-data-platform-new/helpers/xor.js","geotechnical-data-platform-new/initializers/app-version.js","geotechnical-data-platform-new/initializers/bread-crumbs.js","geotechnical-data-platform-new/initializers/container-debug-adapter.js","geotechnical-data-platform-new/initializers/ember-data-data-adapter.js","geotechnical-data-platform-new/initializers/ember-data.js","geotechnical-data-platform-new/initializers/ember-simple-auth.js","geotechnical-data-platform-new/initializers/export-application-global.js","geotechnical-data-platform-new/initializers/initialize-torii-callback.js","geotechnical-data-platform-new/initializers/initialize-torii-session.js","geotechnical-data-platform-new/initializers/initialize-torii.js","geotechnical-data-platform-new/initializers/leaflet-assets.js","geotechnical-data-platform-new/initializers/load-bootstrap-config.js","geotechnical-data-platform-new/instance-initializers/add-modals-container.js","geotechnical-data-platform-new/instance-initializers/ember-data.js","geotechnical-data-platform-new/instance-initializers/ember-simple-auth.js","geotechnical-data-platform-new/instance-initializers/setup-routes.js","geotechnical-data-platform-new/instance-initializers/walk-providers.js","geotechnical-data-platform-new/models/acceleration-value.js","geotechnical-data-platform-new/models/alert-anchor.js","geotechnical-data-platform-new/models/alert-stat.js","geotechnical-data-platform-new/models/alert.js","geotechnical-data-platform-new/models/anchor.js","geotechnical-data-platform-new/models/axial-displacement-value.js","geotechnical-data-platform-new/models/axial-strain-value.js","geotechnical-data-platform-new/models/bending-strain-value.js","geotechnical-data-platform-new/models/blast-event.js","geotechnical-data-platform-new/models/blast-type.js","geotechnical-data-platform-new/models/blu-vibe-v2-data-model2.js","geotechnical-data-platform-new/models/blu-vibe-v2-profile-model.js","geotechnical-data-platform-new/models/blu-vibe-v2-velocity-data-model.js","geotechnical-data-platform-new/models/calibration-calibration-profile.js","geotechnical-data-platform-new/models/calibration-instrument-data.js","geotechnical-data-platform-new/models/calibration-instrument-lookup.js","geotechnical-data-platform-new/models/calibration-instrument-profile.js","geotechnical-data-platform-new/models/calibration-type-profile.js","geotechnical-data-platform-new/models/chart.js","geotechnical-data-platform-new/models/displacement-value.js","geotechnical-data-platform-new/models/event-frequency.js","geotechnical-data-platform-new/models/event-ppa.js","geotechnical-data-platform-new/models/event-ppv.js","geotechnical-data-platform-new/models/firmware-value.js","geotechnical-data-platform-new/models/frequency-ppa.js","geotechnical-data-platform-new/models/frequency-ppv.js","geotechnical-data-platform-new/models/gateway-child-relation.js","geotechnical-data-platform-new/models/gateway-interval.js","geotechnical-data-platform-new/models/gateway-stat.js","geotechnical-data-platform-new/models/gateway-temperature.js","geotechnical-data-platform-new/models/gateway-type.js","geotechnical-data-platform-new/models/gateway-value.js","geotechnical-data-platform-new/models/gateway.js","geotechnical-data-platform-new/models/head-at.js","geotechnical-data-platform-new/models/instrument-stat.js","geotechnical-data-platform-new/models/instrument-type.js","geotechnical-data-platform-new/models/instrument.js","geotechnical-data-platform-new/models/licence-key.js","geotechnical-data-platform-new/models/licence.js","geotechnical-data-platform-new/models/load-value.js","geotechnical-data-platform-new/models/log-viewer.js","geotechnical-data-platform-new/models/lookup.js","geotechnical-data-platform-new/models/measurement.js","geotechnical-data-platform-new/models/oauth-provider.js","geotechnical-data-platform-new/models/packs-validation-type.js","geotechnical-data-platform-new/models/project-setting.js","geotechnical-data-platform-new/models/readings-value.js","geotechnical-data-platform-new/models/reconnection-value.js","geotechnical-data-platform-new/models/rig-profile.js","geotechnical-data-platform-new/models/rssi-value.js","geotechnical-data-platform-new/models/seismic-event.js","geotechnical-data-platform-new/models/seismic-type.js","geotechnical-data-platform-new/models/strain-rate-value.js","geotechnical-data-platform-new/models/strain-value.js","geotechnical-data-platform-new/models/temp-value.js","geotechnical-data-platform-new/models/temperature-gateway-value.js","geotechnical-data-platform-new/models/temperature-value.js","geotechnical-data-platform-new/models/uploads-value.js","geotechnical-data-platform-new/models/uptime-value.js","geotechnical-data-platform-new/models/validation-packs-profile.js","geotechnical-data-platform-new/models/velocity-value.js","geotechnical-data-platform-new/models/vendor.js","geotechnical-data-platform-new/models/vibration-event.js","geotechnical-data-platform-new/models/voltage-value.js","geotechnical-data-platform-new/models/vwmodel.js","geotechnical-data-platform-new/models/vwproperty.js","geotechnical-data-platform-new/models/vwvendor.js","geotechnical-data-platform-new/modifiers/create-ref.js","geotechnical-data-platform-new/modifiers/did-insert.js","geotechnical-data-platform-new/modifiers/did-update.js","geotechnical-data-platform-new/modifiers/focus-trap.js","geotechnical-data-platform-new/modifiers/style.js","geotechnical-data-platform-new/modifiers/will-destroy.js","geotechnical-data-platform-new/router.js","geotechnical-data-platform-new/routes/AuthenticatedRoute.js","geotechnical-data-platform-new/routes/alerts.js","geotechnical-data-platform-new/routes/application.js","geotechnical-data-platform-new/routes/blast-event.js","geotechnical-data-platform-new/routes/blast-events.js","geotechnical-data-platform-new/routes/create-alert.js","geotechnical-data-platform-new/routes/create-gateway-alert.js","geotechnical-data-platform-new/routes/create-gateway.js","geotechnical-data-platform-new/routes/create-instrument.js","geotechnical-data-platform-new/routes/create-lookup.js","geotechnical-data-platform-new/routes/edit-alert.js","geotechnical-data-platform-new/routes/edit-gateway-alert.js","geotechnical-data-platform-new/routes/edit-gateway.js","geotechnical-data-platform-new/routes/edit-instrument.js","geotechnical-data-platform-new/routes/forgot-password.js","geotechnical-data-platform-new/routes/frequency-events.js","geotechnical-data-platform-new/routes/frequency-events/frequency-event.js","geotechnical-data-platform-new/routes/frequency-graphs.js","geotechnical-data-platform-new/routes/frequency-graphs/frequency-graph.js","geotechnical-data-platform-new/routes/gateway-alert.js","geotechnical-data-platform-new/routes/gateway.js","geotechnical-data-platform-new/routes/index.js","geotechnical-data-platform-new/routes/instruments.js","geotechnical-data-platform-new/routes/keys.js","geotechnical-data-platform-new/routes/list-lookups.js","geotechnical-data-platform-new/routes/log-viewer.js","geotechnical-data-platform-new/routes/login.js","geotechnical-data-platform-new/routes/my-profile.js","geotechnical-data-platform-new/routes/packs-validation-analytics.js","geotechnical-data-platform-new/routes/packs-validation.js","geotechnical-data-platform-new/routes/raw-data.js","geotechnical-data-platform-new/routes/raw-frequency-events-data.js","geotechnical-data-platform-new/routes/raw-gateway-data.js","geotechnical-data-platform-new/routes/register.js","geotechnical-data-platform-new/routes/reset-password.js","geotechnical-data-platform-new/routes/seismic-event.js","geotechnical-data-platform-new/routes/seismic-events.js","geotechnical-data-platform-new/routes/sensor-calibration-analytics.js","geotechnical-data-platform-new/routes/sensor-calibration.js","geotechnical-data-platform-new/routes/settings.js","geotechnical-data-platform-new/routes/spatial-graphs.js","geotechnical-data-platform-new/routes/spatial-graphs/spatial-graph.js","geotechnical-data-platform-new/routes/temporal-gateway-graphs.js","geotechnical-data-platform-new/routes/temporal-gateway-graphs/temporal-gateway-graph.js","geotechnical-data-platform-new/routes/temporal-graphs.js","geotechnical-data-platform-new/routes/temporal-graphs/temporal-graph.js","geotechnical-data-platform-new/routes/vibration-events.js","geotechnical-data-platform-new/serializers/-default.js","geotechnical-data-platform-new/serializers/-json-api.js","geotechnical-data-platform-new/serializers/-rest.js","geotechnical-data-platform-new/serializers/application.js","geotechnical-data-platform-new/services/-ensure-registered.js","geotechnical-data-platform-new/services/ajax.js","geotechnical-data-platform-new/services/api.js","geotechnical-data-platform-new/services/configuration.js","geotechnical-data-platform-new/services/cookies.js","geotechnical-data-platform-new/services/ember-leaflet.js","geotechnical-data-platform-new/services/modal-dialog.js","geotechnical-data-platform-new/services/moment.js","geotechnical-data-platform-new/services/oauth-config.js","geotechnical-data-platform-new/services/page-title-list.js","geotechnical-data-platform-new/services/page-title.js","geotechnical-data-platform-new/services/popup.js","geotechnical-data-platform-new/services/session.js","geotechnical-data-platform-new/services/store.js","geotechnical-data-platform-new/services/torii-session.js","geotechnical-data-platform-new/services/torii.js","geotechnical-data-platform-new/services/user-profile-service.js","geotechnical-data-platform-new/session-stores/application.js","geotechnical-data-platform-new/templates/alerts.js","geotechnical-data-platform-new/templates/application.js","geotechnical-data-platform-new/templates/blast-events.js","geotechnical-data-platform-new/templates/components/adict/create-alert.js","geotechnical-data-platform-new/templates/components/adict/create-instrument.js","geotechnical-data-platform-new/templates/components/adict/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/adict/edit-alert.js","geotechnical-data-platform-new/templates/components/adict/edit-instrument.js","geotechnical-data-platform-new/templates/components/adict/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/adict/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/adict/raw-data.js","geotechnical-data-platform-new/templates/components/adict/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/adict/temporal-CABLE-chart-dropdown.js","geotechnical-data-platform-new/templates/components/adict/temporal-MPBX-chart-dropdown.js","geotechnical-data-platform-new/templates/components/adict/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/advanced-filter.js","geotechnical-data-platform-new/templates/components/alert-row.js","geotechnical-data-platform-new/templates/components/alerts-list.js","geotechnical-data-platform-new/templates/components/analytics/packsValidationAnalyticsMainPage.js","geotechnical-data-platform-new/templates/components/analytics/sensorCalibrationAnalyticsMainPage.js","geotechnical-data-platform-new/templates/components/blu900gw/create-alert.js","geotechnical-data-platform-new/templates/components/blu900gw/create-gateway.js","geotechnical-data-platform-new/templates/components/blu900gw/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/templates/components/blu900gw/edit-alert.js","geotechnical-data-platform-new/templates/components/blu900gw/edit-gateway.js","geotechnical-data-platform-new/templates/components/blu900gw/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/templates/components/blu900gw/raw-gateway-data.js","geotechnical-data-platform-new/templates/components/blu900gw/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/blu900gw/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/blu900gw/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/blu900node/create-alert.js","geotechnical-data-platform-new/templates/components/blu900node/create-gateway.js","geotechnical-data-platform-new/templates/components/blu900node/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/templates/components/blu900node/edit-alert.js","geotechnical-data-platform-new/templates/components/blu900node/edit-gateway.js","geotechnical-data-platform-new/templates/components/blu900node/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/templates/components/blu900node/raw-gateway-data.js","geotechnical-data-platform-new/templates/components/blu900node/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/blu900node/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/blu900node/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/blucell/create-alert.js","geotechnical-data-platform-new/templates/components/blucell/create-gateway.js","geotechnical-data-platform-new/templates/components/blucell/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/templates/components/blucell/edit-gateway-alert.js","geotechnical-data-platform-new/templates/components/blucell/edit-gateway.js","geotechnical-data-platform-new/templates/components/blucell/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/templates/components/blucell/raw-gateway-data.js","geotechnical-data-platform-new/templates/components/blucell/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/blucell/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/blucell/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/blugate/create-alert.js","geotechnical-data-platform-new/templates/components/blugate/create-gateway.js","geotechnical-data-platform-new/templates/components/blugate/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/templates/components/blugate/edit-alert.js","geotechnical-data-platform-new/templates/components/blugate/edit-gateway.js","geotechnical-data-platform-new/templates/components/blugate/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/templates/components/blugate/raw-gateway-data.js","geotechnical-data-platform-new/templates/components/blugate/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/blugate/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/blugate/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/blugate/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/bluvibe/create-alert.js","geotechnical-data-platform-new/templates/components/bluvibe/create-gateway.js","geotechnical-data-platform-new/templates/components/bluvibe/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/templates/components/bluvibe/edit-gateway-alert.js","geotechnical-data-platform-new/templates/components/bluvibe/edit-gateway.js","geotechnical-data-platform-new/templates/components/bluvibe/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/templates/components/bluvibe/raw-gateway-data.js","geotechnical-data-platform-new/templates/components/bluvibe/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/bluvibe/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/bluvibe/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/bread-crumbs.js","geotechnical-data-platform-new/templates/components/cable/create-alert.js","geotechnical-data-platform-new/templates/components/cable/create-instrument.js","geotechnical-data-platform-new/templates/components/cable/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/cable/edit-alert.js","geotechnical-data-platform-new/templates/components/cable/edit-instrument.js","geotechnical-data-platform-new/templates/components/cable/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/cable/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/cable/raw-data.js","geotechnical-data-platform-new/templates/components/cable/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/cable/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/create-new-blast-event-form.js","geotechnical-data-platform-new/templates/components/create-new-seismic-event-form.js","geotechnical-data-platform-new/templates/components/data-export-form.js","geotechnical-data-platform-new/templates/components/data-export-gateway-form.js","geotechnical-data-platform-new/templates/components/data-import-form-seis.js","geotechnical-data-platform-new/templates/components/data-import-form.js","geotechnical-data-platform-new/templates/components/data-import-gateway-form.js","geotechnical-data-platform-new/templates/components/dconv/create-alert.js","geotechnical-data-platform-new/templates/components/dconv/create-instrument.js","geotechnical-data-platform-new/templates/components/dconv/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/dconv/edit-alert.js","geotechnical-data-platform-new/templates/components/dconv/edit-instrument.js","geotechnical-data-platform-new/templates/components/dconv/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/dconv/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/dconv/raw-data.js","geotechnical-data-platform-new/templates/components/dconv/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/dconv/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/display-noneditable-numeric.js","geotechnical-data-platform-new/templates/components/dppc/create-alert.js","geotechnical-data-platform-new/templates/components/dppc/create-instrument.js","geotechnical-data-platform-new/templates/components/dppc/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/dppc/edit-alert.js","geotechnical-data-platform-new/templates/components/dppc/edit-instrument.js","geotechnical-data-platform-new/templates/components/dppc/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/dppc/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/dppc/raw-data.js","geotechnical-data-platform-new/templates/components/dppc/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/edit-my-profile-user-modal.js","geotechnical-data-platform-new/templates/components/ember-popper-targeting-parent.js","geotechnical-data-platform-new/templates/components/ember-popper.js","geotechnical-data-platform-new/templates/components/file-upload-seis.js","geotechnical-data-platform-new/templates/components/file-upload.js","geotechnical-data-platform-new/templates/components/filter-text-input-alert.js","geotechnical-data-platform-new/templates/components/filter-text-input-events.js","geotechnical-data-platform-new/templates/components/filter-text-input-gateway.js","geotechnical-data-platform-new/templates/components/filter-text-input-log-viewer.js","geotechnical-data-platform-new/templates/components/filter-text-input.js","geotechnical-data-platform-new/templates/components/frequency-chart-dropdown.js","geotechnical-data-platform-new/templates/components/frequency-display-records-dropdown.js","geotechnical-data-platform-new/templates/components/frequency-event-tabs.js","geotechnical-data-platform-new/templates/components/gateway-alerts-list.js","geotechnical-data-platform-new/templates/components/gateway-list-children.js","geotechnical-data-platform-new/templates/components/gateway-list.js","geotechnical-data-platform-new/templates/components/gateway-selector.js","geotechnical-data-platform-new/templates/components/getTotalsAlerts.js","geotechnical-data-platform-new/templates/components/getTotalsGateway.js","geotechnical-data-platform-new/templates/components/getTotalsInstruments.js","geotechnical-data-platform-new/templates/components/getTotalsLogViewers.js","geotechnical-data-platform-new/templates/components/hid/create-alert.js","geotechnical-data-platform-new/templates/components/hid/create-instrument.js","geotechnical-data-platform-new/templates/components/hid/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/hid/edit-alert.js","geotechnical-data-platform-new/templates/components/hid/edit-instrument.js","geotechnical-data-platform-new/templates/components/hid/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/hid/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/hid/raw-data.js","geotechnical-data-platform-new/templates/components/hid/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/hid/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/instrument-drop-down.js","geotechnical-data-platform-new/templates/components/instruments-list.js","geotechnical-data-platform-new/templates/components/key-import-form.js","geotechnical-data-platform-new/templates/components/key-upload.js","geotechnical-data-platform-new/templates/components/log-viewer-list.js","geotechnical-data-platform-new/templates/components/micro/create-alert.js","geotechnical-data-platform-new/templates/components/micro/create-instrument.js","geotechnical-data-platform-new/templates/components/micro/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/micro/edit-alert.js","geotechnical-data-platform-new/templates/components/micro/edit-instrument.js","geotechnical-data-platform-new/templates/components/micro/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/micro/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/micro/raw-data.js","geotechnical-data-platform-new/templates/components/micro/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/micro/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/multiDExto/create-instrument.js","geotechnical-data-platform-new/templates/components/multiDExto/dExto-children-table-row.js","geotechnical-data-platform-new/templates/components/multiDExto/dExto-children.js","geotechnical-data-platform-new/templates/components/multiDExto/edit-instrument.js","geotechnical-data-platform-new/templates/components/multiDExto/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/multiDExto/raw-data.js","geotechnical-data-platform-new/templates/components/multiDExto/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/my-profile-sidebar-addon.js","geotechnical-data-platform-new/templates/components/my-profile-sidebar-home.js","geotechnical-data-platform-new/templates/components/my-profile-sidebar-more.js","geotechnical-data-platform-new/templates/components/my-profile-sidebar-users.js","geotechnical-data-platform-new/templates/components/my-profile-sidebar.js","geotechnical-data-platform-new/templates/components/navbar.js","geotechnical-data-platform-new/templates/components/oneforone/create-alert.js","geotechnical-data-platform-new/templates/components/oneforone/create-gateway.js","geotechnical-data-platform-new/templates/components/oneforone/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/templates/components/oneforone/edit-alert.js","geotechnical-data-platform-new/templates/components/oneforone/edit-gateway.js","geotechnical-data-platform-new/templates/components/oneforone/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/templates/components/oneforone/raw-gateway-data.js","geotechnical-data-platform-new/templates/components/oneforone/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/oneforone/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/oneforone/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/pack/create-alert.js","geotechnical-data-platform-new/templates/components/pack/create-instrument.js","geotechnical-data-platform-new/templates/components/pack/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/pack/edit-alert.js","geotechnical-data-platform-new/templates/components/pack/edit-instrument.js","geotechnical-data-platform-new/templates/components/pack/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/pack/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/pack/raw-data.js","geotechnical-data-platform-new/templates/components/pack/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/pack/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/page-item-count.js","geotechnical-data-platform-new/templates/components/pagination-links.js","geotechnical-data-platform-new/templates/components/piezo/create-alert.js","geotechnical-data-platform-new/templates/components/piezo/create-instrument.js","geotechnical-data-platform-new/templates/components/piezo/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/piezo/edit-alert.js","geotechnical-data-platform-new/templates/components/piezo/edit-instrument.js","geotechnical-data-platform-new/templates/components/piezo/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/piezo/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/piezo/raw-data.js","geotechnical-data-platform-new/templates/components/piezo/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/popup-list.js","geotechnical-data-platform-new/templates/components/production/calibrationMainPage.js","geotechnical-data-platform-new/templates/components/production/packsValidationMainPage.js","geotechnical-data-platform-new/templates/components/progress-bar.js","geotechnical-data-platform-new/templates/components/radio-buttons.js","geotechnical-data-platform-new/templates/components/raw-drop-down.js","geotechnical-data-platform-new/templates/components/raw-frequency-events-drop-down.js","geotechnical-data-platform-new/templates/components/raw-gateway-drop-down.js","geotechnical-data-platform-new/templates/components/raw-port-drop-down.js","geotechnical-data-platform-new/templates/components/rebar/create-alert.js","geotechnical-data-platform-new/templates/components/rebar/create-instrument.js","geotechnical-data-platform-new/templates/components/rebar/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/rebar/edit-alert.js","geotechnical-data-platform-new/templates/components/rebar/edit-instrument.js","geotechnical-data-platform-new/templates/components/rebar/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/rebar/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/rebar/raw-data.js","geotechnical-data-platform-new/templates/components/rebar/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/rebar/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/rebarv2/create-alert.js","geotechnical-data-platform-new/templates/components/rebarv2/create-instrument.js","geotechnical-data-platform-new/templates/components/rebarv2/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/rebarv2/edit-alert.js","geotechnical-data-platform-new/templates/components/rebarv2/edit-instrument.js","geotechnical-data-platform-new/templates/components/rebarv2/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/rebarv2/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/rebarv2/raw-data.js","geotechnical-data-platform-new/templates/components/rebarv2/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/rebarv2/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/record-selector.js","geotechnical-data-platform-new/templates/components/selected-dExtos.js","geotechnical-data-platform-new/templates/components/settings-about.js","geotechnical-data-platform-new/templates/components/settings-general.js","geotechnical-data-platform-new/templates/components/settings-more-clear-logs-confirmation-modal.js","geotechnical-data-platform-new/templates/components/settings-more.js","geotechnical-data-platform-new/templates/components/settings-sidebar.js","geotechnical-data-platform-new/templates/components/single-save-checkbox.js","geotechnical-data-platform-new/templates/components/single-save-datetime-picker.js","geotechnical-data-platform-new/templates/components/single-save-gateway-inputs-array-table-row-cells.js","geotechnical-data-platform-new/templates/components/single-save-geo-input.js","geotechnical-data-platform-new/templates/components/single-save-input-InstType.js","geotechnical-data-platform-new/templates/components/single-save-input-numeric.js","geotechnical-data-platform-new/templates/components/single-save-input-password.js","geotechnical-data-platform-new/templates/components/single-save-input.js","geotechnical-data-platform-new/templates/components/single-save-inputs-array-table-row-cells-2.js","geotechnical-data-platform-new/templates/components/single-save-inputs-array-table-row-cells.js","geotechnical-data-platform-new/templates/components/single-save-instrument-anchors-rebar.js","geotechnical-data-platform-new/templates/components/single-save-instrument-anchors.js","geotechnical-data-platform-new/templates/components/single-save-interval-dropdown.js","geotechnical-data-platform-new/templates/components/single-save-lookup.js","geotechnical-data-platform-new/templates/components/single-save-select-alt.js","geotechnical-data-platform-new/templates/components/single-save-select-non-model.js","geotechnical-data-platform-new/templates/components/single-save-select.js","geotechnical-data-platform-new/templates/components/single-save-time-picker.js","geotechnical-data-platform-new/templates/components/slough/create-alert.js","geotechnical-data-platform-new/templates/components/slough/create-instrument.js","geotechnical-data-platform-new/templates/components/slough/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/slough/edit-alert.js","geotechnical-data-platform-new/templates/components/slough/edit-instrument.js","geotechnical-data-platform-new/templates/components/slough/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/slough/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/slough/raw-data.js","geotechnical-data-platform-new/templates/components/slough/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/slough/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/sortable-table-header.js","geotechnical-data-platform-new/templates/components/spatial-blast-dropdown.js","geotechnical-data-platform-new/templates/components/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/spatial-event-dropdown.js","geotechnical-data-platform-new/templates/components/spatial-group-dropdown.js","geotechnical-data-platform-new/templates/components/spatial-seismic-dropdown.js","geotechnical-data-platform-new/templates/components/spatial-time-dropdown.js","geotechnical-data-platform-new/templates/components/spatial-window-dropdown.js","geotechnical-data-platform-new/templates/components/svg-instrument.js","geotechnical-data-platform-new/templates/components/temporal-blast-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-display-records-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-event-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-group-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-seismic-dropdown.js","geotechnical-data-platform-new/templates/components/temporal-window-dropdown.js","geotechnical-data-platform-new/templates/components/thermo/create-alert.js","geotechnical-data-platform-new/templates/components/thermo/create-instrument.js","geotechnical-data-platform-new/templates/components/thermo/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/thermo/edit-alert.js","geotechnical-data-platform-new/templates/components/thermo/edit-instrument.js","geotechnical-data-platform-new/templates/components/thermo/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/thermo/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/thermo/raw-data.js","geotechnical-data-platform-new/templates/components/thermo/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/thermo/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/threeD.js","geotechnical-data-platform-new/templates/components/tilt/create-alert.js","geotechnical-data-platform-new/templates/components/tilt/create-instrument.js","geotechnical-data-platform-new/templates/components/tilt/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/tilt/edit-alert.js","geotechnical-data-platform-new/templates/components/tilt/edit-instrument.js","geotechnical-data-platform-new/templates/components/tilt/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/tilt/raw-data.js","geotechnical-data-platform-new/templates/components/tilt/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/vendor-instrument.js","geotechnical-data-platform-new/templates/components/vibe/chartjs-frequency-chart.js","geotechnical-data-platform-new/templates/components/vibe/create-alert.js","geotechnical-data-platform-new/templates/components/vibe/create-gateway.js","geotechnical-data-platform-new/templates/components/vibe/create-instrument.js","geotechnical-data-platform-new/templates/components/vibe/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/vibe/create-new-raw-gateway-data-value-form.js","geotechnical-data-platform-new/templates/components/vibe/echarts-frequency-event.js","geotechnical-data-platform-new/templates/components/vibe/edit-alert.js","geotechnical-data-platform-new/templates/components/vibe/edit-gateway.js","geotechnical-data-platform-new/templates/components/vibe/edit-instrument.js","geotechnical-data-platform-new/templates/components/vibe/frequency-chart-dropdown.js","geotechnical-data-platform-new/templates/components/vibe/frequency-events-dropdown.js","geotechnical-data-platform-new/templates/components/vibe/nvd3-frequency-line-chart.js","geotechnical-data-platform-new/templates/components/vibe/nvd3-temporal-gateway-line-chart.js","geotechnical-data-platform-new/templates/components/vibe/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/vibe/raw-data.js","geotechnical-data-platform-new/templates/components/vibe/raw-frequency-events-data.js","geotechnical-data-platform-new/templates/components/vibe/raw-gateway-data.js","geotechnical-data-platform-new/templates/components/vibe/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/components/vibe/temporal-gateway-chart-dropdown.js","geotechnical-data-platform-new/templates/components/vibe/temporal-gateway-left-axis-dropdown.js","geotechnical-data-platform-new/templates/components/vibe/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/components/wire-single-save-inputs-array-table-row-cells.js","geotechnical-data-platform-new/templates/components/wire/create-alert.js","geotechnical-data-platform-new/templates/components/wire/create-instrument.js","geotechnical-data-platform-new/templates/components/wire/create-new-raw-data-value-form.js","geotechnical-data-platform-new/templates/components/wire/edit-alert.js","geotechnical-data-platform-new/templates/components/wire/edit-instrument-port-drop-down.js","geotechnical-data-platform-new/templates/components/wire/edit-instrument-tabs.js","geotechnical-data-platform-new/templates/components/wire/edit-instrument.js","geotechnical-data-platform-new/templates/components/wire/geo-pt-edit.js","geotechnical-data-platform-new/templates/components/wire/nvd3-spatial-line-chart.js","geotechnical-data-platform-new/templates/components/wire/nvd3-temporal-line-chart.js","geotechnical-data-platform-new/templates/components/wire/raw-data-dropdown.js","geotechnical-data-platform-new/templates/components/wire/raw-data.js","geotechnical-data-platform-new/templates/components/wire/roc-pws-edit.js","geotechnical-data-platform-new/templates/components/wire/spatial-chart-dropdown.js","geotechnical-data-platform-new/templates/components/wire/temporal-chart-dropdown.js","geotechnical-data-platform-new/templates/create-alert.js","geotechnical-data-platform-new/templates/create-gateway-alert.js","geotechnical-data-platform-new/templates/create-gateway.js","geotechnical-data-platform-new/templates/create-instrument.js","geotechnical-data-platform-new/templates/create-lookup.js","geotechnical-data-platform-new/templates/dash-map.js","geotechnical-data-platform-new/templates/edit-alert.js","geotechnical-data-platform-new/templates/edit-gateway-alert.js","geotechnical-data-platform-new/templates/edit-gateway.js","geotechnical-data-platform-new/templates/edit-instrument.js","geotechnical-data-platform-new/templates/edit-lookups.js","geotechnical-data-platform-new/templates/forgot-password.js","geotechnical-data-platform-new/templates/frequency-events.js","geotechnical-data-platform-new/templates/frequency-events/frequency-event.js","geotechnical-data-platform-new/templates/frequency-events/frequency-graph-loading.js","geotechnical-data-platform-new/templates/frequency-graphs.js","geotechnical-data-platform-new/templates/frequency-graphs/frequency-graph-loading.js","geotechnical-data-platform-new/templates/frequency-graphs/frequency-graph.js","geotechnical-data-platform-new/templates/gateway.js","geotechnical-data-platform-new/templates/index.js","geotechnical-data-platform-new/templates/instruments.js","geotechnical-data-platform-new/templates/keys.js","geotechnical-data-platform-new/templates/list-lookups.js","geotechnical-data-platform-new/templates/log-viewer.js","geotechnical-data-platform-new/templates/login.js","geotechnical-data-platform-new/templates/my-profile.js","geotechnical-data-platform-new/templates/packs-validation-analytics.js","geotechnical-data-platform-new/templates/packs-validation.js","geotechnical-data-platform-new/templates/raw-data.js","geotechnical-data-platform-new/templates/raw-frequency-events-data.js","geotechnical-data-platform-new/templates/raw-gateway-data.js","geotechnical-data-platform-new/templates/register.js","geotechnical-data-platform-new/templates/reset-password.js","geotechnical-data-platform-new/templates/seismic-events.js","geotechnical-data-platform-new/templates/sensor-calibration-analytics.js","geotechnical-data-platform-new/templates/sensor-calibration.js","geotechnical-data-platform-new/templates/settings.js","geotechnical-data-platform-new/templates/spatial-graphs.js","geotechnical-data-platform-new/templates/spatial-graphs/spatial-graph-loading.js","geotechnical-data-platform-new/templates/spatial-graphs/spatial-graph.js","geotechnical-data-platform-new/templates/temporal-gateway-graphs.js","geotechnical-data-platform-new/templates/temporal-gateway-graphs/temporal-gateway-graph-loading.js","geotechnical-data-platform-new/templates/temporal-gateway-graphs/temporal-gateway-graph.js","geotechnical-data-platform-new/templates/temporal-gateway-right-axis-dropdown.js","geotechnical-data-platform-new/templates/temporal-graphs.js","geotechnical-data-platform-new/templates/temporal-graphs/temporal-graph-loading.js","geotechnical-data-platform-new/templates/temporal-graphs/temporal-graph.js","geotechnical-data-platform-new/templates/vibration-events.js","geotechnical-data-platform-new/transforms/boolean.js","geotechnical-data-platform-new/transforms/date.js","geotechnical-data-platform-new/transforms/digits.js","geotechnical-data-platform-new/transforms/number.js","geotechnical-data-platform-new/transforms/object.js","geotechnical-data-platform-new/transforms/string.js","geotechnical-data-platform-new/transforms/text.js","geotechnical-data-platform-new/uploaders/s3.js","geotechnical-data-platform-new/uploaders/uploader.js","geotechnical-data-platform-new/utils/api-config.js","vendor/ember-cli/app-suffix.js","vendor/ember-cli/app-config.js","vendor/ember-cli/app-boot.js"],"sourcesContent":["'use strict';\n\n\n","define(\"geotechnical-data-platform-new/adapters/-json-api\", [\"exports\", \"@ember-data/adapter/json-api\"], function (_exports, _jsonApi) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _jsonApi.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import DS from 'ember-data';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { computed, observer } from '@ember/object';\nimport { getApiBaseUrl } from '../utils/api-config';\n\n\nexport default DS.JSONAPIAdapter.extend({\n    host: getApiBaseUrl(),\n    session: service(),\n\n    buildURL(type, id, record) {\n    return this._super(type, id, record) + '/';\n    },\n\n    headers: computed(function () {\n    return {\n        Accept: 'application/vnd.api+json',\n        withCredentials: true,\n        Authorization: `Bearer ${localStorage.token}`\n    };\n    }),\n\n    handleResponse(status, headers, payload, requestData) {\n    if (requestData?.url?.includes('/api/logout')) {\n        return this._super(status, headers, payload, requestData);\n    }\n\n    if (status === 401 && this.session.isAuthenticated) {\n        this.session.invalidate();\n    }\n\n    return this._super(status, headers, payload, requestData);\n    }\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    }\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/bluvibev2s/' + query.instrument_id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/bluvibev2s/' + query.instrument_id + '/';\n        }\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import ApplicationAdapter from './application';\nimport { isPresent } from '@ember/utils';\n\nexport default class CalibrationCalibrationProfileAdapter extends ApplicationAdapter {\n  handleResponse(status, headers, payload, requestData) {\n    if (status === 403) {\n      const error = {\n        errors: payload.errors || [\n          {\n            status: `${status}`,\n            title: 'Forbidden',\n            detail: 'You do not have permission to perform this action.',\n          },\n        ],\n      };\n      return error; // Pass the formatted error object\n    }\n    return super.handleResponse(status, headers, payload, requestData);\n  }\n}\n","import ApplicationAdapter from './application';\nimport { isPresent } from '@ember/utils';\n\nexport default class CalibrationTypeAdapter extends ApplicationAdapter {\n  handleResponse(status, headers, payload, requestData) {\n    if (status === 403) {\n      const error = {\n        errors: payload.errors || [\n          {\n            status: `${status}`,\n            title: 'Forbidden',\n            detail: 'You do not have permission to perform this action.',\n          },\n        ],\n      };\n      return error; // Pass the formatted error object\n    }\n    return super.handleResponse(status, headers, payload, requestData);\n  }\n}\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/bluvibe/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/bluvibe/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/bluvibe/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/bluvibe/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/bluvibe/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/bluvibe/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        // console.log(\"in buildURL: modelName: \" + modelName + \"  ID: \" + id + \"  requestType: \" + requestType + \"  query: \" + query)\n        if (requestType === 'createRecord') {\n        //  console.log(\"gateway_value adapter createRecord modelName: \" + modelName);\n          return this.host + '/gateway/gateway_id/' + modelName + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n        // console.log(\"gateway_value adapter update modelName: \" + modelName);\n          return this.host + '/gateway/gateway_id/' + modelName + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n        //  console.log(\"gateway_value adapter undefined modelName: \" + modelName);\n          return this.host + '/gateway/' + query.gateway_id + '/' + modelName + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n    \n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            // console.log(\"Create record:::::::::::::::::::: \" + this.host + '/gateway/');\n            return this.host + '/gateway/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateway/gateway_id/';\n        }\n        if (typeof id !== 'undefined' && id !== null) {\n            return this.host + '/gateway/' + id + '/';\n        }\n        if (typeof query === 'undefined') {\n            return this.host + '/gateway/';\n        }\n        if (typeof query.gateway_id === 'undefined') {\n            return this.host + '/gateway/';\n        } else {\n            return this.host + '/gateway/' + query.gateway_id + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n        // console.log(\"Create record:::::::::::::::::::: \" + url  + \" \" + snapshot + \" \" + JSON.stringify(data)    );\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (id) {\n            url = url.replace(\"gateway_id\", id);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n        // console.log(\"Delete record:::::::::::::::::::: \");\n \n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (id) {\n            url = url.replace(\"gateway_id\", id);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import DS from 'ember-data';\nimport DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';\n\nexport default DS.RESTAdapter.extend(DataAdapterMixin, {\n  authorizer: 'authorizer:google',\n  host: 'https://www.googleapis.com'\n});\n","import Ember from 'ember';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/';\n        }\n        if (typeof id !== 'undefined' && id !== null) {\n            return this.host + '/instruments/' + id + '/';\n        }\n        if (typeof query === 'undefined') {\n            return this.host + '/instruments/';\n        }\n        if (typeof query.instrument_id === 'undefined') {\n            return this.host + '/instruments/';\n        } else {\n            // console.log(\"requestType: \" + requestType)\n            // console.log(\"query: \" + this.host + '/instruments/' + query.instrument_id + '/')\n        \n            return this.host + '/instruments/' + query.instrument_id + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (id) {\n            url = url.replace(\"instrument_id\", id);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n        if (id) {\n            url = url.replace(\"instrument_id\", id);\n        }\n        // console.log(\"Delete record:::::::::::::::::::: \" + url);\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/log-viewers/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/log-viewers/log-viewers_id/';\n        }\n        if (typeof id !== 'undefined' && id !== null) {\n            return this.host + '/log-viewers/' + id + '/';\n        }\n        if (typeof query === 'undefined') {\n            return this.host + '/log-viewers/';\n        }\n        // console.log(\"query::: \" + JSON.stringify(query))\n        if (typeof query.logViewer_id === 'undefined') {\n            return this.host + '/log-viewers/';\n        } else {\n            return this.host + '/log-viewers/' + query.logViewer_id + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"log-viewers_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (id) {\n            url = url.replace(\"log-viewers_id\", id);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n        if (id) {\n            url = url.replace(\"log-viewers_id\", id);\n        }\n        // console.log(\"Delete record:::::::::::::::::::: \" + url);\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import ApplicationAdapter from './application';\nimport { isPresent } from '@ember/utils';\n\nexport default class PackValidationTypeAdapter extends ApplicationAdapter {\n  handleResponse(status, headers, payload, requestData) {\n    if (status === 403) {\n      const error = {\n        errors: payload.errors || [\n          {\n            status: `${status}`,\n            title: 'Forbidden',\n            detail: 'You do not have permission to perform this action.',\n          },\n        ],\n      };\n      return error; // Pass the formatted error object\n    }\n    return super.handleResponse(status, headers, payload, requestData);\n  }\n}\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import ApplicationAdapter from './application';\nimport { isPresent } from '@ember/utils';\n\nexport default class RigProfileAdapter extends ApplicationAdapter {\n  handleResponse(status, headers, payload, requestData) {\n    if (status === 403) {\n      const error = {\n        errors: payload.errors || [\n          {\n            status: `${status}`,\n            title: 'Forbidden',\n            detail: 'You do not have permission to perform this action.',\n          },\n        ],\n      };\n      return error; // Pass the formatted error object\n    }\n    return super.handleResponse(status, headers, payload, requestData);\n  }\n}\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n        // console.log(\"URL::: \" + url);\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/instruments/instrument_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/instruments/' + query.instrument_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"instrument_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        // console.log(\"host: \", this.host);\n        if (requestType === 'createRecord') {\n            return this.host + '/vendors/vendor_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/vendors/vendor_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        \n        if (query!=null && query != undefined) {\n            if(query.vendorType == 'GENERIC') {\n                // console.log(\"Query: \", query);\n                // console.log(\"host: \", this.host);\n                let vendorType = query.vendorType;\n                delete query.vendorType;\n                // console.log(\"Using custom URL for vendorType:\", vendorType);\n                return this.host + '/vendors/get_by_vendor_type/?vendorType=' + vendorType;\n            }\n        }\n\n        if (typeof query === 'undefined') {\n            return this.host + '/vendors/' + pluralize(modelName) + '/';\n        }\n    },\n  \n});","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport ApplicationAdapter from './application';\n\nexport default ApplicationAdapter.extend({\n    buildURL: function(modelName, id, snapshot, requestType, query) {\n        if (requestType === 'createRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/';\n        }\n        if (requestType === 'updateRecord' || requestType === 'deleteRecord') {\n            return this.host + '/gateways/gateway_id/' + pluralize(modelName) + '/' + snapshot.id + '/';\n        }\n        if (typeof query !== 'undefined') {\n            return this.host + '/gateways/' + query.gateway_id + '/' + pluralize(modelName) + '/';\n        }\n    },\n    createRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'createRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'POST', {data: data});\n    },\n    updateRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'PATCH', {data: data});\n    },\n    deleteRecord(store, type, snapshot) {\n\n        const data = {};\n        const serializer = store.serializerFor(type.modelName);\n\n        serializer.serializeIntoHash(data, type, snapshot, {includeId: true});\n\n        const id = snapshot.id;\n        let url = this.buildURL(type.modelName, id, snapshot, 'deleteRecord');\n\n        if (snapshot.adapterOptions) {\n            url = url.replace(\"gateway_id\", snapshot.adapterOptions);\n        }\n\n        return this.ajax(url, 'DELETE', {data: data});\n    },\n});\n","import Application from '@ember/application';\nimport Resolver from 'ember-resolver';\nimport loadInitializers from 'ember-load-initializers';\nimport config from './config/environment';\n\nexport default class App extends Application {\n  modulePrefix = config.modulePrefix;\n  podModulePrefix = config.podModulePrefix;\n  Resolver = Resolver;\n}\n\nloadInitializers(App, config.modulePrefix);\nEmber.deprecate = function(){};","// app/authenticators/custom.js\nimport Ember from 'ember';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport Base from 'ember-simple-auth/authenticators/base';\nimport { inject as service } from '@ember/service';\nimport base64 from 'base-64';\nimport { getApiBaseUrl } from '../utils/api-config';\n\n\nexport default class BasicAuth extends Base {\n    @service session;\n    @service userProfileService;\n    @service api;\n\n    provider = \"\";\n\n    restore(data) {\n        //console.log('restore');\n        if(data) {\n            let promise = new Ember.RSVP.Promise(function(resolve, reject) {\n                if (data['auth'] == true) {\n                    resolve(data);\n                } else {\n                    reject(new Error(\"session no longer exists\"));\n                }\n            });\n            return promise;\n        }\n    }\n\n    async invalidate(data) {\n        try {\n            // If there is no access token, just clear storage and exit\n            if (!data?.access) {\n            localStorage.removeItem('token');\n            localStorage.removeItem('refresh');\n            return;\n            }\n\n            const logoutUrl = `${getApiBaseUrl()}/api/logout`;\n\n            const refreshToken = localStorage.getItem('refresh')?.replace(/^\"|\"$/g, '');\n\n            await this.api.fetch(logoutUrl, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application/json',\n                'Authorization': `Bearer ${data.access}`,\n            },\n            body: JSON.stringify({\n                data: {\n                type: 'logout-request',\n                attributes: {\n                    code: refreshToken,\n                },\n                },\n            }),\n            });\n        } catch (error) {\n            // Logout endpoint failure should NOT block local logout\n            console.warn('Logout request failed, continuing local logout', error);\n        } finally {\n            // Always clear local state\n            localStorage.removeItem('token');\n            localStorage.removeItem('refresh');\n        }\n    }\n\n\n    // async invalidate() {\n    //     if (!data?.access) {\n    //     return;\n    //     }\n    //     const logoutWithToken = `${getApiBaseUrl()}/api/logout`;\n            \n    //     let refreshToken = localStorage.getItem('refresh');\n    //     refreshToken = refreshToken.replace(/^\"|\"$/g, '');\n    //     const postData = {\n    //         data: {\n    //           type: 'logout-request',  // This should match the type your API expects\n    //           attributes: {\n    //             code: JSON.stringify(refreshToken)\n    //           }\n    //         }\n    //       };\n          \n    //       this.api.fetch(logoutWithToken, {\n    //         method: 'POST',\n    //         headers: {\n    //           'Content-Type': 'application/json',  // Set the correct content type for JSON:API\n    //           'Authorization': `Bearer ${localStorage.getItem('token')}` // Assuming you use token authentication\n    //         },\n    //         body: JSON.stringify(postData),\n    //         data: JSON.stringify(postData)\n    //       }).then(response => {\n    //         if (!response.ok) {\n    //           throw new Error('Logout failed with status:', response.status);\n    //         }\n    //         return response.json();  // Optionally process the response further\n    //       }).then(data => {\n    //         console.log('Logout successful', data);\n    //         localStorage.removeItem('token'); // Clear the token from local storage on logout\n    //         resolve();\n    //       }).catch(error => {\n    //         console.error('Logout request failed:', error);\n    //         reject(error);\n    //       });   \n    // }\n\n\n\n    async authenticate(provider, options) {\n        let jwtExchangeUrl = `${getApiBaseUrl()}/api/token/`; // JWT exchange endpoint\n        \n        //  basic-auth\n        this.provider = provider; \n\n        let credentials = base64.encode(`${options.username}:${options.password}`);\n\n        // Request for JWT\n        let jwtResponse = await this.api.fetch(jwtExchangeUrl, {\n            method: 'POST',\n            headers: {\n                'Authorization': `Basic ${credentials}`,\n                'Content-Type': 'application/json'\n            },\n        });\n\n        if (!jwtResponse.ok) {\n            let errorText = await jwtResponse.text();\n            throw new Error(errorText);\n        }\n\n        // Assuming jwtResponse includes 'access' token\n        let { refresh, access } = await jwtResponse.json();\n        // console.log(\"Access:  \" + access);\n        // console.log(\"Refresh:  \" + refresh);\n        localStorage.setItem('token', access); // Store JWT access token for later use\n        localStorage.setItem('refresh', refresh); // Store JWT Refresh token for later use\n        \n        // Now, make a separate request to the `licences/` endpoint using the JWT\n        let licensesUrl = `${getApiBaseUrl()}/licences/`; // Adjust to your actual licenses endpoint\n\n        let licenseResponse = await this.api.fetch(licensesUrl, {\n            method: 'GET',\n            headers: {\n                'Authorization': `Bearer ${access}`, // Use the JWT for authorization\n                'Content-Type': 'application/json'\n            },\n        });\n\n        if (!licenseResponse.ok) {\n            let errorText = await licenseResponse.text();\n            throw new Error(errorText);\n        }\n\n        // Assuming licenseResponse contains the license information\n        let expirationTime = ( 60 * 10 );\n        this.set('session.store.cookieExpirationTime', expirationTime);\n        let licence;\n        let isValid = false;\n        let limit = 0;\n        let modules = {};\n        try {\n            licence = await licenseResponse.json();\n            licence = licence.data[0];\n            // console.log(licence)\n            isValid = licence.attributes['is-valid'];\n            limit = licence.attributes['within-limit'];\n            modules = licence.attributes['modules'];\n        } catch (ex) {\n        }\n        this.set('session.store.cookieExpirationTime', expirationTime);\n        // Now, make a separate request to the `licences/` endpoint using the JWT\n        let userProfileURL = `${getApiBaseUrl()}/api/auth/user/profile/`; // Adjust to your actual licenses endpoint\n\n        let userProfileResponse = await this.api.fetch(userProfileURL, {\n            method: 'GET',\n            headers: {\n                'Authorization': `Bearer ${access}`, // Use the JWT for authorization\n                'Content-Type': 'application/json'\n            },\n        });\n\n        if (!userProfileResponse.ok) {\n            let errorText = await userProfileResponse.text();\n            throw new Error(errorText);\n        }\n        let userProfileData = await userProfileResponse.json();\n        this.userProfileService.loadFromServer(userProfileData);\n\n        // Return the authentication data along with the license data\n        let sessionData = {\n            auth: true,\n            user:options.username,\n            isValid:isValid, \n            limit:limit, \n            modules:modules,\n            access, // Access token\n            licence, // Add the license data to the return object\n            provider:this.provider,\n            userProfile: userProfileData\n        };\n        return sessionData;\n    }\n}","// app/authenticators/jwt.js\nimport BaseAuthenticator from \"ember-simple-auth/authenticators/base\";\nimport { inject as service } from \"@ember/service\";\nimport { getApiBaseUrl } from '../utils/api-config';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\n\nexport default class JwtAuthenticator extends BaseAuthenticator {\n  @service session;\n  @service userProfileService;\n  @service api;\n\n  /**\n   * Restore a saved session\n   */\n  restore(data) {\n    return new Promise((resolve, reject) => {\n      if (data?.access) {\n        resolve(data);\n      } else {\n        reject(\"No active session\");\n      }\n    });\n  }\n\n  /**\n   * Invalidate (logout)\n   */\n\n  async invalidate(data) {\n      try {\n          // If there is no access token, just clear storage and exit\n          if (!data?.access) {\n          localStorage.removeItem('token');\n          localStorage.removeItem('refresh');\n          return;\n          }\n\n          const logoutUrl = `${getApiBaseUrl()}/api/logout`;\n\n          const refreshToken = localStorage.getItem('refresh')?.replace(/^\"|\"$/g, '');\n\n          await this.api.fetch(logoutUrl, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              'Authorization': `Bearer ${data.access}`,\n          },\n          body: JSON.stringify({\n              data: {\n              type: 'logout-request',\n              attributes: {\n                  code: refreshToken,\n              },\n              },\n          }),\n          });\n      } catch (error) {\n          // Logout endpoint failure should NOT block local logout\n          console.warn('Logout request failed, continuing local logout', error);\n      } finally {\n          // Always clear local state\n          localStorage.removeItem('token');\n          localStorage.removeItem('refresh');\n      }\n  }\n  // async invalidate(data) {\n  //   if (!data?.access) {\n  //     return;\n  //   }\n  //   const logoutUrl = `${getApiBaseUrl()}/api/logout`;\n\n  //   try {\n  //     await this.api.fetch(logoutUrl, {\n  //       method: \"POST\",\n  //       headers: {\n  //         \"Content-Type\": \"application/json\",\n  //         Authorization: `Bearer ${data.access}`,\n  //       },\n  //       body: JSON.stringify({\n  //         data: {\n  //           type: \"logout\",\n  //           attributes: { code: data.refresh },\n  //         },\n  //       }),\n  //     });\n  //   } catch (e) {\n  //     console.warn(\"Logout request failed but session will still be cleared\");\n  //   }\n\n  //   return Promise.resolve();\n  // }\n\n  /**\n   * Authenticate → Login → Fetch Licence → Fetch Profile\n   */\n  async authenticate(options) {\n    const loginUrl = `${getApiBaseUrl()}/api/oauth-providers/token_exchange/`;\n\n    // --- STEP 1: Login and get JWT ---\n    let loginResponse = await this.api.fetch(loginUrl, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify({\n        username: options.username,\n        password: options.password,\n      }),\n    });\n\n    if (!loginResponse.ok) {\n      let err = await loginResponse.json().catch(() => ({}));\n      throw new Error(err.error || \"Invalid username/password.\");\n    }\n\n    let { access, refresh } = await loginResponse.json();\n\n    // -- (OPTIONAL) Store tokens in localStorage for compatibility\n    localStorage.setItem(\"token\", access);\n    localStorage.setItem(\"refresh\", refresh);\n\n    // --- STEP 2: Fetch License Info ---\n    const licensesUrl = `${getApiBaseUrl()}/licences/`;\n\n    let licenseResponse = await this.api.fetch(licensesUrl, {\n      method: \"GET\",\n      headers: {\n        Authorization: `Bearer ${access}`,\n        \"Content-Type\": \"application/json\",\n      },\n    });\n\n    let licence = null;\n    let isValid = false;\n    let limit = 0;\n    let modules = {};\n\n    if (licenseResponse.ok) {\n      let data = await licenseResponse.json();\n      if (data.data?.[0]) {\n        licence = data.data[0];\n        isValid = licence.attributes[\"is-valid\"];\n        limit = licence.attributes[\"within-limit\"];\n        modules = licence.attributes[\"modules\"];\n      }\n    }\n\n    // --- STEP 3: Fetch User Profile ---\n    const profileUrl = `${getApiBaseUrl()}/api/auth/user/profile/`;\n\n    let userProfileResponse = await this.api.fetch(profileUrl, {\n      method: \"GET\",\n      headers: {\n        Authorization: `Bearer ${access}`,\n        \"Content-Type\": \"application/json\",\n      },\n    });\n\n    if (!userProfileResponse.ok) {\n        let errorText = await userProfileResponse.text();\n        throw new Error(errorText);\n    }\n    let userProfileData = await userProfileResponse.json();\n    this.userProfileService.loadFromServer(userProfileData);\n\n    // Return the authentication data along with the license data\n    let sessionData = {\n        auth: true,\n        user:options.username,\n        isValid:isValid, \n        limit:limit, \n        modules:modules,\n        access, // Access token\n        licence, // Add the license data to the return object\n        provider:this.provider,\n        userProfile: userProfileData\n    };\n    return sessionData;\n  }\n}\n","// app/authenticators/custom.js\nimport Ember from 'ember';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport Base from 'ember-simple-auth/authenticators/base';\nimport { inject as service } from '@ember/service';\nimport base64 from 'base-64';\nimport { getApiBaseUrl } from '../utils/api-config';\n\nconst {\n    $,\n    RSVP,\n  } = Ember;\n  \nexport default class CustomAuthenticator extends Base {\n    @service session;\n\n    restore(data) {\n        //console.log('restore');\n        if(data) {\n            let promise = new Ember.RSVP.Promise(function(resolve, reject) {\n                if (data['auth'] == true) {\n                    resolve(data);\n                } else {\n                    reject(new Error(\"session no longer exists\"));\n                }\n            });\n            return promise;\n        }\n    }\n    \n    async authenticate(auth) {\n        //console.log('authenticate');\n\n        return new RSVP.Promise((resolve, reject) => {\n            return $.ajax('http://localhost:4200/api/oauth-providers/', {\n            type: 'POST',\n            data: {\n                username: auth[0], //TESTING ONLY\n                password: auth[1] //TESTING ONLY\n            },\n            success: resolve,\n            error: reject\n            });\n        }).then(async (data)=>{\n            // console.log(\"data response is::::\");\n            // console.log(data['access']);\n            localStorage.setItem('token', data['access']);\n\n            let url = getApiBaseUrl();\n            // let url = \"http://\" + document.location.host.split(':')[0] + \":8000\";\n            url += url.endsWith(\"/\") ? \"\" : \"/\";\n            url += \"licences/\";\n            let login = base64.encode(auth[0]+\":\"+auth[1]);\n    \n            let response = await this.api.fetch(url, {\n                method: 'GET',\n                headers: {\n                    'Content-Type': 'application/json',\n                    Authorization: 'Bearer ' + localStorage.token  \n                },\n            });\n            if (response.ok) {\n                let expirationTime = ( 60 * 10 );\n                this.set('session.store.cookieExpirationTime', expirationTime);\n                let licence;\n                let isValid = false;\n                let limit = 0;\n                let modules = {};\n                try {\n                    licence = await response.json();\n                    licence = licence.data[0];\n                    isValid = licence.attributes['is-valid'];\n                    limit = licence.attributes['within-limit'];\n                    modules = licence.attributes['modules'];\n                } catch (ex) {\n                }\n                return { auth: true, user: auth[0], isValid:isValid, limit:limit, modules:modules, login:login };\n            } else {\n                let error = await response.text();\n                //console.log('error');\n                try {\n                    let er = JSON.parse(error);\n                    if (er.hasOwnProperty('detail')) {\n                        error = er.detail;\n                    }\n                } catch(error) {\n                    //console.log(error);\n                    //error = errorText;\n                }\n                throw new Error(error);\n            }\n        });\n\n\n    }\n}","// app/authenticators/oauth-jwt.js\nimport BaseAuthenticator from \"ember-simple-auth/authenticators/base\";\nimport { inject as service } from \"@ember/service\";\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default class OAuthJwtAuthenticator extends BaseAuthenticator {\n  @service torii;\n  @service session;\n  @service oauthConfig; // <-- NEW dynamic provider config service\n  @service api;\n  restore(data) {\n    return data?.access ? Promise.resolve(data) : Promise.reject();\n  }\n\n  async authenticate(options) {\n    const provider = options.provider;\n\n    // Load the Microsoft/Google OAuth provider config from backend\n    let providerConfig = await this.oauthConfig.loadProviderConfig(provider);\n\n    // Inject runtime config into Torii BEFORE opening popup\n    ENV.torii.providers[provider] = {\n      clientId: providerConfig.client_id,\n      tenantId: providerConfig.tenant_id,\n      redirectUri: providerConfig.redirect_uri,\n      scope: \"openid profile email User.Read\",\n      responseType: \"code\"\n    };\n\n    // Open OAuth popup (now using dynamic config)\n    let authResponse = await this.torii.open(provider);\n\n    // Torii returns:\n    // {\n    //   authorizationCode: \"...\",\n    //   redirectUri: \"...\"\n    // }\n\n    //Exchange auth code → JWT tokens\n    const loginUrl = `${getApiBaseUrl()}/api/oauth-providers/token_exchange/`;\n\n    let loginResponse = await this.api.fetch(loginUrl, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify({\n        code: authResponse.authorizationCode,\n        provider\n      }),\n    });\n\n    if (!loginResponse.ok) {\n      let err = await loginResponse.json().catch(() => ({}));\n      throw new Error(err.error || \"OAuth login failed.\");\n    }\n\n    let { access, refresh } = await loginResponse.json();\n\n    localStorage.setItem(\"token\", access);\n    localStorage.setItem(\"refresh\", refresh);\n\n    //GET licence\n    const licensesUrl = `${getApiBaseUrl()}/licences/`;\n\n    let licenseResponse = await this.api.fetch(licensesUrl, {\n      method: \"GET\",\n      headers: {\n        Authorization: `Bearer ${access}`,\n        \"Content-Type\": \"application/json\"\n      }\n    });\n\n    let licence = null;\n    let isValid = false;\n    let limit = 0;\n    let modules = {};\n\n    if (licenseResponse.ok) {\n      let data = await licenseResponse.json();\n      if (data.data?.[0]) {\n        licence = data.data[0];\n        isValid = licence.attributes[\"is-valid\"];\n        limit = licence.attributes[\"within-limit\"];\n        modules = licence.attributes[\"modules\"];\n      }\n    }\n\n    // GET user profile\n    const profileUrl = `${getApiBaseUrl()}/api/auth/user/profile/`;\n\n    let profileResponse = await this.api.fetch(profileUrl, {\n      method: \"GET\",\n      headers: {\n        Authorization: `Bearer ${access}`,\n        \"Content-Type\": \"application/json\"\n      }\n    });\n\n    if (!profileResponse.ok) {\n      throw new Error(\"Failed to load user profile.\");\n    }\n\n    let userProfileData = await profileResponse.json();\n\n    localStorage.setItem(\"userProfile\", JSON.stringify(userProfileData));\n    // final session payload\n    let sessionData = {\n      auth: true,\n      access,\n      refresh,\n      provider,\n      licence,\n      isValid,\n      limit,\n      modules,\n      userProfile: userProfileData\n    };\n\n    return sessionData;\n  }\n\n\n  async invalidate(data) {\n      try {\n          // If there is no access token, just clear storage and exit\n          if (!data?.access) {\n          localStorage.removeItem('token');\n          localStorage.removeItem('refresh');\n          return;\n          }\n\n          const logoutUrl = `${getApiBaseUrl()}/api/logout`;\n\n          const refreshToken = localStorage.getItem('refresh')?.replace(/^\"|\"$/g, '');\n\n          await this.api.fetch(logoutUrl, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              'Authorization': `Bearer ${data.access}`,\n          },\n          body: JSON.stringify({\n              data: {\n              type: 'logout-request',\n              attributes: {\n                  code: refreshToken,\n              },\n              },\n          }),\n          });\n      } catch (error) {\n          // Logout endpoint failure should NOT block local logout\n          console.warn('Logout request failed, continuing local logout', error);\n      } finally {\n          // Always clear local state\n          localStorage.removeItem('token');\n          localStorage.removeItem('refresh');\n      }\n  }\n  // async invalidate(data) {\n  //   if (!data?.access) {\n  //   return;\n  //   }\n  //   const logoutUrl = `${getApiBaseUrl()}/api/logout`;\n\n  //   try {\n  //     await this.api.fetch(logoutUrl, {\n  //       method: \"POST\",\n  //       headers: {\n  //         \"Content-Type\": \"application/json\",\n  //         Authorization: `Bearer ${data.access}`,\n  //       },\n  //       body: JSON.stringify({\n  //         data: {\n  //           type: \"logout\",\n  //           attributes: { code: data.refresh },\n  //         },\n  //       }),\n  //     });\n  //   } catch (e) {\n  //     console.warn(\"OAuth logout failed\");\n  //   }\n\n  //   // Close the OAuth popup session\n  //   this.torii.close(data.provider);\n\n  //   localStorage.removeItem(\"token\");\n  //   localStorage.removeItem(\"refresh\");\n\n  //   return Promise.resolve();\n  // }\n}\n","import OAuth2Bearer from 'ember-simple-auth/authorizers/oauth2-bearer';\n\nexport default OAuth2Bearer.extend();\n","define(\"geotechnical-data-platform-new/component-managers/glimmer\", [\"exports\", \"@glimmer/component/-private/ember-component-manager\"], function (_exports, _emberComponentManager) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberComponentManager.default;\n    }\n  });\n});\n","import Component from '@ember/component';\n\n// This component is not needed anymore. However we can only safely remove it once we have an Embroider release that\n// has the special dependency rule for this addon removed:\n// https://github.com/embroider-build/embroider/blob/4fad67f16f811e7f93199a1ee92dba8254c42978/packages/compat/src/addon-dependency-rules/ember-element-helper.ts\nexport default Component.extend();\n","import Component from '@ember/component';\n\n// This component is not needed anymore. However we can only safely remove it once we have an Embroider release that\n// has the special dependency rule for this addon removed:\n// https://github.com/embroider-build/embroider/blob/4fad67f16f811e7f93199a1ee92dba8254c42978/packages/compat/src/addon-dependency-rules/ember-element-helper.ts\nexport default Component.extend();\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        // console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            // console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                // console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        // console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            // console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            // console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let timeReference = this.get('timeReference');\n            \n            if ( unallowedValues.includes(timeReference) ){\n                // console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                // console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                // console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                newAlertObject.creator = this.username;\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                               // Loop through the selected values\n                               // console.log(_this.activeChannels)\n                               _this.activeChannels.forEach(value => {\n                                   // console.log(error)\n                                   newAnchorObject = {};\n                                   newAnchorObject.alert = results;\n                                   newAnchorObject.selectedCh = value;\n\n                                   newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                   newAnchor.save().catch(function(reason) {\n                                       if (reason.errors[0].status == 403) {\n                                           _this.setError('isVisibleError',true);\n                                           _this.setError('authError',true);\n                                       }\n                                   });\n                               });\n                               // for(const elem of selector.selectedOptions) {\n                               //     // console.log(error)\n                               //     newAnchorObject = {};\n                               //     newAnchorObject.alert = results;\n                               //     newAnchorObject.selectedCh = elem.value;\n\n                               //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                               //     newAnchor.save();\n                               // }\n       \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                // console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            // console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\n\nfunction resetNewInstrumentObject(_this) {\n    _this.set('newInstrumentObject', {instrumentStiffness:0, elasticLimitPct:0.8, ultimateLimitPct:3, elasticLimitFce:240, ultimateLimitFce:260});\n    //console.log('reset');\n    _this.set('instrumentStiffness', );\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    _this.set('vendor', null);\n    _this.set('strokeLength', null);\n    _this.set('vendor', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreateAdictInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n    @service store;\n    @tracked formDisabled = false; \n    @tracked fieldVisible = false; \n    \n    selectedVendor = null;\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        vendorTypeChanged(object){\n            let badValues = ['null', 'undefined', ''];\n            if(badValues.includes(object)) {\n                this.formDisabled = true;\n            } else {\n                this.formDisabled = false;\n                let vendor = this.vendors.find(vendor => vendor.id === object);\n                \n                if (vendor) {\n                    this.selectedVendor = vendor;\n                    this.set('newInstrumentObject.vendor', vendor);\n                    if(vendor.vendorType == \"MDT_CABLE\"){\n                        this.fieldVisible = true;\n                    } else {\n                        this.fieldVisible = false;\n                    }\n                    // console.log(`Vendor found: ${JSON.stringify(vendor)}`);\n                  } else {\n                    this.selectedVendor = null;\n                    this.set('newInstrumentObject.vendor', null);                    \n                }\n            }            \n            \n        },\n\n        strokeLengthChanged(strokeLength) {\n            this.set('newInstrumentObject.strokeLength', strokeLength);\n        },\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');            \n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                    newInstrument.save().then(function(results){\n                        if(results.id != null) {\n                            let anchorCount = parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            for(var ctr = 0; ctr <= anchorCount; ctr++) {\n                                store.createRecord('anchor', {number: ctr, distance: ctr, instrument: results}).save();\n                            }\n                        }\n                        // console.log(dup);\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n    async getInstrument() {\n        const store = this.get('store');\n        const instrumentId = this.get('instrumentId');\n\n        return store.findRecord('instrument', instrumentId);\n    },\n    anchorDistances: Ember.computed('instrument', async function() {\n        const inst = await this.getInstrument();\n        \n        const anchors = inst.anchors;\n        const anchorNumber = anchors.length;\n        const isMDT = this.get(\"isAdictMDT\");\n    \n        const dist = anchors.map((anchor, index) => {\n            const counter = index + 1;\n            const label = isMDT && counter === anchorNumber ? \"µA\" : anchor.get('distance');\n            return { counter, label };\n        });\n\n        // console.log(\"dist\");    \n        // console.log(dist);    \n        return dist;\n    }),\n    getAnchorLabel:Ember.computed('instrumentAnchors', function(){\n        let anchors = this.get('instrumentAnchors');\n        return ` (mm)`\n    }),\n    isAdictMDT: Ember.computed('instrument', async function() {\n        const inst = await this.getInstrument();\n        // console.log(inst.id);\n        const vendor = inst.vendor;\n        let isMDT = false;\n        try{\n            isMDT = vendor.vendorType.includes('MDT');\n        }\n        catch (e) {\n            isMDT = false;\n            // console.log(e);\n        }\n        return isMDT;\n    }),\n\n\n    instrumentAnchorsLength: Ember.computed('instrumentAnchors', function() {\n        if(this.isMDT) {\n            return this.get('instrumentAnchors').length - 1;\n        } else {\n            return this.get('instrumentAnchors').length;\n        }\n    }),  \n\n    instrumentAnchorsSorted: Ember.computed.sort('instrumentAnchors', 'instrumentAnchorsSorting'),\n\n    instrumentAnchorsForAdictMDT: Ember.computed('instrumentAnchors', function() {\n        let instrumentAnchors = this.instrumentAnchorsSorted;\n        \n        // Check if there are anchors to remove\n        if (instrumentAnchors.length > 0) {\n            instrumentAnchors.pop(); // Remove the last anchor\n        }\n        return instrumentAnchors;\n    }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    convertMMToAdictBits: function(arrayMMs){\n        let bitsArray = [];\n        arrayMMs.forEach((mmValue)=>{\n            bitsArray.push((mmValue / this.get(\"instrument\").get('strokeLength') ) * 65536)\n        });\n        return bitsArray;\n    },\n    actions: {\n         saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n            let mmVals = this.get('newDisplacementValueObjectValues');\n            let bitsVals = this.convertMMToAdictBits(mmVals);\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(bitsVals);\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\nimport $ from 'jquery';\n\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\nexport default Ember.Component.extend({\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    }, \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    referenceAnchors:null,\n    loading:true,\n\n    editing: 0,\n\n    onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { tracked } from '@glimmer/tracking';\n\nexport default class EditInstrument extends Component.extend({\n    instrumentChannels: Ember.computed('instrument.channelsNum', 'instrument.vendor', function() {\n        let channelsNum = this.get('instrument.channelsNum');\n        let vendor = this.get('instrument.vendor');\n        // console.log(`Vendor: ${vendor}`);\n        if (vendor) {\n            if ( (vendor.vendorType === 'MDT_CABLE') || (vendor.vendorType === 'MDT_MPBX') ) {\n                // console.log(`Channels num: ${channelsNum -1}`);\n                return channelsNum -1;\n            } else {\n                return channelsNum;\n            }\n        }\n    })\n\n}) {\n    @service router;\n    @service store;\n      \n    //@service session;\n    //@service currentUser;\n    @tracked formDisabled = false; \n    @tracked fieldVisible = false; \n\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    strokeLengthArray = {type: {modelName: \"instrument\"},options: [\n        {id: 31.75, value: \"31.75 mm\"}, \n        {id: 63.5, value: \"63.5 mm\"}, \n        {id: 127, value: \"127 mm\"}, \n        {id: 190.5, value: \"190.5 mm\"}, \n        {id: 254, value: \"254 mm\"}, \n        {id: 508, value: \"508 mm\"}]};\n    \n    // @action\n    // getVendorByType() {\n    //     this.store.queryRecord('vendor', { vendorType: 'GENERIC' }).then(vendor => {\n    //         this.vendor = vendor;\n    //     });\n    // }\n    \n    didInsertElement() {\n        // Call the parent's implementation of the hook first\n        super.didInsertElement();\n        let instrument = this.get('instrument');\n        \n        if (instrument.vendor != null) {\n            this.fieldVisible = instrument.vendor.vendorType == 'MDT_CABLE' ? true : false;\n        } else {\n                        \n            // If vendor is null, query the store for the default vendor\n            this.store.queryRecord('vendor', { vendorType: 'GENERIC' }).then(vendor => {\n                instrument.set('vendor', vendor);\n                instrument.save();\n            }).catch((error) => {\n                console.error(\"Error fetching default vendor:\", error);\n            });\n        }\n\n        try {\n            let elasticLimitFce = instrument.get('elasticLimitFce');\n            let elasticLimitPct = instrument.get('elasticLimitPct');\n            let stiffness = elasticLimitFce / elasticLimitPct;\n\n            // Check if the stiffness is a valid number (not NaN or Infinity)\n            if (!isNaN(stiffness) && isFinite(stiffness)) {\n                // Round the stiffness to three decimal places (optional)\n                stiffness = Math.round(stiffness * 1000) / 1000;\n\n                // Set the calculated stiffness as the default value for instrumentStiffness\n                instrument.set('instrumentStiffness', stiffness);\n            } else {\n                instrument.set('instrumentStiffness', 0);\n            }\n        } catch (ex) {\n            instrument.set('instrumentStiffness', 0);\n        }\n    }\n        \n    actions = {\n\n        updatePage(){\n            let instrument = this.get('instrument');\n            //let instrument = this.get('tableRow');\n            try {\n                let stiffness = instrument.get('elasticLimitFce') / instrument.get('elasticLimitPct');\n                // stiffness = Math.round(stiffness * 1000) / 1000;\n                instrument.set('instrumentStiffness', stiffness);\n            } catch (ex) {\n                instrument.set('instrumentStiffness', 0);\n            }\n            instrument.save();\n        },\n\n        strokeLengthChanged(object){\n            console.log(`Stroke length changed: ${object}`);\n        },\n    \n        vendorTypeChanged(object){\n            let badValues = ['null', 'undefined', ''];\n            let instrument = this.get('instrument');\n            \n            // console.log(`Vendor type changed: ${object}`);\n            if(badValues.includes(object)) {\n                this.fieldVisible = false;\n                this.formDisabled = true;\n            } else {\n                this.form = false;\n                let vendor = this.vendors.find(vendor => vendor.id === object);\n                if (vendor) {\n                    this.fieldsEnabled = true;\n                    instrument.set('vendor', vendor);\n                    // console.log(`Vendor found: ${JSON.stringify(vendor)}`);\n                    \n                    if(vendor.vendorType === 'MDT_CABLE'){\n                        this.fieldVisible = true;\n                        try{\n                            instrument.elasticLimitPct = 0.8;\n                            instrument.ultimateLimitPct = 3;\n                            instrument.elasticLimitFce = 240;\n                            instrument.ultimateLimitFce = 260;\n                            this.set('elasticLimitPct',instrument.elasticLimitPct)\n                            let stiffness = instrument.get('elasticLimitFce') / instrument.get('elasticLimitPct');\n                            // stiffness = Math.round(stiffness * 1000) / 1000;\n                            instrument.instrumentStiffness = stiffness;\n                            instrument.save();\n                        }\n                        catch(ex){\n                            console.log(ex);\n                        }\n                    }else {\n                        this.fieldVisible = false;\n                        this.fieldsEnabled = false;\n                    }\n                } \n            }                 \n        },\n\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            // console.log(\"startDateObj: \" + startDateObj + \" endDateObj: \" + formattedEndDateObj);\n            // console.log(\"base unit for this instrument is: \" +  baseUnit)\n            this.get('router').transitionTo('raw-data', id, { queryParams: { \"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            // console.log(\"startDateObj: \" + startDateObj + \" endDateObj: \" + formattedEndDateObj);\n            // console.log(\"base unit for this instrument is: \" +  baseUnit)\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values', { queryParams: { \"advancedYAxisUnit\": baseUnit}});\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    isMDT: Ember.computed('instrument', function() {\n                    \n        let instrumentVendor = this.instrument.vendor;            \n        if(instrumentVendor && instrumentVendor.vendorType.includes('MDT')) {\n            return true;\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            let chartData = item.getProperties(linesKyes);\n            \n            if(this.isMDT){\n                let temporaryChartData = chartData[linesKyes]\n                temporaryChartData.pop();\n                chartData[linesKyes] = temporaryChartData;\n\n            } else {\n                var modelName = this.get('chartDataModelName');\n                if (modelName === 'strain-values') { \n                    chartData.values.unshift(chartData.values[0]);\n                }\n            }\n            // console.log(\"chartData:::::::::::: \" + JSON.stringify(chartData));\n            \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n\n            let temporaryValue = item.getProperties(linesKyes);            \n            \n            if(this.isMDT){\n                let temporaryChartData = temporaryValue[linesKyes]\n                temporaryChartData.pop();\n                temporaryValue[linesKyes] = temporaryChartData;\n            }\n            console.log(\"FullRangeDataPoints::::::::::::: \" + JSON.stringify(temporaryValue));\n            return temporaryValue;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length;\n        let anchors = this.get('instrument').get('anchors');\n\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n        if (anchorDistances.length > dataValuesCount && modelName === 'strain-values') {\n            anchorDistances.splice(0, 1);\n        }\n\n        if(this.isMDT){\n            anchorDistances.pop(); // Remove the last element if isMDT is true\n        }\n        return anchorDistances;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        const anchorDistances = Ember.copy(this.get('anchorDistances'));\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length;\n        let midDistances = [];\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n        // console.log(\"anchorDistances:::::::::::: \" + JSON.stringify(anchorDistances));\n        anchorDistances.unshift(0);\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        // console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            return anchorMidDistances.map(function(anchorDistance){\n                return {\n                    key: anchorDistance,\n                    type: 'referencePoints',\n                    values: [\n                        anchorDistance\n                    ]\n                };\n            });\n                \n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values') {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n        var anchorDist = anchorDistances;\n        \n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            anchorDist = this.get('anchorMidDistances'); \n        }\n\n        zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n            return {\n                key: chartLineIndex,\n                // mean: 3,\n                type: 'lines',\n                timestamp: zoomTimePoints[chartLineIndex],\n                values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        anchorDist[dataPointIndex],\n                        dataPoint\n                    ];\n                })\n            };\n        });\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        units = \"mm\";\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                title = axisName + \" (\" + units + \")\";\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(false)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(false)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                     .tickFormat(function(d) {\n                        // console.log(\"xaxis: D:::::::::::::::::::::::::::::::::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    });\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .ticks(5)\n                    .tickFormat(function(d) {\n                        // console.log(\"D:::::::::::::::::::::::::::::::::::::::: \" + d);\n                        //     if (fullRangeChartLinesData.length > 0) {\n                    //         let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                    //         return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                    //     } else {\n                    //         return [0, 0];\n                    //     }\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    });\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n                // console.log(\"zoomChartLinesData:::::::::::: \" + JSON.stringify(zoomChartLinesData));\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n/*                 zoomChart.xAxis.dispatch.on('xAxisMouseMove', function (mouseMove) {\n                    console.log('test');\n                });\n */\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0], true)(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    title: null,\n    yAxisUnit:null,\n    init() {\n        this._super(...arguments);\n        const queryParams = new URLSearchParams(window.location.search);\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        if(yAxisUnitParam){\n            this.set('yAxisUnit', yAxisUnitParam);\n        }\n    },\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n    isMDT: Ember.computed('instrument', function() {\n        let instrument = this.instrument;\n        let vendor = this.instrument.get('vendor');\n        let isMDT = false;\n        if(vendor) {\n            isMDT = vendor.vendorType.includes('MDT');\n        }\n        return isMDT;\n    }),\n    anchorCount: Ember.computed('instrument', function() {\n        let instrument = this.instrument;\n        if(this.isMDT) {\n            return (anchorCount -1);\n        }           \n        return anchorCount;\n    }),\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    // For zoomTempPoints\n    zoomTempPoints: Ember.computed('zoomTempData', function() {\n        let discreteData = this.get('zoomTempData').map(item => {\n            let linesKeys = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKeys);\n\n            // Convert the chartData to discrete variables\n            var discreteData = {};\n            for (let key in chartData) {\n                discreteData[key] = chartData[key];\n            }\n            return discreteData;\n        });\n        // console.log(\":::::::::::::::::::::::: Discrete TEMP Points: \" + JSON.stringify(discreteData));\n        // console.log(\":::::::::::::::::::::::: Discrete TEMP Points SIZE: \" + discreteData.length);\n        if (this.get(\"zoomDataPoints\").length == 0) {\n            return [];\n        } else {\n            return discreteData;\n        }\n            \n    }),\n\n    // For zoomDataPoints\n    zoomDataPoints: Ember.computed('zoomChartData', function() {\n        let discreteData = this.get('zoomChartData');\n\n        discreteData = discreteData.map(item => {\n            let linesKeys = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKeys);\n            \n            var modelName = this.get('chartDataModelName');\n            if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n                chartData.values.push(0);\n            }\n\n            // Convert the chartData to discrete variables\n            var discreteData = {};\n            for (let key in chartData) {\n                // Get the value array from chartData\n                let valueArray = chartData[key];\n                // Check if valueArray is defined and is an array\n                if (Array.isArray(valueArray) ) {\n                   valueArray.pop(); // Remove the last element - the last elememt is not actually a displacement value in MDT adict readings. it's a voltagae.\n                }\n                // Store the modified object in discreteData\n                // valueArray = this.convertDataAndReverse(valueArray);\n                discreteData[key] = valueArray;\n            }\n\n            return discreteData;\n        });\n        \n        // console.log(JSON.stringify(discreteData));\n        \n        if(discreteData.length == 0) {\n            return [];\n        } else {\n            return discreteData;\n        }\n    }),\n    convertDataAndReverse: function(valueArray) {\n        let convertedData = [];\n        let instrument = this.instrument;\n        let multiplier = instrument.get('strokeLength');\n        let DENOMINATOR = 2**16;\n        valueArray.forEach(function(item) {\n            item = ((item / DENOMINATOR) * multiplier).toFixed(2);\n            convertedData.push(parseFloat(item)); // using parseFloat to convert the string back to a number\n        });\n        // console.log(\":::::::::::::::::::::::: Discrete Points valueArray: \" + JSON.stringify(valueArray))\n        // console.log(\":::::::::::::::::::::::: Discrete Points convertedData: \" + JSON.stringify(convertedData))\n        return convertedData.reverse();\n    },\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor) {\n            return anchor.get('distance');\n          });\n          \n        if (this.isMDT) {\n            anchorDistances.pop(); // Remove the last element if isMDT is true\n        }\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            var midPoints = [];\n            for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        // console.log(\"zoomChartLinesData********************************************\");   \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n        if(zoomDataPoints.length != 0) {\n            // an exception for temperature sensor in dExto\n            if (_this.get('chartDataModelName') !== 'temperature-values') {\n                zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                    return {\n                        key: chartLineName,\n                        // mean: 3,\n                        type: 'lines',\n                        yAxis: 1,\n                        values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                            return [\n                                moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                                dataPoint.values[chartLineIndex]\n                            ];\n                        })\n                    };\n                });\n            } else {\n                zoomChartLinesData = [{\n                    key: 'T. ℃',\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[0]\n                        ];\n                    })\n                }];\n            }\n        \n            //console.log(zoomDataPoints.length);\n            //console.log(zoomTempPoints.length);\n\n            if (_this.get('chartDataModelName') !== 'temperature-values') {\n                if (_this.get('chartDataModelName') !== 'displacement-values'){\n                    while(zoomTempPoints.length > zoomDataPoints.length) {\n                        zoomTempPoints.pop();\n                        zoomTempPoints.shift();\n                    }\n                }\n                var temp = {key: 'T',\n                    type: 'lines',\n                    yAxis: 2,\n                    values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[0],\n                        ];\n                    })\n                };\n                //console.log(temp);\n                zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n                //console.log(zoomChartLinesData);\n            }\n\n            // mix data with events\n            if (seismicEventsChartDistXData) {\n                zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n            }\n            if (blastEventsChartDistXData) {\n                zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n            }\n            // if (vibeEventsChartDistXData) {\n            //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n            // }\n            return zoomChartLinesData;\n        }    \n        return [];\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        //console.log(\"********************************************\");\n        let chartDataModelName = this.get('chartDataModelName');\n        this.title = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: this.title});\n        return promise;\n    }),\n\n    didInsertElement: function() {\n\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            // TODO::: fix me\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = yAxisLegend\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get(this.title);\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = '';//chartData.get('units');\n                title = yAxisLegend.get('title');\n                let vendorType = _this.instrument.vendor.vendorType;\n                // console.log(\"Title::::::::::::::::: \" + title);\n                switch(title) {\n                    case 'displacement':\n                        if (vendorType === 'MDT_CABLE') {\n                            axisName = \"Displacement\";\n                        } else if (vendorType === 'MDT_MPBX') {\n                            axisName = \"Displacement \";\n                        } else {\n                            axisName = \"Displacement\";\n                        }\n                        units += _this.get('yAxisUnit') ? _this.get('yAxisUnit') :  \"mm\";\n                        break;\n                    case 'velocity':\n                        if (vendorType === 'MDT_CABLE') {\n                            axisName = \"mm\";\n                        } else if (vendorType === 'MDT_MPBX') {\n                            axisName = \"mm\";\n                        } else {\n                            axisName = \"mm\";\n                        }\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        if (vendorType === 'MDT_CABLE') {\n                            axisName = \"mm\";\n                        } else if (vendorType === 'MDT_MPBX') {\n                            axisName = \"mm\";\n                        } else {\n                            axisName = \"mm\";\n                        }\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = 'Strain'\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = 'Strain Rate'\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = 'Load'\n                        units = \"kN\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    title = axisName + \" (\" + units + \")\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                // zoomChart.xAxis\n                //     .tickPadding(40)\n                //     .showMaxMin(false)\n                //     .tickFormat(function(d) {\n                //         let positionOne = null;\n                //         let positionTwo = null;\n\n                //         try{\n                //             let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                //             positionOne = zoomChartLinesData[0].values[0][0];\n                //             positionTwo = zoomChartLinesData[0].values[zoomChartXDomainLength-1][0];    \n                //         } catch (ex) {\n                //             console.log(ex);\n                //             return [0, 0];\n                //         }\n                //         console.log(\"positionOne: \" + positionOne);\n                //         console.log(\"positionTwo: \" + positionTwo);\n                //         return nv.utils.getDateAutoscaleFormat (positionOne, positionTwo)(new Date(d));\n                //     })\n                // ;\n                // Determine the start and end dates\n                // Generate tick values\n                let tickValues = [];\n                if(zoomChartLinesData.length != 0){\n                    let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    let startDate = new Date(zoomChartLinesData[0].values[0][0]);\n                    let endDate = new Date(zoomChartLinesData[0].values[zoomChartXDomainLength-1][0]);\n    \n                    // Determine the interval\n                    let interval = (endDate - startDate) / 7;\n    \n                    for (let i = 0; i < 8; i++) {\n                        tickValues.push(new Date(startDate.getTime() + interval * i));\n                    }\n                }\n\n                // Apply the tick values\n                zoomChart.xAxis\n                .tickPadding(40)\n                .showMaxMin(false)\n                .tickValues(tickValues)\n                .tickFormat(function(d) {\n                    return d3.time.format('%x')(new Date(d)); // Format as you like\n                });\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n                if(zoomChartLinesData !== null) {\n                    zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n                }\n                \n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){ // || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    isMDT: Ember.computed('instrument', function() {\n        const vendor = this.get(\"instrument.vendor\");\n        return vendor.vendorType.includes('MDT');\n    }),\n    \n    anchorDistances: Ember.computed('instrument', function() {\n        const anchors = this.get(\"instrument.anchors\");\n        const anchorNumber = anchors.length;\n        const isMDT = this.get(\"isMDT\");\n    \n        const dist = anchors.map((anchor, index) => {\n            const counter = index + 1;\n            const label = isMDT && counter === anchorNumber ? \"µA\" : anchor.get('distance');\n            return { counter, label };\n        });\n    \n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","\nimport Ember from 'ember';\nimport { inject as service } from \"@ember/service\";\n\nexport default Ember.Component.extend({\n    approvedInstrForYAxisUnit:['Adict', 'dExto', 'dCable','dRebar','dMPBX','dConv','d-micro','dRebarv2','BluVibe'],\n    router: service(),\n    page:1,\n    page_size:20,\n    displayFrequencyEventsDropDown:false,\n    advancedSearchLoading:false,\n    startDate: undefined,\n    chartType: undefined,\n    endDate:undefined,\n         xMin:undefined,\n         xMax:undefined,\n     yLeftMin:undefined,\n     yLeftMax:undefined,\n    yRightMin:undefined,\n    yRightMax:undefined,\n    yAxisUnit:undefined,\n    selectedFrequencyEventsDropdownDate:undefined,\n    visibleAdvancedFilter:true,\n    isFrequencyGraph:false,\n    init() {\n        this._super(...arguments);\n        this.setFieldsFromURL();\n    },\n    isInstrumentApproved: Ember.computed('instrumentType', function() {\n        return this.approvedInstrForYAxisUnit.includes(this.instrumentType);\n    }),\n    getFrequencyEventsDropDownData:Ember.computed(\"frequencyEventsDropDownDateData\",function(){\n        let data = []\n        if(this.get(\"displayFrequencyEventsDropDown\") == true && this.get(\"frequencyEventsDropDownDateData\") != null){\n            this.get(\"frequencyEventsDropDownDateData\") .forEach((timestampString, index)=>{\n                if(!data.includes(timestampString)){\n                    data.push(timestampString);\n                }\n            });\n        }\n        return data;\n    }),\n    setFieldsFromURL() {\n        //Store initial values from the URL and pre load it into corresponding components\n\n        const queryParams = new URLSearchParams(window.location.search);\n        const startDateParam = queryParams.get('advancedStartDate');\n        const endDateParam = queryParams.get('advancedEndDate');\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        const xMinParam = queryParams.get('advancedXMin');\n        const xMaxParam = queryParams.get('advancedXMax');\n        const yLeftMinParam = queryParams.get('advancedYLeftMin');\n        const yLeftMaxParam = queryParams.get('advancedYLeftMax');\n        const yRightMinParam = queryParams.get('advancedYRightMin');\n        const yRightMaxParam = queryParams.get('advancedYRightMax');\n        const selectedFreqEventDateParam = queryParams.get('selectedFreqEventDate');\n    \n        if (selectedFreqEventDateParam) {\n            this.set('selectedFrequencyEventsDropdownDate', selectedFreqEventDateParam.trim());\n        } else {\n            this.set('selectedFrequencyEventsDropdownDate', undefined);\n        }\n    \n        if (startDateParam) {\n            this.set('startDate', startDateParam);//this.formatDateForDatetimeLocal(decodedStartDate));\n        } else {\n            this.set('startDate', undefined);\n        }\n    \n        if (endDateParam) {\n            this.set('endDate', endDateParam);//this.formatDateForDatetimeLocal(decodedEndDate));\n        } else {\n            this.set('endDate', undefined);\n        }\n    \n        if (yAxisUnitParam) {\n            let unitSymbolTranslator = yAxisUnitParam == \"m\" ? \"meterValue\" : yAxisUnitParam == \"mm\" ? \"millimeterValue\" : yAxisUnitParam == \"ft\" ? \"footValue\" : \"inchValue\"\n            // console.log(\"translated unit symbol is \" + unitSymbolTranslator);\n            // this.set(unitSymbolTranslator , true);\n            this.set(\"yAxisUnit\", yAxisUnitParam);\n        } else {\n            this.set(\"yAxisUnit\", undefined);\n            // this.set(\"meterValue\" , false);\n            // this.set(\"millimeterValue\", false);\n            // this.set(\"footValue\", false);\n            // this.set(\"inchValue\", false); \n        }\n    \n        if (xMinParam) {\n            this.set('xMin', xMinParam);\n        } else {\n            this.set('xMin', undefined);\n        }\n    \n        if (xMaxParam) {\n            this.set('xMax', xMaxParam);\n        } else {\n            this.set('xMax', undefined);\n        }\n    \n        if (yLeftMinParam) {\n            this.set('yLeftMin', yLeftMinParam);\n        } else {\n            this.set('yLeftMin', undefined);\n        }\n    \n        if (yLeftMaxParam) {\n            this.set('yLeftMax', yLeftMaxParam);\n        } else {\n            this.set('yLeftMax', undefined);\n        }\n    \n        if (yRightMinParam) {\n            this.set('yRightMin', yRightMinParam);\n        } else {\n            this.set('yRightMin', undefined);\n        }\n    \n        if (yRightMaxParam) {\n            this.set('yRightMax', yRightMaxParam);\n        } else {\n            this.set('yRightMax', undefined);\n        }\n\n    },\n    formatDateForDatetimeLocal(dateStr) {\n        // Assuming the format from the URL is 'YYYY-MM-DDTHH:mm' or similar\n        const date = new Date(dateStr);\n        return date.toISOString().slice(0, 16); // Converts to 'YYYY-MM-DDTHH:mm' format\n    },\n    dispatchRequest:function(mode){\n        this.set(\"advancedSearchLoading\", true);\n        let id = this.get(\"instrumentId\");\n        let page = this.get(\"page\");\n        let page_size = this.get(\"page_size\");\n        let chart_type = this.get(\"chartType\");\n        let startDate = this.get(\"startDate\");\n        let endDate   = this.get(\"endDate\");\n        let yAxisUnit = this.get(\"yAxisUnit\");\n        let xMax      = this.get(\"xMax\"); \n        let xMin      = this.get(\"xMin\");\n        let yLeftMax  = this.get(\"yLeftMax\"); \n        let yLeftMin  = this.get(\"yLeftMin\");\n        let yRightMax = this.get(\"yRightMax\"); \n        let yRightMin = this.get(\"yRightMin\");\n        let selectedFreqEventDate = this.get(\"selectedFrequencyEventsDropdownDate\");\n        if(mode == \"search\"){\n            if(this.get(\"filterType\") == \"frequency\"){\n                this.get('router').transitionTo(\"frequency-graphs.frequency-graph\", id, \"displacement-values\",{ queryParams: { \"chart_type\":chart_type,\n                    \"advancedStartDate\":startDate,\n                    \"advancedEndDate\": endDate,\n                    \"advancedYAxisUnit\": yAxisUnit,\n                    \"advancedXMin\": xMin,\n                    \"advancedXMax\": xMax,\n                    \"advancedYLeftMin\": yLeftMin,\n                    \"advancedYLeftMax\": yLeftMax,\n                    \"advancedYRightMin\": yRightMin,\n                    \"advancedYRightMax\": yRightMax, \n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                  });\n            }else if(this.get(\"filterType\") == \"temporal\"){         \n                this.get('router').transitionTo(\"temporal-graphs.temporal-graph\", id, \"displacement-values\",{ queryParams: { \"advancedStartDate\":startDate,\n                    \"advancedEndDate\": endDate,\n                    \"advancedYAxisUnit\": yAxisUnit,\n                    \"advancedXMin\": xMin,\n                    \"advancedXMax\": xMax,\n                    \"advancedYLeftMin\": yLeftMin,\n                    \"advancedYLeftMax\": yLeftMax,\n                    \"advancedYRightMin\": yRightMin,\n                    \"advancedYRightMax\": yRightMax, \n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                  });\n            }\n            else if(this.get(\"filterType\") == \"raw-data\"){\n                // console.log(`SEND instrument Type:${this.instrumentType}, yAxisUnit:${yAxisUnit}`);\n                this.get('router').transitionTo(\"raw-data\", id, { queryParams: {\"advancedStartDate\":startDate,\n                    \"page\":page,\n                    \"page_size\":page_size,\n                    \"advancedEndDate\": endDate,\n                    \"advancedYAxisUnit\": yAxisUnit,\n                    \"advancedXMin\": xMin,\n                    \"advancedXMax\": xMax,\n                    \"advancedYLeftMin\": yLeftMin,\n                    \"advancedYLeftMax\": yLeftMax,\n                    \"advancedYRightMin\": yRightMin,\n                    \"advancedYRightMax\": yRightMax, \n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                  });\n            }\n            else if(this.get(\"filterType\") == \"raw-frequency-events-data\"){\n                this.get('router').transitionTo(\"raw-frequency-events-data\", id, { queryParams: {\n                    \"page\": page,\n                    \"page_size\": page_size,\n                    // \"instrument_id\": this.get[\"instrumentId\"] ? this.get[\"instrumentId\"] : undefined,\n                    \"selectedFreqEventDate\":selectedFreqEventDate != undefined ? selectedFreqEventDate : undefined,\n                    \"advancedYAxisUnit\": yAxisUnit,\n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                });\n            }\n            else if(this.get(\"filterType\") == \"frequency-events\"){\n                this.get('router').transitionTo(\"frequency-events\", id, { queryParams: {\n                    \"page\": page,\n                    \"page_size\": page_size,\n                    \"advancedStartDate\":startDate,\n                    \"advancedEndDate\": endDate,\n                    \"advancedYAxisUnit\": yAxisUnit,\n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                });\n            }\n        }else if(mode == \"reset\"){\n            let newYAxisUnit = this.instrumentType === \"Adict\" ? \"RAW\" : this.instrumentType === \"d-micro\" ? \"μm\" : this.instrumentType === \"BluVibe\" ? \"mm\" : this.approvedInstrForYAxisUnit.includes(this.instrumentType) ? \"mm\" :  undefined;\n            this.set(\"yAxisUnit\", newYAxisUnit);\n            this.set(\"startDate\", undefined);\n            this.set(\"endDate\", undefined);\n            this.set(\"selectedFreqEventDate\", undefined);\n\n            if(this.get(\"filterType\") === \"frequency\"){\n                this.get('router').transitionTo('frequency-graphs.frequency-graph', id, 'displacement-values',{ queryParams: { \"chart_type\":chart_type,\n                    \"advancedStartDate\":undefined,\n                    \"advancedEndDate\": undefined,\n                    \"advancedYAxisUnit\": newYAxisUnit,\n                    \"advancedXMin\": undefined,\n                    \"advancedXMax\": undefined,\n                    \"advancedYLeftMin\": undefined,\n                    \"advancedYLeftMax\": undefined,\n                    \"advancedYRightMin\": undefined,\n                    \"advancedYRightMax\": undefined, \n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                      }      \n                  });\n            }\n            else if(this.get(\"filterType\") === \"raw-data\"){\n                this.get('router').transitionTo(\"raw-data\", id, { queryParams: {\"advancedStartDate\":undefined,\n                    \"advancedEndDate\": undefined,\n                    \"page\":1,\n                    \"page_size\":20,\n                    \"advancedYAxisUnit\": newYAxisUnit,\n                    \"advancedXMin\": undefined,\n                    \"advancedXMax\": undefined,\n                    \"advancedYLeftMin\": undefined,\n                    \"advancedYLeftMax\": undefined,\n                    \"advancedYRightMin\": undefined,\n                    \"advancedYRightMax\": undefined, \n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                  });\n            }\n            else if(this.get(\"filterType\") == \"temporal\"){\n                this.get('router').transitionTo(\"temporal-graphs.temporal-graph\", id, \"displacement-values\",{ queryParams: {\"advancedStartDate\":undefined,\n                    \"advancedEndDate\": undefined,\n                    \"advancedYAxisUnit\": newYAxisUnit,\n                    \"advancedXMin\": undefined,\n                    \"advancedXMax\": undefined,\n                    \"advancedYLeftMin\": undefined,\n                    \"advancedYLeftMax\": undefined,\n                    \"advancedYRightMin\": undefined,\n                    \"advancedYRightMax\": undefined,\n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                      }       \n                  });\n            }\n            else if(this.get(\"filterType\") == \"raw-frequency-events-data\"){\n                this.get('router').transitionTo(\"raw-frequency-events-data\", id, { queryParams: {\n                    \"page\": 1,\n                    \"page_size\": 20,\n                    // \"instrument_id\": this.get[\"instrumentId\"] ? this.get[\"instrumentId\"] : undefined,\n                    \"selectedFreqEventDate\": undefined, \n                    \"advancedStartDate\":undefined,\n                    \"advancedEndDate\": undefined,\n                    \"advancedEndDate\": undefined,\n                    \"advancedYAxisUnit\": newYAxisUnit,\n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                  });\n            }\n            else if(this.get(\"filterType\") == \"frequency-events\"){\n                this.get('router').transitionTo(\"frequency-events\", id, { queryParams: {\n                    \"page\": 1,\n                    \"page_size\": 20,\n                    \"advancedStartDate\":undefined,\n                    \"advancedEndDate\": undefined,\n                    \"advancedYAxisUnit\": newYAxisUnit,\n                }}).then(() => {\n                    if (!this.isDestroyed && !this.isDestroying) {\n                        this.set(\"advancedSearchLoading\", false);\n                        this.setFieldsFromURL();\n                    }      \n                  });\n            }\n\n        }\n    },\n    meterValue: Ember.computed('yAxisUnit', function() {\n        return this.get('yAxisUnit') === 'm';\n    }),\n    millimeterValue: Ember.computed('yAxisUnit', function() {\n        return this.get('yAxisUnit') === 'mm';\n    }),\n    footValue: Ember.computed('yAxisUnit', function() {\n        return this.get('yAxisUnit') === 'ft';\n    }),\n    inchValue: Ember.computed('yAxisUnit', function() {\n        return this.get('yAxisUnit') === 'in';\n    }),\n    microValue: Ember.computed('yAxisUnit', function() {\n        return this.get('yAxisUnit') === 'μm';\n    }),\n    RAWValue: Ember.computed('yAxisUnit', function() {\n        //There are special cases for specific instruments\n        //For Adict, RAW = bits\n        return this.get('yAxisUnit') === 'RAW' || this.get('yAxisUnit') === 'bits';\n    }),\n    actions: {\n        updateFrequencyEventsSelectedDatetime(input){\n            console.log(\"updateFrequencyEventsSelectedDatetime\")\n            console.log(input);\n            if(input.length == 0){\n                this.set(\"selectedFrequencyEventsDropdownDate\", undefined);\n            }else{\n                this.set(\"selectedFrequencyEventsDropdownDate\", input);\n            }\n        },\n        toggleVisibility(){\n            // console.log(\"clicked Advanced Filter\");\n            let visiblity = this.get('visibleAdvancedFilter');\n            this.set(\"visibleAdvancedFilter\", !visiblity);\n        },\n        toggleYAxisUnit(property) {\n            this.set(\"yAxisUnit\", property);\n        },\n        updateDateProperty(propertyName, changeEvent) {\n            this.set(propertyName, changeEvent.target.value == \"\" ? undefined : changeEvent.target.value);\n        },\n        search(){\n            // console.log(`charrtType:${this.get(\"chartType\")}`)\n            this.dispatchRequest(\"search\");\n        },\n        reset(){\n            // console.log(`charrtType:${this.get(\"chartType\")}`)\n            this.dispatchRequest(\"reset\");\n        }\n    },\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    router: service(),\n    deleteConfirmation: false,\n    actions: {\n        toggleRowDeleteConfirmationDialog(id){\n            //console.log(id);\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        createAlert: function() {\n            //console.log(\"create\");\n            let instID = this.get(\"instrumentId\");\n            if (instID !== null) {\n                this.get('router').transitionTo('create-alert', { queryParams: { inst_id: instID }});\n            } else {\n                this.get('router').transitionTo('create-alert');\n            }\n        }\n    }\n\n})","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    \n    authError: false,\n\n    router: service(),\n    isRowDeleteConfirmationDialog: {},\n    actions: {\n        toggleRowDeleteConfirmationDialog(id){\n            //console.log(id);\n            let errBox = document.getElementById(\"alertListError\");\n            errBox.hidden=true;\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        createAlert: function() {\n            //console.log(\"create\");\n            let instID = this.get(\"instrumentId\");\n            if (instID !== null) {\n                this.get('router').transitionTo('create-alert', { queryParams: { inst_id: instID }});\n            } else {\n                this.get('router').transitionTo('create-alert');\n            }\n        },\n        remove(model, object){\n            let _this = this;\n            let _store = this.get('store');\n\n            //object.get('isDeleted');\n            \n            //_this.setError('authError',false);\n            let errBox = document.getElementById(\"alertListError\");\n\n            // object.deleteRecord();\n\n            errBox.hidd = true;\n            //console.log(_store.find('user', params));\n\n            object.save().then(function(){\n                \n                object.deleteRecord();\n                \n                object.save().then(function(){                    \n                    object.unloadRecord();\n                }).catch(function(reason){\n                    let status = reason.errors[0].status;\n\n                    if (status == 403) {\n                        errBox.hidden = false;\n                    };\n                });\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                //model.removeObject(object);\n\n            }).catch(function(reason){\n\n                let status = reason.errors[0].status;\n\n                if (status == 403) {\n                    errBox.hidden = false;\n                };\n            });\n        },\n    }\n\n})","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport Chart, { Title } from 'chart.js/auto';\nimport {getYAxisScaleMax, manageCustomUIDateData, disableEnableBarChartLengend, renderChart,refreshMainChartData, resetDataAndSearch} from \"../../helpers/packs-validation-analytics-library\"\n\n\n\nexport default Ember.Component.extend({\n    store: service(),\n    router: service(),\n    session: service(),\n    mainChartData:[],\n    requestParams:{\n        y:\"company\", \n        x:null, \n        is_distinct:\"false\", \n        secondary:\"all\", \n        date_min:null, \n        date_max:null\n    },\n    options:{isEmptyData:true, chartYAxisOriginal:0,chartXAxisOriginal:0},\n    mainDataSelectionLabels: [\n        {key:'packID',value:\"Packs\"},\n        {key:'packType',value:\"Packs(Type)\"},\n        {key:'company',value:\"Company\"},\n        {key:'validationID',value:\"Validations(Overall)\"},\n        {key:'phase1_count',value:\"Validations(P1)\"},\n        {key:'phase2_count',value:\"Validations(P2)\"},\n        {key:'phase_both',value:\"Validations(Full)\"},\n        {key:'redos',value:\"Validations(Repaired)\"},\n        {key:'general_overruled_count',value:\"Validations(Overruled)\"},\n        {key:'phase1Employee',value:\"Employees(P1)\"},\n        {key:'phase2Employee',value:\"Employees(P2)\"},\n        {key:'phase2OverruleEmployee',value:\"Employees(Overruled)\"},\n        {key:'rigID',value:\"Rigs(Overall)\"},\n    ],\n    dateDataSelectionLabels: [\n        {key:'phase1ValidationDate',value:\"Phase 1 Date\"},\n        {key:'phase2ValidationDate',value:\"Phase 2 Date\"},\n    ],\n    employeeGroupDataSelectionLabels: [\n        {key:'all',value:\"All\"},\n        {key:'phase1Employee',value:\"Employee(Phase 1)\"},\n        {key:'phase2Employee',value:\"Employee(Phase 2)\"},\n    ],\n    init() {\n        this._super(...arguments);\n        Ember.run.scheduleOnce('afterRender', this, async () => {\n            //Pre-GET Chart Data\n            const getResponse = await refreshMainChartData(this);\n\n            //Pre-Load Dropdown components for Main Data: Date Data: and Date Range:\n            const mainDataSelectComp = document.getElementById(\"mainDataSelect\");\n            mainDataSelectComp.value='2';\n            const dateDataSelectComp = document.getElementById(\"dateDataSelect\");\n            dateDataSelectComp.value=\"\"; \n            const usersSectionComp = document.getElementById(\"usersSection\");\n            usersSectionComp.value='0';   \n            const startRangeDateComponent = document.getElementById(\"startRangeDateComponent\");\n            startRangeDateComponent.value=null;  \n            const endRangeDateComponent = document.getElementById(\"endRangeDateComponent\");\n            endRangeDateComponent.value=null;\n            //Pre-Load Chart options section    \n            const showLegendCheckBoxComp = document.getElementById(\"showLegendCheckBox\");\n            showLegendCheckBoxComp.checked = false;    \n            \n            // const initialYAxisMax = getYAxisScaleMax(this);\n            // console.log('initial y axis max');\n            // console.log(initialYAxisMax)\n        });\n    },\n    getMainDataSelections:Ember.computed(function(){\n        let data = []\n        this.get('mainDataSelectionLabels').forEach((elementObj, index) => {\n            data.push({\n                id:index,\n                title:elementObj['value'],\n                code:elementObj['key']\n            })\n        });\n        return data;\n    }),\n    getDateDataSelections:Ember.computed(function(){\n        let data = []\n        this.get('dateDataSelectionLabels').forEach((elementObj, index) => {\n            data.push({\n                id:index,\n                title:elementObj['value'],\n                code:elementObj['key']\n            })\n        });\n        return data;\n    }),\n    getEmployeeGroupDataSelections:Ember.computed(function(){\n        let data = []\n        this.get('employeeGroupDataSelectionLabels').forEach((elementObj, index) => {\n            data.push({\n                id:index,\n                title:elementObj['value'],\n                code:elementObj['key']\n            })\n        });\n        return data;\n    }),\n    showLegendObserver: Ember.observer('updateShowLegendCheckbox', function(){\n        const showLegend = this.get(\"updateShowLegendCheckbox\").target.checked;\n        // console.log(`Show legend? ${showLegend}`);\n        disableEnableBarChartLengend(this, showLegend);\n    }),\n    emptyDataWarningListener:Ember.observer('mainChartData', \n        function(){\n            this.set('options.isEmptyData', this.get('mainChartData').length == 0)\n        }\n    ),\n    mainSelectionDropDownHandlerOberserver:Ember.observer(\n        \"updateEmployeeDataSelectDropDown\",\n        \"updateMainDataSelectDropDown\",\n        \"updateDateDataSelectDropDown\",\n        \"startRangeDateComponent\",\n        \"endRangeDateComponent\",\n        \"updateIsDistinctCheckBox\",\n        function(){\n            // console.log(`updateDateDataSelectDropDown:`)\n            // console.log(this.get(\"updateDateDataSelectDropDown\"))\n            // console.log(`updateDateDataSelectDropDown:`)\n            // console.log(this.get(\"updateDateDataSelectDropDown\"))\n\n            const employeeGroupDataSelectComp = document.getElementById(\"employeeGroupDataSelect\");\n            const mainDataSelectComp = document.getElementById(\"mainDataSelect\");\n            const dateDataSelectComp = document.getElementById(\"dateDataSelect\");\n            //Update updateMainDataSelectDropDown\n            manageCustomUIDateData(this, \n                this.get('mainDataSelectionLabels')[mainDataSelectComp.value],\n                this.get('dateDataSelectionLabels')[dateDataSelectComp.value],\n                this.get('employeeGroupDataSelectionLabels')[employeeGroupDataSelectComp.value],\n                this.get(\"updateIsDistinctCheckBox\"),\n                this.get(\"startRangeDateComponent\"),\n                this.get(\"endRangeDateComponent\")\n                )\n        }\n    ),\n    actions: {\n        applyButton(){\n            // disableEnableBarChartLengend(this,this.get('requestParams.x') != null)\n\n            refreshMainChartData(this)\n        },\n        resetButton(){\n            resetDataAndSearch(this);\n        },\n        resetScaleForm(labelID){\n            if(labelID == 'yAxisScaleLabel'){\n\n                const yAxisMaxComponent = document.getElementById('yAxisScale');\n                yAxisMaxComponent.value = this.get('options.chartYAxisOriginal');\n                yAxisMaxComponent.min=`${this.get('options.chartYAxisOriginal')}`\n                if (this.get('chart')) {\n                    this.get('chart').options.scales.y.max = this.get('options.chartYAxisOriginal');\n                    this.get('chart').update();\n                }\n            }\n            // console.log(`componentKey:${componentKey};`);\n        },\n        updateScaleForm(e){\n            // console.log(e)\n            const componentKey = e.target.id;\n            const componentValue = e.target.value;\n            console.log(`componentKey:${componentKey}; componentValue:${componentValue}`);\n            if (this.get('chart')) {\n                this.get('chart').options.scales.y.max = componentValue == \"\" || componentValue == null ? this.get('options.chartYAxisOriginal') : Number.parseInt(componentValue);\n                this.get('chart').update();\n            }\n        }\n    },\n    didInsertElement() {\n        this._super(...arguments);\n        renderChart(this);\n    },\n    \n})","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport {manageCustomUIDateData, disableEnableBarChartLengend, renderChart,refreshMainChartData, resetDataAndSearch} from \"../../helpers/sensor-calibration-analytics-library\"\n\n\n\nexport default Ember.Component.extend({\n    store: service(),\n    router: service(),\n    session: service(),\n    mainChartData:[],\n    requestParams:{\n        x:null, \n        y:\"calibrationID\", \n        is_distinct:\"false\", \n        secondary:\"all\", \n        date_min:null, \n        date_max:null\n    },\n    options:{isEmptyData:true, chartYAxisOriginal:0,chartXAxisOriginal:0},\n    mainDataSelectionLabels: [\n        {key:'jobID',value:\"Jobs\"},\n        {key:'sensorID',value:\"Sensors(Overall)\"},\n        {key:'type',value:\"Sensors(Type)\"},\n        {key:'calibrationID',value:\"Calibrations(Overall)\"},\n        {key:'redos',value:\"Calibrations(Redone)\"},\n        {key:'employee',value:\"Employee(Overall)\"},\n        {key:'rigID',value:\"Rigs(Overall)\"},\n    ],\n    dateDataSelectionLabels: [\n        {key:'calibrationDate',value:\"Calibration Date\"},\n    ],\n    employeeGroupDataSelectionLabels: [\n        {key:'all',value:\"All\"},\n        {key:'employee',value:\"Employee(Logged In)\"}\n    ],\n    init() {\n        this._super(...arguments);\n        Ember.run.scheduleOnce('afterRender', this, async () => {\n            //Pre-GET Chart Data\n            const getResponse = await refreshMainChartData(this);\n\n            //Pre-Load Dropdown components for Main Data: Date Data: and Date Range:\n            const mainDataSelectComp = document.getElementById(\"mainDataSelect\");\n            mainDataSelectComp.value='3';\n            const usersSectionComp = document.getElementById(\"usersSection\");\n            usersSectionComp.value='0';   \n            const startRangeDateComponent = document.getElementById(\"startRangeDateComponent\");\n            startRangeDateComponent.value=null;  \n            const endRangeDateComponent = document.getElementById(\"endRangeDateComponent\");\n            endRangeDateComponent.value=null;\n            //Pre-Load Chart options section    \n            const showLegendCheckBoxComp = document.getElementById(\"showLegendCheckBox\");\n            showLegendCheckBoxComp.checked = false;    \n            \n            // const initialYAxisMax = getYAxisScaleMax(this);\n            // console.log('initial y axis max');\n            // console.log(initialYAxisMax)\n        });\n    },\n    getMainDataSelections:Ember.computed(function(){\n        let data = []\n        this.get('mainDataSelectionLabels').forEach((elementObj, index) => {\n            data.push({\n                id:index,\n                title:elementObj['value'],\n                code:elementObj['key']\n            })\n        });\n        return data;\n    }),\n    getDateDataSelections:Ember.computed(function(){\n        let data = []\n        this.get('dateDataSelectionLabels').forEach((elementObj, index) => {\n            data.push({\n                id:index,\n                title:elementObj['value'],\n                code:elementObj['key']\n            })\n        });\n        return data;\n    }),\n    getEmployeeGroupDataSelections:Ember.computed(function(){\n        let data = []\n        this.get('employeeGroupDataSelectionLabels').forEach((elementObj, index) => {\n            data.push({\n                id:index,\n                title:elementObj['value'],\n                code:elementObj['key']\n            })\n        });\n        return data;\n    }),\n    showLegendObserver: Ember.observer('updateShowLegendCheckbox', function(){\n        const showLegend = this.get(\"updateShowLegendCheckbox\").target.checked;\n        // console.log(`Show legend? ${showLegend}`);\n        disableEnableBarChartLengend(this, showLegend);\n    }),\n    emptyDataWarningListener:Ember.observer('mainChartData', \n        function(){\n            this.set('options.isEmptyData', this.get('mainChartData').length == 0)\n        }\n    ),\n    mainSelectionDropDownHandlerOberserver:Ember.observer(\n        \"updateEmployeeDataSelectDropDown\",\n        \"updateMainDataSelectDropDown\",\n        \"updateDateDataSelectDropDown\",\n        \"startRangeDateComponent\",\n        \"endRangeDateComponent\",\n        \"updateIsDistinctCheckBox\",\n        function(){\n            // console.log(`updateDateDataSelectDropDown:`)\n            // console.log(this.get(\"updateDateDataSelectDropDown\"))\n            // console.log(`updateDateDataSelectDropDown:`)\n            // console.log(this.get(\"updateDateDataSelectDropDown\"))\n\n            const employeeGroupDataSelectComp = document.getElementById(\"employeeGroupDataSelect\");\n            const mainDataSelectComp = document.getElementById(\"mainDataSelect\");\n            const dateDataSelectComp = document.getElementById(\"dateDataSelect\");\n\n            //Update updateMainDataSelectDropDown\n            manageCustomUIDateData(this, \n                this.get('mainDataSelectionLabels')[mainDataSelectComp.value],\n                this.get('dateDataSelectionLabels')[dateDataSelectComp.value],\n                this.get('employeeGroupDataSelectionLabels')[employeeGroupDataSelectComp.value],\n                this.get(\"updateIsDistinctCheckBox\"),\n                this.get(\"startRangeDateComponent\"),\n                this.get(\"endRangeDateComponent\")\n                )\n        }\n    ),\n    actions: {\n        applyButton(){\n            // disableEnableBarChartLengend(this,this.get('requestParams.x') != null)\n\n            refreshMainChartData(this)\n        },\n        resetButton(){\n            resetDataAndSearch(this);\n        },\n        resetScaleForm(labelID){\n            if(labelID == 'yAxisScaleLabel'){\n\n                const yAxisMaxComponent = document.getElementById('yAxisScale');\n                yAxisMaxComponent.value = this.get('options.chartYAxisOriginal');\n                yAxisMaxComponent.min=`${this.get('options.chartYAxisOriginal')}`\n                if (this.get('chart')) {\n                    this.get('chart').options.scales.y.max = this.get('options.chartYAxisOriginal');\n                    this.get('chart').update();\n                }\n            }\n            // console.log(`componentKey:${componentKey};`);\n        },\n        updateScaleForm(e){\n            // console.log(e)\n            const componentKey = e.target.id;\n            const componentValue = e.target.value;\n            console.log(`componentKey:${componentKey}; componentValue:${componentValue}`);\n            if (this.get('chart')) {\n                this.get('chart').options.scales.y.max = componentValue == \"\" || componentValue == null ? this.get('options.chartYAxisOriginal') : Number.parseInt(componentValue);\n                this.get('chart').update();\n            }\n        }\n    },\n    didInsertElement() {\n        this._super(...arguments);\n        renderChart(this);\n    },\n    \n})","define(\"geotechnical-data-platform-new/components/array-path-layer\", [\"exports\", \"ember-leaflet/components/array-path-layer\"], function (_exports, _arrayPathLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _arrayPathLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/base-layer\", [\"exports\", \"ember-leaflet/components/base-layer\"], function (_exports, _baseLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _baseLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            let selector = this.$('#chan_select');\n\n            let selected = {};\n            selector.val().forEach(function(selection) {\n                selected[selection] = true;\n            });\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                selector.val().forEach(function(selection) {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = selection;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save();\n                                });\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewGatewayObject(_this) {\n    console.log(\"NewGatewayObject::: \");\n    _this.set('newGatewayObject', {});\n    _this.set('name', null);\n    _this.set('installDate', null);\n\n\n    // name: DS.attr('text'),\n    // gatewayType: DS.belongsTo('gateway-type', {async: false}),\n    // project: DS.attr('text'),\n    // location: DS.attr('text'),\n    // depth: DS.attr('number'),\n    // level: DS.attr('text'),\n    // installDate: DS.attr(),\n    // installedBy: DS.attr('text'),\n    // purpose: DS.attr('text'),\n    // notes: DS.attr('text'),\n    // alerts: DS.hasMany('alert', {async: false}),\n    // gatewayTypeID: DS.attr(),\n    // active: DS.attr('boolean'),\n\n}\n\nexport default class CreateBluCellGateway extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewGatewayObject(this);\n    }\n\n    isAuthenticated = true;\n    newGatewayObject = {};\n    installDate = null;\n    authError = false;\n\n    actions = {\n        async createGateway(object){\n\n            let _this = this,\n            store = this.get('store'),\n            newGatewayObject = this.get('newGatewayObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newGatewayObject.id = this.get('id');\n            newGatewayObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            newGatewayObject.depth = this.get('depth');\n            newGatewayObject.gatewayType = store.peekRecord('gateway-type', this.get('typeID'));\n            newGatewayObject.active = true;\n\n            let interval_upload = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'upload_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayUploadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                }).catch(function(error) {\n                // console.log(\"Error Getting interval_upload object::: \" + error);\n              });\n\n            let interval_read = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'instrument_reading_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayReadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                  }).catch(function(error) {\n                    // handle error here\n                    // console.log(\"Error Getting interval_read object::: \" + error);\n                });\n            \n            let interval_mesh_cycle = await this.store.query('gateway-interval', {\n                filter: {\n                    interval_value: 10,\n                    interval_group_name: 'mesh_cycle'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayMeshCycleInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                    }).catch(function(error) {\n                    // handle error here\n                    // console.log(\"Error Getting gatewayMeshCycleInterval object::: \" + error);\n                });\n            let interval_transmission_power = await this.store.query('gateway-interval', {\n                filter: {\n                    interval_value: 7,\n                    interval_group_name: 'radio_transmission_power_level'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayRadioPowerLevelInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                    }).catch(function(error) {\n                    // handle error here\n                    // console.log(\"Error Getting interval_transmission_power object::: \" + error);\n                });\n                \n\n            if(typeof newGatewayObject.id === 'undefined' || newGatewayObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('installDate') != null) {\n                newGatewayObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            let newGateway = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    // console.log(\"Creating....\");\n                    newGateway = store.createRecord('gateway', newGatewayObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if(!error) {\n                newGateway.save().then(function(results){\n                    // console.log(dup);\n                    if(results.id != null) {\n                        _this.get('submit')(results.id);\n                    } else {\n                        this.setError('isVisibleError',true);\n                        error = true;\n                    }\n                }).catch(function(reason) {\n                    _this.setError('isVisibleError',true);\n                    _this.setError('authError',true);\n                }); \n            } \n        },\n        // bulbChanged(object)\n        // {\n        //     this.set(\"bulbed\",document.getElementById('newInstrumentObjectBulbed').checked);\n        // },\n        // plateChanged(object)\n        // {\n        //     this.set(\"plated\",document.getElementById('newInstrumentObjectPlated').checked);\n        // }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let gatewayValueObjectValues = _this.get('gatewayValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(gatewayValueObjectValues).forEach(function(key,index) {\n        gatewayValueObjectValues[key] = null;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n\n    newGatewayValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newGatewayValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n\n    gatewayValueObjectValues: Ember.computed('anchorDistances', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('anchorDistances').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    newGatewayValueObjectValues: Ember.computed('gatewayValueObjectValues', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('gatewayValueObjectValues').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            //  console.log(\"saveNew\");\n            let _this = this,\n                store = this.get('store'),\n                newGatewayValuesObject = this.get('newGatewayValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                gatewayValues = this.get('gatewayValues'),\n                temperatureValues = this.get('temperatureValues');\n                    \n            \n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-gateway-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newGatewayValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            \n            const indexPositions = [0, 2, 12];\n            const values = Object.values(this.get('newGatewayValueObjectValues'));\n            const result = new Array(13);\n\n            indexPositions.forEach((index, i) => {\n            result[index] = values[i];\n            });\n\n            // console.log(\"Results::: \");\n            // console.log(result);\n\n            newGatewayValuesObject.values = result\n\n            const newGatewayValues = store.createRecord('gateway-value', newGatewayValuesObject);\n            // save new gateway-value to DB\n            const savedGatewayValuesObject = newGatewayValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if gateway-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //gatewayValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n            })\n            .catch(function(reason){\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\n\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\nexport default Ember.Component.extend({\n\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('anchorList');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n            \n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { camelize } from '@ember/string';\n\nexport default class EditInstrument extends Component.extend({\n    gatewayReadingsIntervals: null,\n\n    init(){\n        this._super(...arguments);\n    },\n    \n    store: Ember.inject.service(),\n    isAuthenticated : true,\n    // selectedReadingIntervalID : null,\n    selectedModel : null,\n    editing : 0,\n    \n    getGatewayUploadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayUploadInterval = gw.gatewayUploadInterval;\n        // console.log(\"gatewayUploadInterval::: \" + gatewayUploadInterval)\n        if(gatewayUploadInterval == null){\n            return 0;\n        }\n            return (gatewayUploadInterval.id).toString();\n    }),\n\n    getGatewayReadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayReadInterval = gw.gatewayReadInterval;\n        // console.log(\"gatewayReadInterval::: \" + gatewayReadInterval)\n        if(gatewayReadInterval == null){\n            return 0;\n        }\n        return (gatewayReadInterval.id).toString();\n    }),\n    \n    getMeshCycleIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayMeshCycleInterval = gw.gatewayMeshCycleInterval\n        // console.log(\"gatewayMeshCycleInterval::: \" + gatewayMeshCycleInterval)\n        if(gatewayMeshCycleInterval == null){\n            return 0;\n        }\n        return (gatewayMeshCycleInterval.id).toString();\n    }),\n    \n    getTransmissionPowerIntervalsID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayRadioPowerLevelInterval = gw.gatewayRadioPowerLevelInterval;\n        // console.log(\"gatewayRadioPowerLevelInterval::: \" + gatewayRadioPowerLevelInterval)\n        if(gatewayRadioPowerLevelInterval == null){\n            return 0;\n        }\n        return (gatewayRadioPowerLevelInterval.id).toString();\n    }),\n    \n    \n}){\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    _this = this;\n\n    actions = {\n        //in order for this to work the id of the select element must be the same as the attribute name\n        setGatewayInterval(event) {\n            let gateway = this.get('gateway');\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            //id of the newly selected interval\n            const selectedValue = parseInt(selectedOptions.map(option => option.value));    \n            //interval attribute name\n            const intervalType = event.target.id;\n            \n            // console.log(\"intervalType::: \" + intervalType)\n            \n            // when the record has no interval records associated with it, when you try to save an error is thrown.\n            // I avoid this by defaulting the interval to 5 minutes when the one is saved and the other is null.\n            let notSelected = intervalType == 'gatewayReadInterval' ? 'gatewayUploadInterval' : 'gatewayReadInterval';\n\n            this.store.findRecord('gateway-interval', selectedValue).then((interval) => { \n                let notSelectedIntervalValue = gateway[notSelected];\n                let group_name = intervalType == 'gatewayReadInterval' ? 'instrument_reading_interval' : 'upload_interval';\n                if(notSelectedIntervalValue == null){\n                    //if the non-selected interval is null I default it here.\n                    this.store.query('gateway-interval', {\n                        filter: {\n                          interval_value: 5,\n                          interval_group_name: group_name\n                        }\n                        }).then(function(results) {\n                            gateway.set(notSelected, results.get('firstObject'));\n                            gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                \n                            gateway.save().then(() => {\n                                console.log('Gateway saved successfully!');\n                            }).catch((error) => {\n                                console.log('Error saving gateway:', error);\n                            });\n            \n                        }).catch(function(error) {\n                        console.log(\"Error Getting interval_upload object::: \" + error);\n                      });\n                } else {\n                    \n                    gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                    gateway.save().then(() => {\n                        console.log('Gateway saved successfully!');\n                    }).catch((error) => {\n                        console.log('Error saving gateway:', error);\n                    });\n                }                    \n            });\n            \n        },\n                \n        // setGatewayUploadIntervals(intervalID) {\n        //     this.store.findRecord('gateway-interval', intervalID).then((interval) => { \n        //         let gateway = this.get('gateway');\n\n        //         gateway.set('gatewayUploadInterval', interval); // Set the related object as the new value of the attribute\n        //         gateway.save().then(() => {\n        //             console.log('Gateway saved successfully!');\n        //         }).catch((error) => {\n        //             console.log('Error saving gateway:', error);\n        //         });\n        //     });\n            \n        // },\n        \n        updatePage(){\n            let store = this.get('store');\n            let gateway = this.get('gateway');\n            gateway.save();\n        },\n        viewData(id) {\n            this.get('router').transitionTo('raw-gateway-data', id);\n        },\n        tGraph(id) {\n            //console.log(\"Edit-gateway::: \" + id)\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, 'voltage-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveGateway(){\n            const _this = this;\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/gateway\";\n                }\n            } else {\n                window.location.href = \"/gateway\";\n            }\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        // updateProperty(propertyName, propertyValue) {\n        //     this.set(propertyName, propertyValue);\n        // },\n    \n\n\n    }\n}\n\n\n\n// import Component from '@ember/component'; \n// export default Component.extend({ \n//     classNames: ['person-select'], \n//     people: null, \n//     selectedPerson: null, \n//     actions: { \n//         selectPerson(person) { \n//             this.set('selectedPerson', person); \n//         } \n//     } \n// });\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'Temperature';\n          }\n          return rightAxis;\n    }),\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Coordinator: 1,\n        Voltage: 2,\n        RSSI: 3,\n        carrier: 4, \n        Readings: 5, \n        Uptime: 6, \n        Reconnection: 7, \n        Uploads: 8, \n        Temperature: 9,\n        var_1: 10, \n        var_2: 11, \n        var_3: 12,\n    }),\n\n    zoomTempPoints: Ember.computed(function(){\n        // let right = this.get('zoomDataPointsRightAxis');\n        let temperaturePoints = [];\n        let zoomTempData = this.get(\"zoomTempData\");\n        zoomTempData.forEach(function(item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n            temperaturePoints.push(chartData.values[0]);\n            // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n        });\n        // console.log(\"zoomTempPoints::::::::::::::: 7\");    \n        // let linesKyes = Object.keys(item.toJSON());\n        // var chartData = item.getProperties(linesKyes);\n        //  = this.get('temperaturePoints').push(chartData.values);\n        \n        return temperaturePoints; //chartData;\n    }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        //TODO: fix this TA.  Hack because we added temperature at the last minute.\n        if(this.leftAxis == 'Temperature'){\n            // console.log(\"zoomDataPointsLeftAxis::::::::::::::: \" + this.get(\"temperaturePoints\"));\n            return this.get(\"zoomTempPoints\");\n        }\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        // console.log(\"zoomLeftAxis ::::::::::::::: \" + JSON.stringify(zoomLeftAxis));    \n        return zoomLeftAxis;\n    }),\n    zoomDataPointsRightAxis: Ember.computed(function(){\n       //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null && this.rightAxis != 'Temperature'){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        if (this.rightAxis == 'Temperature'){\n            zoomRightAxis = this.get(\"zoomTempPoints\");\n        }\n        // console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        return zoomRightAxis;\n\n    }),\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n        \n        let left = this.get('zoomDataPointsLeftAxis');\n        // console.log(\"LEFT ::::::::::::::: 4 and 6 \" + left );\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        if(this.leftAxis != 'Temperature'){\n            fullRangePoints = this.get('fullRangeChartData');\n            fullRangePoints.map(function (item, i){\n                let linesKyes = Object.keys(item.toJSON());\n                let itemHolder = item.getProperties(linesKyes);\n                return itemHolder;\n            });\n        } else {\n            itemHolder.values = [];\n            fullRangePoints = this.get(\"temperaturePoints\");\n            if(this.leftAxis == 'Temperature'){\n                fullRangePoints.forEach(function(item){\n                    itemHolder.values.push(item[0]);\n                });\n            }\n            fullRangePoints = itemHolder;\n        }\n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        // console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        // console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        // fullRangeChartLinesData.push(temperature); //#TODO: Add Temp Points\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('gateway', function() {\n        return [\"Firmware Version\",\"Voltage\", \"RSSI\", \"Readings\", \"Uptime(Secs)\",\"Reconnection Attempts\", \"Uploads\",\"Temp\", \"Mesh ID\"]\n    }),\n\n\n\ngetGatewayData: Ember.computed('gateway', 'gatewayData', function() {\n  let fields = [0, 2, 14];\n  let items = [];\n  // Perform filtering logic on initial data\n  const filteredData = this.get('gatewayData');\n  if (filteredData) {\n    filteredData.forEach(item => {\n      let values = [];\n      let firmware = item.values[0];\n      let voltage = item.values[2];\n      let rssi = item.values[3];\n      let sigma_d_readings = item.values[5];\n      let sigma_t_modem_on_duration = item.values[6];\n      let reconnection_attempts = item.values[7];\n      let number_of_uploads = item.values[8];\n      let temp = item.values[12];\n      let mesh_id = item.values[item.values.length - 1];\n      items.push({ id: item.id, values: {'firm_version':firmware,\n      'voltage':voltage,\n      \"rssi\":rssi,\n      \"sigma_d_readings\":sigma_d_readings,\n      \"sigma_t_modem_on_duration\":sigma_t_modem_on_duration,\n      \"reconnection_attempts\":reconnection_attempts,\n      \"number_of_uploads\":number_of_uploads,\n      \"temp\":temp,\n      'mesh_id':mesh_id}, originalValue: item, save_values:{'firm_version':firmware,\n      'voltage':voltage,\n      \"rssi\":rssi,\n      \"sigma_d_readings\":sigma_d_readings,\n      \"sigma_t_modem_on_duration\":sigma_t_modem_on_duration,\n      \"reconnection_attempts\":reconnection_attempts,\n      \"number_of_uploads\":number_of_uploads,\n      \"temp\":temp,\n      'mesh_id':mesh_id} });\n    });\n  }        \n  \n  return items;\n}),\n\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n          // console.log(\"Update property: \" + propertyValue);\n          this.set(propertyName, propertyValue);\n        }\n    },\n    didInsertElement() {\n        this._super(...arguments);\n            \n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class LeftAxisDropdown extends Component.extend({}) {\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        tGraph(id, modelName, params) {\n            // console.log(\"in LeftAxisDropdown:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\")\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, modelName, params);\n        },\n    }\n}","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  rightAxisField: '', // Set the initial value to 'RSSI'\n  routeValue: 'voltage-values',\n\n  defaultRightAxisField: computed('rightAxisField', function() {\n    const rightAxisField = this.rightAxisField;\n    // console.log('rightAxisField:::::::::::: ' + rightAxisField);\n    return rightAxisField === '' ? 'Temperature' : rightAxisField;\n  }),\n\n  getRouteValue: computed('selected', function () {\n    const selected = this.selected.toLowerCase();\n    // console.log('selected:::::::::::: ' + selected);\n    this.set('routeValue', selected + '-values');\n  }),\n\n  actions: {\n    handleRightAxisFieldChange(newValue) {\n      // console.log('handleRightAxisFieldChange:::::::::::: ' + newValue);    \n      this.set('rightAxisField', newValue);\n    }\n  }\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            let selector = this.$('#chan_select');\n\n            let selected = {};\n            selector.val().forEach(function(selection) {\n                selected[selection] = true;\n            });\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                selector.val().forEach(function(selection) {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = selection;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save();\n                                });\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\nimport { computed } from '@ember/object';\n\nfunction resetNewGatewayObject(_this) {\n    // console.log(\"NewGatewayObject::: \");\n    _this.set('newGatewayObject', {});\n    _this.set('name', null);\n    _this.set('installDate', null);\n\n\n    // name: DS.attr('text'),\n    // gatewayType: DS.belongsTo('gateway-type', {async: false}),\n    // project: DS.attr('text'),\n    // location: DS.attr('text'),\n    // depth: DS.attr('number'),\n    // level: DS.attr('text'),\n    // installDate: DS.attr(),\n    // installedBy: DS.attr('text'),\n    // purpose: DS.attr('text'),\n    // notes: DS.attr('text'),\n    // alerts: DS.hasMany('alert', {async: false}),\n    // gatewayTypeID: DS.attr(),\n    // active: DS.attr('boolean'),\n\n}\n\nexport default class CreateBluCellGateway extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewGatewayObject(this);\n        this.loadGateways(this.gatewayList);\n    }\n\n    loadGateways(gatewayList) {\n        const rawData = gatewayList; // Assuming gateways is an array of gateway objects\n        \n        // Filter gateways to get a list of only Blu900GW gateways\n        const filteredGateways = rawData.filter(function (gateway) {\n            if(gateway.active == true && gateway.get('gatewayType').title.toLowerCase() === 'blu900gw'){\n                return gateway.get('gatewayType').title.toLowerCase() === 'blu900gw';\n            }\n        });\n        \n        const mappedGateways = filteredGateways.map(function (gateway) {\n            // Retrieve parent gateway record based on available information\n            const parentId = gateway.get('parentId'); // Assuming there is a field 'parentId' in the gateway object\n            \n    \n            let gw = {\n                title: gateway.get('id') + ' - ' + gateway.get('gatewayType').title,\n                value: gateway.get('id'),\n                type: gateway.get('gatewayTypeID'),\n                parent: gateway, // Assign parent gateway to 'parent' property \n            };\n            \n            // console.log(gw);\n            return gw;\n        });\n    \n        this.set('gateways', mappedGateways);\n        // console.log(this.get('gateways'));\n    }\n        \n    isAuthenticated = true;\n    newGatewayObject = {};\n    installDate = null;\n    authError = false;\n    gateways = [];\n\n    // @computed(async function() {\n    //     return await getGateways();\n    // }) gateways;\n    \n\n\n    actions = {\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n        \n        async createGateway(object){\n            let _this = this;\n            let store = _this.get('store');\n            let error = false;\n            _this.setError('fieldError',false);\n            _this.setError('isVisibleError',false);\n            \n            let parent = _this.get('newGatewayObject.parentGateway');\n\n            if ( parent ) {\n                // Perform save action here if a value is selected.\n                console.log('Value is selected, proceed to save.' + parent);\n            } else {\n                // Handle the case where no value is selected.\n                console.error('Please select a Parent Gateway before saving.');\n                error = true;\n                _this.setError('fieldError',true);\n                _this.setError('isVisibleError',true);\n                return\n            }\n\n            \n            let newGatewayObject = _this.get('newGatewayObject');\n            newGatewayObject.parentGatewayId = parent.id;\n            newGatewayObject.parentGateway = parent.id;\n\n            let parentGateway = parent\n\n            // _this.newGatewayObject.parentGateway = parentGateway;\n            \n            _this.setError('isVisibleError',false);\n            _this.setError('duplicateError',false);\n            _this.setError('fieldError',false);\n\n            newGatewayObject.id = _this.get('id');\n            \n            newGatewayObject.installDate = _this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            newGatewayObject.depth = _this.get('depth');\n\n            // console.log(\"typeID::: \" + this.typeID);\n            newGatewayObject.gatewayType = store.peekRecord('gateway-type', _this.typeID);\n            newGatewayObject.active = true;\n\n            let interval_upload = await _this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'upload_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayUploadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                }).catch(function(error) {\n                console.log(\"Error Getting interval_upload object::: \" + error);\n              });\n\n            let interval_read = await _this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'instrument_reading_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayReadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                  }).catch(function(error) {\n                    // handle error here\n                    console.log(\"Error Getting interval_read object::: \" + error);\n                });\n              \n\n            if(typeof newGatewayObject.id === 'undefined' || newGatewayObject.id === \"\") {\n                error = true;\n                _this.setError('fieldError',true);\n                _this.setError('isVisibleError',true);\n            }\n\n            if (_this.get('installDate') != null) {\n                newGatewayObject.installDate = moment(_this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n            newGatewayObject.parentGatewayId = parent.id\n            console.log(\"parent.id: \" + newGatewayObject.parentGatewayId)\n\n            let newGateway = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    // console.log(\"Creating....\");\n                    newGateway = await store.createRecord('gateway', newGatewayObject);\n                    // newGateway.parentGateway = parentGateway;\n                    // newGateway.parentGatewayId = parentGateway.id;\n                } catch (err) {\n                    _this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        _this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            _this.setError('authError', false);\n            // console.log(\"id: \" + newGateway.parentGateway.id);\n            if(!error) {\n                newGateway.save().then(function(results){\n                    \n                    if(results.id != null) {\n                        // Create a new GatewayChildRelation\n                        let childRelation = store.createRecord('gateway-child-relation', {\n                            parentGateway: parentGateway,\n                            childGateway: results,\n                            isCurrent: true, // Set any other attributes as needed\n                        });\n                        childRelation.save().then(() => {\n                            console.log(\"childRelation record saved...\");\n                        }).catch(function(reason){\n                            console.log(\"Reason: \" + reason);\n                        })\n\n                        window.localStorage.setItem('parentGateway', parent.id);\n                        _this.get('submit')(results.id);\n                        // let parentRelation = store.createRecord('gateway-child-relation', {\n                        //     parentGateway: parent, // Set the parent gateway\n                        //     childGateway: results, // Set the child gateway\n                        //     isCurrent: true, // Set any other attributes as needed\n                        //   });\n                        // parentRelation.save();\n    \n                    } else {\n                        this.setError('isVisibleError',true);\n                        error = true;\n                    }\n                }).catch(function(reason) {\n                    _this.setError('isVisibleError',true);\n                    _this.setError('authError',true);\n                }); \n            } \n        },\n        async setID(gw){\n            if(gw != null) {\n\n                let newGatewayObject = this.get('newGatewayObject');\n                // console.log(newGatewayObject);\n                // console.log(\"Parent Selected::: \" + gw);\n                \n                let parent = await this.store.findRecord('gateway', gw.value).then((parentGateway) => {\n                    // Parent gateway retrieved successfully\n                    // console.log(parentGateway.id);\n                    return parentGateway;\n                }).catch((error) => {\n                    // Handle error if the parent gateway does not exist or any other issue occurs\n                    console.error(error);\n                });\n                this.set('newGatewayObject.parentGateway', parent);\n                // console.log(\"parentGateway::::::::::: \" + this.get('newGatewayObject').parentGateway.id);\n                \n            } else {\n                this.set('newGatewayObject.parentGateway', null);\n            }\n        },\n\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let gatewayValueObjectValues = _this.get('gatewayValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(gatewayValueObjectValues).forEach(function(key,index) {\n        gatewayValueObjectValues[key] = null;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n\n    newGatewayValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newGatewayValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n\n    gatewayValueObjectValues: Ember.computed('anchorDistances', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('anchorDistances').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    newGatewayValueObjectValues: Ember.computed('gatewayValueObjectValues', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('gatewayValueObjectValues').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            //  console.log(\"saveNew\");\n            let _this = this,\n                store = this.get('store'),\n                newGatewayValuesObject = this.get('newGatewayValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                gatewayValues = this.get('gatewayValues'),\n                temperatureValues = this.get('temperatureValues');\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-gateway-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newGatewayValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newGatewayValuesObject.values = Object.values(this.get('newGatewayValueObjectValues'));\n\n            const newGatewayValues = store.createRecord('gateway-value', newGatewayValuesObject);\n            // save new gateway-value to DB\n            const savedGatewayValuesObject = newGatewayValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if gateway-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //gatewayValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n            })\n            .catch(function(reason){\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\n\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\nexport default Ember.Component.extend({\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('anchorList');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { camelize } from '@ember/string';\n\nexport default class EditGateway extends Component.extend({\n\n    store: Ember.inject.service(),\n    gatewayReadingsIntervals: null,\n    initialSelection: null,\n    isAuthenticated : true,\n    // selectedReadingIntervalID : null,\n    selectedModel : null,\n    editing : 0,\n    parent: null,\n    // gateway: null,        \n    init(){\n        this._super(...arguments);\n        // console.log(\"parentGateway\")\n        // console.log(this.parentGateway)\n        // this.store.query('gateway', {\n        //     gateway_child_id: this.gateway.id,\n        //     is_current: true\n        // }).then((result) => {\n        //     let parentGateway = result.firstObject;\n        //     if (parentGateway) {\n        //         console.log(parentGateway.id);\n        //         this.set('parent', parentGateway.id);\n        //     }\n        // });\n\n\n        this.loadGateways(this.gatewayList, this.gateway);\n    },\n    loadGateways(gatewayList, node) {\n        const rawData = gatewayList; // Assuming gateways is an array of gateway objects\n        \n        // Filter gateways to get a list of only Blu900GW gateways\n        const filteredGateways = rawData.filter(function (gateway) {\n            if(gateway.active == true && gateway.get('gatewayType').title.toLowerCase() === 'blu900gw'){\n                return gateway.get('gatewayType').title.toLowerCase() === 'blu900gw';\n            }\n        });\n        let selectedItem = null;\n        const mappedGateways = filteredGateways.map(function (gateway) {           \n            // console.log(\"GW: \");\n            // console.log(gateway);\n            let gw = {\n                title: gateway.get('id'),\n                value: gateway.get('id'),\n                type: gateway.get('gatewayTypeID'),\n            };\n            \n            if(gateway.id == node.currentParent){\n                selectedItem = gw;\n            }\n            return gw;\n        });\n        \n        this.set('gateways', mappedGateways);\n        this.set('initialSelection', selectedItem);\n        \n        // console.log(this.get('gateways'));\n    },\n    parent: Ember.computed('gateway', function() {\n        let gateway = this.get('gateway');\n        let parent = gateway.get('parentGateway');\n        if(parent == null){\n            // console.log(\"parent is null\");\n            return null;\n        }\n        // console.log(\"parent::: \" + parent.get('id'));\n        return parent.get('id');\n    }),\n    gateways: [],\n    \n    getGatewayUploadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayUploadInterval = gw.gatewayUploadInterval;\n        // console.log(\"gatewayUploadInterval::: \" + gatewayUploadInterval)\n        if(gatewayUploadInterval == null){\n            return 0;\n        }\n            return (gatewayUploadInterval.id).toString();\n    }),\n\n    getGatewayReadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayReadInterval = gw.gatewayReadInterval;\n        // console.log(\"gatewayReadInterval::: \" + gatewayReadInterval)\n        if(gatewayReadInterval == null){\n            return 0;\n        }\n        return (gatewayReadInterval.id).toString();\n    }),\n    // async addParentToGateway(childGateway, newParentGateway) {\n    //     let newRelation = this.store.createRecord('gateway-child-relation', {\n    //       parentGateway: newParentGateway,\n    //       childGateway: childGateway,\n    //       isCurrent: true\n    //     });\n    //     newRelation.save().then(() => {\n    //       // Do something on success, like notifying the user\n    //     }).catch((error) => {\n    //       // Handle errors\n    //     });\n    //   },\n\n\n    addParentToGateway(childGateway, newParentGateway) {\n        let newRelation = this.store.createRecord('gateway-child-relation', {\n            parentGateway: newParentGateway,\n            childGateway: childGateway,\n            isCurrent: true\n            });\n        // console.log(\"About to save gateways for parent and child: \" + childGateway.id + \"  \" + newParentGateway.id)\n        newRelation.save().then(() => {\n          // Add this line to also update the 'children' relationship\n          newParentGateway.get('children').addObject(childGateway);\n          newParentGateway.save();\n    \n          // Do something on success, like notifying the user\n        }).catch((error) => {\n          console.log(\"Error::::::::: \" + error);\n        });\n    }\n\n    \n}){\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    _this = this;\n\n    actions = {\n        //in order for this to work the id of the select element must be the same as the attribute name\n        setGatewayInterval(event) {\n            let gateway = this.get('gateway');\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            //id of the newly selected interval\n            const selectedValue = parseInt(selectedOptions.map(option => option.value));    \n            //interval attribute name\n            const intervalType = event.target.id;\n            // when the record has no interval records associated with it, when you try to save an error is thrown.\n            // I avoid this by defaulting the interval to 5 minutes when the one is saved and the other is null.\n            let notSelected = intervalType == 'gatewayReadInterval' ? 'gatewayUploadInterval' : 'gatewayReadInterval';\n\n            this.store.findRecord('gateway-interval', selectedValue).then((interval) => { \n                let notSelectedIntervalValue = gateway[notSelected];\n                let group_name = intervalType == 'gatewayReadInterval' ? 'instrument_reading_interval' : 'upload_interval';\n                if(notSelectedIntervalValue == null){\n                    //if the non-selected interval is null I default it here.\n                    this.store.query('gateway-interval', {\n                        filter: {\n                          interval_value: 5,\n                          interval_group_name: group_name\n                        }\n                        }).then(function(results) {\n                            gateway.set(notSelected, results.get('firstObject'));\n                            gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                \n                            gateway.save().then(() => {\n                                console.log('Gateway saved successfully!');\n                            }).catch((error) => {\n                                console.log('Error saving gateway:', error);\n                            });\n            \n                        }).catch(function(error) {\n                        console.log(\"Error Getting interval_upload object::: \" + error);\n                      });\n                } else {\n                    \n                    gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                    gateway.save().then(() => {\n                        console.log('Gateway saved successfully!');\n                    }).catch((error) => {\n                        console.log('Error saving gateway:', error);\n                    });\n                }                    \n            });\n            \n        },\n         \n        updatePage(){\n            let store = this.get('store');\n            let gateway = this.get('gateway');\n            gateway.save();\n        },\n        viewData(id, parentGateway) {\n            // console.log(\"Edit-gateway::: \" + id)\n            // console.log(\"parentGateway::: \" + parentGateway)\n            this.get('router').transitionTo('raw-gateway-data', id, {queryParams: {\"raw_parent_gateway\": parentGateway}});\n        },\n        tGraph(id, parentGateway) {\n            let badCodes = ['null', 'undefined', ''];\n            console.log(\"Edit-gateway::: \" + id)\n            console.log(\"parentGateway::: \" + parentGateway)\n            if( badCodes.includes(parentGateway) ){\n                parentGateway = localStorage.getItem('parentGateway');\n            }            \n            // this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, \"voltage-values\", {queryParams: {\"chart_type\": \"voltage-values\", \"chart_parent_gateway\": parentGateway}} );\n            // console.log('parentGateway::::::::::::::::::: ' +  this.get('parentGateway'));\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, \"voltage-values\", { queryParams: { 'chart_type': 'voltage-values', 'parentGateway': this.get('parentGateway'), \"chart_parent_gateway\": parentGateway  }});\n\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveGateway(){\n            const _this = this;\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/gateway\";\n                }\n            } else {\n                window.location.href = \"/gateway\";\n            }\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        // updateProperty(propertyName, propertyValue) {\n        //     this.set(propertyName, propertyValue);\n        // },\n\n        async setID(gw){\n            if(gw != null) {\n\n                let gateway = this.get('gateway');\n                // console.log(gateway);\n                // console.log(\"Parent Selected::: \" + JSON.stringify(gw));\n                let parent = await this.store.findRecord('gateway', gw.value).then((parentGateway) => {\n                    // Parent gateway retrieved successfully\n                    // console.log(\"getting the parent gateway: \" + parentGateway.id);\n                    return parentGateway;\n                }).catch((error) => {\n                    // Handle error if the parent gateway does not exist or any other issue occurs\n                    console.error(\"Error getting parent gateway: \" + error);\n                });\n                this.addParentToGateway(gateway,parent);\n            } else {\n                this.set('gateway.parentGateway', null);\n            }\n        },\n    \n\n\n    }\n}\n\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    // temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    \n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n\n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          return rightAxis;\n    }),\n\n    // temperature_indexes_to_remove: [],\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Coordinator: 1,\n        Voltage: 2,\n        RSSI: 3,\n        carrier: 4, \n        Readings: 5, \n        Uptime: 6, \n        Reconnection: 7, \n        Uploads: 8, \n        var_1: 9, \n        var_2: 10, \n        var_3: 11,\n        Temperature: 12,        \n    }),\n\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        // console.log(\"leftAxisIndex: \" + leftAxisIndex)\n        \n        let parentGateway = this.attrs.getQueryParams(\"chart_parent_gateway\");\n        let coordinatorPosition = this.GATEWAY_ENUM.Coordinator;\n        // keep track of id's that need to be removed from the temperature array too.\n        // let temperature_indexes = [];\n        let zoomLeftAxis = zoomChartData.filter(function(item) {\n            let coordinator = item.values[coordinatorPosition];\n            \n            if (parentGateway !== coordinator) {\n                return false;  // we're tryint to filter out items that don't belong to this gateway.\n            }\n            return true;  // Exclude this item from the output array\n        }).map(function(item) {\n            return item.values[leftAxisIndex];\n        });\n        return zoomLeftAxis;\n    }),\n\n    zoomDataPointsRightAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]\n        // console.log(\"righAxisIndex: \" + rightAxisIndex)\n        \n        let parentGateway = this.attrs.getQueryParams(\"chart_parent_gateway\");\n        let coordinatorPosition = this.GATEWAY_ENUM.Coordinator;\n        // keep track of id's that need to be removed from the temperature array too.\n        // let temperature_indexes = [];\n        let zoomRightAxis = zoomChartData.filter(function(item) {\n            let coordinator = item.values[coordinatorPosition];\n            \n            if (parentGateway !== coordinator) {\n                return false;  // we're tryint to filter out items that don't belong to this gateway.\n            }\n            return true;  // Exclude this item from the output array\n        }).map(function(item) {\n            return item.values[rightAxisIndex];\n        });\n        return zoomRightAxis;\n    }),\n\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n        let left = this.get('zoomDataPointsLeftAxis');\n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = [];\n        let itemHolder = {};\n        let newFullRangePoints = [];\n        let parentGateway = this.attrs.getQueryParams(\"chart_parent_gateway\");\n        let coordinatorPosition = this.GATEWAY_ENUM.Coordinator;\n\n        fullRangePoints = this.get('fullRangeChartData');\n        // First, filter the points where coordinator matches parentGateway\n        let filteredPoints = fullRangePoints.filter(item => {\n            let linesKeys = Object.keys(item.toJSON());\n            let coordinator = item.getProperties(linesKeys)[linesKeys][coordinatorPosition]\n            // console.log(\"item: \" + coordinator + \"  parentGatway: \" + parentGateway + \"  Result: \" + (coordinator === parentGateway) );\n            return coordinator === parentGateway;\n        });\n        // Then, map over the filtered points to get their properties\n        newFullRangePoints = filteredPoints.map(item => {\n            let linesKeys = Object.keys(item.toJSON());\n            return item.getProperties(linesKeys);\n        });\n        \n        return newFullRangePoints;\n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed('zoomChartData', 'parentGateway', 'GATEWAY_ENUM', function () {\n        let parentGateway = this.attrs.getQueryParams(\"chart_parent_gateway\");\n        let coordinatorPosition = this.GATEWAY_ENUM.Coordinator;\n        \n        return this.get('zoomChartData').filter(item => {\n            return item.get('values')[coordinatorPosition] === parentGateway;\n        }).map(item => {\n            return item.get('id');\n        });\n    }),\n\n    fullRangeTimePoints: Ember.computed('fullRangeChartData', 'parentGateway', 'GATEWAY_ENUM', function () {\n        let parentGateway = this.attrs.getQueryParams(\"chart_parent_gateway\");\n        let coordinatorPosition = this.GATEWAY_ENUM.Coordinator;\n    \n        return this.get('fullRangeChartData').filter(item => {\n            return item.get('values')[coordinatorPosition] === parentGateway;\n        }).map(item => {\n            return item.get('id');\n        });\n    }),\n    \n    // zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n    //    //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n    //     return item.get('id');\n    // }),\n\n    // fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n    //    //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n    //     return item.get('id');\n    // }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        // let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        // fullRangeChartLinesData.push(temperature); //#TODO: Add Temp Points\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .ticks(8)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .ticks(8)\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('gateway', function() {\n        return [\"Firmware Version\",\"Coordinator\", \"Voltage\", \"RSSI\", \"Mesh ID\"]\n    }),\n    \n    getGatewayData: Ember.computed('gateway', 'gatewayData', 'temperatureData', function() {\n        let items = [];\n        const filteredData = this.get('gatewayData');\n        \n        if (filteredData) {\n            filteredData.forEach(item => {\n                // console.log(JSON.stringify(item))\n                let firmware = item.values[0];\n                let coordinator = item.values[1];\n                let voltage = item.values[2];\n                let rssi = item.values[3];\n                let mesh_id = item.values[item.values.length - 1];\n                let temperature = item.values[item.values.length -2]\n                if (coordinator === this.get('raw_parent_gateway')) {\n                    items.push({\n                        id: item.id,\n                        values: {\n                            'firm_version': firmware,\n                            'coordinator': coordinator,\n                            'voltage': voltage,\n                            'rssi': rssi,\n                            'mesh_id': mesh_id,\n                            'temperature': temperature || 'Nan'// Added temperature here\n                        },\n                        originalValue: item,\n                        save_values: {\n                            'firm_version': firmware,\n                            'voltage': voltage,\n                            'mesh_id': mesh_id\n                        }\n                    });\n                } else {\n                    console.log(\"Record doesn't match: coordinator: \" + coordinator + \"  raw_parent_gateway: \" + this.get('raw_parent_gateway'));\n                }\n            });\n        }       \n        return items;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n        //   console.log(\"Update property: \" + propertyValue);\n          this.set(propertyName, propertyValue);\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  selected: '', // Set the initial value to 'RSSI'\n\n  defaultSelected: computed('selected', function () {\n    const selected = this.selected;\n    // console.log('selected:::::::::::: ' + selected);\n    return selected === '' ? 'Voltage' : selected;\n  }),\n\n\n  actions: {\n    handleSelectedFieldChange(newValue) {\n      this.set('selected', newValue);\n    },\n  },\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class LeftAxisDropdown extends Component.extend({}) {\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        tGraph(id, modelName, params) {\n            // console.log(\"in LeftAxisDropdown:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\")\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, modelName, params);\n        },\n    }\n}","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  rightAxisField: '', // Set the initial value to 'RSSI'\n  routeValue: 'voltage-values',\n\n  defaultRightAxisField: computed('rightAxisField', function() {\n    const rightAxisField = this.rightAxisField;\n    // console.log('rightAxisField:::::::::::: ' + rightAxisField);\n    return rightAxisField === '' ? 'Temperature' : rightAxisField;\n  }),\n\n  getRouteValue: computed('selected', function () {\n    const selected = this.selected.toLowerCase();\n    // console.log('selected:::::::::::: ' + selected);\n    this.set('routeValue', selected + '-values');\n  }),\n\n  actions: {\n    handleRightAxisFieldChange(newValue) {\n      // console.log('handleRightAxisFieldChange:::::::::::: ' + newValue);    \n      this.set('rightAxisField', newValue);\n    }\n  }\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'VOLT',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n \n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                newAlertObject.creator = this.username;\n\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                \n                newAlertObject.gateway = store.peekRecord('gateway', this.get('id'));\n\n                if (newAlertObject.gateway !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let target = this.get('newAlertObject.target');\n                        \n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ( (val.length == 0) || (cb.length == 0) ) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                        \n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewGatewayObject(_this) {\n    // console.log(\"NewGatewayObject::: \");\n    _this.set('newGatewayObject', {});\n    _this.set('name', null);\n    _this.set('installDate', null);\n\n\n    // name: DS.attr('text'),\n    // gatewayType: DS.belongsTo('gateway-type', {async: false}),\n    // project: DS.attr('text'),\n    // location: DS.attr('text'),\n    // depth: DS.attr('number'),\n    // level: DS.attr('text'),\n    // installDate: DS.attr(),\n    // installedBy: DS.attr('text'),\n    // purpose: DS.attr('text'),\n    // notes: DS.attr('text'),\n    // alerts: DS.hasMany('alert', {async: false}),\n    // gatewayTypeID: DS.attr(),\n    // active: DS.attr('boolean'),\n\n}\n\nexport default class CreateBluCellGateway extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewGatewayObject(this);\n    }\n\n    isAuthenticated = true;\n    newGatewayObject = {};\n    installDate = null;\n    authError = false;\n\n    actions = {\n        async createGateway(object){\n\n            let _this = this,\n            store = this.get('store'),\n            newGatewayObject = this.get('newGatewayObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newGatewayObject.id = this.get('id');\n            newGatewayObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            newGatewayObject.depth = this.get('depth');\n            newGatewayObject.gatewayType = store.peekRecord('gateway-type', this.get('typeID'));\n            newGatewayObject.active = true;\n\n            if(typeof newGatewayObject.id === 'undefined' || newGatewayObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('installDate') != null) {\n                newGatewayObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            let newGateway = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    // console.log(\"Creating....\");\n                    newGateway = store.createRecord('gateway', newGatewayObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if(!error) {\n                newGateway.save().then(function(results){\n                    // console.log(dup);\n                    if(results.id != null) {\n                        _this.get('submit')(results.id);\n                    } else {\n                        this.setError('isVisibleError',true);\n                        error = true;\n                    }\n                }).catch(function(reason) {\n                    _this.setError('isVisibleError',true);\n                    _this.setError('authError',true);\n                }); \n            } \n        },\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let gatewayValueObjectValues = _this.get('gatewayValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(gatewayValueObjectValues).forEach(function(key,index) {\n        gatewayValueObjectValues[key] = null;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n\n    newGatewayValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newGatewayValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n\n    gatewayValueObjectValues: Ember.computed('anchorDistances', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('anchorDistances').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    newGatewayValueObjectValues: Ember.computed('gatewayValueObjectValues', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('gatewayValueObjectValues').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n             // console.log(\"saveNew\");\n            let _this = this,\n                store = this.get('store'),\n                newGatewayValuesObject = this.get('newGatewayValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                gatewayValues = this.get('gatewayValues'),\n                temperatureValues = this.get('temperatureValues');\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-gateway-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newGatewayValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newGatewayValuesObject.values = Object.values(this.get('newGatewayValueObjectValues'));\n\n            const newGatewayValues = store.createRecord('gateway-value', newGatewayValuesObject);\n            // save new gateway-value to DB\n            const savedGatewayValuesObject = newGatewayValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if gateway-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //gatewayValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n            })\n            .catch(function(reason){\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    ajax: Ember.inject.service(),\n\n    store: Ember.inject.service(),\n    tr: null,\n    gwID:\"\",\n    saveMessage: '',\n    initTriggerStamp: '',\n    \n    isVisibleError: false,\n    emptyBoldError: false,\n    nonNumericValueError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        saveAlert() {\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            \n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            \n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"saved\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"saved\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        repeatChanged() {\n            let tr = this.get('alert');\n            tr.repeats = document.getElementById('alertRepeat').checked;\n            this.set('alert',tr);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { camelize } from '@ember/string';\n\nexport default class EditInstrument extends Component.extend({\n    gatewayReadingsIntervals: null,\n\n    init(){\n        this._super(...arguments);\n    },\n    \n    store: Ember.inject.service(),\n    isAuthenticated : true,\n    // selectedReadingIntervalID : null,\n    selectedModel : null,\n    editing : 0,\n    \n    getGatewayUploadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayUploadInterval = gw.gatewayUploadInterval;\n        // console.log(\"gatewayUploadInterval::: \" + gatewayUploadInterval)\n        if(gatewayUploadInterval == null){\n            return 0;\n        }\n            return (gatewayUploadInterval.id).toString();\n    }),\n\n    getGatewayReadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayReadInterval = gw.gatewayReadInterval;\n        // console.log(\"gatewayReadInterval::: \" + gatewayReadInterval)\n        if(gatewayReadInterval == null){\n            return 0;\n        }\n        return (gatewayReadInterval.id).toString();\n    }),\n    \n}){\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    _this = this;\n\n    actions = {\n        //in order for this to work the id of the select element must be the same as the attribute name\n        setGatewayInterval(event) {\n            let gateway = this.get('gateway');\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            //id of the newly selected interval\n            const selectedValue = parseInt(selectedOptions.map(option => option.value));    \n            //interval attribute name\n            const intervalType = event.target.id;\n            // when the record has no interval records associated with it, when you try to save an error is thrown.\n            // I avoid this by defaulting the interval to 5 minutes when the one is saved and the other is null.\n            let notSelected = intervalType == 'gatewayReadInterval' ? 'gatewayUploadInterval' : 'gatewayReadInterval';\n\n            this.store.findRecord('gateway-interval', selectedValue).then((interval) => { \n                let notSelectedIntervalValue = gateway[notSelected];\n                let group_name = intervalType == 'gatewayReadInterval' ? 'instrument_reading_interval' : 'upload_interval';\n                if(notSelectedIntervalValue == null){\n                    //if the non-selected interval is null I default it here.\n                    this.store.query('gateway-interval', {\n                        filter: {\n                          interval_value: 5,\n                          interval_group_name: group_name\n                        }\n                        }).then(function(results) {\n                            gateway.set(notSelected, results.get('firstObject'));\n                            gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                \n                            gateway.save().then(() => {\n                                console.log('Gateway saved successfully!');\n                            }).catch((error) => {\n                                console.log('Error saving gateway:', error);\n                            });\n            \n                        }).catch(function(error) {\n                        console.log(\"Error Getting interval_upload object::: \" + error);\n                      });\n                } else {\n                    \n                    gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                    gateway.save().then(() => {\n                        console.log('Gateway saved successfully!');\n                    }).catch((error) => {\n                        console.log('Error saving gateway:', error);\n                    });\n                }                    \n            });\n            \n        },\n                \n        // setGatewayUploadIntervals(intervalID) {\n        //     this.store.findRecord('gateway-interval', intervalID).then((interval) => { \n        //         let gateway = this.get('gateway');\n\n        //         gateway.set('gatewayUploadInterval', interval); // Set the related object as the new value of the attribute\n        //         gateway.save().then(() => {\n        //             console.log('Gateway saved successfully!');\n        //         }).catch((error) => {\n        //             console.log('Error saving gateway:', error);\n        //         });\n        //     });\n            \n        // },\n        \n        updatePage(){\n            let store = this.get('store');\n            let gateway = this.get('gateway');\n            gateway.save();\n        },\n        viewData(id) {\n            this.get('router').transitionTo('raw-gateway-data', id);\n        },\n        tGraph(id) {\n            //console.log(\"Edit-gateway::: \" + id)\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, 'voltage-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveGateway(){\n            const _this = this;\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/gateway\";\n                }\n            } else {\n                window.location.href = \"/gateway\";\n            }\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n\n    }\n}\n\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          return rightAxis;\n    }),\n\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Coordinator: 1,\n        Voltage: 2,\n        RSSI: 3,\n        carrier: 4, \n        Readings: 5, \n        Uptime: 6, \n        Reconnection: 7, \n        Uploads: 8, \n        var_1: 9, \n        var_2: 10, \n        var_3: 11,\n        Temperature: 12,        \n    }),\n\n    // zoomTempPoints: Ember.computed(function(){\n    //     // let right = this.get('zoomDataPointsRightAxis');\n    //     let temperaturePoints = [];\n    //     let zoomTempData = this.get(\"zoomTempData\");\n    //     zoomTempData.forEach(function(item, i){\n    //         let linesKyes = Object.keys(item.toJSON());\n    //         var chartData = item.getProperties(linesKyes);\n    //         temperaturePoints.push(chartData.values[0]);\n    //         // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n    //     });\n        \n    //     return temperaturePoints; //chartData;\n    // }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        // console.log(JSON.stringify(zoomLeftAxis))\n        return zoomLeftAxis;\n    }),\n    \n    zoomDataPointsRightAxis: Ember.computed(function(){\n        //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        ////console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        // console.log(JSON.stringify(zoomRightAxis))\n        return zoomRightAxis;\n\n    }),\n\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n       //console.log(\"zoomDataPoints::::::::::::::: 4 and 6 \" + this.get(\"chartDataValueName\") );\n        let left = this.get('zoomDataPointsLeftAxis');\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        fullRangePoints = this.get('fullRangeChartData');\n        fullRangePoints.map(function (item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            let itemHolder = item.getProperties(linesKyes);\n            return itemHolder;\n        });\n        \n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n       //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n       //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n    anchorDistances: Ember.computed('gateway', function() {\n        return [\"Firmware Version\", \"Voltage\",\"RSSI\",\"Carrier\",\"Readings\",\"Uptime in Seconds\",\"Reconnection Attempts\",\"Uploads\"]\n}),\n\ngetGatewayData: Ember.computed('gateway', 'gatewayData', function() {\n    let fields = [0,2,3,4,5,6,7,8];\n    let items = [];\n    // Perform filtering logic on initial data\n    const filteredData = this.get('gatewayData');\n    if (filteredData) {\n      filteredData.forEach(item => {\n        let values = [];\n        let firmware = item.values[0];\n        let voltage = item.values[2];\n        let rssi = item.values[3];\n        let carrier = item.values[4];\n        let readings = item.values[5];\n        let uptime = item.values[6];\n        let recon = item.values[7];\n        let uploads = item.values[8];\n        let temperature = item.values[item.values.length -2];\n        items.push({ id: item.id, values: {'firm_version':firmware,'voltage':voltage,'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads, 'temperature': temperature}, \n        originalValue: item, save_values:{'firm_version':firmware,'voltage':voltage, 'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads , 'temperature': temperature} });\n      });\n    }        \n    \n    return items;\n  }),\n\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n          // console.log(\"Update property: \" + propertyValue);\n          this.set(propertyName, propertyValue);\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  selected: '', // Set the initial value to 'RSSI'\n\n  defaultSelected: computed('selected', function () {\n    const selected = this.selected;\n    // console.log('selected:::::::::::: ' + selected);\n    return selected === '' ? 'Voltage' : selected;\n  }),\n\n\n  actions: {\n    handleSelectedFieldChange(newValue) {\n      this.set('selected', newValue);\n    },\n  },\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class LeftAxisDropdown extends Component.extend({}) {\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        tGraph(id, modelName, params) {\n            // console.log(\"in LeftAxisDropdown:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\")\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, modelName, params);\n        },\n    }\n}","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  rightAxisField: '', // Set the initial value to 'RSSI'\n  routeValue: 'voltage-values',\n\n  defaultRightAxisField: computed('rightAxisField', function() {\n    const rightAxisField = this.rightAxisField;\n    // console.log('rightAxisField:::::::::::: ' + rightAxisField);\n    return rightAxisField === '' ? 'Temperature' : rightAxisField;\n  }),\n\n  getRouteValue: computed('selected', function () {\n    const selected = this.selected.toLowerCase();\n    // console.log('selected:::::::::::: ' + selected);\n    this.set('routeValue', selected + '-values');\n  }),\n\n  actions: {\n    handleRightAxisFieldChange(newValue) {\n      // console.log('handleRightAxisFieldChange:::::::::::: ' + newValue);    \n      this.set('rightAxisField', newValue);\n    }\n  }\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            let selector = this.$('#chan_select');\n\n            let selected = {};\n            selector.val().forEach(function(selection) {\n                selected[selection] = true;\n            });\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                selector.val().forEach(function(selection) {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = selection;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save();\n                                });\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        // console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    actions: {\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('anchorList');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { camelize } from '@ember/string';\n\nexport default class EditInstrument extends Component.extend({\n    gatewayReadingsIntervals: null,\n\n    init(){\n        this._super(...arguments);\n    },\n    \n    store: Ember.inject.service(),\n    isAuthenticated : true,\n    // selectedReadingIntervalID : null,\n    selectedModel : null,\n    editing : 0,\n    \n    getGatewayUploadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayUploadInterval = gw.gatewayUploadInterval;\n        // console.log(\"gatewayUploadInterval::: \" + gatewayUploadInterval)\n        if(gatewayUploadInterval == null){\n            return 0;\n        }\n            return (gatewayUploadInterval.id).toString();\n    }),\n\n    getGatewayReadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayReadInterval = gw.gatewayReadInterval;\n        // console.log(\"gatewayReadInterval::: \" + gatewayReadInterval)\n        if(gatewayReadInterval == null){\n            return 0;\n        }\n        return (gatewayReadInterval.id).toString();\n    }),\n    \n}){\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    _this = this;\n\n    actions = {\n        //in order for this to work the id of the select element must be the same as the attribute name\n        setGatewayInterval(event) {\n            let gateway = this.get('gateway');\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            //id of the newly selected interval\n            const selectedValue = parseInt(selectedOptions.map(option => option.value));    \n            //interval attribute name\n            const intervalType = event.target.id;\n            // when the record has no interval records associated with it, when you try to save an error is thrown.\n            // I avoid this by defaulting the interval to 5 minutes when the one is saved and the other is null.\n            let notSelected = intervalType == 'gatewayReadInterval' ? 'gatewayUploadInterval' : 'gatewayReadInterval';\n\n            this.store.findRecord('gateway-interval', selectedValue).then((interval) => { \n                let notSelectedIntervalValue = gateway[notSelected];\n                let group_name = intervalType == 'gatewayReadInterval' ? 'instrument_reading_interval' : 'upload_interval';\n                if(notSelectedIntervalValue == null){\n                    //if the non-selected interval is null I default it here.\n                    this.store.query('gateway-interval', {\n                        filter: {\n                          interval_value: 5,\n                          interval_group_name: group_name\n                        }\n                        }).then(function(results) {\n                            gateway.set(notSelected, results.get('firstObject'));\n                            gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                \n                            gateway.save().then(() => {\n                                console.log('Gateway saved successfully!');\n                            }).catch((error) => {\n                                console.log('Error saving gateway:', error);\n                            });\n            \n                        }).catch(function(error) {\n                        console.log(\"Error Getting interval_upload object::: \" + error);\n                      });\n                } else {\n                    \n                    gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                    gateway.save().then(() => {\n                        console.log('Gateway saved successfully!');\n                    }).catch((error) => {\n                        console.log('Error saving gateway:', error);\n                    });\n                }                    \n            });\n            \n        },\n                \n        updatePage(){\n            let store = this.get('store');\n            let gateway = this.get('gateway');\n            gateway.save();\n        },\n        viewData(id) {\n            this.get('router').transitionTo('raw-gateway-data', id);\n        },\n        tGraph(id) {\n            //console.log(\"Edit-gateway::: \" + id)\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, 'voltage-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveGateway(){\n            const _this = this;\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/gateway\";\n                }\n            } else {\n                window.location.href = \"/gateway\";\n            }\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        // updateProperty(propertyName, propertyValue) {\n        //     this.set(propertyName, propertyValue);\n        // },\n    \n\n\n    }\n}\n\n\n\n// import Component from '@ember/component'; \n// export default Component.extend({ \n//     classNames: ['person-select'], \n//     people: null, \n//     selectedPerson: null, \n//     actions: { \n//         selectPerson(person) { \n//             this.set('selectedPerson', person); \n//         } \n//     } \n// });\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          return rightAxis;\n    }),\n\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Coordinator: 1,\n        Voltage: 2,\n        RSSI: 3,\n        carrier: 4, \n        Readings: 5, \n        Uptime: 6, \n        Reconnection: 7, \n        Uploads: 8, \n        var_1: 9, \n        var_2: 10, \n        var_3: 11,\n        Temperature: 12,        \n    }),\n\n    // zoomTempPoints: Ember.computed(function(){\n    //     // let right = this.get('zoomDataPointsRightAxis');\n    //     let temperaturePoints = [];\n    //     let zoomTempData = this.get(\"zoomTempData\");\n    //     zoomTempData.forEach(function(item, i){\n    //         let linesKyes = Object.keys(item.toJSON());\n    //         var chartData = item.getProperties(linesKyes);\n    //         temperaturePoints.push(chartData.values[0]);\n    //         // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n    //     });\n        \n    //     return temperaturePoints; //chartData;\n    // }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        console.log(\"this.leftAxis\");\n        console.log(this.leftAxis)\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        // console.log(JSON.stringify(zoomLeftAxis))\n        return zoomLeftAxis;\n    }),\n    \n    zoomDataPointsRightAxis: Ember.computed(function(){\n        //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        ////console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        // console.log(JSON.stringify(zoomRightAxis))\n        return zoomRightAxis;\n\n    }),\n\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n       //console.log(\"zoomDataPoints::::::::::::::: 4 and 6 \" + this.get(\"chartDataValueName\") );\n        let left = this.get('zoomDataPointsLeftAxis');\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        fullRangePoints = this.get('fullRangeChartData');\n        fullRangePoints.map(function (item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            let itemHolder = item.getProperties(linesKyes);\n            return itemHolder;\n        });\n        \n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n       //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n       //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          return rightAxis;\n    }),\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Voltage: 1,\n        RSSI: 2,\n        carrier: 3, \n        Readings: 4, \n        Uptime: 5, \n        Reconnection: 6, \n        Uploads: 7, \n        Temperature:8,\n        var_1: 9, \n        var_2: 9, \n        var_3: 10,\n    }),\n\n    zoomTempPoints: Ember.computed(function(){\n        // let right = this.get('zoomDataPointsRightAxis');\n        let temperaturePoints = [];\n        let zoomTempData = this.get(\"zoomTempData\");\n        zoomTempData.forEach(function(item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n            temperaturePoints.push(chartData.values[0]);\n            // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n        });\n        // console.log(\"zoomTempPoints::::::::::::::: 7\");    \n        // let linesKyes = Object.keys(item.toJSON());\n        // var chartData = item.getProperties(linesKyes);\n        //  = this.get('temperaturePoints').push(chartData.values);\n        \n        return temperaturePoints; //chartData;\n    }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        //TODO: fix this TA.  Hack because we added temperature at the last minute.\n        if(this.leftAxis == 'Temperature'){\n            // console.log(\"zoomDataPointsLeftAxis::::::::::::::: \" + this.get(\"temperaturePoints\"));\n            return this.get(\"zoomTempPoints\");\n        }\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        return zoomLeftAxis;\n    }),\n    zoomDataPointsRightAxis: Ember.computed(function(){\n       //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null && this.rightAxis != 'Temperature'){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        if (this.rightAxis == 'Temperature'){\n            zoomRightAxis = this.get(\"zoomTempPoints\");\n        }\n        ////console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        return zoomRightAxis;\n\n    }),\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n        \n       //console.log(\"zoomDataPoints::::::::::::::: 4 and 6 \" + this.get(\"chartDataValueName\") );\n        let left = this.get('zoomDataPointsLeftAxis');\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        if(this.leftAxis != 'Temperature'){\n            fullRangePoints = this.get('fullRangeChartData');\n            fullRangePoints.map(function (item, i){\n                let linesKyes = Object.keys(item.toJSON());\n                let itemHolder = item.getProperties(linesKyes);\n                return itemHolder;\n            });\n        } else {\n            itemHolder.values = [];\n            fullRangePoints = this.get(\"temperaturePoints\");\n            if(this.leftAxis == 'Temperature'){\n                fullRangePoints.forEach(function(item){\n                    itemHolder.values.push(item[0]);\n                });\n            }\n            fullRangePoints = itemHolder;\n        }\n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n       //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n       //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        // fullRangeChartLinesData.push(temperature); //#TODO: Add Temp Points\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n    anchorDistances: Ember.computed('gateway', function() {\n        return [\"Firmware Version\", \"Voltage\",\"RSSI\",\"Carrier\",\"Readings\",\"Uptime in Seconds\",\"Reconnection Attempts\",\"Uploads\"]\n}),\n\ngetGatewayData: Ember.computed('gateway', 'gatewayData', function() {\n    let fields = [0,2,3,4,5,6,7,8];\n    let items = [];\n    // Perform filtering logic on initial data\n    const filteredData = this.get('gatewayData');\n    if (filteredData) {\n      filteredData.forEach(item => {\n        let values = [];\n        let firmware = item.values[0];\n        let voltage = item.values[2];\n        let rssi = item.values[3];\n        let carrier = item.values[4];\n        let readings = item.values[5];\n        let uptime = item.values[6];\n        let recon = item.values[7];\n        let uploads = item.values[8];\n        let temperature = item.values[item.values.length -2];\n        items.push({ id: item.id, values: {'firm_version':firmware,'voltage':voltage,'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads, 'temperature': temperature}, \n        originalValue: item, save_values:{'firm_version':firmware,'voltage':voltage, 'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads , 'temperature': temperature} });\n      });\n    }        \n    \n    return items;\n  }),\n\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n          // console.log(\"Update property: \" + propertyValue);\n          this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class LeftAxisDropdown extends Component.extend({}) {\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        tGraph(id, modelName, params) {\n            // console.log(\"in LeftAxisDropdown:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\")\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, modelName, params);\n        },\n    }\n}","import Ember from 'ember';\nimport Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class TemporalGatewayRightAxisDropdown extends Component.extend({\n}) {\n    @service router;\n    @service store;\n\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    selectedOption = null;\n    \n    actions = {\n        setSelection(selected) {\n            this.set('selectedOption', selected)\n            // console.log(this.get('selectedOption'))\n        },\n    }\n}","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            let selector = this.$('#chan_select');\n\n            let selected = {};\n            selector.val().forEach(function(selection) {\n                selected[selection] = true;\n            });\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                selector.val().forEach(function(selection) {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = selection;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save();\n                                });\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewGatewayObject(_this) {\n    // console.log(\"NewGatewayObject::: \");\n    _this.set('newGatewayObject', {});\n    _this.set('name', null);\n    _this.set('installDate', null);\n\n}\n\nexport default class CreateBluCellGateway extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewGatewayObject(this);\n    }\n\n    isAuthenticated = true;\n    newGatewayObject = {};\n    installDate = null;\n    authError = false;\n\n    actions = {\n        async createGateway(object){\n\n            let _this = this,\n            store = this.get('store'),\n            newGatewayObject = this.get('newGatewayObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newGatewayObject.id = this.get('id');\n            newGatewayObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            newGatewayObject.depth = this.get('depth');\n            newGatewayObject.gatewayType = store.peekRecord('gateway-type', this.get('typeID'));\n            newGatewayObject.active = true;\n\n            let interval_upload = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'upload_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayUploadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                }).catch(function(error) {\n                console.log(\"Error Getting interval_upload object::: \" + error);\n              });\n\n            let interval_read = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'instrument_reading_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayReadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                  }).catch(function(error) {\n                    // handle error here\n                    console.log(\"Error Getting interval_read object::: \" + error);\n                });\n              \n\n            if(typeof newGatewayObject.id === 'undefined' || newGatewayObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('installDate') != null) {\n                newGatewayObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            let newGateway = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    // console.log(\"Creating....\");\n                    newGateway = store.createRecord('gateway', newGatewayObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if(!error) {\n                newGateway.save().then(function(results){\n                    // console.log(dup);\n                    if(results.id != null) {\n                        _this.get('submit')(results.id);\n                    } else {\n                        this.setError('isVisibleError',true);\n                        error = true;\n                    }\n                }).catch(function(reason) {\n                    _this.setError('isVisibleError',true);\n                    _this.setError('authError',true);\n                }); \n            } \n        },\n        // bulbChanged(object)\n        // {\n        //     this.set(\"bulbed\",document.getElementById('newInstrumentObjectBulbed').checked);\n        // },\n        // plateChanged(object)\n        // {\n        //     this.set(\"plated\",document.getElementById('newInstrumentObjectPlated').checked);\n        // }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let gatewayValueObjectValues = _this.get('gatewayValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(gatewayValueObjectValues).forEach(function(key,index) {\n        gatewayValueObjectValues[key] = null;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n\n    newGatewayValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newGatewayValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n\n    gatewayValueObjectValues: Ember.computed('anchorDistances', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('anchorDistances').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    newGatewayValueObjectValues: Ember.computed('gatewayValueObjectValues', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('gatewayValueObjectValues').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            //  console.log(\"saveNew\");\n            let _this = this,\n                store = this.get('store'),\n                newGatewayValuesObject = this.get('newGatewayValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                gatewayValues = this.get('gatewayValues'),\n                temperatureValues = this.get('temperatureValues');\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-gateway-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newGatewayValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newGatewayValuesObject.values = Object.values(this.get('newGatewayValueObjectValues'));\n\n            const newGatewayValues = store.createRecord('gateway-value', newGatewayValuesObject);\n            // save new gateway-value to DB\n            const savedGatewayValuesObject = newGatewayValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if gateway-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //gatewayValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n            })\n            .catch(function(reason){\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        // console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    actions: {\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('anchorList');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { camelize } from '@ember/string';\n\nexport default class EditInstrument extends Component.extend({\n    gatewayReadingsIntervals: null,\n\n    init(){\n        this._super(...arguments);\n    },\n    \n    store: Ember.inject.service(),\n    isAuthenticated : true,\n    // selectedReadingIntervalID : null,\n    selectedModel : null,\n    editing : 0,\n    \n    getGatewayUploadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayUploadInterval = gw.gatewayUploadInterval;\n        // console.log(\"gatewayUploadInterval::: \" + gatewayUploadInterval)\n        if(gatewayUploadInterval == null){\n            return 0;\n        }\n            return (gatewayUploadInterval.id).toString();\n    }),\n\n    getGatewayReadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayReadInterval = gw.gatewayReadInterval;\n        // console.log(\"gatewayReadInterval::: \" + gatewayReadInterval)\n        if(gatewayReadInterval == null){\n            return 0;\n        }\n        return (gatewayReadInterval.id).toString();\n    }),\n    \n}){\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    _this = this;\n\n    actions = {\n        //in order for this to work the id of the select element must be the same as the attribute name\n        setGatewayInterval(event) {\n            let gateway = this.get('gateway');\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            //id of the newly selected interval\n            const selectedValue = parseInt(selectedOptions.map(option => option.value));    \n            //interval attribute name\n            const intervalType = event.target.id;\n            // when the record has no interval records associated with it, when you try to save an error is thrown.\n            // I avoid this by defaulting the interval to 5 minutes when the one is saved and the other is null.\n            let notSelected = intervalType == 'gatewayReadInterval' ? 'gatewayUploadInterval' : 'gatewayReadInterval';\n\n            this.store.findRecord('gateway-interval', selectedValue).then((interval) => { \n                let notSelectedIntervalValue = gateway[notSelected];\n                let group_name = intervalType == 'gatewayReadInterval' ? 'instrument_reading_interval' : 'upload_interval';\n                if(notSelectedIntervalValue == null){\n                    //if the non-selected interval is null I default it here.\n                    this.store.query('gateway-interval', {\n                        filter: {\n                          interval_value: 5,\n                          interval_group_name: group_name\n                        }\n                        }).then(function(results) {\n                            gateway.set(notSelected, results.get('firstObject'));\n                            gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                \n                            gateway.save().then(() => {\n                                console.log('Gateway saved successfully!');\n                            }).catch((error) => {\n                                console.log('Error saving gateway:', error);\n                            });\n            \n                        }).catch(function(error) {\n                        console.log(\"Error Getting interval_upload object::: \" + error);\n                      });\n                } else {\n                    \n                    gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                    gateway.save().then(() => {\n                        console.log('Gateway saved successfully!');\n                    }).catch((error) => {\n                        console.log('Error saving gateway:', error);\n                    });\n                }                    \n            });\n            \n        },\n                \n        updatePage(){\n            let store = this.get('store');\n            let gateway = this.get('gateway');\n            gateway.save();\n        },\n        viewData(id) {\n            this.get('router').transitionTo('raw-gateway-data', id);\n        },\n        tGraph(id) {\n            //console.log(\"Edit-gateway::: \" + id)\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, 'voltage-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveGateway(){\n            const _this = this;\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/gateway\";\n                }\n            } else {\n                window.location.href = \"/gateway\";\n            }\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        // updateProperty(propertyName, propertyValue) {\n        //     this.set(propertyName, propertyValue);\n        // },\n    \n\n\n    }\n}\n\n\n\n// import Component from '@ember/component'; \n// export default Component.extend({ \n//     classNames: ['person-select'], \n//     people: null, \n//     selectedPerson: null, \n//     actions: { \n//         selectPerson(person) { \n//             this.set('selectedPerson', person); \n//         } \n//     } \n// });\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          return rightAxis;\n    }),\n\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Coordinator: 1,\n        Voltage: 2,\n        RSSI: 3,\n        carrier: 4, \n        Readings: 5, \n        Uptime: 6, \n        Reconnection: 7, \n        Uploads: 8, \n        var_1: 9, \n        var_2: 10, \n        var_3: 11,\n        Temperature: 12,        \n    }),\n\n    // zoomTempPoints: Ember.computed(function(){\n    //     // let right = this.get('zoomDataPointsRightAxis');\n    //     let temperaturePoints = [];\n    //     let zoomTempData = this.get(\"zoomTempData\");\n    //     zoomTempData.forEach(function(item, i){\n    //         let linesKyes = Object.keys(item.toJSON());\n    //         var chartData = item.getProperties(linesKyes);\n    //         temperaturePoints.push(chartData.values[0]);\n    //         // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n    //     });\n        \n    //     return temperaturePoints; //chartData;\n    // }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        // console.log(JSON.stringify(zoomLeftAxis))\n        return zoomLeftAxis;\n    }),\n    \n    zoomDataPointsRightAxis: Ember.computed(function(){\n        //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        ////console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        // console.log(JSON.stringify(zoomRightAxis))\n        return zoomRightAxis;\n\n    }),\n\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n       //console.log(\"zoomDataPoints::::::::::::::: 4 and 6 \" + this.get(\"chartDataValueName\") );\n        let left = this.get('zoomDataPointsLeftAxis');\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        fullRangePoints = this.get('fullRangeChartData');\n        fullRangePoints.map(function (item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            let itemHolder = item.getProperties(linesKyes);\n            return itemHolder;\n        });\n        \n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n       //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n       //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          return rightAxis;\n    }),\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Voltage: 1,\n        RSSI: 2,\n        carrier: 3, \n        Readings: 4, \n        Uptime: 5, \n        Reconnection: 6, \n        Uploads: 7, \n        Temperature:8,\n        var_1: 9, \n        var_2: 9, \n        var_3: 10,\n    }),\n\n    zoomTempPoints: Ember.computed(function(){\n        // let right = this.get('zoomDataPointsRightAxis');\n        let temperaturePoints = [];\n        let zoomTempData = this.get(\"zoomTempData\");\n        zoomTempData.forEach(function(item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n            temperaturePoints.push(chartData.values[0]);\n            // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n        });\n        // console.log(\"zoomTempPoints::::::::::::::: 7\");    \n        // let linesKyes = Object.keys(item.toJSON());\n        // var chartData = item.getProperties(linesKyes);\n        //  = this.get('temperaturePoints').push(chartData.values);\n        \n        return temperaturePoints; //chartData;\n    }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        //TODO: fix this TA.  Hack because we added temperature at the last minute.\n        if(this.leftAxis == 'Temperature'){\n            // console.log(\"zoomDataPointsLeftAxis::::::::::::::: \" + this.get(\"temperaturePoints\"));\n            return this.get(\"zoomTempPoints\");\n        }\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        return zoomLeftAxis;\n    }),\n    zoomDataPointsRightAxis: Ember.computed(function(){\n       //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null && this.rightAxis != 'Temperature'){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        if (this.rightAxis == 'Temperature'){\n            zoomRightAxis = this.get(\"zoomTempPoints\");\n        }\n        ////console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        return zoomRightAxis;\n\n    }),\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n        \n       //console.log(\"zoomDataPoints::::::::::::::: 4 and 6 \" + this.get(\"chartDataValueName\") );\n        let left = this.get('zoomDataPointsLeftAxis');\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        if(this.leftAxis != 'Temperature'){\n            fullRangePoints = this.get('fullRangeChartData');\n            fullRangePoints.map(function (item, i){\n                let linesKyes = Object.keys(item.toJSON());\n                let itemHolder = item.getProperties(linesKyes);\n                return itemHolder;\n            });\n        } else {\n            itemHolder.values = [];\n            fullRangePoints = this.get(\"temperaturePoints\");\n            if(this.leftAxis == 'Temperature'){\n                fullRangePoints.forEach(function(item){\n                    itemHolder.values.push(item[0]);\n                });\n            }\n            fullRangePoints = itemHolder;\n        }\n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n       //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n       //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        // fullRangeChartLinesData.push(temperature); //#TODO: Add Temp Points\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n    anchorDistances: Ember.computed('gateway', function() {\n        return [\"Firmware Version\", \"Voltage\",\"RSSI\",\"Carrier\",\"Readings\",\"Uptime in Seconds\",\"Reconnection Attempts\",\"Uploads\"]\n}),\n\ngetGatewayData: Ember.computed('gateway', 'gatewayData', function() {\n    let fields = [0,2,3,4,5,6,7,8];\n    let items = [];\n    // Perform filtering logic on initial data\n    const filteredData = this.get('gatewayData');\n    if (filteredData) {\n      filteredData.forEach(item => {\n        let values = [];\n        let firmware = item.values[0];\n        let voltage = item.values[2];\n        let rssi = item.values[3];\n        let carrier = item.values[4];\n        let readings = item.values[5];\n        let uptime = item.values[6];\n        let recon = item.values[7];\n        let uploads = item.values[8];\n        let temperature = item.values[item.values.length -2];\n        items.push({ id: item.id, values: {'firm_version':firmware,'voltage':voltage,'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads, 'temperature': temperature}, \n        originalValue: item, save_values:{'firm_version':firmware,'voltage':voltage, 'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads , 'temperature': temperature} });\n      });\n    }        \n    \n    return items;\n  }),\n\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n          // console.log(\"Update property: \" + propertyValue);\n          this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class LeftAxisDropdown extends Component.extend({}) {\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        tGraph(id, modelName, params) {\n            // console.log(\"in LeftAxisDropdown:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\")\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, modelName, params);\n        },\n    }\n}","import Ember from 'ember';\nimport Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class TemporalGatewayRightAxisDropdown extends Component.extend({\n}) {\n    @service router;\n    @service store;\n\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    selectedOption = null;\n    \n    actions = {\n        setSelection(selected) {\n            this.set('selectedOption', selected)\n            // console.log(this.get('selectedOption'))\n        },\n    }\n}","import BreadCrumbs from \"ember-breadcrumbs/components/bread-crumbs\";\n\nexport default BreadCrumbs;\n","define(\"geotechnical-data-platform-new/components/bs-accordion\", [\"exports\", \"ember-bootstrap/components/bs-accordion\"], function (_exports, _bsAccordion) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsAccordion.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-accordion/item\", [\"exports\", \"ember-bootstrap/components/bs-accordion/item\"], function (_exports, _item) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-accordion/item/body\", [\"exports\", \"ember-bootstrap/components/bs-accordion/item/body\"], function (_exports, _body) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _body.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-accordion/item/title\", [\"exports\", \"ember-bootstrap/components/bs-accordion/item/title\"], function (_exports, _title) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _title.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-alert\", [\"exports\", \"ember-bootstrap/components/bs-alert\"], function (_exports, _bsAlert) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsAlert.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-button-group\", [\"exports\", \"ember-bootstrap/components/bs-button-group\"], function (_exports, _bsButtonGroup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsButtonGroup.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-button-group/button\", [\"exports\", \"ember-bootstrap/components/bs-button-group/button\"], function (_exports, _button) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _button.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-button\", [\"exports\", \"ember-bootstrap/components/bs-button\"], function (_exports, _bsButton) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsButton.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-carousel\", [\"exports\", \"ember-bootstrap/components/bs-carousel\"], function (_exports, _bsCarousel) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsCarousel.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-carousel/slide\", [\"exports\", \"ember-bootstrap/components/bs-carousel/slide\"], function (_exports, _slide) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _slide.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-collapse\", [\"exports\", \"ember-bootstrap/components/bs-collapse\"], function (_exports, _bsCollapse) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsCollapse.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-dropdown\", [\"exports\", \"ember-bootstrap/components/bs-dropdown\"], function (_exports, _bsDropdown) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsDropdown.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-dropdown/button\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/button\"], function (_exports, _button) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _button.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-dropdown/menu\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu\"], function (_exports, _menu) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _menu.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-dropdown/menu/divider\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu/divider\"], function (_exports, _divider) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _divider.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-dropdown/menu/item\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu/item\"], function (_exports, _item) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-dropdown/menu/link-to\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/menu/link-to\"], function (_exports, _linkTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-dropdown/toggle\", [\"exports\", \"ember-bootstrap/components/bs-dropdown/toggle\"], function (_exports, _toggle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _toggle.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form\", [\"exports\", \"ember-bootstrap/components/bs-form\"], function (_exports, _bsForm) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsForm.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element\", [\"exports\", \"ember-bootstrap/components/bs-form/element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/control\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control\"], function (_exports, _control) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _control.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/control/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/control/input\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control/input\"], function (_exports, _input) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _input.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/control/radio\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control/radio\"], function (_exports, _radio) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _radio.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/control/textarea\", [\"exports\", \"ember-bootstrap/components/bs-form/element/control/textarea\"], function (_exports, _textarea) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _textarea.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/errors\", [\"exports\", \"ember-bootstrap/components/bs-form/element/errors\"], function (_exports, _errors) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _errors.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/feedback-icon\", [\"exports\", \"ember-bootstrap/components/bs-form/element/feedback-icon\"], function (_exports, _feedbackIcon) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _feedbackIcon.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/help-text\", [\"exports\", \"ember-bootstrap/components/bs-form/element/help-text\"], function (_exports, _helpText) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _helpText.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/label\", [\"exports\", \"ember-bootstrap/components/bs-form/element/label\"], function (_exports, _label) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _label.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/layout/horizontal\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/horizontal\"], function (_exports, _horizontal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _horizontal.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/layout/horizontal/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/horizontal/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/layout/inline\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/inline\"], function (_exports, _inline) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _inline.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/layout/inline/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/inline/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/layout/vertical\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/vertical\"], function (_exports, _vertical) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _vertical.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/layout/vertical/checkbox\", [\"exports\", \"ember-bootstrap/components/bs-form/element/layout/vertical/checkbox\"], function (_exports, _checkbox) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _checkbox.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/element/legend\", [\"exports\", \"ember-bootstrap/components/bs-form/element/legend\"], function (_exports, _legend) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _legend.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-form/group\", [\"exports\", \"ember-bootstrap/components/bs-form/group\"], function (_exports, _group) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _group.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal-simple\", [\"exports\", \"ember-bootstrap/components/bs-modal-simple\"], function (_exports, _bsModalSimple) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsModalSimple.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal\", [\"exports\", \"ember-bootstrap/components/bs-modal\"], function (_exports, _bsModal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsModal.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal/body\", [\"exports\", \"ember-bootstrap/components/bs-modal/body\"], function (_exports, _body) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _body.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal/dialog\", [\"exports\", \"ember-bootstrap/components/bs-modal/dialog\"], function (_exports, _dialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _dialog.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal/footer\", [\"exports\", \"ember-bootstrap/components/bs-modal/footer\"], function (_exports, _footer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _footer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal/header\", [\"exports\", \"ember-bootstrap/components/bs-modal/header\"], function (_exports, _header) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _header.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal/header/close\", [\"exports\", \"ember-bootstrap/components/bs-modal/header/close\"], function (_exports, _close) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _close.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-modal/header/title\", [\"exports\", \"ember-bootstrap/components/bs-modal/header/title\"], function (_exports, _title) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _title.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-nav\", [\"exports\", \"ember-bootstrap/components/bs-nav\"], function (_exports, _bsNav) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsNav.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-nav/item\", [\"exports\", \"ember-bootstrap/components/bs-nav/item\"], function (_exports, _item) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _item.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-nav/link-to\", [\"exports\", \"ember-bootstrap/components/bs-nav/link-to\"], function (_exports, _linkTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-navbar\", [\"exports\", \"ember-bootstrap/components/bs-navbar\"], function (_exports, _bsNavbar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsNavbar.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-navbar/content\", [\"exports\", \"ember-bootstrap/components/bs-navbar/content\"], function (_exports, _content) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _content.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-navbar/link-to\", [\"exports\", \"ember-bootstrap/components/bs-navbar/link-to\"], function (_exports, _linkTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _linkTo.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-navbar/nav\", [\"exports\", \"ember-bootstrap/components/bs-navbar/nav\"], function (_exports, _nav) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _nav.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-navbar/toggle\", [\"exports\", \"ember-bootstrap/components/bs-navbar/toggle\"], function (_exports, _toggle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _toggle.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-popover\", [\"exports\", \"ember-bootstrap/components/bs-popover\"], function (_exports, _bsPopover) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsPopover.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-popover/element\", [\"exports\", \"ember-bootstrap/components/bs-popover/element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-progress\", [\"exports\", \"ember-bootstrap/components/bs-progress\"], function (_exports, _bsProgress) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsProgress.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-progress/bar\", [\"exports\", \"ember-bootstrap/components/bs-progress/bar\"], function (_exports, _bar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bar.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-tab\", [\"exports\", \"ember-bootstrap/components/bs-tab\"], function (_exports, _bsTab) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsTab.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-tab/pane\", [\"exports\", \"ember-bootstrap/components/bs-tab/pane\"], function (_exports, _pane) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pane.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-tooltip\", [\"exports\", \"ember-bootstrap/components/bs-tooltip\"], function (_exports, _bsTooltip) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsTooltip.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/bs-tooltip/element\", [\"exports\", \"ember-bootstrap/components/bs-tooltip/element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        // console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        // console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            // console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                // console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        // console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            // console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            // console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.$('#chan_select');\n\n            // let selected = {};\n            // selector.val().forEach(function(selection) {\n            //     selected[selection] = true;\n            // });\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n            \n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                // console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                // console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                // console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                // console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                // console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        handleSelection(selectedValue) {\n            // console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {instrumentStiffness:0, elasticLimitPct:0.8, ultimateLimitPct:3, elasticLimitFce:240, ultimateLimitFce:260});\n\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    _this.set('instrumentStiffness', );\n    // _this.set('elasticLimitFce', {elasticLimitFce:2});\n    // _this.set('elasticLimitPct', {elasticLimitPct:2});\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.bulbed = this.get('bulbed');\n            newInstrumentObject.plated = this.get('plated');\n            //newInstrumentObject.stacked = this.get('stacked');\n            newInstrumentObject.active = true;\n            try {\n                newInstrumentObject.instrumentStiffness = newInstrumentObject.elasticLimitFce / newInstrumentObject.elasticLimitPct;\n            } catch (ex) {\n                newInstrumentObject.instrumentStiffness = 0;\n            }\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if(!error) {\n                if(typeof newInstrumentObject.strokeLength === 'undefined' || newInstrumentObject.strokeLength === 0) {\n                    error = true;\n                    this.setError('fieldError',true);\n                    this.setError('isVisibleError',true);\n                }\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        // console.log(dup);\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        },\n        bulbChanged(object)\n        {\n            this.set(\"bulbed\",document.getElementById('newInstrumentObjectBulbed').checked);\n        },\n        plateChanged(object)\n        {\n            this.set(\"plated\",document.getElementById('newInstrumentObjectPlated').checked);\n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            // console.save('saveNew()');\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                \n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    async init() {\n        \n        this._super(...arguments);\n        let metric = this.get('alert.metric');\n        if(metric === 'REL_DISP') {\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);\n        }\n        if(metric === 'DISP') {\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n\n    referenceAnchors:null,\n    loading:true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('alert.target', function() {\n        let target = this.get('alert.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        // console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    handleAlertObjectChange: observer('tr', function() {\n        // console.log('Object Changed!');\n    }),\n\n    onCarrierChanged: observer('carrier', function() {\n        let carrier = this.get('carrier');\n        // console.log('carrier changed' + carrier);\n        this.set('carrier', carrier);\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){ \n        console.log(\"called preLoadActiveChannels\")\n        console.log(this.get('alert'))\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n            console.log(alertObj)\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    actions: {\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                // console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        \n        handleSelection(selectedValue) {\n            // console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});\n","import Ember from 'ember';\nimport Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n\n    actions = {\n        updatePage(){\n            let store = this.get('store');\n            let instrument = this.get('instrument');\n            //let instrument = this.get('tableRow');\n            try {\n                let stiffness = instrument.get('elasticLimitFce') / instrument.get('elasticLimitPct');\n                stiffness = Math.round(stiffness * 1000) / 1000;\n                instrument.set('instrumentStiffness', stiffness);\n            } catch (ex) {\n                instrument.set('instrumentStiffness', 0);\n            }\n            instrument.save();\n        },\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            this.get('router').transitionTo('raw-data', id, { queryParams: {\"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values' || modelName === 'load-values') { \n                var plated = this.get('instrument').get('plated');\n                //var type = this.get('instrument').get('instrumentType').get('title');\n                //console.log(type);\n                \n                chartData.values.splice(0,1);\n                chartData.values.unshift(0);\n                if(plated) {\n                    chartData.values.push(chartData.values[chartData.values.length - 1]);\n                } else {\n                    chartData.values.push(0);\n                }\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {\n                anchorDistances.splice(0, 1);\n            }\n\n        return anchorDistances;\n    }),\n\n    anchorAXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else { //staggered\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n    \n            midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n                return [v, anchorDistances.slice(center + 1)[i]];\n              });\n\n            midPoints.unshift(headExclusion);\n            let mid_temp = [];\n            for(let ctr = 1;ctr < midPoints.length; ctr++) {\n                mid_temp.push((midPoints[ctr - 1] + midPoints[ctr]) / 2);\n            }\n            midPoints = mid_temp;\n\n            if (modelName === 'bending-strain-values') {\n                midPoints.shift();\n                midPoints.pop();\n            }    \n            \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n        \n        //console.log(midPoints);\n        \n        return midPoints;\n    }),\n\n    anchorBXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else {\n\n        let center = anchorDistances.length - 1;\n        center = Math.ceil(center / 2);\n\n        midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n            return [v, anchorDistances.slice(center + 1)[i]];\n          });\n            midPoints.shift();\n            midPoints.pop();                  \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n\n        return midPoints;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n            if (this.get('instrument').get('stacked')) {\n                anchorDistances.shift(0);\n                let finalSize = anchorDistances.length / 2;\n                while (anchorDistances.length > finalSize) {\n                    anchorDistances.pop(finalSize);\n                }\n                anchorDistances.unshift(this.get('instrument').get('headExclusionLength'));\n            } else { //staggered\n\n            }\n        } else { //not rebar\n            anchorDistances.unshift(0);\n        }\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        if(type === 'dCable') {\n            midDistances.splice(0,1);\n            //midDistances.unshift(0);\n            midDistances[0] = 0;\n            var len = this.get('instrument').get('length');\n            var length = this.get('instrument').get('instrumentLength');\n\n            var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {    \n                if(length !== null && length !== 0) {\n                    midDistances.push(length);\n                } else {\n                    midDistances.push(anchorDistances[anchorDistances.length - 1]);\n                }\n            }\n        }\n        // console.log(\"Anchors: \" + anchorDistances);\n         //console.log(\"Mids: \" + midDistances);\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', 'anchorAXDistances', 'anchorBXDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(this.get('instrument').get('instrumentTypeID') === 3) {//rebar \n            if(this.get('instrument').get('stacked')) { //is stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            } else { //is NOT stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            }\n        }\n\n        if (this.get('instrument').get('instrumentType').get('title') !== 'dRebar') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                return anchorMidDistances.map(function(anchorDistance){\n                    return {\n                        key: anchorDistance,\n                        type: 'referencePoints',\n                        values: [\n                            anchorDistance\n                        ]\n                    };\n                });\n                    \n            }\n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'load-values') {\n            return 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorAXDistances = this.get('anchorAXDistances'),\n            anchorBXDistances = this.get('anchorBXDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        \n        if (modelName === 'strain-values' || modelName === 'load-values') { \n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            }).sortBy('timestamp');\n        } else {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            }).sortBy('timestamp');\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if(type === 'dCable') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                //console.log(fullRangeDataPoints);\n                fullRangeDataPoints.forEach(element => element.values[0]=0);\n            }\n        }\n        \n\n        let ad = anchorDistances.map(function(chartLineName, chartLineIndex){\n            \n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n        // console.log(\"AD::::::::::: \" + JSON.stringify(ad));\n        return ad;\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";;\n                    \n                } else {\n                    title = axisName + \" (\" + units + \")\";;\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { \n                    // console.log(\"X in zoomChart:::: \" + d[0]);\n                    return d[0]; \n                })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { \n                    // console.log(\"X in zoomChart:::: \" + d[1]);\n                    // console.log(\"distXAxis in zoomChart:::: d[0]:::::::::::::::: \" + d[1]);\n                    return d[1]; \n                })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data');\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false);\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n                \n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .ticks(5)\n                    .tickFormat(function(d) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        // console.log(\"d::::: \" + d);\n                        // console.log(\"fullRangeChartLinesData::::: \" + fullRangeChartLinesData.length);\n                        // console.log(\"fullRangeChartLinesData[0].values[0][0]::::: \" + fullRangeChartLinesData[0].values[0][0]);\n                        // console.log(\"fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0]:::::: \" + fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0] )\n                        if (fullRangeChartLinesData.length > 0) {\n                            fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    yAxisUnit:null,\n    init() {\n        this._super(...arguments);\n        const queryParams = new URLSearchParams(window.location.search);\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        if(yAxisUnitParam){\n            this.set('yAxisUnit', yAxisUnitParam);\n        }\n    },\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    // console.log(\"seismicEventsChartDistXData::::::::::::::::::::\" + event.get('timestamp') + \" \" + event.get('size'));\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    //console.log(\"blastEventsChartDistXData::::::::::::::::::::\" + event.get('timestamp') + \" \" + event.get('size'));\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        let tempSeismicEventsArray = this.get('seismicEvents');\n        if ( tempSeismicEventsArray ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        let display = null;\n        let blastEvents = this.get('blastEvents'); \n        if ( blastEvents ) {\n            let data_set = this.get('blastEvents').map(function(event) {                \n                let displayTime = event.get('timestamp');\n                let displayTimestamp = moment( displayTime ).format(\"DD MMM, YYYY HH:mm:ss\");\n                let displayEventSize = event.get('size') ? (event.get('size') * -15) + 15 : 15;\n                let displayTonnes = event.get('tonnes');\n                let displayLocation = event.get('location');\n                // console.log(\"blastEventsArray::: \" + displayTime + \" \" + displayTimestamp + \" \" + displayEventSize + \" \" + displayTonnes + \" \" + displayLocation);\n                display = {\n                    type: 'Blast',\n                    time: displayTime,\n                    timestamp: displayTimestamp,\n                    eventSize: displayEventSize,\n                    tonnes: displayTonnes,\n                    location: displayLocation\n                };\n                // console.log(\"blastEventsArray::: \" + display);\n                return display;\n            }).sortBy('time');\n            // console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        //console.log(linesKyes);\n\n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') { \n            var plated = this.get('instrument').get('plated');\n            \n            if(plated) {\n                chartData.values[0] = chartData.values[1];\n            } else {\n                chartData.values[0] = 0;\n            }\n            chartData.values.push(0);\n        }\n        //console.log(chartData);\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') { \n            var midPoints = [];\n            //Adjust anchors to mid points between anchors\n            for(var ctr = 1; ctr < anchorDistances.length ; ctr++) {\n                var mid = (anchorDistances[ctr - 1] + anchorDistances[ctr]) / 2;\n                midPoints[ctr] = + mid.toFixed(2);\n            }\n\n            //console.log(midPoints);\n\n            //add zero point and end point\n            midPoints.splice(0,1);\n            midPoints[0] = 0;\n            midPoints.push(anchorDistances[anchorDistances.length - 1]);  //TODO: change to length of exto once known\n            //console.log(midPoints);\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        var mName = _this.get('chartDataModelName');\n        if (mName === 'strain-values' || mName === 'strain-rate-values' || mName === 'load-values') {\n            zoomDataPoints.forEach(element => element.values[0] = 0);\n        }\n\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (vibeEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        \n        let seismicEventsArray = this.get('seismicEventsArray');\n        let  blastEventsArray = this.get('blastEventsArray');\n        // TODO::: fix me\n        //vibeEventsArray = this.get('vibeEventsArray'),\n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n        \n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = \"dCable\";\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = yAxisLegend.get('title');\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName + \" (kN))\";\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = `<span class=\"event-type\">PPV - ${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}: ` + tooltipContent.ppv + `<br />PPA - ${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}&#178;: ` + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){ // || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Chart from 'chart.js/auto';\nimport zoomPlugin from 'chartjs-plugin-zoom';\nexport function buildScatterChartDataSet(context, dataArray, axisProperties={xAxisDisplay: true, xAxisLabel: \"\", yAxisDisplay: true, yAxisLabel: \"\"}) {\n    /**\n     * data array will be object for each dataset.\n     * eg:\n     * [\n        * {\n            * label:\"\",\n            * data:[{x,y},...],\n        * },\n        * {\n            * label:\"\",\n            * data:[{x,y},...],\n        * },\n        * {\n            * label:\"\",\n            * data:[{x,y},...],\n        * },..\n     */\n    // console.log('In buildChartDataSet, dataArray:')\n    // console.log(dataArray)\n\n    const colorPalette = [\n        '#FF0000', // Bright Red\n        '#00BFFF', // Deep Sky Blue\n        '#32CD32', // Lime Green\n        '#FFA500', // Orange\n        '#FF69B4', // Hot Pink\n        '#8A2BE2', // Blue Violet\n        '#00CED1', // Dark Turquoise\n        '#FF4500', // Orange Red\n        '#7FFF00', // Chartreuse\n        '#1E90FF', // Dodger Blue\n        '#FF1493', // Deep Pink\n        '#FFD700', // Gold\n        '#00FF7F', // Spring Green\n        '#9932CC', // Dark Orchid\n        '#FF6347', // Tomato\n        '#20B2AA', // Light Sea Green\n        '#ADFF2F', // Green Yellow\n        '#DC143C', // Crimson\n        '#00FF00', // Lime\n        '#FF00FF', // Magenta\n    ];\n\n\n    let datasets = [];\n    try{\n        dataArray.forEach((dataObj, index)=>{\n            let dataSetObj = {};\n            dataSetObj[\"label\"] = dataObj[\"label\"];\n            dataSetObj[\"data\"] = dataObj[\"data\"];\n            dataSetObj[\"backgroundColor\"] = colorPalette[index];    \n            dataSetObj[\"pointRadius\"] = 2.5;          // Controls the size of dots\n            dataSetObj[\"pointHoverRadius\"] = 5.5;     // Optional: enlarge dot on hover\n            datasets.push(dataSetObj);\n        });\n        context.chart.options.scales.x.title ={ display: axisProperties['xAxisDisplay'], text: axisProperties['xAxisLabel'] }\n        context.chart.options.scales.y.title ={ display: axisProperties['yAxisDisplay'], text: axisProperties['yAxisLabel']};\n        updateScatterXYMinMax(context, datasets);\n    }\n\n    catch (error) {\n        console.error('Error buildScatterChartDataSet:', error);\n    }\n\n    // console.log('In buildChartDataSet, datasets:')\n    // console.log(datasets)\n    return datasets;\n}\n\nexport function updateChart(context, scatterConvertedDataset) {\n    try{\n        if (!context.chart) return;\n    \n        context.chart.data.datasets = scatterConvertedDataset  ; \n        // console.log(scatterConvertedDataset)\n        // console.log(`datasets length :${scatterConvertedDataset.length}`)\n    \n        context.chart.update(); // Refresh the chart with new data\n\n    }\n\n    catch (error) {\n        console.error('Error updateChart:', error);\n    }\n}\n\n\nexport function renderChart(context) {\n\n    const ctx = document.getElementById('chartjs-canvas').getContext('2d');\n\n    if (!ctx) {\n        console.error(\"mainChartCanvas not found in the DOM\");\n        return;\n    }\n\n    const xMin = context.get(\"advancedFilterObj.advancedXMin\");\n    const xMax = context.get(\"advancedFilterObj.advancedXMax\");\n    const yMin = context.get(\"advancedFilterObj.advancedYLeftMin\");\n    const yMax = context.get(\"advancedFilterObj.advancedYLeftMax\");\n    const noDataPlugin = {\n        id: 'noDataMessage',\n        beforeDraw(chart) {\n            const hasData = chart.data.datasets.some(ds => ds.data.length > 0);\n            if (hasData) return;\n\n            const { ctx, width, height } = chart;\n            ctx.save();\n            ctx.textAlign = 'center';\n            ctx.textBaseline = 'middle';\n            ctx.font = '16px sans-serif';\n            ctx.fillStyle = 'black';\n            ctx.fillText('No data available', width / 2, height / 2);\n            ctx.restore();\n        }\n    };\n    // Initialize the chart\n    Chart.register(zoomPlugin, noDataPlugin);\n    context.chart = new Chart(ctx, {\n        type: 'scatter',\n        data: {},\n        options: {\n            responsive: true,\n            scales: {\n                x: {\n                    min: xMin ?? undefined,\n                    max: xMax ?? undefined,\n                    title: { display: true, text: '' },\n                },\n                y: {\n                    min: yMin ?? undefined,\n                    max: yMax ?? undefined,\n                    title: { display: true, text: '' },\n                },\n            },\n            plugins: {\n                tooltip: {\n                    callbacks: {\n                        title: (tooltipItems) => {\n                            // Show dataset label as the color-coded title\n                            return tooltipItems[0].dataset.label;\n                        },\n                        label: (tooltipItem) => {\n                            const xLabel = tooltipItem.chart.options.scales.x.title.text || 'X';\n                            const yLabel = tooltipItem.chart.options.scales.y.title.text || 'Y';\n                            const date = tooltipItem.raw.date ? tooltipItem.raw.date : null ;\n                            const x = tooltipItem.raw.x;\n                            const y = tooltipItem.raw.y;\n                            return [`Date: ${date}`,`${xLabel}: ${x}`, `${yLabel}: ${y}`];\n                        }\n                    }\n                },\n                zoom: {\n                    pan: {\n                        enabled: true,\n                        mode: 'xy', // allows panning in both directions\n                    },\n                    zoom: {\n                        wheel: {\n                            enabled: true, // scroll to zoom\n                        },\n                        drag: {\n                            enabled: false,\n                        },\n                        mode: 'xy', // allows zooming both directions\n                    },\n                }, \n            },\n        },\n        plugins: [noDataPlugin]\n    });\n}\n\nexport function updateScatterZoomPan(context, datasets){\n    try{\n        if(context.chart){\n            context.chart.options.plugins.zoom.pan.enabled = context.get(\"scatterPlotOptions\")['pan'];\n            context.chart.options.plugins.zoom.zoom.wheel.enabled = context.get(\"scatterPlotOptions\")['zoom'] == \"Wheel\";\n            context.chart.options.plugins.zoom.zoom.drag.enabled = context.get(\"scatterPlotOptions\")['zoom'] == \"Drag\";\n        }\n        console.log(datasets)\n    }\n    catch (error) {\n        console.error('Error updateScatterZoomPan:', error);\n    } \n}\n\nexport function updateScatterXYMinMax(context){\n    const xMin = context.get(\"advancedFilterObj.advancedXMin\");\n    const xMax = context.get(\"advancedFilterObj.advancedXMax\");\n    const yMin = context.get(\"advancedFilterObj.advancedYLeftMin\");\n    const yMax = context.get(\"advancedFilterObj.advancedYLeftMax\");\n    try{\n        console.log(context.chart.data);\n        // if(context.chart){\n        //     if(xMin){\n        //         context.chart.options.scales.x.min = xMin;\n        //     }\n        //     if(xMax){\n        //         context.chart.options.scales.x.max = xMax;\n        //     }\n        //     if(yMin){\n        //         context.chart.options.scales.y.min = yMin;\n        //     }\n        //     if(yMax){\n        //         context.chart.options.scales.y.min = yMax;\n        //     }\n        // }\n        context.chart.update();\n    }\n    catch (error) {\n        console.error('Error updateScatterXYMinMax:', error);\n    } \n}\n\nexport function getXYValueObj(){\n    let xyValueObj = {};\n\n    const queryParams = new URLSearchParams(window.location.search);\n\n    const advancedEndDate = queryParams.get('advancedEndDate');\n    const advancedStartDate = queryParams.get('advancedStartDate');\n    const advancedXMax = queryParams.get('advancedXMax');\n    const advancedXMin = queryParams.get('advancedXMin');\n    const advancedYAxisUnit = queryParams.get('advancedYAxisUnit');\n    const advancedYLeftMax = queryParams.get('advancedYLeftMax');\n    const advancedYLeftMin = queryParams.get('advancedYLeftMin');\n\n    xyValueObj[\"advancedEndDate\"]   = advancedEndDate ? advancedEndDate : null;\n    xyValueObj[\"advancedStartDate\"] = advancedStartDate ? advancedStartDate : null;\n    xyValueObj[\"advancedXMax\"]      = advancedXMax ? Number.parseFloat(advancedXMax) : null;\n    xyValueObj[\"advancedXMin\"]      = advancedXMin ? Number.parseFloat(advancedXMin) : null; \n    xyValueObj[\"advancedYAxisUnit\"] = advancedYAxisUnit ? advancedYAxisUnit : null; \n    xyValueObj[\"advancedYLeftMax\"]  = advancedYLeftMax ? Number.parseFloat(advancedYLeftMax) : null;\n    xyValueObj[\"advancedYLeftMin\"]  = advancedYLeftMin ? Number.parseFloat(advancedYLeftMin) : null; \n    return xyValueObj;\n\n}","define(\"geotechnical-data-platform-new/components/circle-layer\", [\"exports\", \"ember-leaflet/components/circle-layer\"], function (_exports, _circleLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _circleLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/circle-marker-layer\", [\"exports\", \"ember-leaflet/components/circle-marker-layer\"], function (_exports, _circleMarkerLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _circleMarkerLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewBlastEventObject(_this) {\n    _this.set('newBlastEventObject', {\n        isVisible: true\n    });\n    _this.set('timestamp', null);\n    _this.set('delay', 0);\n    _this.set('east', null);\n    _this.set('north', null);\n    _this.set('depth', null);\n    _this.set('blastType', '1');\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    newBlastEventObject: {\n        isVisible: true\n    },\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    timeFormat: 'HH:mm:ss',\n    timestamp: null,\n    delay: 0,\n    blastType: '1',\n    dateTimePicker: null,\n    datePicker: null,\n    east: null,\n    north: null,\n    depth: null,\n    project: null,\n    level: null,\n\n    selectOptionsArray: Ember.computed.map('blastTypesSelectOptions', function(item){\n        const blastTypesSelectOptionsKyes = this.get('blastTypesSelectOptionsKyes').split(\",\");\n        return {\n            key: item.get(blastTypesSelectOptionsKyes[0]),\n            value: item.get(blastTypesSelectOptionsKyes[1])\n        };\n    }),\n\n    // look for isVisibleCreateNewForm variable change and reset newBlastEventObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewBlastEventObject(this);\n        }\n    }),\n\n    actions: {\n\n        setProject(event) {\n            const selectedId = event.target.value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(event) {\n            const selectedId = event.target.value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        addNew(object){\n            //let store = this.get('store');\n            // show create new item form\n            this.set('isVisibleCreateNewForm', true);\n        },\n        saveNew(object){\n            \n            let _this = this;\n            let store = this.get('store');\n            let newBlastEventObject = this.get('newBlastEventObject');\n            \n            if (this.get('timestamp') != null) {\n                newBlastEventObject.timestamp = moment(this.get('timestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            //console.log('here');\n            //newBlastEventObject.delay = this.get('delay');\n            newBlastEventObject.east = this.get('east');\n            newBlastEventObject.north = this.get('north');\n            newBlastEventObject.depth = this.get('depth');\n            newBlastEventObject.blastType = store.peekRecord('blast-type', this.get('blastType'));\n            newBlastEventObject.project = this.get('project');\n            newBlastEventObject.level = this.get('level');\n            \n            const newBlastEvent = store.createRecord('blast-event', newBlastEventObject);\n\n            // save new blast-event to DB\n            //const savedObject = newBlastEvent.save().then(function(results){\n            newBlastEvent.save().then(function(results){\n                // hide create new item form\n                _this.set('isVisibleCreateNewForm', false);\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n            \n                // if blast-event was successfully saved to DB, then display it\n                //object.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                //_this.sendAction('vewRowDetails', results.id);\n            })\n            .catch((error) => {\n                console.error(error);\n            });\n\n            // .catch(function(reason){\n            //     if (reason.errors[0].status == 403) {\n            //         _this.setProp('permissionError', true);\n            //     }\n            // });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewBlastEventObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n        // let datePicker = this.$(\".datepicker-input\").datetimepicker({\n        //     format: _this.get('timeFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('timeFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('datePicker', datePicker);\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n        if (this.get('datePicker')) {\n            this.get('datePicker').datetimepicker(\"destroy\");\n        }\n    },\n});\n","import Ember from 'ember';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewSeismicEventObject(_this) {\n    _this.set('newSeismicEventObject', {\n        isVisible: true\n    });\n    _this.set('timestamp', null);\n    _this.set('east', null);\n    _this.set('north', null);\n    _this.set('depth', null);\n    _this.set('seismicType', '1');\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    newSeismicEventObject: {\n        isVisible: true\n    },\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    timestamp: null,\n    seismicType: '1',\n    dateTimePicker: null,\n    east: null,\n    north: null,\n    depth: null,\n\n    selectOptionsArray: Ember.computed.map('seismicTypesSelectOptions', function(item){\n        const seismicTypesSelectOptionsKyes = this.get('seismicTypesSelectOptionsKyes').split(\",\");\n        return {\n            key: item.get(seismicTypesSelectOptionsKyes[0]),\n            value: item.get(seismicTypesSelectOptionsKyes[1])\n        };\n    }),\n\n    // look for isVisibleCreateNewForm variable change and reset newSeismicEventObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewSeismicEventObject(this);\n        }\n    }),\n\n    actions: {\n        addNew(object){\n            let store = this.get('store');\n            // show create new item form\n            this.set('isVisibleCreateNewForm', true);\n        },\n        saveNew(object){\n            let _this = this,\n                store = this.get('store'),\n                newSeismicEventObject = this.get('newSeismicEventObject')\n            ;\n\n            if (this.get('timestamp') != null) {\n                newSeismicEventObject.timestamp = moment(this.get('timestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n            newSeismicEventObject.east = this.get('east');\n            newSeismicEventObject.north = this.get('north');\n            newSeismicEventObject.depth = this.get('depth');\n            newSeismicEventObject.seismicType = store.peekRecord('seismic-type', this.get('seismicType'));\n\n            const newSeismicEvent = store.createRecord('seismic-event', newSeismicEventObject);\n\n            // save new seismic-event to DB\n            const savedObject = newSeismicEvent.save().then(function(results){\n                // hide create new item form\n                _this.set('isVisibleCreateNewForm', false);\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n                // if seismic-event was successfully saved to DB, then display it\n                //object.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                //_this.sendAction('vewRowDetails', results.id);\n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewSeismicEventObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        //this.set('dateTimePicker', dateTimePicker);\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n    },\n});\n","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\n// export default class DashMapComponent extends Component {\n//     zoom = 12;\n//     mapBounds = Ember.computed(function() {\n//         return [[40.574706, -112.178131],[40.492465, -112.099509]];\n//     });\n// }\n\nexport default Ember.Component.extend({\n    didInsertElement() {\n        var map = L.map('dashMap', {\n            center: [this.lat, this.lng],\n            zoom: this.zoom\n        });\n        //L.tileLayer('http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png').addTo(map);\n        L.imageOverlay(\"/assets/images/mine.png\",this.mapBounds).addTo(map);\n        let marker = L.marker([40.561220,-112.142008]);\n\n        let popupContent = \"<h4>ID: \" + \"<a href=\\\"/instrument/190171001/\\\">190171001</a>\" + \"<br />\" +\n                            \"Type: \" + \"Exto\" + \"<br />\" +\n                            \"Level: \" + \"AC1\" + \"<br />\" +\n                            \"State: \" + \"Normal</h4>\";\n\n\n        marker.bindPopup(popupContent).openPopup();\n        marker.addTo(map);\n    },\n    lat: 40.530220,\n    lng: -112.142008,\n    zoom: 14,\n    mapBounds: Ember.computed(function() {\n        return [[40.574706, -112.178131],[40.492465, -112.099509]];\n    }),\n\n})","import Ember from 'ember';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\n\nexport default Ember.Component.extend({\n    ajax: Ember.inject.service(),\n    session: Ember.inject.service(),\n    isVisibleExportDataForm: true,\n    instrumentId: null,\n    fileFormat: 'csv',\n    loading: false,\n    fileFormats: [\n        {\n            key: 'csv',\n            value: '*.csv',\n        },\n        {\n            key: 'csv_YYYY-MM-DD',\n            value: \"YYYY-MM-DD.csv\"\n        },\n        {\n            key: 'csv_YYYY/MM/DD',\n            value: \"YYYY/MM/DD.csv\"\n        },\n        {\n            key: 'csv_MM/DD/YYYY',\n            value: \"MM/DD/YYYY.csv\"\n        },\n        {\n            key: 'txt',\n            value: '*.txt',\n        },\n        {\n            key: 'dlog',\n            value: '*.dlog',\n        },\n        {\n            key: 'dlog_YYYYMMDD',\n            value: '*.dlog_YYYYMMDD',\n        },\n        {\n            key: 'dlog_DDMMYYYY',\n            value: '*.dlog_DDMMYYYY',\n        },\n        {\n            key: 'dlog_MMDDYYYY',\n            value: '*.dlog_MMDDYYYY',\n        },\n        {\n            key: 'dlog_MMDDYY',\n            value: '*.dlog_MMDDYY',\n        },\n    ],\n    fileName: Ember.computed('fileFormat', 'fileFormats', function() {\n        return this.get('instrumentId') + '.' + this.get('fileFormat');\n    }),\n    fileLink: Ember.computed('fileFormat', 'fileFormats', function() {\n        \n        let base = getApiBaseUrl();\n        return base + '/instruments/' + this.get('instrumentId') + '/displacement-values?format=' + this.get('fileFormat');\n    }),\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('fileFormat', function(){\n        this.set('isExportLinkReady', false);\n    }),\n    isExportLinkReady: false,\n    // actions: {\n    //     downloadFile() {\n    //         this.set('loading', true);            \n    //         var $t = $(this);\n    //         let request = $.ajax({\n    //             method: \"GET\",\n    //             url: this.get('fileLink'),\n    //             headers: {\n    //                 'Authorization': 'Basic ' + this.get('session').data.authenticated['login'],\n    //             },\n    //             success: download.bind(true, \"text/csv\", this.get('fileName')),\n    //         })//This method is added to stop the loading \"spinner\" from spinning after the download\n    //         request.done(function( msg ) {\n    //             $t[0].set('loading', false);\n    //         });\n    //     },\n    actions: {\n        downloadFile() {\n            this.set('loading', true);\n            var $t = $(this);\n            \n            // Get the current URL\n            let currentUrl = window.location.href;\n            \n            // Extract the last segment of the URL\n            let urlSegments = currentUrl.split('/');\n            let originator = urlSegments[urlSegments.length - 1] || null;\n            if (originator.includes('raw-data')){\n                originator = 'raw-data&isDownload=true';\n            }\n            // console.log(\"originator: \" + originator);\n            \n            //New Section for appending Advanced Search Params IF it exists \n            const params = new URLSearchParams(currentUrl.split('?')[1]);\n\n            // Define the key parameters to look for\n            const keys = ['advancedEndDate', 'advancedStartDate', 'advancedYAxisUnit'];\n            \n            // Loop through the keys and log them if they exist\n            keys.forEach(key => {\n              if (params.has(key)) {\n                originator += `&${key}=${params.get(key)}`\n              }\n            });\n            // Append the originator parameter to the file link\n            let fileLink = this.get('fileLink');\n            let urlWithOriginator = originator ? fileLink + '&originator=' + originator : fileLink;\n\n            let filename = this.get('fileName');\n            if (this.get('fileName').split('.')[1].includes(\"_\")){\n                // console.log(\"csv filename: \" + this.get('fileName').split('.')[1].split(\"_\")[0]);\n                filename = this.get('instrumentId') + '.' + this.get('fileName').split('.')[1].split(\"_\")[0];\n            }\n            let request = $.ajax({\n                method: \"GET\",\n                url: urlWithOriginator,\n                headers: {\n                    Authorization: 'Bearer ' + localStorage.token  \n                },\n                success: download.bind(true, \"text/csv\", filename),\n            });\n            \n            request.done(function( msg ) {\n                $t[0].set('loading', false);\n            });\n        },\n\n    \n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            } else if (!Array.isArray(propertyNames) && propertyNames !== '' && propertyValues !== '') {\n                _this.set(propertyNames, propertyValues);\n            }\n        },\n        cancel() {\n            this.set('isVisibleExportDataForm', false);\n            this.set('loading', false);\n\n        }\n    }\n});\n","import Ember from 'ember';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\n\nexport default Ember.Component.extend({\n    ajax: Ember.inject.service(),\n    session: Ember.inject.service(),\n    isVisibleExportDataForm: true,\n    gatewayId: null,\n    fileFormat: 'csv',\n    loading: false,\n    fileFormats: [\n        {\n            key: 'csv',\n            value: '*.csv',\n        },\n        {\n            key: 'csv_YYYY-MM-DD',\n            value: \"YYYY-MM-DD.csv\"\n        },\n        {\n            key: 'csv_YYYY/MM/DD',\n            value: \"YYYY/MM/DD.csv\"\n        },\n        {\n            key: 'csv_MM/DD/YYYY',\n            value: \"MM/DD/YYYY.csv\"\n        },\n        {\n            key: 'txt',\n            value: '*.txt',\n        },\n        {\n            key: 'dlog',\n            value: '*.dlog',\n        },\n        {\n            key: 'dlog_YYYYMMDD',\n            value: '*.dlog_YYYYMMDD',\n        },\n        {\n            key: 'dlog_DDMMYYYY',\n            value: '*.dlog_DDMMYYYY',\n        },\n        {\n            key: 'dlog_MMDDYYYY',\n            value: '*.dlog_MMDDYYYY',\n        },\n        {\n            key: 'dlog_MMDDYY',\n            value: '*.dlog_MMDDYY',\n        },\n    ],\n    fileName: Ember.computed('fileFormat', 'fileFormats', function() {\n        return this.get('gatewayId') + '.' + this.get('fileFormat');\n    }),\n    fileLink: Ember.computed('fileFormat', 'fileFormats', function() {\n        let base = getApiBaseUrl();\n        \n        return base + '/gateways/' + this.get('gatewayId') + '/gateway-values?format=' + this.get('fileFormat');\n    }),\n    // look for isVisibleCreateNewForm variable change and reset newGatewayValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('fileFormat', function(){\n        this.set('isExportLinkReady', false);\n    }),\n    isExportLinkReady: false,\n    actions: {\n        downloadFile() {\n            this.set('loading', true);            \n            var $t = $(this);\n            let filename = this.get('fileName');\n            console.log('\"exprot file name: ' + filename);\n            if (this.get('fileName').split('.')[1].includes(\"_\")){\n                // console.log(\"csv filename: \" + this.get('fileName').split('.')[1].split(\"_\")[0]);\n                filename = this.get('gatewayId') + '.' + this.get('fileName').split('.')[1].split(\"_\")[0];\n            }\n            let request = $.ajax({\n                method: \"GET\",\n                url: this.get('fileLink'),\n                headers: {\n                    Authorization: 'Bearer ' + localStorage.token  \n                },\n                success: download.bind(true, \"text/csv\", filename\n                \n                ),\n            })//This method is added to stop the loading \"spinner\" from spinning after the download\n            request.done(function( msg ) {\n                $t[0].set('loading', false);\n            });\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            } else if (!Array.isArray(propertyNames) && propertyNames !== '' && propertyValues !== '') {\n                _this.set(propertyNames, propertyValues);\n            }\n        },\n        cancel() {\n            this.set('isVisibleExportDataForm', false);\n            this.set('loading', false);\n\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    isVisibleImportDataForm: false,\n    isVisibleError: false,\n    instrumentId: null,\n    loading: false,\n    fileFormat: 'IMS',\n    fileFormats: [\n        {\n            key: 'IMS',\n            value: 'IMS (*.txt)',\n        },\n        {\n            key: 'EVP',\n            value: 'EVP (*.csv)',\n        },\n        {\n            key: 'ESG',\n            value: 'ESG (*.csv)',\n        },\n        {\n            key: 'ESGS',\n            value: 'ESG Source (*.src)',\n        },\n    ],\n    isSubmitting: false,\n    fileSettings: {\n        instrument_id: null,\n        file_format: null\n    },\n    actions: {\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            } else if (!Array.isArray(propertyNames) && propertyNames !== '' && propertyValues !== '') {\n                _this.set(propertyNames, propertyValues);\n            }\n        },\n        importFile() {\n            this.set('loading', true);\n            this.set('isSubmitting', true);\n            this.set('fileSettings.file_format', this.get('fileFormat'));\n        },\n        cancelImport() {\n            this.set('isSubmitting', false);\n            this.set('isVisibleError',false);\n            this.set('isVisibleImportDataForm', false);\n            this.set('loading', false);\n        },\n        notSubmitting() {\n            this.set('isSubmitting',false);\n        },\n        errorHappened(message) {\n            console.log('error happened: ' + message);\n            this.set('isVisibleError',true);\n            Ember.run.scheduleOnce('afterRender', this, function() {\n                this.set('isSubmitting',false);\n                this.set('loading', false);\n            });\n        }\n    }\n});","import Ember from 'ember';\nexport default Ember.Component.extend({\n    isVisibleImportDataForm: false,\n    isVisibleError: false,\n    loading: false,\n    isVisibleErrorChangeObserver: Ember.observer('isVisibleError', function() {\n        if (this.get('isVisibleError')) {\n            //console.log('show error!');\n        } else {\n            //console.log('hide error!');\n        }\n    }),\n    error: \"\",\n    instrumentId: null,\n    fileFormat: 'dlog',\n    dateFormat: '',\n    dateFormats: [{\n        key: 'YYYYMMDD',\n        value: 'YYYY/MM/DD'\n    }, {\n        key: 'MMDDYYYY',\n        value: 'MM/DD/YYYY',\n    }, {\n        key: 'DDMMYYYY',\n        value: 'DD/MM/YYYY',\n    }, {\n        key: 'MMDDYY',\n        value: 'MM/DD/YY (.csv default)',\n    }, {\n        key: 'YYMMDD',\n        value: 'YY/MM/DD',\n    }],\n    fileFormats: [{\n        key: 'dlog',\n        value: '*.dlog',\n    }, {\n        key: 'csv',\n        value: '*.csv',\n    }, {\n        key: 'txt',\n        value: '*.txt',\n    }],\n        // }, {\n        //     key: 'csv_YYMMDD',\n        //     value: \"*.csv_YYMMDD\"\n        // }, {\n        //     key: 'dlog_YYYYMMDD',\n        //     value: '*.dlog_YYYYMMDD',\n        // }, {\n        //     key: 'dlog_DDMMYYYY',\n        //     value: '*.dlog_DDMMYYYY',\n        // }, {\n        //     key: 'dlog_MMDDYYYY',\n        //     value: '*.dlog_MMDDYYYY',\n        // }, {\n        //     key: 'dlog_MMDDYY',\n        //     value: '*.dlog_MMDDYY',\n        // }],\n    isRAW:true,\n    uniqueInstruments:{'Adict': 'If data is in mm, please uncheck. If data is in bits, please check.'},\n    showIsRAW:Ember.computed(function(){\n        if(this.get(\"instrument\")){\n            let uniqueInstrumentsKeys = Object.keys(this.get('uniqueInstruments'));\n            if(uniqueInstrumentsKeys.includes(this.get(\"instrument\").instrumentType.title)){\n                return true;\n            }\n        }\n        return false;\n    }),\n    getUnitInstrComment:Ember.computed(function(){{\n        if(this.get(\"instrument\")){\n            let uniqueInstrumentsKeys = Object.keys(this.get('uniqueInstruments'));\n            if(uniqueInstrumentsKeys.includes(this.get(\"instrument\").instrumentType.title)){\n                return this.get('uniqueInstruments')[this.get(\"instrument\").instrumentType.title];\n            }\n        }\n        return '';\n    }}),\n    isSubmitting: false,\n    fileSettings: {\n        instrument_id: null,\n        file_format: null,\n        date_format: null,\n        isRAW:true,\n    },\n    actions: {\n        updateProperties(\n            propertyNames = [], \n            propertyValues = []) {\n\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            } else if (!Array.isArray(propertyNames) && propertyNames !== '' && propertyValues !== '') {\n                _this.set(propertyNames, propertyValues);\n            }\n        },\n        importFile() {\n            // this.set('isVisibleImportDataForm', false);\n            this.set('loading', true);\n            this.set('isSubmitting', true);\n            this.set('fileSettings.instrument_id', this.get('instrumentId'));\n            this.set('fileSettings.file_format', this.get('fileFormat'));\n            this.set('fileSettings.isRAW', this.get('isRAW'));\n            this.set('fileSettings.date_format', this.get('dateFormat'));\n        },\n        cancelImport() {\n            this.set('isSubmitting', false);\n            this.set('isVisibleError',false);\n            this.set('isVisibleImportDataForm', false);\n            this.set('loading', false);\n        },\n        notSubmitting() {\n            this.set('isSubmitting',false);\n        },\n        errorHappened(message) {\n            console.log('error happened: ' + message);\n            this.set('isVisibleError',true);\n            this.set('error', message.replace(/['\"]+/g, ''));\n            Ember.run.scheduleOnce('afterRender', this, function() {\n                this.set('isSubmitting',false);\n                this.set('loading', false);\n            });\n        }\n    }\n});","import Ember from 'ember';\nexport default Ember.Component.extend({\n    isVisibleImportDataForm: false,\n    isVisibleError: false,\n    loading: false,\n    isVisibleErrorChangeObserver: Ember.observer('isVisibleError', function() {\n        if (this.get('isVisibleError')) {\n            //console.log('show error!');\n        } else {\n            //console.log('hide error!');\n        }\n    }),\n    error: \"\",\n    gatewayId: null,\n    fileFormat: 'dlog',\n    dateFormat: '',\n    dateFormats: [{\n        key: 'YYYYMMDD',\n        value: 'YYYY/MM/DD'\n    }, {\n        key: 'MMDDYYYY',\n        value: 'MM/DD/YYYY',\n    }, {\n        key: 'DDMMYYYY',\n        value: 'DD/MM/YYYY',\n    }, {\n        key: 'MMDDYY',\n        value: 'MM/DD/YY (.csv default)',\n    }, {\n        key: 'YYMMDD',\n        value: 'YY/MM/DD',\n    }],\n    fileFormats: [{\n        key: 'dlog',\n        value: '*.dlog',\n    }, {\n        key: 'csv',\n        value: '*.csv',\n    }, {\n        key: 'txt',\n        value: '*.txt',\n    }],\n        // }, {\n        //     key: 'csv_YYMMDD',\n        //     value: \"*.csv_YYMMDD\"\n        // }, {\n        //     key: 'dlog_YYYYMMDD',\n        //     value: '*.dlog_YYYYMMDD',\n        // }, {\n        //     key: 'dlog_DDMMYYYY',\n        //     value: '*.dlog_DDMMYYYY',\n        // }, {\n        //     key: 'dlog_MMDDYYYY',\n        //     value: '*.dlog_MMDDYYYY',\n        // }, {\n        //     key: 'dlog_MMDDYY',\n        //     value: '*.dlog_MMDDYY',\n        // }],\n    isSubmitting: false,\n    fileSettings: {\n        gateway_id: null,\n        file_format: null,\n        date_format: null\n    },\n    actions: {\n        updateProperties(\n            propertyNames = [], \n            propertyValues = []) {\n\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            } else if (!Array.isArray(propertyNames) && propertyNames !== '' && propertyValues !== '') {\n                _this.set(propertyNames, propertyValues);\n            }\n        },\n        importFile() {\n            // this.set('isVisibleImportDataForm', false);\n            this.set('loading', true);\n            this.set('isSubmitting', true);\n            this.set('fileSettings.gateway_id', this.get('gatewayId'));\n            this.set('fileSettings.file_format', this.get('fileFormat'));\n            this.set('fileSettings.date_format', this.get('dateFormat'));\n        },\n        cancelImport() {\n            this.set('isSubmitting', false);\n            this.set('isVisibleError',false);\n            this.set('isVisibleImportDataForm', false);\n            this.set('loading', false);\n        },\n        notSubmitting() {\n            this.set('isSubmitting',false);\n        },\n        errorHappened(message) {\n            console.log('error happened: ' + message);\n            this.set('isVisibleError',true);\n            this.set('error', message.replace(/['\"]+/g, ''));\n            Ember.run.scheduleOnce('afterRender', this, function() {\n                this.set('isSubmitting',false);\n                this.set('loading', false);\n            });\n        }\n    }\n});","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    dataLegends: Ember.computed('rowDetails', function() {\n        let objectKyes = Object.keys( this.get('rowDetails').toJSON() );\n        // console.log(objectKyes);\n        return objectKyes;\n    }),\n    recordValues: Ember.computed('rowDetails', function() {\n\n        let item = this.get('rowDetails');\n        return item.getProperties(this.get('dataLegends'));\n    })\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        // console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        // console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            // console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                // console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        // console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            // console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            // console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            //let selector = this.$('#chan_select');\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                // console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                // console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                // console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                \n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n\n                                \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                // console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        handleSelection(selectedValue) {\n            // console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    _this.set('baseLength', 1);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreateDConvInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.baseLength = this.get('baseLength');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if(!error) {\n                if(typeof newInstrumentObject.strokeLength === 'undefined' || newInstrumentObject.strokeLength === 0) {\n                    error = true;\n                    this.setError('fieldError',true);\n                    this.setError('isVisibleError',true);\n                }\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('baseLength') == null) {\n                this.set('baseLength', 1);\n            }\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        // console.log(dup);\n                        if(results.id != null) {\n                            store.createRecord('anchor', {number: 0, distance: 0, instrument: results}).save();\n                            let anchorCount = 1;//parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            //store.createRecord('anchor', {number: 1, distance: 0, instrument: results}).save();\n                            store.createRecord('anchor', {number: 1, distance: newInstrumentObject.baseLength, instrument: results}).save();\n                        }\n\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    async init() {\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },\n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n    editing: 0,\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n\n    referenceAnchors:null,\n    loading:true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('alert.target', function() {\n        let target = this.get('alert.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        // console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    onCarrierChanged: observer('carrier', function() {\n        let carrier = this.get('carrier');\n        // console.log('carrier changed' + carrier);\n        this.set('carrier', carrier);\n    }),\n\n    onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    handleAlertObjectChange: observer('tr', function() {\n        //console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    actions: {\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                // console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        \n        handleSelection(selectedValue) {\n            // console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            this.get('router').transitionTo('raw-data', id, { queryParams: {\"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values') { \n                chartData.values.unshift(chartData.values[0]);\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n        if (anchorDistances.length > dataValuesCount && modelName === 'strain-values') {\n            anchorDistances.splice(0, 1);\n        }\n        return anchorDistances;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        const anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        anchorDistances.unshift(0);\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            return anchorMidDistances.map(function(anchorDistance){\n                return {\n                    key: anchorDistance,\n                    type: 'referencePoints',\n                    values: [\n                        anchorDistance\n                    ]\n                };\n            });\n                \n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values') {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n        var anchorDist = anchorDistances;\n        \n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            anchorDist = this.get('anchorMidDistances'); \n        }\n\n        zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n            return {\n                key: chartLineIndex,\n                // mean: 3,\n                type: 'lines',\n                timestamp: zoomTimePoints[chartLineIndex],\n                values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        anchorDist[dataPointIndex],\n                        dataPoint\n                    ];\n                })\n            };\n        });\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                title = axisName  + \" (\" + units + \")\";\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            let value1 = fullRangeChartLinesData[0].values[0][0];\n                            let value2 = fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0];\n                            return nv.utils.getDateAutoscaleFormat (value1, value2)(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n        //console.log(linesKyes);\n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            chartData.values.push(0);\n        }\n        //console.log(\"chartdata: \" + JSON.stringify(chartData));\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            var midPoints = [];\n            for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        return promise; \n    }),\n    \n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = yAxisLegend\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");            \n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = yAxisLegend.get('title');\n                //console.log(title);\n                    \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    title = axisName + \" (\" + units + \")\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n                    /* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } \n                    */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","define(\"geotechnical-data-platform-new/components/div-overlay-layer\", [\"exports\", \"ember-leaflet/components/div-overlay-layer\"], function (_exports, _divOverlayLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _divOverlayLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        // console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                // console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        // console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            // console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            // console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                // console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                // console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                // console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                // console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        handleSelection(selectedValue) {\n            // console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n            newInstrumentObject.instrumentStiffness = 0;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        \n                        if(results.id != null) {\n                            let anchorCount = parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            for(var ctr = 0; ctr <= anchorCount; ctr++) {\n                                store.createRecord('anchor', {number: ctr, distance: ctr, instrument: results}).save();\n                            }\n                        }\n\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 1; i <= this.get('instrumentAnchors').length; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    async init() {\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    }, \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n    \n    referenceAnchors:null,\n    loading:true,\n\n    editing: 0,\n\n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            this.get('router').transitionTo('raw-data', id);\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values' || modelName === 'load-values') { \n                var plated = this.get('instrument').get('plated');\n                var type = this.get('instrument').get('instrumentType').get('title');\n                //console.log(type);\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n        if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {\n            anchorDistances.splice(0, 1);\n        }\n        return anchorDistances;\n    }),\n\n    anchorAXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else { //staggered\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n    \n            midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n                return [v, anchorDistances.slice(center + 1)[i]];\n              });\n\n            midPoints.unshift(headExclusion);\n            let mid_temp = [];\n            for(let ctr = 1;ctr < midPoints.length; ctr++) {\n                mid_temp.push((midPoints[ctr - 1] + midPoints[ctr]) / 2);\n            }\n            midPoints = mid_temp;\n\n            if (modelName === 'bending-strain-values') {\n                midPoints.shift();\n                midPoints.pop();\n            }    \n            \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n        \n        //console.log(midPoints);\n        \n        return midPoints;\n    }),\n\n    anchorBXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else {\n\n        let center = anchorDistances.length - 1;\n        center = Math.ceil(center / 2);\n\n        midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n            return [v, anchorDistances.slice(center + 1)[i]];\n          });\n            midPoints.shift();\n            midPoints.pop();                  \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n\n        return midPoints;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        anchorDistances.unshift(0);\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        if(type === 'dCable') {\n            midDistances.splice(0,1);\n            //midDistances.unshift(0);\n            midDistances[0] = 0;\n            var len = this.get('instrument').get('length');\n            var length = this.get('instrument').get('instrumentLength');\n\n            var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {    \n                if(length !== null && length !== 0) {\n                    midDistances.push(length);\n                } else {\n                    midDistances.push(anchorDistances[anchorDistances.length - 1]);\n                }\n            }\n        }\n        // console.log(\"Anchors: \" + anchorDistances);\n         //console.log(\"Mids: \" + midDistances);\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', 'anchorAXDistances', 'anchorBXDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(this.get('instrument').get('instrumentTypeID') === 3) {//rebar \n            if(this.get('instrument').get('stacked')) { //is stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            } else { //is NOT stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            }\n        }\n\n        if (this.get('instrument').get('instrumentType').get('title') !== 'dRebar') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                return anchorMidDistances.map(function(anchorDistance){\n                    return {\n                        key: anchorDistance,\n                        type: 'referencePoints',\n                        values: [\n                            anchorDistance\n                        ]\n                    };\n                });\n                    \n            }\n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'load-values') {\n            return 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorAXDistances = this.get('anchorAXDistances'),\n            anchorBXDistances = this.get('anchorBXDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        \n        if ((modelName === 'strain-values' || modelName === 'load-values') && this.get('instrument').get('instrumentType').get('title') !== 'dRebar') { \n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'axial-strain-values' || modelName === 'load-values' ) {//&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorAXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'bending-strain-values' ) { //&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorBXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if(type === 'dCable') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                //console.log(fullRangeDataPoints);\n                fullRangeDataPoints.forEach(element => element.values[0]=0);\n            }\n        }\n        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    \n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n        var events = this.get('vibeEvents');\n        //console.log('vibeEvents');\n        //console.log(events);\n        if ( this.get('vibeEvents') ) {\n            return [{\n                key: 'BluVibe',\n                type: 'distX',\n                color: '#80bf5c',\n                values: this.get('vibeEvents').map(function(event) {\n                    return [\n                        moment( event.get('id') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    vibeEventsArray: Ember.computed('vibeEvents', function() {\n        var events = this.get('vibeEvents');\n        //console.log(events);\n        if ( events ) {\n            return events.map(function(event) {\n                return {\n                    type: 'BluVibe',\n                    time: event.get('id'),\n                    timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    ppa: event.get('ppa'),\n                    ppv: event.get('ppv'),\n                    freq: event.get('frequency')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    zoomTempPoints: Ember.computed('zoomTempData', function(item){\n        let discreteData = this.get('zoomTempData').map(item => {\n            let linesKeys = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKeys);\n\n            // Convert the chartData to discrete variables\n            var discreteData = {};\n            for (let key in chartData) {\n                discreteData[key] = chartData[key];\n            }\n            return discreteData;\n        });\n\n        // console.log(\":::::::::::::::::::::::: Discrete TEMP Points SIZE: \" + discreteData.length);\n        if (this.get(\"zoomDataPoints\").length == 0) {\n            return [];\n        } else {\n            return discreteData;\n        }\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n        let KPA_TO_MMH20 = 101.9716;\n        \n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        let chartType = this.attrs.getQueryParams('chart_type');\n\n        // console.log(\"Model Name::::|\" + chartType + \"|\");\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var plated = this.get('instrument').get('plated');\n            \n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                if(plated) {\n                    chartData.values[0] = chartData.values[1];\n                } else {\n                    chartData.values[0] = 0;\n                }\n            } else {\n                //chartData.values.unshift(0);\n            }\n            chartData.values.push(0);\n        }\n        // console.log(\"Chart Type::::|\" + chartType + \"|\");\n        if(chartType === 'mmH20') {\n            chartData.values = chartData.values.map(function(item) {\n                return item * KPA_TO_MMH20;\n            });\n        }\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        if(instType === 'Tilt') {\n            return ['X','Y','Z'];\n        } else if(instType === 'Wire') {\n            let anchors = [];\n            let numPorts = this.instrument.get('portsNum');\n            let startVal = 0;\n            let maxVal = numPorts;\n/*             if (this.port != '') {\n                //startVal = (1 * this.port) - 1;\n                startVal = (1 * numPorts) - 1;\n                maxVal = startVal + 1;\n            }\n */            for(let ctr = startVal; ctr < maxVal; ctr++) {\n                anchors.push('T' + (ctr + 1));\n                anchors.push(ctr + 1);\n            }\n            return anchors;\n        } else if(instType === 'BluVibe') {\n            return ['Data'];\n        }\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var midPoints = [];\n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                //Adjust anchors to mid points between anchors\n                for(var ctr = 1; ctr < anchorDistances.length ; ctr++) {\n                    var mid = (anchorDistances[ctr - 1] + anchorDistances[ctr]) / 2;\n                    midPoints[ctr] = + mid.toFixed(2);\n                }\n\n                //console.log(midPoints);\n\n                //add zero point and end point\n                midPoints.splice(0,1);\n                midPoints[0] = 0;\n                midPoints.push(anchorDistances[anchorDistances.length - 1]);  //TODO: change to length of exto once known\n                //console.log(midPoints);\n            } else if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                //Adjust anchors to mid points between anchors\n                //console.log(this.get('instrument'));\n                let headExclusion = this.get('instrument').get('headExclusionLength');\n                let leftAnchors = [headExclusion];\n                let rightAnchors = [headExclusion];\n                \n                let center = anchorDistances.length - 1;\n                center = Math.ceil(center / 2);\n\n                leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n\n                rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n\n                let midLeft = [];\n                for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                    midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                }\n\n                let midRight = [];\n                for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                    midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                }\n\n                if (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values') {\n                    if(this.get('instrument').get('stacked')) {\n                        midPoints = midLeft;\n                        if (modelName === 'load-values') {\n                            midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n                        }\n                    } else {\n                        midPoints = midLeft.concat(midRight);\n                        /* midPoints = $.map(midPoints.slice(1, center + 1), function(v, i) {\n                            return [v, midPoints.slice(center + 1)[i]];\n                          }); */\n                        if (modelName === 'bending-strain-values') {\n                            midPoints.shift();\n                            midPoints.pop();\n                        }\n\n                    }\n                } else {\n                    midPoints = midLeft.concat(midRight);\n                }\n                if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                    for(let ctr = 0; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n  \n/*                     for(let ctr = 0; ctr < midPoints.length / 2; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n        \n                    for(let ctr = 3; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n */                }\n            } else {\n                for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                    midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n                }\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        } else if (modelName === 'axial-displacement-values' && this.get('instrument').get('stacked')) {\n            let mid = (anchorDistances.length - 1) / 2;\n            while (anchorDistances.length > (mid + 1)) {\n                anchorDistances.pop();\n            }\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else if (modelName === 'axial-displacement-values' && !this.get('instrument').get('stacked')) {\n            anchorDistances.sort(function(a,b){return a-b;});\n\n            //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else {\n            if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                if (modelName === 'displacement-values') { //rebar stretch\n                    var midPoints = [];\n                    let headExclusion = this.get('instrument').get('headExclusionLength');\n                    let leftAnchors = [headExclusion];\n                    let rightAnchors = [headExclusion];\n                    \n                    let center = anchorDistances.length - 1;\n                    center = Math.ceil(center / 2);\n    \n                    leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                    rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n    \n                    if(!this.get('instrument').get('stacked')) {\n                        rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n                    }\n    \n                    let midLeft = [];\n                    for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                        midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                    }\n    \n                    let midRight = [];\n                    for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                        midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                    }\n\n                    midPoints = midLeft.concat(midRight);\n                    anchorDistances = midPoints;\n\n                    anchorDistances.unshift(0);\n                }\n                for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n    \n                for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n            }    \n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    // zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n        if(zoomDataPoints.length != 0) {\n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                var mName = _this.get('chartDataModelName');\n                if (mName === 'strain-values' || mName === 'strain-rate-values' || mName === 'load-values') {\n                    zoomDataPoints.forEach(element => element.values[0] = 0);\n                }\n            }    \n\n            //  if (this.get('instrument').get('instrumentType').get('title') == 'Tilt') {\n            //         zoomDataPoints.forEach(element => element.values.shift());\n            // }    \n\n            // an exception for temperature sensor in dExto\n            if (_this.get('chartDataModelName') !== 'temperature-values') {\n                zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                    return {\n                        key: chartLineName,\n                        // mean: 3,\n                        type: 'lines',\n                        yAxis: 1,\n                        values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                            return [\n                                moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                                dataPoint.values[chartLineIndex]\n                            ];\n                        })\n                    };\n                });\n            } else {\n                zoomChartLinesData = [{\n                    key: 'T. ℃',\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[0]\n                        ];\n                    })\n                }];\n            }\n\n            //console.log(zoomDataPoints.length);\n            //console.log(zoomTempPoints.length);\n\n            if (_this.get('chartDataModelName') !== 'temperature-values') {\n                if (_this.get('chartDataModelName') !== 'displacement-values' && this.get('instrument').get('instrumentType').get('title') !== 'BluVibe'){\n                    while(zoomTempPoints.length > zoomDataPoints.length) {\n                        zoomTempPoints.pop();\n                        zoomTempPoints.shift();\n                    }\n                }\n                var temp = {key: 'T',\n                    type: 'lines',\n                    yAxis: 2,\n                    values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[0],\n                        ];\n                    })\n                };\n                //console.log(temp);\n                zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n                //console.log(zoomChartLinesData);\n            }\n\n            // mix data with events\n            if (seismicEventsChartDistXData) {\n                zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n            }\n            if (blastEventsChartDistXData) {\n                zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n            }\n            if (vibeEventsChartDistXData) {\n                zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n            }\n            \n            return zoomChartLinesData;\n\n        }    \n        return [];\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = '';\n                if (instType === 'BluVibe') {\n                    title = _this.get('chartDataModelName');\n                } else {\n                    title = yAxisLegend.get('title');\n                }\n                let chartType = _this.attrs.getQueryParams('chart_type');\n\n                // because we can only have one displacement chart and this one uses 2 (a regular displacement and a mmH20 displacement)\n                // I had to do this hack to accomodate the mmH20 chart.  I'm not proud of it, but it works.\n                if(chartType == null || chartType == undefined || chartType == '') {\n                    title = 'displacement';\n                } else if (chartType === 'mmH20'){\n                    title = chartType;\n                }\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'mmH20':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units = \"\"; //\"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    case 'event-frequency':\n                        axisName = \"Event Frequency\";\n                        break;\n                    case 'event-ppv':\n                        axisName = \"Event PPV\";\n                        break;\n                    case 'event-ppa':\n                        axisName = \"Event PPA\";\n                        break;\n                    case 'cumulative-event-frequency':\n                        axisName = \"Cumulative Frequency\";\n                        break;\n                    case 'cumulative-event-ppv':\n                        axisName = \"Cumulative PPV\";\n                        break;\n                    case 'cumulative-event-ppa':\n                        axisName = \"Cumulative PPA\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                /* let chartName = yAxisLegend.get('title').capitalize();\n                let chartNameL = chartName.substr(0, chartName.indexOf('_'));\n                let chartNameR = chartName.substr(chartName.indexOf('_') + 1).capitalize();\n                if(chartNameL !== \"\") {\n                    chartName = chartNameL + \" \" + chartNameR;\n                } */\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName + \" (kN)\";\n                    } else if (instType === 'Wire') {\n                        if (raw === true) {\n                            title = \"Frequency (Hz)\";\n                        } else {\n                            title = \"Calculated Values\";\n                        }\n                    } else {\n                        if(units === '') {\n                            title = axisName;\n                        } else {\n                            title = axisName + \" (\" + units + \")\";\n                        }\n                    }\n                } else {\n                    if (instType === 'BluVibe') {\n                        title = axisName;\n                    } else {\n                        if(units === '') {\n                            title = axisName;\n                        } else {\n                            title = axisName  + \" (\" + units + \")\";\n                        }\n                    }\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    displacementData2: Ember.computed('displacementData', function() {\n        //console.log('here');\n        let dv = this.displacementData;\n        dv.forEach(function(value) {\n            value.values.shift();\n            //console.log(value.values);\n        })\n        //dv.shift();\n        return dv;\n    }),\n\n    anchorDistances: Ember.computed('instrument', function() {\n        return['kPa'];\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n    // isPiezo: Ember.computed('instrumentType', function() {\n    //     console.log(\"instrumentType :::::::::::::::::::::::::::::::: \" + this.instrumentType);\n    //     if (this.instrumentType === 'Piezometer') {\n    //         return true;\n    //     }\n    //     return false;\n    // }),\n\n});","// app/components/my-option.js\nimport Component from '@glimmer/component';\n\nexport default class DropdownOptionComponent extends Component {\n  get isSelected() {\n    this.args.value === this.args.selectValue;\n  }\n}\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    session: service(),\n    userProfileService: service(),\n    init() {\n        this._super(...arguments);\n        console.log(\"selected user\");\n        console.log(this.get(\"selectedUser\"))\n    },\n    disableBasedOnAdminLevel: Ember.computed(\"parentUser\", function (){\n        let parentUserProfile = this.get(\"parentUser\")?.userProfileService?.profile;\n        if(parentUserProfile)\n            return !parentUserProfile.is_staff\n        return true;\n    }),\n    canUploadToVP: Ember.computed(\"\", function (){\n        return this.get(\"selectedUser\").can_upload_vantagepoint;\n    }),\n    canLoginToVP: Ember.computed(\"\", function (){\n        return this.get(\"selectedUser\").can_login_vantagepoint;\n    }),\n    getCompany:Ember.computed(\"selectedUser\",function() {\n        return this.get(\"selectedUser\")?.company;\n    }),\n\n    getPosition:Ember.computed(\"selectedUser\",function() {\n        return this.get(\"selectedUser\")?.position;\n    }),\n    getIsActive:Ember.computed(\"selectedUser\",function() {\n        return this.get(\"selectedUser\")?.is_active;\n    }),\n    getIsStaff:Ember.computed(\"selectedUser\",function() {\n        return this.get(\"selectedUser\")?.is_staff;\n    }),\n    getIsMasterUser: Ember.computed(\"selectedUser\",function(){\n        return this.get(\"selectedUser\")?.is_master_key_account;\n    }),\n    actions: {\n        \n        close(){\n            this.get(\"closeModal\")();\n        },\n        save(){\n            let data={};\n            let companyTB = document.getElementById(\"companyTextbox\");\n            if(companyTB != null){\n                data[\"company\"] = companyTB.value;\n            }\n\n            let positionTB = document.getElementById(\"positionTextbox\");\n            if(positionTB != null){\n                data[\"position\"] = positionTB.value;\n            }\n            \n            let canLoginVPCheckbox = document.getElementById(\"canLoginVPCheckbox\");\n            if(canLoginVPCheckbox != null){\n                data[\"can_login_vp\"] = canLoginVPCheckbox.checked;\n            }\n            let canUploadVPCheckbox = document.getElementById(\"canUploadVPCheckbox\");\n            if(canUploadVPCheckbox != null){\n                data[\"can_upload_vp\"] = canUploadVPCheckbox.checked;\n            }\n\n            this.get(\"saveModal\")(data);\n        }\n    }\n});\n","define(\"geotechnical-data-platform-new/components/ember-modal-dialog-positioned-container\", [\"exports\", \"ember-modal-dialog/components/positioned-container\"], function (_exports, _positionedContainer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _positionedContainer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-modal-dialog/-basic-dialog\", [\"exports\", \"ember-modal-dialog/components/basic-dialog\"], function (_exports, _basicDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _basicDialog.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-modal-dialog/-in-place-dialog\", [\"exports\", \"ember-modal-dialog/components/in-place-dialog\"], function (_exports, _inPlaceDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _inPlaceDialog.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-modal-dialog/-liquid-dialog\", [\"exports\", \"ember-modal-dialog/components/liquid-dialog\"], function (_exports, _liquidDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _liquidDialog.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-modal-dialog/-liquid-tether-dialog\", [\"exports\", \"ember-modal-dialog/components/liquid-tether-dialog\"], function (_exports, _liquidTetherDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _liquidTetherDialog.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-modal-dialog/-tether-dialog\", [\"exports\", \"ember-modal-dialog/components/tether-dialog\"], function (_exports, _tetherDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _tetherDialog.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-popper-targeting-parent\", [\"exports\", \"ember-popper/components/ember-popper-targeting-parent\"], function (_exports, _emberPopperTargetingParent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopperTargetingParent.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-popper\", [\"exports\", \"ember-popper/components/ember-popper\"], function (_exports, _emberPopper) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopper.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/ember-wormhole\", [\"exports\", \"ember-wormhole/components/ember-wormhole\"], function (_exports, _emberWormhole) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberWormhole.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/fa-icon\", [\"exports\", \"@fortawesome/ember-fontawesome/components/fa-icon\"], function (_exports, _faIcon) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _faIcon.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/file-field\", [\"exports\", \"ember-uploader/components/file-field\"], function (_exports, _fileField) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _fileField.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport FileField from 'ember-uploader/components/file-field';\nimport Uploader from 'ember-uploader/uploaders/uploader';\nimport { inject as service } from '@ember/service';\nimport { computed, observer } from '@ember/object';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default FileField.extend({\n    session: service(),\n    isSubmitting: false,\n    isSubmittingChangeObserver: Ember.observer('isSubmitting', function() {\n        if (this.get('isSubmitting')) {\n            this.send('submitFile');\n        }\n    }),\n    uploader: null,\n    files: null,\n    ajaxSettings: computed({\n        get() {\n            return {\n                headers: {\n                    Accept: 'application/vnd.api+json',\n                    withCredentials: true,\n                    Authorization: 'Bearer ' + localStorage.token  \n                }\n            }\n        }\n    }),\n    fileSettings: {},\n    filesDidChange: function(files) {\n        const uploader = Uploader.create({\n            url: getApiBaseUrl() + '/import-gateway-file/',\n            // url: \"http://\" + document.location.host.split(':')[0] + \":8000\" + '/import-gateway-file/',\n            paramName: 'data_file',\n            ajaxSettings: this.get('ajaxSettings')\n        });\n\n        this.set('uploader', uploader);\n        this.set('files', files);\n    },\n    actions: {\n        submitFile(object){\n            const _this = this;\n            let files = _this.get('files');\n            \n            //files = null;\n            //this.sendAction('importError');\n            if (!Ember.isEmpty(files)) {\n                // this second argument is optional and can to be sent as extra data with the upload\n                //console.log(files);\n                //console.log(_this.get('fileSettings'));\n                let format = _this.get('fileSettings').file_format;\n                let dateFormat = _this.get('fileSettings').date_format;\n                let filename = files[0].name.substring(0,files[0].name.lastIndexOf('.'));\n                let ext = files[0].name.substring(files[0].name.lastIndexOf('.')+1);\n                \n                let ok = true;\n                let id = this.get('fileSettings').gateway_id;\n                // console.log(\"ID: \" + id + \" Filename: \" + filename)\n                let errMsg = \"\";\n                if(id !== filename) {\n                    if(confirm(\"IDs do not match\\nGateway ID: \" + id + \"\\nFile ID: \" + filename + \"\\nYou are about to import this data.\")) {\n                        ok = true;\n                    } else {\n                        ok = false;\n                    }\n                }\n\n                if(!format.includes(ext)) {\n                    if(confirm(\"File format does not match\\nSelected Format: \" + format + \"\\nFile format: \" + ext + \"\\nYou are about to import this data.\")) {\n                        ok = true;\n                    } else {\n                        ok = false;\n                    }                            \n                }\n\n                if(dateFormat === '') {\n                    ok = false;\n                    errMsg = \"Date format not selected.\";\n                }\n                \n                if(ok) {\n                    //$(\"body\").css(\"cursor\", \"progress\");\n                    _this.get('uploader').upload(files[0],_this.get('fileSettings')\n                    ).then(data => {\n                        // Handle success\n                        // Reload the page to show imported data\n                        //$(\"body\").css(\"cursor\", \"default\");\n                        window.location.reload(true);\n                    }, error => {\n                        //console.log(error.statusText);\n                        //$(\"body\").css(\"cursor\", \"default\");\n                        if (error.responseJSON) {\n                            this.sendAction('errorHappened',error.responseText);\n                        } else {\n                            this.sendAction('errorHappened',error.statusText);\n                        }\n                        //this.sendAction('errorHappened',error.statusText);\n                        // Handle failure\n                    });\n                } else {\n                    if (errMsg !== \"\") {\n                        this.sendAction('errorHappened',errMsg);\n                    } else {\n                        this.sendAction('errorHappened',\"User cancelled\");\n                    }\n                }\n            } else {\n                this.sendAction('errorHappened',\"No File selected.\");\n            }\n        },\n        cancel(){\n            // this.set('newValue', this.get(`object.${this.get('field')}`));\n            // this.set('isEditing', false);\n            // this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        }\n    },\n});","import Ember from 'ember';\nimport FileField from 'ember-uploader/components/file-field';\nimport Uploader from 'ember-uploader/uploaders/uploader';\nimport { inject as service } from '@ember/service';\nimport { computed, observer } from '@ember/object';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default FileField.extend({\n    session: service(),\n    isSubmitting: false,\n    isSubmittingChangeObserver: Ember.observer('isSubmitting', function() {\n        if (this.get('isSubmitting')) {\n            this.send('submitFile');\n        }\n    }),\n    uploader: null,\n    files: null,\n    ajaxSettings: computed({\n        get() {\n            return {\n                headers: {\n                    Accept: 'application/vnd.api+json',\n                    withCredentials: true,\n                    Authorization: 'Bearer ' + localStorage.token  \n                }\n            }\n        }\n    }),\n    fileSettings: {},\n    filesDidChange: function(files) {\n        const uploader = Uploader.create({\n            url: getApiBaseUrl() + '/import-seismic/',\n            paramName: 'data_file',\n            ajaxSettings: this.get('ajaxSettings')\n        });\n\n        this.set('uploader', uploader);\n        this.set('files', files);\n    },\n    actions: {\n        submitFile(object){\n            const _this = this;\n            let files = _this.get('files');\n            \n            //files = null;\n            //this.sendAction('importError');\n            if (!Ember.isEmpty(files)) {\n                // this second argument is optional and can to be sent as extra data with the upload\n                //console.log(files);\n                //console.log(_this.get('fileSettings'));\n                let format = _this.get('fileSettings').file_format;\n                let dateFormat = _this.get('fileSettings').date_format;\n                let filename = files[0].name.substring(0,files[0].name.lastIndexOf('.'));\n                let ext = files[0].name.substring(files[0].name.lastIndexOf('.')+1);\n                \n                let ok = true;\n                let id = this.get('fileSettings').instrument_id;\n\n                let errMsg = \"\";\n                \n                if(ok) {\n                    //$(\"body\").css(\"cursor\", \"progress\");\n                    _this.get('uploader').upload(files[0],_this.get('fileSettings')\n                    ).then(data => {\n                        // Handle success\n                        // Reload the page to show imported data\n                        //$(\"body\").css(\"cursor\", \"default\");\n                        window.location.reload(true);\n                    }, error => {\n                        //console.log(error.statusText);\n                        //$(\"body\").css(\"cursor\", \"default\");\n                        if (error.responseJSON) {\n                            this.sendAction('errorHappened',error.responseText);\n                        } else {\n                            this.sendAction('errorHappened',error.statusText);\n                        }\n                        //this.sendAction('errorHappened',error.statusText);\n                        // Handle failure\n                    });\n                } else {\n                    if (errMsg !== \"\") {\n                        this.sendAction('errorHappened',errMsg);\n                    } else {\n                        this.sendAction('errorHappened',\"User cancelled\");\n                    }\n                }\n            } else {\n                this.sendAction('errorHappened',\"No File selected.\");\n            }\n        },\n        cancel(){\n            // this.set('newValue', this.get(`object.${this.get('field')}`));\n            // this.set('isEditing', false);\n            // this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        }\n    },\n});","import Ember from 'ember';\nimport FileField from 'ember-uploader/components/file-field';\nimport Uploader from 'ember-uploader/uploaders/uploader';\nimport { inject as service } from '@ember/service';\nimport { computed, observer } from '@ember/object';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default FileField.extend({\n    session: service(),\n    isSubmitting: false,\n    isSubmittingChangeObserver: Ember.observer('isSubmitting', function() {\n        if (this.get('isSubmitting')) {\n            this.send('submitFile');\n        }\n    }),\n    uploader: null,\n    files: null,\n    ajaxSettings: computed({\n        get() {\n            return {\n                headers: {\n                    Accept: 'application/vnd.api+json',\n                    withCredentials: true,\n                    Authorization: 'Bearer ' + localStorage.token  \n                }\n            }\n        }\n    }),\n    fileSettings: {},\n    filesDidChange: function(files) {\n        const uploader = Uploader.create({\n            url: getApiBaseUrl() + '/import-file/',\n            paramName: 'data_file',\n            ajaxSettings: this.get('ajaxSettings')\n        });\n\n        this.set('uploader', uploader);\n        this.set('files', files);\n    },\n    actions: {\n        submitFile(object){\n            const _this = this;\n            let files = _this.get('files');\n            \n            //files = null;\n            //this.sendAction('importError');\n            if (!Ember.isEmpty(files)) {\n                // this second argument is optional and can to be sent as extra data with the upload\n                //console.log(files);\n                //console.log(_this.get('fileSettings'));\n                let format = _this.get('fileSettings').file_format;\n                let dateFormat = _this.get('fileSettings').date_format;\n                let filename = files[0].name.substring(0,files[0].name.lastIndexOf('.'));\n                let ext = files[0].name.substring(files[0].name.lastIndexOf('.')+1);\n                \n                let ok = true;\n                let id = this.get('fileSettings').instrument_id;\n\n                let errMsg = \"\";\n                if(id !== filename) {\n                    if(confirm(\"IDs do not match\\nInstrument ID: \" + id + \"\\nFile ID: \" + filename + \"\\nYou are about to import this data.\")) {\n                        ok = true;\n                    } else {\n                        ok = false;\n                    }\n                }\n\n                if(!format.includes(ext)) {\n                    if(confirm(\"File format does not match\\nSelected Format: \" + format + \"\\nFile format: \" + ext + \"\\nYou are about to import this data.\")) {\n                        ok = true;\n                    } else {\n                        ok = false;\n                    }                            \n                }\n\n                if(dateFormat === '') {\n                    ok = false;\n                    errMsg = \"Date format not selected.\";\n                }\n                \n                if(ok) {\n                    //$(\"body\").css(\"cursor\", \"progress\");\n                    _this.get('uploader').upload(files[0],_this.get('fileSettings')\n                    ).then(data => {\n                        // Handle success\n                        // Reload the page to show imported data\n                        //$(\"body\").css(\"cursor\", \"default\");\n                        window.location.reload(true);\n                    }, error => {\n                        //console.log(error.statusText);\n                        //$(\"body\").css(\"cursor\", \"default\");\n                        if (error.responseJSON) {\n                            this.sendAction('errorHappened',error.responseText);\n                        } else {\n                            this.sendAction('errorHappened',error.statusText);\n                        }\n                        //this.sendAction('errorHappened',error.statusText);\n                        // Handle failure\n                    });\n                } else {\n                    if (errMsg !== \"\") {\n                        this.sendAction('errorHappened',errMsg);\n                    } else {\n                        this.sendAction('errorHappened',\"User cancelled\");\n                    }\n                }\n            } else {\n                this.sendAction('errorHappened',\"No File selected.\");\n            }\n        },\n        cancel(){\n            // this.set('newValue', this.get(`object.${this.get('field')}`));\n            // this.set('isEditing', false);\n            // this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        }\n    },\n});","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    // searchValue: Ember.computed('searchValue', function() {\n    //     if (typeof this.attrs.searchValue !== 'undefined') {\n    //         return this.attrs.searchValue.value;\n    //     }\n    // }),\n    // pageValue: Ember.computed('pageValue', function() {\n    //     if (typeof this.attrs.pageValue !== 'undefined') {\n    //         return this.attrs.pageValue.value;\n    //     }\n    // }),\n    pageValue: 1,\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n\n            if (typeof propertyValue !== 'undefined') {\n\n                if (propertyValue == \"\")\n                    this.set('target', \"\");\n                else\n                    this.set('target', this.get('targetName'));\n                    \n                this.set(propertyName, propertyValue);\n                this.set('pageValue', 1);\n                \n                window.location.href = `/alerts?search=${propertyValue}`;\n                \n            }\n        },\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 13) {\n            let caller = e.target;\n            this.send('updateProperty', 'searchValue', caller.value);\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    sv: '',\n    pv: 1,\n    searchValue: Ember.computed('searchValue', {\n        get() {\n            if (typeof this.attrs.searchValue !== 'undefined') {\n                return this.attrs.searchValue.value;\n            } else {\n                return this.get('sv')\n            }    \n        },\n        set(value) {\n            this.set('sv', value)\n        }\n    }),\n    pageValue: Ember.computed('pageValue', {\n        get() {\n            if (typeof this.attrs.pageValue !== 'undefined') {\n                return this.attrs.pageValue.value;\n            } else {\n                return this.get('pv')\n            }\n        },\n        set(value) {\n            this.set('pv',value);\n        }\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            if (typeof propertyValue !== 'undefined') {\n                this.set(propertyName, propertyValue);\n                this.set('pageValue', 1);\n            }\n        },\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 13) {\n            this.send('updateProperty', 'searchValue', quickTableFilter.value);\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    // searchValue: Ember.computed('searchValue', function() {\n    //     if (typeof this.attrs.searchValue !== 'undefined') {\n    //         return this.attrs.searchValue.value;\n    //     }\n    // }),\n    // pageValue: Ember.computed('pageValue', function() {\n    //     if (typeof this.attrs.pageValue !== 'undefined') {\n    //         return this.attrs.pageValue.value;\n    //     }\n    // }),\n    pageValue: 1,\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            if (typeof propertyValue !== 'undefined') {\n                if (propertyValue == \"\")\n                    this.set('target', \"\");\n                else\n                    this.set('target', this.get('targetName'));\n\n                this.set(propertyName, propertyValue);\n                this.set('pageValue', 1);\n\n                window.location.href = `/gateway?search=${propertyValue}`;\n            }\n        },\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 13) {\n            let caller = e.target;\n            this.send('updateProperty', 'searchValue', caller.value);\n        }\n    }\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    pageValue: 1,\n    startDate: \"\",\n    endDate:\"\",\n    search:\"\",\n\n    init() {\n        this._super(...arguments);\n        this.setSearchFieldsFromURL();\n    },\n\n    setSearchFieldsFromURL() {\n        const queryParams = new URLSearchParams(window.location.search);\n        this.set('search', queryParams.get('search') || '');\n    \n        const startDateParam = queryParams.get('startDate');\n        const endDateParam = queryParams.get('endDate');\n    \n        if (startDateParam) {\n            const decodedStartDate = decodeURIComponent(startDateParam);\n            console.log(\"Init StartDate: \" + startDateParam)\n            this.set('startDate', startDateParam);//this.formatDateForDatetimeLocal(decodedStartDate));\n        } else {\n            this.set('startDate', '');\n        }\n    \n        if (endDateParam) {\n            const decodedEndDate = decodeURIComponent(endDateParam);\n            console.log(\"Init EndDate: \" + endDateParam)\n            this.set('endDate', endDateParam);//this.formatDateForDatetimeLocal(decodedEndDate));\n        } else {\n            this.set('endDate', '');\n        }\n        \n    },\n    \n    formatDateForDatetimeLocal(dateStr) {\n        // Assuming the format from the URL is 'YYYY-MM-DDTHH:mm' or similar\n        const date = new Date(dateStr);\n        return date.toISOString().slice(0, 16); // Converts to 'YYYY-MM-DDTHH:mm' format\n    },\n\n    actions: {\n        updateProperty(propertyName, changeEvent) {\n                this.set(propertyName, changeEvent.target.value);\n    \n                if (propertyName === 'startDate') {\n                    let newEndDate = this.calculateEndDate(changeEvent.target.value);\n                    this.set('endDate', newEndDate);\n                    console.log(\"endDate: \" + newEndDate);\n                }\n\n                console.log(\"PropertyValue: \" + this.get(propertyName))\n        },\n        search() {\n            this.set('pageValue', 1);\n            let searchValue = this.get(\"search\");\n            let startDate = this.get(\"startDate\");\n            let endDate = this.get(\"endDate\");\n            window.location.href = `/log-viewer?search=${encodeURIComponent(searchValue)}&startDate=${startDate}&endDate=${endDate}`;\n        },\n        reset(){\n            window.location.href = \"/log-viewer\";\n        }\n    },\n    calculateEndDate(startDate) {\n        let startDateObj = new moment(startDate);\n        startDateObj = startDateObj.add(1, \"days\").format(\"YYYY-MM-DDTHH:mm\"); // Add 1 day\n        console.log(\"calculateEndDate/startDateObj: \" + startDateObj);\n        return startDateObj; // Format for datetime-local input\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 13) {\n            let caller = e.target;\n            this.send('updateProperty', 'searchValue', caller.value);\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    // searchValue: Ember.computed('searchValue', function() {\n    //     if (typeof this.attrs.searchValue !== 'undefined') {\n    //         return this.attrs.searchValue.value;\n    //     }\n    // }),\n    // pageValue: Ember.computed('pageValue', function() {\n    //     if (typeof this.attrs.pageValue !== 'undefined') {\n    //         return this.attrs.pageValue.value;\n    //     }\n    // }),\n    pageValue: 1,\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            if (typeof propertyValue !== 'undefined') {\n                if (propertyValue == \"\")\n                    this.set('target', \"\");\n                else\n                    this.set('target', this.get('targetName'));\n                    \n                this.set(propertyName, propertyValue);\n                this.set('pageValue', 1);\n                // console.log(\"propertyValue::::::::::: \" + propertyValue);\n                window.location.href = `/instruments?search=${propertyValue}`;\n            }\n        },\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 13) {\n            let caller = e.target;\n            this.send('updateProperty', 'searchValue', caller.value);\n        }\n    }\n});\n","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@ember/component';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\n\nexport default Component.extend({\n    router: service(),\n    session: service(),\n    selectedFreqEventTabKey: null,\n    selectedFreqEventSubTabKey: null,\n    selectedFreqEventSubSubTabKey: null,\n    buildTabsInstrTypeDependent: Ember.computed('instrumentType', function() {\n        let tabs = [];\n        let instrumentType = this.get(\"instrumentType\");\n        switch (instrumentType){\n            case \"BluVibe\":\n                tabs = [\n                    {id: \"raw\", label: \"RAW\"},\n                    {id: \"acceleration\", label: \"Acceleration\"},\n                    {id: \"velocity\", label: \"Velocity\"},\n                    {id: \"displacement\", label: \"Displacement\"},\n                ];\n                break;\n        }\n        return tabs;\n    }),\n    buildSubTabsInstrTypeDependent: Ember.computed('selectedFreqEventTabKey', function() {\n        let tabs = [];\n        let selectedFreqEventTabKey = this.get('selectedFreqEventTabKey');\n        switch (selectedFreqEventTabKey){\n            case \"raw\":\n                tabs = [\n                    {id: \"raw_xyz_axis_focus\", label: \"XYZ-Focus\"},\n                    {id: \"x_axis_focus\", label: \"X-Focus\"},\n                    {id: \"y_axis_focus\", label: \"Y-Focus\"},\n                    {id: \"z_axis_focus\", label: \"Z-Focus\"},\n                ];\n                break;\n            case \"acceleration\":\n                tabs = [\n                    {id: \"sub_acceleration_linear_regression\", label: \"Linear Regression\"},\n                    {id: \"sub_acceleration_fft\", label: \"FFT\"}\n                ];\n                break;\n            case \"displacement\":\n                tabs = [\n                    {id: \"sub_displacement_linear_regression\", label: \"Linear Regression\"},\n                    {id: \"sub_displacement_fft\", label: \"FFT\"}\n                ];\n                break;\n            case \"velocity\":\n                tabs = [\n                    {id: \"sub_velocity_linear_regression\", label: \"Linear Regression\"},\n                    {id: \"sub_velocity_fft\", label: \"FFT\"}\n                ];\n                break;\n        }\n        return tabs;\n    }),\n    buildSubSubTabsInstrTypeDependent: Ember.computed('selectedFreqEventSubTabKey', function() {\n        let tabs = [];\n        let selectedFreqEventSubTabKey = this.get('selectedFreqEventSubTabKey');\n        switch (selectedFreqEventSubTabKey){\n            case \"sub_acceleration_linear_regression\":\n            case \"sub_velocity_linear_regression\":\n            case \"sub_displacement_linear_regression\":\n                tabs = [\n                    {id: \"sub_sub_xyz_axis_focus\", label: \"XYZ-Focus\"},\n                    {id: \"sub_sub_x_axis_focus\", label: \"X-Focus\"},\n                    {id: \"sub_sub_y_axis_focus\", label: \"Y-Focus\"},\n                    {id: \"sub_sub_z_axis_focus\", label: \"Z-Focus\"},\n                ];\n                break;\n            case \"sub_acceleration_fft\":\n            case \"sub_velocity_fft\":\n            case \"sub_displacement_fft\":\n                tabs = [\n                    {id: \"sub_sub_x_axis_focus\", label: \"X-Focus\"},\n                    {id: \"sub_sub_y_axis_focus\", label: \"Y-Focus\"},\n                    {id: \"sub_sub_z_axis_focus\", label: \"Z-Focus\"},\n                ];\n                break;\n        }\n        return tabs;\n    }),\n    willDestroyElement() {\n        this._super(...arguments);\n        // Reset any internal state here if needed\n        this.set(\"selectedFreqEventTabKey\", 'raw');\n        this.set(\"selectedFreqEventSubTabKey\", 'raw_xyz_axis_focus');\n        this.set(\"selectedFreqEventSubSubTabKey\", null);\n    },\n\n    actions: {\n        updateSelectedTab(newTabId) {\n            // console.log(`updateSelectedTab:${newTabId}`);\n            this.set('selectedFreqEventTabKey', newTabId);\n            switch(newTabId){\n                case \"raw\":\n                    // console.log(\"setting raw\")\n                    this.set('selectedFreqEventSubTabKey', \"raw_xyz_axis_focus\");\n                    this.set('selectedFreqEventSubSubTabKey', null);\n                    break;\n                case \"acceleration\":\n                    // console.log(\"setting acceleration\")\n                    this.set('selectedFreqEventSubTabKey', \"sub_acceleration_linear_regression\");\n                    this.set('selectedFreqEventSubSubTabKey', \"sub_sub_xyz_axis_focus\");\n                    break;\n                case \"velocity\":\n                    // console.log(\"setting velocity\")\n                    this.set('selectedFreqEventSubTabKey', \"sub_velocity_linear_regression\");\n                    this.set('selectedFreqEventSubSubTabKey', \"sub_sub_xyz_axis_focus\");\n                    break;\n                case \"displacement\":\n                    // console.log(\"setting displacement\")\n                    this.set('selectedFreqEventSubTabKey', \"sub_displacement_linear_regression\");\n                    this.set('selectedFreqEventSubSubTabKey', \"sub_sub_xyz_axis_focus\");\n                    break;\n            }\n        },\n        updateSelectedSubTab(newTabId) {\n            // console.log(`updateSelectedSubTab:${newTabId}`)\n\n            this.set('selectedFreqEventSubTabKey', newTabId);\n            let bluvibeV2ModelProfiles = this.get(\"bluvibeV2ModelProfiles\");\n            if(bluvibeV2ModelProfiles.length == 1){\n                switch(newTabId){\n                    case \"sub_acceleration_fft\":\n                    case \"sub_velocity_fft\":\n                    case \"sub_displacement_fft\":\n                        this.set('selectedFreqEventSubSubTabKey', \"sub_sub_x_axis_focus\");\n                        break;\n                    case \"sub_acceleration_linear_regression\":\n                    case \"sub_velocity_linear_regression\":\n                    case \"sub_displacement_linear_regression\":\n                        this.set('selectedFreqEventSubSubTabKey', \"sub_sub_xyz_axis_focus\");\n                        break;\n                }\n            }\n        },\n        updateSelectedSubSubTab(newTabId) {\n            // console.log(`updateSelectedSubSubTab:${newTabId}`);\n            this.set('selectedFreqEventSubSubTabKey', newTabId);\n\n            this.set('showLoading', true);\n            Ember.run.next(this, function () {\n                this.set('showLoading', false); // triggers observer again\n            });\n        }\n    }\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport alertGetId from '../helpers/alert-get-id';\n\nexport default Ember.Component.extend({\n    authError: false,\n    router: service(),\n    isRowDeleteConfirmationDialog: {},\n    gwId: null,\n    // Ember.computed('alert', function(){\n    //     let alert = this.get('alert');\n    //  console.log(alert.id);\n    //     return alertGetId([alert]);\n        \n    // }),\n\n    processedGatewayAlerts: Ember.computed('gatewayAlerts.[]', function() {\n        return this.gatewayAlerts.map(alertRow => {\n          // If you need to manipulate 'gateway' specifically\n        //  console.log(\"alertRow.gateway:::::::::::::::::::::::: \" + alertRow.gateway.id);\n    \n          return alertRow;\n        })\n    }),\n    actions: {\n        getId(alert) {\n            // console.log(alert.id);\n            let gwId = alertGetId([alert]);\n            this.gwId = gwId;\n            return gwId;\n          },\n        toggleRowDeleteConfirmationDialog(id){\n            //console.log(id);\n            let errBox = document.getElementById(\"alertListError\");\n            errBox.hidden=true;\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        createAlert: function() {\n            // console.log(\"create\");\n            let gwID = this.get(\"gatewayId\");\n            if (gwID !== null) {\n                this.get('router').transitionTo('create-gateway-alert', { queryParams: { gw_id: gwID }});\n            } else {\n                this.get('router').transitionTo('create-gateway-alert');\n            }\n        },\n        remove(model, object){\n            let _this = this;\n            let _store = this.get('store');\n\n            //object.get('isDeleted');\n            \n            //_this.setError('authError',false);\n            let errBox = document.getElementById(\"alertListError\");\n\n            // object.deleteRecord();\n\n            errBox.hidd = true;\n            //console.log(_store.find('user', params));\n\n            object.save().then(function(){\n                \n                object.deleteRecord();\n                \n                object.save().then(function(){                    \n                    object.unloadRecord();\n                }).catch(function(reason){\n                    let status = reason.errors[0].status;\n\n                    if (status == 403) {\n                        errBox.hidden = false;\n                    };\n                });\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                //model.removeObject(object);\n\n            }).catch(function(reason){\n\n                let status = reason.errors[0].status;\n\n                if (status == 403) {\n                    errBox.hidden = false;\n                };\n            });\n        },\n    }\n\n})","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport gateway from '../models/gateway';\n\nexport default Ember.Component.extend({\n    session: service(),\n    isRowDeleteConfirmationDialog: {},\n    rdcd: {},\n    store: service(),\n    childDict: {},\n    init() {\n        this._super(...arguments);\n        // Inspecting gateway when the component is initialized\n        // console.log(\"Gateway in init: \", this.get('gateway'));\n        \n        // If children are a promise (async relationship), then use then to resolve it\n        this.loadChildren();\n    },\n\n    loadChildren() {\n        let gateway = this.get('gateway');\n        let gatewayId = gateway.get('id');\n\n        this.store.findRecord('gateway', gatewayId, { reload: true }).then((gateway) => {\n            // console.log(\"childID: \" + gatewayId);\n            gateway.get('children').then((children) => {\n                // console.log(\"children: \" + children);\n                let childObjects = children.map(child => child.toJSON());\n                this.set(`childDict.${gatewayId}`, childObjects);\n                // console.log(\"childDict:::: \");\n                // console.log(this.childDict);\n                });\n        }).catch((error) => {\n            console.error(\"Error fetching gateway: \", error);\n        });\n    },\n\n    inspectGateway () {\n        // console.log(\"Children:\");\n        let gw = this.get('gateway');\n        // let gwc = gw.get('children');\n        let gwc = gw.get('children');\n        // console.log(\"Children:\", gwc.toArray());\n\n        gwc.toArray();\n        return true;        \n    },\n\n    setRDCD(value) {\n        let rdcd = this.get('isRowDeleteConfirmationDialog');\n        rdcd[value[0]] = value[1];\n        this.set('isRowDeleteConfirmationDialog', rdcd);\n        this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n    },\n         \n    gatewayChildren: Ember.computed(function() {\n        // Logic to retrieve the children of tableRow\n        // Return an array of child gateways\n        let gateway = this.get('gateway');\n        \n        // console.log(\"tableRow:::: \" + gateway);\n        return gateway.children;\n    }),\n\n    actions: {\n        toggleRowDeleteConfirmationDialog(id){\n            //console.log(id);\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        remove(model, object){\n            let _this = this;\n            let _store = this.get('store');\n\n            let errBox = document.getElementById(\"gatewayChildListError\");\n\n            errBox.hidd = true;\n\n            //object.get('isDeleted');\n            object.save().then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                //model.removeObject(object);\n                object.deleteRecord();\n\n                object.save().then(function(){\n                    object.unloadRecord();\n                }).catch(function(reason){\n                    let status = reason.errors[0].status;\n\n                    if (status == 403) {\n                        errBox.hidden = false;\n                    };\n                });\n\n            }).catch(function(reason){\n\n                let status = reason.errors[0].status;\n\n                if (status == 403) {\n                    errBox.hidden = false;\n                };\n            });\n        },\n    }\n\n})\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\n// import isRowExpandable from './helpers/is-row-expandable';\nimport { computed } from '@ember/object';\n\nimport gateway from '../models/gateway';\n\nexport default Ember.Component.extend({\n    store: service(),\n    router: service(),\n    session: service(),\n    expandedRowsArray: [],\n    isRowDeleteConfirmationDialog: {},\n    isRowExpanded: {},    \n    \n    licenceIsValid: Ember.computed('',function() {\n        let valid = false;\n        try {\n            valid = this.session.data.authenticated.isValid;\n        } catch {}\n        return valid;\n    }),\n    // isRowExpandable: Ember.computed('gateway', function() {\n    //     let model = gateway;\n    //     let isRowExpandable = false;\n    //     if (model.length > 0) {\n    //         isRowExpandable = true;\n    //     }\n    //     return isRowExpandable;\n    // }),\n    expandedRows(index) {\n        // console.log(\"expandedRows:::: \" + this.expandedRowsArray[index]);\n        return this.expandedRowsArray[index];\n    },\n    gatewayChildren: Ember.computed('gateway', function() {\n        // Logic to retrieve the children of tableRow\n        // Return an array of child gateways\n        let gateway = this.get('gateway');\n        \n        // console.log(\"tableRow:::: \" + gateway);\n        return gateway.children;\n    }),\n    get_id(gateway) {\n        // console.log(\"get_id:::: \" + gateway.id);\n        return gateway.id;\n    },\n    actions: {\n        toggleExpansion(index) {\n            // console.log(\"INDEX:::: \" + index);\n            if (this.expandedRowsArray[index] != null) {\n                this.expandedRowsArray[index] = !this.expandedRowsArray[index];\n                // console.log(\"In Array:::: \" + JSON.stringify(this.expandedRowsArray));\n            } else {\n              this.expandedRowsArray[index] = false;\n            // console.log(\"Adding INDEX:::: \" + index);\n            }\n            // console.log(this.expandedRowsArray);\n        },\n        createGateway: function() {\n            //console.log(\"create\");\n            this.get('router').transitionTo('create-gateway');\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            //console.log(id);\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        toggleExpandedRow(id){\n            // console.log(\"id::::::\" + id);\n            for(let row in this.get(\"isRowExpanded\")){\n                Ember.set(this.get('isRowExpanded'), row, false);\n            }\n            Ember.set(this.get('isRowExpanded'), id, true); //update isVisibleRowDetails variable for each single row\n            // console.log(\"this.get('isRowExpanded'):::::\" + Object.keys(this.get('isRowExpanded')).toString());\n            \n        },\n        remove(model, object){\n            //console.log(\"remove\");\n            if(object.get('hasChildren')){\n                object.active = false;\n                object.save().then(function(){\n                    // object.unloadRecord();\n                    this.sendAction('refreshRoute');\n                }).catch(function(reason){\n                    console.log(\"Exception from remove:::: reason:: \" + reason);\n                });\n                // console.log(\"after remove\");\n                this.sendAction('refreshRoute');\n                \n                // await this.removeGatewayWithNodes(model, object);\n            } else {\n                this.removeGatewayWithoutNodes(model, object);\n            }\n        },\n        \n    },\n    removeGatewayWithoutNodes(model, object){\n        // let _store = this.get('store');\n        let errBox = document.getElementById(\"gatewayListError\");\n        errBox.hidd = true;\n        //object.get('isDeleted');\n        object.save().then(function(){\n            // deal with records that just were created\n            // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n            //model.removeObject(object);\n            object.deleteRecord();\n\n            object.save().then(function(){\n                object.unloadRecord();\n            }).catch(function(reason){\n                let status = reason.errors[0].status;\n\n                if (status == 403) {\n                    errBox.hidden = false;\n                };\n            });\n\n        }).catch(function(reason){\n            console.log(\"Exception from removeGatewayWithoutNodes:::: reason:: \" + reason);\n        });\n    },\n    async removeGatewayWithNodes(model, object){\n        let _this = this;\n        let _store = this.get('store');\n        let errBox = document.getElementById(\"gatewayListError\");\n        let badCodes = ['null', 'undefined', ''];\n        // Find or create Orphaned Nodes gateway\n        let gatewayType = object.get('gatewayType');\n        let orphanGateway= null;\n\n        errBox.hidden = true;\n        \n        orphanGateway = await _store.findRecord('Gateway',\"0000GW00\").then(function(gateway){\n            return gateway;\n        }).catch(function(reason){\n            // console.log(\"Exception from removeGatewayWithNodes:::: reason:: \" + reason);\n            // console.log(\"Creating orphanGateway:::: \");\n\n            orphanGateway = _store.createRecord('gateway', {\n                id: '0000GW00',\n                name: 'Orphaned Nodes',\n                gatewayType: gatewayType,\n                active: true\n                // set other properties as needed\n            });\n            orphanGateway.save().then(function(gateway){\n                return gateway;\n            }).catch(function(reason){\n                console.log(\"Exception from removeGatewayWithNodes:::: reason:: \" + reason);\n            }); \n            // return something to avoid error\n            return null;        \n        });\n\n        if( !badCodes.includes(orphanGateway) ) {\n            if( badCodes.includes(gatewayType) ) {                    \n                    return null\n            } else {\n                // console.log(\"Running saveNodes:::: \");\n                await this.saveNodes(orphanGateway, object);\n            }\n        } else {\n            console.log(\"Exception from removeGatewayWithNodes:::: reason:: \" + reason);\n            return null;\n        }\n        \n    },\n    \n    \n    async saveNodes(orphanGateway, object) {\n        try {\n            // Reassign children of the deleting gateway to Orphaned Nodes gateway\n            let nodes = object.get('children');\n    \n            // console.log(\"saveNodes:::: before\");\n            // Save all the nodes\n            await Promise.all(nodes.map(node => {\n                node.set('parentGateway', orphanGateway);\n                node.save().then(function(node){\n                    // console.log(\"saveNodes:::: node:: \" + node);\n                }).catch(function(reason){\n                    console.log(\"Exception from saveNodes:::: reason:: \" + reason);\n                })\n            }));\n            // console.log(\"saveNodes:::: after\");\n            // Delete the gateway after all nodes have been saved\n            await this.deleteGateway(object);\n    \n            // console.log(\"deleteGateway:::: \");\n            this.refresh();\n        } catch (reason) {\n            console.log(\"Exception from saveNodes:::: reason:: \", reason);\n        }\n    },\n    deleteGateway(object){\n\n        // Proceed with deletion\n        object.deleteRecord().then(function(){\n            object.save().then(function(){\n                object.unloadRecord();\n            }).catch(function(reason){\n                console.log(\"Exception from deleteGateway:::: reason:: \" + reason);\n            });\n        }).catch(function(reason){\n            console.log(\"Exception from deleteGateway:::: reason:: \" + reason);\n        });   \n    },\n\n})\n","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nexport default class GatewaySelectorComponent extends Component {\n  @action\n  selectGateway(gateway) {\n    const concatenatedValue = `${gateway.PhoneNumber}@${gateway.Carrier}`;\n    this.args.onSelect(concatenatedValue);\n  }\n}\n","define(\"geotechnical-data-platform-new/components/geojson-layer\", [\"exports\", \"ember-leaflet/components/geojson-layer\"], function (_exports, _geojsonLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _geojsonLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        // console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        // console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                // console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        // console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            // console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            // console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            \n            let unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                // console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                // console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                // console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                // console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        handleSelection(selectedValue) {\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n\n\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n            newInstrumentObject.instrumentStiffness = 0;\n\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n\n                        if(results.id != null) {\n                            let anchorCount = parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            for(var ctr = 0; ctr <= anchorCount; ctr++) {\n                                store.createRecord('anchor', {number: ctr, distance: ctr, instrument: results}).save();\n                            }\n                        }\n                        \n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    \n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n\n    onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            this.get('router').transitionTo('raw-data', id);\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values' || modelName === 'load-values') { \n                var plated = this.get('instrument').get('plated');\n                var type = this.get('instrument').get('instrumentType').get('title');\n                //console.log(type);\n                \n                if (type === 'dCable') {\n                    chartData.values.splice(0,1);\n                    chartData.values.unshift(0);\n                    if(plated) {\n                        chartData.values.push(chartData.values[chartData.values.length - 1]);\n                    } else {\n                        chartData.values.push(0);\n                    }\n                } else if (type === 'dExto') {\n                    chartData.values.unshift(chartData.values[0]);\n                }\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'dRebar') {\n            for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n\n            for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n        }\n */\n        var modelName = this.get('chartDataModelName');\n        //if (this.get('instrument').get('instrumentType').get('title') != 'dRebar') {\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {\n                anchorDistances.splice(0, 1);\n            }\n        //}\n\n        if (modelName === 'axial-displacement-values') {\n            if (this.get('instrument').get('stacked')) {\n                let half_anchors = (anchorDistances.length / 2) + 1;\n                let gauge = this.get('instrument').get('gaugeLength');\n                while (anchorDistances.length > half_anchors) {\n                    anchorDistances.pop();\n                }\n                anchorDistances[0] = anchorDistances[1] - gauge;\n            } else {\n                let last = anchorDistances[anchorDistances.length-1];\n                anchorDistances.sort(function(a,b){return a-b;});\n                let gauge = this.get('instrument').get('gaugeLength');\n                //console.log('gauge: ' + gauge);\n                anchorDistances.forEach(function(item, index) {\n                    anchorDistances[index] = item - gauge;\n                    //console.log(item);\n                });\n                //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n                anchorDistances.shift();\n                anchorDistances.push(last);\n            }\n        }\n\n\n\n\n        return anchorDistances;\n    }),\n\n    anchorAXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else { //staggered\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n    \n            midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n                return [v, anchorDistances.slice(center + 1)[i]];\n              });\n\n            midPoints.unshift(headExclusion);\n            let mid_temp = [];\n            for(let ctr = 1;ctr < midPoints.length; ctr++) {\n                mid_temp.push((midPoints[ctr - 1] + midPoints[ctr]) / 2);\n            }\n            midPoints = mid_temp;\n\n            if (modelName === 'bending-strain-values') {\n                midPoints.shift();\n                midPoints.pop();\n            }    \n            \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n        \n        //console.log(midPoints);\n        \n        return midPoints;\n    }),\n\n    anchorBXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else {\n\n        let center = anchorDistances.length - 1;\n        center = Math.ceil(center / 2);\n\n        midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n            return [v, anchorDistances.slice(center + 1)[i]];\n          });\n            midPoints.shift();\n            midPoints.pop();                  \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n\n        return midPoints;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n            if (this.get('instrument').get('stacked')) {\n                anchorDistances.shift(0);\n                let finalSize = anchorDistances.length / 2;\n                while (anchorDistances.length > finalSize) {\n                    anchorDistances.pop(finalSize);\n                }\n                anchorDistances.unshift(this.get('instrument').get('headExclusionLength'));\n            } else { //staggered\n\n            }\n        } else { //not rebar\n            anchorDistances.unshift(0);\n        }\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        if(type === 'dCable') {\n            midDistances.splice(0,1);\n            //midDistances.unshift(0);\n            midDistances[0] = 0;\n            var len = this.get('instrument').get('length');\n            var length = this.get('instrument').get('instrumentLength');\n\n            var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {    \n                if(length !== null && length !== 0) {\n                    midDistances.push(length);\n                } else {\n                    midDistances.push(anchorDistances[anchorDistances.length - 1]);\n                }\n            }\n        }\n        // console.log(\"Anchors: \" + anchorDistances);\n         //console.log(\"Mids: \" + midDistances);\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', 'anchorAXDistances', 'anchorBXDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(this.get('instrument').get('instrumentTypeID') === 3) {//rebar \n            if(this.get('instrument').get('stacked')) { //is stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            } else { //is NOT stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            }\n        }\n\n        if (this.get('instrument').get('instrumentType').get('title') !== 'dRebar') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                return anchorMidDistances.map(function(anchorDistance){\n                    return {\n                        key: anchorDistance,\n                        type: 'referencePoints',\n                        values: [\n                            anchorDistance\n                        ]\n                    };\n                });\n                    \n            }\n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'load-values') {\n            return 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorAXDistances = this.get('anchorAXDistances'),\n            anchorBXDistances = this.get('anchorBXDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        \n        if ((modelName === 'strain-values' || modelName === 'load-values') && this.get('instrument').get('instrumentType').get('title') !== 'dRebar') { \n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'axial-strain-values' || modelName === 'load-values' ) {//&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorAXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'bending-strain-values' ) { //&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorBXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if(type === 'dCable') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                //console.log(fullRangeDataPoints);\n                fullRangeDataPoints.forEach(element => element.values[0]=0);\n            }\n        }\n        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n        var events = this.get('vibeEvents');\n        //console.log('vibeEvents');\n        //console.log(events);\n        if ( this.get('vibeEvents') ) {\n            return [{\n                key: 'BluVibe',\n                type: 'distX',\n                color: '#80bf5c',\n                values: this.get('vibeEvents').map(function(event) {\n                    return [\n                        moment( event.get('id') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        //console.log(linesKyes);\n\n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var plated = this.get('instrument').get('plated');\n            \n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                if(plated) {\n                    chartData.values[0] = chartData.values[1];\n                } else {\n                    chartData.values[0] = 0;\n                }\n            } else {\n                //chartData.values.unshift(0);\n            }\n            chartData.values.push(0);\n        }\n        //console.log(chartData);\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        if(instType === 'Tilt') {\n            return ['X','Y','Z'];\n        } else if(instType === 'Wire') {\n            let anchors = [];\n            let numPorts = this.instrument.get('portsNum');\n            let startVal = 0;\n            let maxVal = numPorts;\n/*             if (this.port != '') {\n                //startVal = (1 * this.port) - 1;\n                startVal = (1 * numPorts) - 1;\n                maxVal = startVal + 1;\n            }\n */            for(let ctr = startVal; ctr < maxVal; ctr++) {\n                anchors.push('T' + (ctr + 1));\n                anchors.push(ctr + 1);\n            }\n            return anchors;\n        } else if(instType === 'BluVibe') {\n            return ['Data'];\n        }\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var midPoints = [];\n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                //Adjust anchors to mid points between anchors\n                for(var ctr = 1; ctr < anchorDistances.length ; ctr++) {\n                    var mid = (anchorDistances[ctr - 1] + anchorDistances[ctr]) / 2;\n                    midPoints[ctr] = + mid.toFixed(2);\n                }\n\n                //console.log(midPoints);\n\n                //add zero point and end point\n                midPoints.splice(0,1);\n                midPoints[0] = 0;\n                midPoints.push(anchorDistances[anchorDistances.length - 1]);  //TODO: change to length of exto once known\n                //console.log(midPoints);\n            } else if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                //Adjust anchors to mid points between anchors\n                //console.log(this.get('instrument'));\n                let headExclusion = this.get('instrument').get('headExclusionLength');\n                let leftAnchors = [headExclusion];\n                let rightAnchors = [headExclusion];\n                \n                let center = anchorDistances.length - 1;\n                center = Math.ceil(center / 2);\n\n                leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n\n                rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n\n                let midLeft = [];\n                for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                    midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                }\n\n                let midRight = [];\n                for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                    midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                }\n\n                if (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values') {\n                    if(this.get('instrument').get('stacked')) {\n                        midPoints = midLeft;\n                        if (modelName === 'load-values') {\n                            midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n                        }\n                    } else {\n                        midPoints = midLeft.concat(midRight);\n                        /* midPoints = $.map(midPoints.slice(1, center + 1), function(v, i) {\n                            return [v, midPoints.slice(center + 1)[i]];\n                          }); */\n                        if (modelName === 'bending-strain-values') {\n                            midPoints.shift();\n                            midPoints.pop();\n                        }\n\n                    }\n                } else {\n                    midPoints = midLeft.concat(midRight);\n                }\n                if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                    for(let ctr = 0; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n  \n/*                     for(let ctr = 0; ctr < midPoints.length / 2; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n        \n                    for(let ctr = 3; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n */                }\n            } else {\n                for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                    midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n                }\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        } else if (modelName === 'axial-displacement-values' && this.get('instrument').get('stacked')) {\n            let mid = (anchorDistances.length - 1) / 2;\n            while (anchorDistances.length > (mid + 1)) {\n                anchorDistances.pop();\n            }\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else if (modelName === 'axial-displacement-values' && !this.get('instrument').get('stacked')) {\n            anchorDistances.sort(function(a,b){return a-b;});\n\n            //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else {\n            if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                if (modelName === 'displacement-values') { //rebar stretch\n                    var midPoints = [];\n                    let headExclusion = this.get('instrument').get('headExclusionLength');\n                    let leftAnchors = [headExclusion];\n                    let rightAnchors = [headExclusion];\n                    \n                    let center = anchorDistances.length - 1;\n                    center = Math.ceil(center / 2);\n    \n                    leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                    rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n    \n                    if(!this.get('instrument').get('stacked')) {\n                        rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n                    }\n    \n                    let midLeft = [];\n                    for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                        midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                    }\n    \n                    let midRight = [];\n                    for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                        midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                    }\n\n                    midPoints = midLeft.concat(midRight);\n                    anchorDistances = midPoints;\n\n                    anchorDistances.unshift(0);\n                }\n                for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n    \n                for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n            }    \n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n            var mName = _this.get('chartDataModelName');\n            if (mName === 'strain-values' || mName === 'strain-rate-values' || mName === 'load-values') {\n                zoomDataPoints.forEach(element => element.values[0] = 0);\n            }\n        }    \n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'Tilt') {\n                zoomDataPoints.forEach(element => element.values.shift());\n        }    \n */\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values' && this.get('instrument').get('instrumentType').get('title') !== 'BluVibe'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (vibeEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    // yAxisLegend: Ember.computed('chartDataModelName', function() {\n    //     let chartDataModelName = this.get('chartDataModelName');\n    //     let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n    //     return promise;\n    // }),\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        return promise; \n    }),\n\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = '';\n                if (instType === 'BluVibe') {\n                    title = _this.get('chartDataModelName');\n                } else {\n                    title = yAxisLegend.get('title');\n                }\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    case 'event-frequency':\n                        axisName = \"Event Frequency\";\n                        break;\n                    case 'event-ppv':\n                        axisName = \"Event PPV\";\n                        break;\n                    case 'event-ppa':\n                        axisName = \"Event PPA\";\n                        break;\n                    case 'cumulative-event-frequency':\n                        axisName = \"Cumulative Frequency\";\n                        break;\n                    case 'cumulative-event-ppv':\n                        axisName = \"Cumulative PPV\";\n                        break;\n                    case 'cumulative-event-ppa':\n                        axisName = \"Cumulative PPA\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                /* let chartName = yAxisLegend.get('title').capitalize();\n                let chartNameL = chartName.substr(0, chartName.indexOf('_'));\n                let chartNameR = chartName.substr(chartName.indexOf('_') + 1).capitalize();\n                if(chartNameL !== \"\") {\n                    chartName = chartNameL + \" \" + chartNameR;\n                } */\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName + \" (kN)\";\n                    } else if (instType === 'Wire') {\n                        if (raw === true) {\n                            title = \"Frequency (Hz)\";\n                        } else {\n                            title = \"Calculated Values\";\n                        }\n                    } else {\n                        title = axisName  + \" (\" + units + \")\";\n                    }\n                } else {\n                    if (instType === 'BluVibe') {\n                        title = axisName;\n                    } else {\n                        title = axisName  + \" (\" + units + \")\";\n                    }\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){// || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","define(\"geotechnical-data-platform-new/components/image-layer\", [\"exports\", \"ember-leaflet/components/image-layer\"], function (_exports, _imageLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _imageLayer.default;\n    }\n  });\n});\n","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n    inst_id: \"Select\",\n    actions: {\n        setID(inst){\n            this.set(\"inst_id\", inst.id);\n            this.setValue(\"instType\", inst.instrumentTypeID);\n            this.setValue(\"id\", inst.id);\n        },\n    }\n});","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport { computed } from '@ember/object';\n\nexport default Ember.Component.extend({\n    router: service(),\n    session: service(),\n    isRowDeleteConfirmationDialog: {},\n    licenceIsValid: Ember.computed('',function() {\n        let valid = false;\n        try {\n            valid = this.session.data.authenticated.isValid;\n        } catch {}\n        return valid;\n    }),\n    \n    // projectValue: computed('tableRow', function() {\n    //     let projectValue = this.get('tableRow');\n    //     console.log(\"projectValue:::::::::::::: \" + tableRow)\n    //     return projectValue\n    // }),\n    \n    // levelValue: computed('tableRow.level.value', function() {\n    //     return this.get('tableRow.level.value');\n    // }),\n\n    actions: {\n        createInstrument: function() {\n            //console.log(\"create\");\n            this.get('router').transitionTo('create-instrument');\n            //this.transitionTo('create-instrument');\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            //console.log(id);\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        remove(model, object){\n            let _this = this;\n            let _store = this.get('store');\n\n            let errBox = document.getElementById(\"instrumentListError\");\n\n            errBox.hidd = true;\n\n            //object.get('isDeleted');\n            object.save().then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                //model.removeObject(object);\n                // console.log(\"Object saved. Now deleting... \")\n                object.deleteRecord();\n                \n                object.save().then(function(){                    \n                    object.unloadRecord();\n                }).catch(function(reason){\n                    let status = reason.errors[0].status;\n\n                    if (status == 403) {\n                        errBox.hidden = false;\n                    };\n                });\n            \n            }).catch(function(reason){\n\n                let status = reason.errors[0].status;\n\n                if (status == 403) {\n                    errBox.hidden = false;\n                };\n            });\n        },\n    }\n\n})","define(\"geotechnical-data-platform-new/components/interactive-layer\", [\"exports\", \"ember-leaflet/components/interactive-layer\"], function (_exports, _interactiveLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _interactiveLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    isVisibleImportKeyForm: true,\n    isVisibleError: false,\n    isSubmitting: false,\n    loading: false,\n    actions: {\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            } else if (!Array.isArray(propertyNames) && propertyNames !== '' && propertyValues !== '') {\n                _this.set(propertyNames, propertyValues);\n            }\n        },\n        importKey() {\n            // this.set('isVisibleImportDataForm', false);\n            this.set('isSubmitting', true);\n        },\n        cancelImport() {\n            this.set('isVisibleImportDataForm', false);\n        },\n        errorHappened(message) {\n            console.log('error happened: ' + message);\n            this.set('isVisibleError',true);\n            Ember.run.scheduleOnce('afterRender', this, function() {\n                this.set('isSubmitting',false);\n                this.set('loading', false);\n            });\n        }\n    }\n});","import Ember from 'ember';\n//import EmberUploader from 'ember-uploader';\nimport FileField from 'ember-uploader/components/file-field';\nimport Uploader from 'ember-uploader/uploaders/uploader';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { computed, observer } from '@ember/object';\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default FileField.extend({\n    session: service(),\n    api: service(),\n    isSubmitting: false,\n    isSubmittingChangeObserver: Ember.observer('isSubmitting', function() {\n        if (this.get('isSubmitting')) {\n            this.send('submitFile');\n        }\n    }),\n    uploader: null,\n    files: null,\n    ajaxSettings: computed({\n        get() {\n            return {\n                headers: {\n                    Accept: 'application/vnd.api+json',\n                    withCredentials: true,\n                    Authorization: 'Bearer ' + localStorage.token  \n                }\n            }\n        }\n    }),    \n    fileSettings: {},\n    filesDidChange: function(files) {\n        const uploader = Uploader.create({\n            url: getApiBaseUrl() + '/import-key/',\n            paramName: 'key_data',\n            ajaxSettings: this.get('ajaxSettings')\n        });\n\n        this.set('uploader', uploader);\n        this.set('files', files);\n    },\n    async updateLicence(){\n        \n        //await new Promise(r => setTimeout(r, 1500));\n\n        let url = getApiBaseUrl();\n        url += url.endsWith(\"/\") ? \"\" : \"/\";\n        url += \"licences/\";\n\n        let response = await this.api.fetch(url, {\n            method: 'GET',\n            headers: {\n                'Origin': getApiBaseUrl(),\n                'Content-Type': 'application/json',\n                'Authorization': 'Bearer ' + localStorage.token  \n            },\n        });\n\n        if (response.ok) {\n            let licence = await response.json();\n            licence = licence.data[0];\n            let session = this.get('session');\n            this.set(session.data.authenticated, 'isValid', licence.attributes['is-valid']);\n            this.set(session.data.authenticated, 'limit', licence.attributes['within-limit']);\n            this.set(session.data.authenticated, 'modules', licence.attributes['modules']);\n            // let session = this.get('session');\n            // session.data.authenticated['is-valid'] = licence.attributes['is-valid'];\n            // session.data.authenticated['limit'] = licence.attributes['within-limit'];\n            // session.data.authenticated['modules'] = licence.attributes['modules'];\n            // this.set('session',session);\n\n            // location.reload();\n        }\n    },\n    actions: {\n        async submitFile(object){\n            console.log('submitting');\n            const _this = this;\n            let files = _this.get('files');\n\n            //files = null;\n            //this.sendAction('importError');\n\n            if (!Ember.isEmpty(files)) {\n                // this second argument is optional and can to be sent as extra data with the upload\n                let value = _this.get('uploader')\n                $(\"body\").css(\"cursor\", \"progress\");\n                _this.get('uploader').upload(\n                    files[0],\n                    _this.get('fileSettings')\n                ).then(data => {\n                    // Handle success\n                    // Reload the page to show imported data\n                    _this.updateLicence();\n                    $(\"body\").css(\"cursor\", \"default\");\n                    //window.location.reload(true);\n                }, error => {\n                    $(\"body\").css(\"cursor\", \"default\");\n                    //this.get('controllers.raw-data-values').sendAction('toggleProperty','isVisibleError');\n                    // Handle failure\n                    this.sendAction('errorHappened',error.statusText);\n                });\n            }\n        },\n        cancel(){\n            // this.set('newValue', this.get(`object.${this.get('field')}`));\n            // this.set('isEditing', false);\n            // this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        }\n    },\n});","define(\"geotechnical-data-platform-new/components/leaflet-map\", [\"exports\", \"ember-leaflet/components/leaflet-map\"], function (_exports, _leafletMap) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _leafletMap.default;\n    }\n  });\n});\n","// app/components/log-viewer-table.js\nimport Component from '@glimmer/component';\nimport { action } from '@ember/object';\nimport { inject as service } from '@ember/service';\n\nexport default class LogViewerTableComponent extends Component {\n  @service store;\n\n  // Assume these properties are bound to your template's form inputs\n  name = '';\n  errorType = '';\n  \n  get logViewers() {\n    return this.store.findAll('log-viewer');\n  }\n\n  @action\n  loadLogViewers() {\n    this.store.query('log-viewer', { /* your query params */ });\n  }\n\n}\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-call\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-call\"], function (_exports, _mapboxGlCall) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlCall.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-control\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-control\"], function (_exports, _mapboxGlControl) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlControl.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-image\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-image\"], function (_exports, _mapboxGlImage) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlImage.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-layer\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-layer\"], function (_exports, _mapboxGlLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-marker\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-marker\"], function (_exports, _mapboxGlMarker) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlMarker.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-on\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-on\"], function (_exports, _mapboxGlOn) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlOn.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-popup\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-popup\"], function (_exports, _mapboxGlPopup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlPopup.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl-source\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl-source\"], function (_exports, _mapboxGlSource) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGlSource.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/mapbox-gl\", [\"exports\", \"ember-mapbox-gl/components/mapbox-gl\"], function (_exports, _mapboxGl) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _mapboxGl.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/marker-layer\", [\"exports\", \"ember-leaflet/components/marker-layer\"], function (_exports, _markerLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _markerLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            \n            let unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference;\n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        handleSelection(selectedValue) {\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {strokeLength:10000});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        createInstrument(object){\n            //console.log('test');\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if(!error) {\n                if(typeof newInstrumentObject.strokeLength === 'undefined' || newInstrumentObject.strokeLength === 0) {\n                    error = true;\n                    this.setError('fieldError',true);\n                    this.setError('isVisibleError',true);\n                }\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        // console.log(dup);\n                        if(results.id != null) {\n                            store.createRecord('anchor', {number: 0, distance: 0, instrument: results}).save();\n                            store.createRecord('anchor', {number: 1, distance: 1, instrument: results}).save();\n                        }\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n\n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n    \n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n            \n            let unallowedValues = [null,undefined,''];\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            this.get('router').transitionTo('raw-data', id, { queryParams: { \"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values') { \n                chartData.values.unshift(chartData.values[0]);\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n        if (anchorDistances.length > dataValuesCount && modelName === 'strain-values') {\n            anchorDistances.splice(0, 1);\n        }\n        return anchorDistances;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        anchorDistances.unshift(0);\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            return anchorMidDistances.map(function(anchorDistance){\n                return {\n                    key: anchorDistance,\n                    type: 'referencePoints',\n                    values: [\n                        anchorDistance\n                    ]\n                };\n            });\n                \n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values') {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n            return {\n                key: chartLineIndex,\n                // mean: 3,\n                type: 'lines',\n                timestamp: zoomTimePoints[chartLineIndex],\n                values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        anchorDistances[dataPointIndex],\n                        dataPoint\n                    ];\n                })\n            };\n        });\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                units = \"μm\"\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        // units = \"%\";\n                        units = \"μ ε\"\n\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"μ ε/day\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                title = axisName + \" (\" + units + \")\";\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n/*                 zoomChart.xAxis.dispatch.on('xAxisMouseMove', function (mouseMove) {\n                    console.log('test');\n                });\n */\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    yAxisUnit:null,\n    init() {\n        this._super(...arguments);\n        const queryParams = new URLSearchParams(window.location.search);\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        if(yAxisUnitParam){\n            this.set('yAxisUnit', yAxisUnitParam);\n        }\n    },\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        //console.log(linesKyes);\n        var chartData = item.getProperties(linesKyes);\n        chartData.values[1] = chartData.values[1]; //MANUAL convert to μm\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            chartData.values.push(0);\n        }\n        //console.log(chartData);\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n        var chartData = item.getProperties(linesKyes)\n        chartData.values[1] = chartData.values[1]; //MANUAL convert to μm\n\n        return chartData;\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            var midPoints = [];\n            for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n//    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend; \n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = yAxisLegend.get('title');\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        units = _this.get('yAxisUnit') ? _this.get('yAxisUnit') :  \"μm\";\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        // units = \"%\";\n                        units = \"μ ε\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"μ ε/day\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    title = axisName + \" (\" + units + \")\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor, index){\n            let dist = anchor.get('distance');\n            return dist;\n        });\n\n        return dist;\n    }),\n    modifiedDisplacementData: Ember.computed('displacementData', function() {\n        return this.get(\"displacementData\");\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","define(\"geotechnical-data-platform-new/components/modal-dialog\", [\"exports\", \"ember-modal-dialog/components/modal-dialog\"], function (_exports, _modalDialog) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _modalDialog.default;\n    }\n  });\n});\n","import Component from '@ember/component';\nimport Ember from 'ember';\nimport { inject as service } from \"@ember/service\";\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n\n}\n\nexport default class CreateMultiExtoInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n        // this.loadInstruments(this.instrumentList);\n    }\n    \n    headAt = 'HAC';\n\n    loadInstruments(instruments) {\n        const rawData = instruments; // Assuming instruments is an array of instruments objects\n        // console.log(\"raw instrument data::::\")\n        // console.log(rawData)\n        // Filter instruments to get a list of only multi-dExto instruments\n        \n        const filteredInstruments = rawData.filter(function (instrument) {\n            if(instrument.active == true && instrument.get('instrumentType').title.toLowerCase() === 'dexto'){\n                return instrument.get('instrumentType').title.toLowerCase() === 'dexto';\n            }\n        });\n\n        const mappedGateways = filteredInstruments.map( (instrument, index) => {\n            // Retrieve parent gateway record based on available information\n            \n            // console.log(\"instrument::::\")\n            // console.log(instrument);\n            // console.log(instrument.get('headAt').get('title'));\n    \n            let instr = {\n                title: instrument.get('id') + ' - ' + instrument.get('headAt').get('title'),\n                id: index + 1, \n                instrumentID: instrument.get('id'),\n                position:instrument.get('headAt').get('title'),\n                data: instrument\n            };\n            return instr;\n        });\n    \n        this.set('instruments', mappedGateways);\n        // console.log(\"instrumentlist::::\")\n        // console.log(this.get('instruments'));\n    }\n    buildInstrumentID(){\n        // console.log(\"Building new instrument ID\")\n        let newID = \"9999\" + this.buildInstrumentChannels();\n        return newID;\n    }\n    buildInstrumentChannels(){\n        // console.log(\"calculating new channel number....\")\n        const selectedInstrList = this.get('selectedInstruments');\n        let numberOfChannels = \"\";\n        selectedInstrList.forEach((instr, index)=>{\n            let instrID = instr.instrumentID;\n            // console.log(\"instr id is \" + instrID + \" with \" + instrID.length + \" characters\")\n            if(instrID.length ==9){\n                let channel = instrID[4]\n                numberOfChannels += channel;\n            } else if (instrID.length == 10){\n                let channel = substring(4,6);\n                numberOfChannels += channel;\n            }\n        })\n        // console.log(\"new channel number:::::\" + numberOfChannels );\n        return numberOfChannels;\n\n    }\n    maxAllowedExtos = 2;\n    isAuthenticated = true;\n    installDate = null;\n    authError = false;\n    extoInputError = false;\n    loading = false;\n    searchedValue = \"\";\n    instrumentList = [];\n    selectedInstruments = [];\n    searchInstruments=[];\n\n    actions= {\n        onDropdownSearch(value){\n            this.set(\"searchedValue\", value);\n        },\n        async searchForExto(){\n            // console.log('Searching with:' + this.get('searchedValue'));\n\n            try {\n                this.set(\"loading\", true);\n                let store = this.get('store');\n                let respData = await store.query('instrument', {small: 'false', search: this.get('searchedValue')}).then((data)=>{\n                    return data;\n                })\n                // console.log(\"respData  is\")\n                this.loadInstruments(respData);\n                this.set(\"loading\", false);\n\n            } catch (error) {\n                this.set(\"extoInputError\", true);\n            }\n\n        },\n        \n        async setID(instr){\n            const instrumentList = this.get(\"instruments\");\n            // console.log(\"setID::::::instrumentlist::::\")\n            // console.log(instrumentList);\n            // console.log(\"selected instrument::::\")\n            // console.log(instr);\n            // console.log(\"selected list::::\")\n            // console.log(this.selectedInstruments);\n            if(this.selectedInstruments.length == this.get(\"maxAllowedExtos\")){\n            }else{\n                if(instr != null && !this.selectedInstruments.includes(instr)){\n                    // Only append to the list if < 5 items\n                    this.selectedInstruments.addObject(instr)\n                    this.set('selectedInstruments', this.selectedInstruments);\n                    // console.log(\"updated selectedInstruments::::\")\n                    // console.log(this.selectedInstruments);\n                }\n            }\n        },\n        resetInstrument(object){\n            // console.log(\"resetting selected instruments\")\n            this.set('selectedInstruments', []);\n        },\n        createInstrument(object){\n\n            // console.log(\"Clicked create::::\" + this.selectedInstruments.length);\n\n            if (this.selectedInstruments.length > 0){\n                let _this = this,\n                store = this.get('store'),\n                newInstrumentObject = this.get('newInstrumentObject');\n\n                this.setError('isVisibleError',false);\n                this.setError('duplicateError',false);\n                this.setError('fieldError',false);\n\n                let error = false;\n                // console.log(\"before for loop, newInstrumentObject:::::;\");\n                // console.log(newInstrumentObject)\n\n                newInstrumentObject.id = '999999999'; //this.get('id');\n                newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n                newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n                newInstrumentObject.active = true;\n\n\n                let newInstrumentID = '999999999'; //this.buildInstrumentID();\n                // console.log(\"new instr ID:::::\" + newInstrumentID );\n                // newInstrumentObject.instrumentID = newInstrumentID;\n\n                if (this.get('zeroTimestamp') != null) {\n                    newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                }\n                \n                let dup = false;\n                if(!error && this.selectedInstruments.length > 0 && this.selectedInstruments.length <= 5 ) {\n                    this.selectedInstruments.forEach((instr, index) => {\n                        // console.log(\"creating a new instr obj\");\n                        let instrumentPosition = \"instrumentPosition\" + (index + 1); //instrumentPosition1, instrumentPosition2,...,\n                        newInstrumentObject[instrumentPosition] = instr.data;\n                    });\n                }\n                // console.log(\"after for loop, newInstrumentObject:::::;\");\n                // console.log(newInstrumentObject)\n                // look to see if dummy id exists already.\n                let existingInstrument = store.peekRecord('instrument', newInstrumentObject.id);\n\n                // remove from store if it does.\n                if (existingInstrument) {\n                    // Unload the existing record from the store\n                    store.unloadRecord(existingInstrument);\n                }\n                let newInstrument;\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    \n                    console.log(err);\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n\n                this.setError('authError', false);\n\n                if (!error) {\n                    \n                        newInstrument.save().then(function(results){\n                            // console.log(dup);\n                            if(results.id != null) {\n                                _this.get('submit')(results.id);\n                            } else {\n                                this.setError('isVisibleError',true);\n                                error = true;\n                            }\n                        }).catch(function(reason) {\n                            \n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        }); \n                } \n            }\n        }\n    }\n}","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport gateway from '../../models/gateway';\n\n\nexport default Ember.Component.extend({\n    session: service(),\n    isRowDeleteConfirmationDialog: {},\n    store: service(),\n    rowData:[],\n    masterModifiedRawData:[],\n    init() {\n        this._super(...arguments);\n        // Inspecting gateway when the component is initialized\n        // let displacementValueObject = this.get('displacementValueObject');\n        // console.log(\"displacementValueObject\");\n        // console.log(displacementValueObject);\n        let displaceRowvalues = this.get('displacementValueObject.values');\n        // let displaceRowvalues = [0,1,2,3,4,5,6, 7,8,9,10,11,12,13,14,15,16,17,18,19,20, 21,22,24,25];\n        let tempRowValues = this.get('temperatureValuesModel').objectAt(Number(this.key));\n        this.buildMainRowData(this.multiExtoInstr, displaceRowvalues, tempRowValues)\n\n    },\n    buildMainRowData: function(multiExtoInstr, values, tempRowValues){\n        //trim the fat array of displacement values to skip the first 0. \n        console.log(\"values::::\" + values)\n        // console.log(\"multiExtoInstr::::\")\n        // console.log(multiExtoInstr)\n        let mainData = [];\n        let i =0\n        for(const instr_position_index of ['1', '2', '3', '4', '5']){\n            // console.log(\"instr_position_index::::\", instr_position_index)\n            let instrumenPositionObj = multiExtoInstr['instrumentPosition'+instr_position_index]\n            if(instrumenPositionObj != null){\n                let subExtoID = instrumenPositionObj.id;\n                let channels = \"\";\n                let subRowData = [];\n                //extract the number of channels \n                if(subExtoID.length == 9){\n                    channels = subExtoID[4]\n        \n                }else{\n                    channels = subExtoID.slice(4,6)\n                }\n\n\n                //pushing displacement values into row data \n                // console.log(\"values.length is : \", values.length)\n                // console.log(\"before while loop, i is : \", i)\n                while(i < values.length){\n                    if(subRowData.length == channels){\n                        break;\n                    }else{\n                        subRowData.push(values[i]);\n                    }\n                    // console.log(\"end of loopsubRowData: \", subRowData)\n                    i++;\n                }\n\n                //pushing temperature values into row data \n                subRowData.push(tempRowValues.values[Number(instr_position_index)-1])\n                mainData.push(subRowData);\n                // console.log(\"instrumenPositionObj ID: \", instrumenPositionObj, \" has # of channels: \", channels)\n            }        \n            // console.log(\"mainData: \", mainData)\n            // console.log(\"masterDataArray::::\", masterDataArray);            \n        }\n\n        //part II after deeply massaging the data, need to adjust it so that it comforms to offset values\n        // mainData.forEach((arr, index)=>{\n        //     if(index == 0){\n        //         //do nothing\n        //     }else{\n        //         const prevArrayIndex = index - 1; \n        //         const prevArray = mainData[prevArrayIndex];\n        //         console.log(\"prevArrayIndex::::\", prevArrayIndex);   \n        //         console.log(\"prevArray::::\", prevArray);   \n        //         let offsetVal = prevArray.slice(-2);\n        //         arr.forEach((val, i)=>{\n        //             if( i == (arr.length - 1)){\n        //                 // arr[i] =val;\n        //             }else{\n        //                 arr[i] = Number.parseFloat(val) + Number.parseFloat(offsetVal);\n        //                 arr[i] = Number.parseFloat(arr[i]).toFixed(2); \n        //             }\n                    \n\n        //         })\n                \n        //     }\n        // })\n        console.log(\"mainData: \",mainData);\n        this.set(\"rowData\", mainData);\n    },\n    buildCustomAnchors: Ember.computed(async function(extoInstrumentObj) {\n        //This helper function will build the data to be displayed for each instrument_Position\n        // console.log(\"extoInstrumentObj:\", extoInstrumentObj);\n\n\n        if(extoInstrumentObj != \"\" && extoInstrumentObj != null){\n\n            let channels = \"\"\n            let anchors = [];\n            let subExtoID = extoInstrumentObj.instrumentID\n\n            //extract the number of channels \n            if(subExtoID.length == 9){\n                channels = subExtoID[4]\n\n            }else{\n                channels = subExtoID.slice(4,6)\n            }\n            // console.log(channels, \" number of channels\");\n\n    \n            let instrPositionAttributesObj = await this.store.findRecord('instrument', subExtoID).then(async function(instrument){\n                // console.log(\"instrument is\");\n                // console.log(instrument);\n                //U have to use this await and .then() to call attributes who are Classes. If it is regularly str or int fields, then just directly call it\n                let anchorPt = await instrument.get('anchors').then(obj=>{\n                    let anchorPt = '';\n                    obj.forEach(element => {       \n                        anchorPt == \"\" ? anchorPt += element.get('distance') : anchorPt += \"-\" + element.get('distance');\n                    });\n                    return anchorPt \n                });\n                anchorPt = anchorPt == \"\" ? \"N/A\" : anchorPt;\n                return {anchors:anchorPt};\n            }).catch(function(reason){\n                return {anchors:\"\"};        \n            });\n    \n\n            // for(let i = 0; i < channels; i++){\n            //     anchors.push(i == 0 ? \"CH0\" : \"CH\"+i);\n            // }\n\n            this.set(\"instrPositionAttributesObj\", instrPositionAttributesObj)\n        }\n        \n    }),\n    getSpecificRowData:Ember.computed(function(){\n        // console.log(\"called : getSpecificRowData\");\n        let currMultiDExto = this.get(\"multiExtoInstr\");\n        let currentExtoInstr = this.get(\"currentExtoInstr\");\n        for(const instr_position_index of ['1', '2', '3', '4', '5']){\n            // console.log(\"instr_position_index::::\", instr_position_index)\n            let instrumenPositionObj = currMultiDExto['instrumentPosition'+instr_position_index]\n            if(instrumenPositionObj != null && instrumenPositionObj.id == currentExtoInstr.instrumentID){\n                let index = Number(instr_position_index) - 1;\n                // console.log(\"getSpecificRowData: \", this.get(\"rowData\")[index])\n                return this.get(\"rowData\")[index];\n            }\n        }\n        return [];\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n\n})\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport gateway from '../../models/gateway';\n\n\nexport default Ember.Component.extend({\n    session: service(),\n    isRowDeleteConfirmationDialog: {},\n    store: service(),\n    init() {\n        this._super(...arguments);\n        this.getAnchors();\n\n    },\n    getAnchors:async function() {\n\n        const slaveInstrID = ['instrumentPosition1', 'instrumentPosition2', 'instrumentPosition3', 'instrumentPosition4', 'instrumentPosition5'];        \n        const slaveInstrObjDataPromises = slaveInstrID.map(async (positionLabel) => {\n            const instrumentPosition = this.get('instrument').get(positionLabel); \n            const instrumentPositionID = this.get('instrument').get(positionLabel);                        \n            // console.log('instrumentPosition is:' + instrumentPositionID);                \n            // const positionObjID = instrumentPosition['id'];\n\n            if (instrumentPosition != null){\n                try {                     \n                    // console.log('instrumentPosition is:');     \n                    // console.log(instrumentPosition);         \n                    const instrPositionAttributesObj = await instrumentPosition.get('anchors').then(anchors => {\n                        const anchorDistances = anchors.map(anchor => anchor.get('distance'));\n                        return { id: instrumentPositionID, anchorDistances: anchorDistances };\n                    });\n                    return instrPositionAttributesObj;\n                } catch (reason) {\n                    return {}; // Return empty object in case of error\n                }\n            }else{\n                return null;\n            }\n        });\n        \n        const slaveInstrObjData = (await Promise.all(slaveInstrObjDataPromises)).filter(obj => obj !== null); // Filter out null values\n        // console.log('slaveInstrObjData');\n        // console.log(slaveInstrObjData);\n        this.set('anchorDistances', slaveInstrObjData);\n    },\n    anchorDistances:[],\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n\n    }\n\n})\n","import Component from '@ember/component';\nimport Ember from 'ember';\nimport { inject as service } from \"@ember/service\";\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n    @service router;\n    @service store;\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n        this.loadSelectedInstruments(this.instrument);\n    }\n\n    async loadSelectedInstruments(instrument){\n        let selectedInstrs = []\n        if(instrument != null){\n            for (let i = 1; i <= 5; i++) {\n                let instrPositionLabel = \"instrumentPosition\" + i;\n                let instrPositionObj = instrument[instrPositionLabel]; \n                if(instrPositionObj != null){\n\n                    //If you need any other attributes for children instrument obj, add into the AttrubutesObj\n                    let instrPositionAttributesObj = await this.store.findRecord('instrument', instrPositionObj['id']).then(async function(instrument){\n                        // console.log(\"instrument is\");\n                        // console.log(instrument);\n                        //U have to use this await and .then() to call attributes who are Classes. If it is regularly str or int fields, then just directly call it\n                        let anchorPt = await instrument.get('anchors').then(obj=>{\n                            let anchorPt = '';\n                            obj.forEach(element => {       \n                                anchorPt == \"\" ? anchorPt += element.get('distance') : anchorPt += \"-\" + element.get('distance');\n                            });\n                            return anchorPt \n                        });\n                        anchorPt = anchorPt == \"\" ? \"N/A\" : anchorPt;\n                        let strokeLen = instrument['strokeLength'] == \"\" ? \"N/A\" : instrument['strokeLength'];\n                        return {anchors:anchorPt, strokeLength: strokeLen};\n                    }).catch(function(reason){\n                        return {anchors:\"\"};        \n                    });\n            \n                    let instr;\n                    if(instrPositionObj['headAt'] == null){\n                        instr = {\n                            title: instrPositionObj['id'],\n                            id: i, \n                            instrumentID: instrPositionObj['id'],\n                            position: '',\n                            data: instrPositionObj,\n                            anchorPoints: instrPositionAttributesObj.anchors,\n                            strokeLength: instrPositionAttributesObj.strokeLength\n                        };\n                    }else{\n                        instr = {\n                            title: instrPositionObj['id'] + ' - ' + instrPositionObj['headAt']['title'],\n                            id: i, \n                            instrumentID: instrPositionObj['id'],\n                            position:  instrPositionObj['headAt']['title'],\n                            data: instrPositionObj,\n                            anchorPoints: instrPositionAttributesObj.anchors,\n                            strokeLength: instrPositionAttributesObj.strokeLength\n                        };\n                    }\n                    selectedInstrs[i - 1] = instr;\n\n                }\n            }\n        }\n        this.set(\"selectedInstruments\", selectedInstrs);\n    }\n        \n    isAuthenticated = true;\n    installDate = null;\n    authError = false;\n    instrumentList = [];\n    selectedInstruments = [];\n    anchorPoints = [];\n    isEditing = false;\n    isAuthenticated = true;\n\n    actions= {\n        async setID(instr){\n            const instrumentList = this.get(\"instruments\");\n            // console.log(\"setID::::::instrumentlist::::\")\n            // console.log(instrumentList);\n            // console.log(\"selected instrument::::\")\n            // console.log(instr);\n            // console.log(\"selected list::::\")\n            // console.log(this.selectedInstruments);\n            if(this.selectedInstruments.length == 6){\n            }else{\n                if(instr != null && !this.selectedInstruments.includes(instr)){\n                    // Only append to the list if < 5 items\n                    this.selectedInstruments.addObject(instr)\n                    this.set('selectedInstruments', this.selectedInstruments);\n                    // console.log(\"updated selectedInstruments::::\")\n                    // console.log(this.selectedInstruments);\n                }\n            }\n        },\n        viewData(id) {\n            // console.log(\"user clicked view data, id is::::\" + id);\n            this.get('router').transitionTo('raw-data', id);\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', true);\n        },\n        stopEditField() {\n            this.set('editing', false);\n        },        \n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing')) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\nimport html2canvas from 'html2canvas';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    actions: {\n\n        saveImage() {\n            console.log(\"saveImage:::::::::::::::::\");\n            html2canvas(document.querySelector(\"#capture\"), { \n                // allowTaint: true, \n                // // foreignObjectRendering: true,\n                // useCORS: true,\n                // logging: true,\n                // scrollX: 0,\n                // scrollY: 0,\n                // width: 1000,\n                // height: 1000,\n                // x: 0,\n                // y: 0,\n                // scale: 1,\n                // backgroundColor: null,\n                // imageTimeout: 15000,\n                // removeContainer: true,\n                // foreignObjectRendering: true,\n                \n            }).then(canvas => {\n                let downloadLink = document.createElement('a');\n                downloadLink.setAttribute('download', 'CanvasAsImage.png');\n                // document.body.appendChild(downloadLink);\n\n                canvas.toBlob(function(blob) {\n                    let url = URL.createObjectURL(blob);\n                    downloadLink.setAttribute('href', url);\n                    downloadLink.click();\n                });\n            });\n        },\n        toggleLine(lineIndex) {\n            let lineSettings = JSON.parse(localStorage.getItem('lineSettings')) || {};\n        \n            lineSettings[lineIndex] = lineSettings[lineIndex] === \"block\" ? \"none\" : \"block\";\n            localStorage.setItem('lineSettings', JSON.stringify(lineSettings));\n        \n            d3.select(`.myLines[data-line-index=\"${lineIndex}\"]`)\n                .style('display', lineSettings[lineIndex]);\n        },\n\n    },\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n        // console.log(\"zoomTempPoints::::::: \" + JSON.stringify(chartData));\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item, indx){\n        let linesKyes = Object.keys(item.toJSON());\n        // console.log(\" \");\n        // console.log(\" \");\n        // console.log(\" \");\n        // console.log(\" \");\n\n        // console.log(\" \");\n        // console.log(\"zoomChartData:::\" + linesKyes);\n        //I have to slice because the first item in the array will contain the instrument ID.\n        let dataArry = item.getProperties(linesKyes).values;\n        let mainArr = [...dataArry];\n        let adjustedDataArry = [];\n        // console.log(\"RAW dataArry::::::: \");\n        // console.log(dataArry);\n        let lastPointDataIndicies = []\n        const slaveInstrID = ['instrumentPosition1', 'instrumentPosition2', 'instrumentPosition3', 'instrumentPosition4', 'instrumentPosition5'];\n        //Get all the indicies of values for last anchor for each instrument\n        slaveInstrID.map( (positionLabel, index) => {\n            const instrumentPosition = this.get('instrument').get(positionLabel);\n            let subArry=[]\n            if(instrumentPosition != null){\n                // console.log(\"instrumentPosition::::::: \");\n                // console.log(instrumentPosition);\n                // console.log(\"has \" + instrumentPosition['anchorCount'] + \" anchors\");\n                let anchorIndex = instrumentPosition['anchorCount']; \n                // console.log(\"anchorIndex is \" + anchorIndex);\n                // console.log(\"anchorIndex is \" + anchorIndex);\n                if (lastPointDataIndicies == 0){\n                    const index = anchorIndex - 1;\n                    const value = dataArry[index];\n                    // console.log(\"IF index is \" + index);\n                    // console.log(\"IF value is \" + value);\n                    lastPointDataIndicies.push(index);\n                }else{\n                    // console.log(\"ELSE previous is \");\n                    // console.log(lastPointDataIndicies.slice(-1));\n                    const index = Number.parseInt(lastPointDataIndicies.slice(-1)) + Number.parseInt(anchorIndex);\n                    const value = dataArry[index];\n\n                    // console.log(\"ELSE index is \" + index);\n                    // console.log(\"ELSE value is \" + value);\n                    lastPointDataIndicies.push(index);\n                }\n            }\n\n        });\n\n        // console.log(\"lastPointDataIndicies \");\n        // console.log(lastPointDataIndicies);\n        let offsetValue = 0.0;\n\n        // console.log(\"starting to rebuild data \");\n        dataArry.forEach((value, index)=>{\n            // console.log(\"original array   is  \" + dataArry);\n            // console.log(\"offsetValue      is  \" + offsetValue);\n            let val = Number.parseFloat(value) + Number.parseFloat(offsetValue);\n            // console.log( Number.parseFloat(value) + \" + \" + Number.parseFloat(offsetValue) + \" = \" + val);\n            adjustedDataArry.push(val);\n\n            if(lastPointDataIndicies.includes(index)){\n                // console.log(\"Need to increment offset to \" + mainArr[index]);\n                offsetValue = Number.parseFloat(offsetValue) +  Number.parseFloat(mainArr[index]);\n                // console.log(\"new offset value is  \" + offsetValue);\n\n            }else{\n                // let val = Number.parseFloat(value) + Number.parseFloat(offsetValue);\n                // console.log( Number.parseFloat(value) + \" + \" + Number.parseFloat(offsetValue) + \" = \" + val);\n                // adjustedDataArry.push(val);\n            }\n\n            // console.log(\"adjustedDataArry is  \" + adjustedDataArry);\n            // console.log(\"==================================================================================================\");\n            \n        });\n\n        // console.log(\"end  of rebuild data \");\n\n        var chartData = adjustedDataArry;\n        console.log(\"chartData: \");\n        console.log(chartData);\n        var modelName = this.get('chartDataModelName');\n        // if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n        //     chartData.values.push(0);\n        // }\n        // console.log(\"zoomDataPoints::::::: \");\n        // console.log(chartData);\n\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item, indx){\n        let linesKyes = Object.keys(item.toJSON());\n        let instrumentID = item.getProperties(linesKyes).values[0];\n        let dataArry = item.getProperties(linesKyes).values.slice(1);\n        // console.log(\"fullRangeDataPoints raw data:::\");\n        // console.log(item.getProperties(linesKyes));\n        // console.log(\"instrumentID:::\" + instrumentID);\n        // console.log(\"fullRangeDataPoints dataArry:::\" + dataArry);\n\n        // return item.getProperties(linesKyes); //original\n        return dataArry;\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', async function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n\n        const slaveInstrID = ['instrumentPosition1', 'instrumentPosition2', 'instrumentPosition3', 'instrumentPosition4', 'instrumentPosition5'];\n        const slaveInstrObjDataPromises = slaveInstrID.map(async (positionLabel) => {\n            const instrumentPosition = this.get('instrument').get(positionLabel);\n            if (instrumentPosition == null) {\n                return null; // Skip positions that are null\n            }\n\n            const positionObjID = instrumentPosition['id'];\n\n            try {\n                const instrPositionAttributesObj = await instrumentPosition.get('anchors').then(anchors => {\n                    const anchorDistances = anchors.map(anchor => anchor.get('distance'));\n                    return { id: positionObjID, anchorDistances: anchorDistances };\n                });\n                return instrPositionAttributesObj;\n            } catch (reason) {\n                return {}; // Return empty object in case of error\n            }\n        });\n\n        const slaveInstrObjData = (await Promise.all(slaveInstrObjDataPromises)).filter(obj => obj !== null); // Filter out null values\n\n\n        //This code will unify the group of anchor distances to one and the unified one will be displayed\n        //RMB, since we used push, then the order of object will be correct, dont need to assume it will be disordered\n        // console.log(\"slaveInstrObjData\");  \n        // console.log( slaveInstrObjData);\n        // console.log(\"starting to unify anchor distances\");\n        let finalAnchorDistances = [];\n        let offsetValue = 0;\n        slaveInstrObjData.forEach((slaveExto, i)=>{\n            let anchorDistances = slaveExto.anchorDistances;\n            // console.log(\"I\" + index + \": will now process:\" + anchorDistances); \n            if(i == 0){\n                finalAnchorDistances = finalAnchorDistances.concat(anchorDistances);\n                // console.log(\"Need to update offsetValue\"); \n            }else{\n                anchorDistances.forEach((distance, index)=>{\n                    // console.log(\"I\" + index + \": distance:\" + Number.parseInt(distance) + \" | current offsetValue:\" + Number.parseInt(offsetValue)); \n                    if(index != 0){\n                        let newDist = Number.parseFloat((Number.parseFloat(distance)  + Number.parseFloat(offsetValue)).toFixed(2));\n                        // newDist += \"(\" + distance + \")\";\n                        // console.log(\"I:\" + index + \" distance:\" + newDist);  \n                        // console.log(\"newDist:\" + newDist); \n                        finalAnchorDistances.push(newDist);\n                    }\n                })\n            }\n            offsetValue =  finalAnchorDistances.slice(-1);\n            // console.log(\"Need to update offsetValue. The offsetValue:\" + offsetValue + \". Update final anchor distance is:\" + finalAnchorDistances); \n            // console.log(\"I\" + index + \": partial finalAnchorDistances:\" + finalAnchorDistances); \n            // console.log(\"\" ); \n        });\n        let modifiedAnchorDistances = [];\n        //Clean up array of distances, remove the     \n        // for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n        //     if(anchorDistances[ctr] == anchorDistances[ctr + 1]){\n        //         modifiedAnchorDistances.pu\n        //     }\n        // }\n        if(modelName==='displacement-values') {\n            midPoints.unshift(0);\n        }\n         \n        let anchorDistances = finalAnchorDistances;    \n        // console.log(\"anchorDistances:\");     \n        // console.log(anchorDistances);     \n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            var midPoints = [];\n            for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        }\n        // console.log(\"anchorDistances:\" + anchorDistances); \n        return anchorDistances; //ORIGINAL\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', async function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = await this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            // console.log(\"zoomDataPoints\");\n            // console.log(zoomDataPoints);\n            // console.log(\"anchorDistances\");\n            // console.log(anchorDistances);\n            //anchorDistance: {id: str, adjusted:[], original:[]}\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        // console.log(\"chartLineName\");\n                        // console.log(chartLineName);\n                        // console.log(\"chartLineIndex\");\n                        // console.log(chartLineIndex);\n                        // console.log(\"dataPoint\");\n                        // console.log(dataPoint);\n                        // console.log(\"zoomTimePoints\");\n                        // console.log(zoomTimePoints[dataPointIndex] );\n                        // console.log(\"value\");\n                        // console.log(dataPoint[chartLineIndex]);\n                        \n                        // console.log(\"dataPoint[0]\");\n                        // console.log(dataPoint[0]);\n                        // console.log(\"slaveExtoAnchorObj.id\");\n                        // console.log(slaveExtoAnchorObj.id);\n                        console.log(`x:${moment( zoomTimePoints[dataPointIndex] ).valueOf()}, y:${dataPoint[chartLineIndex]}`);\n                        const finalVal = [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint[chartLineIndex]\n                        ];\n                        // console.log(\"finalVal\");\n                        // console.log(finalVal);\n                        return finalVal;\n                    })\n                };\n            });\n\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        // line.color = color(index), // Assign a color from your scale based on index or some other criteria\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[1]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[1],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            \n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', async function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = await this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        // line.color = color(index), // Assign a color from your scale based on index or some other criteria                            \n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        return promise; \n    }),\n\n\n    didInsertElement: async function()  {\n\n        const _this = this,\n            zoomChartLinesData = await _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = await _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = yAxisLegend\n        ;\n        let chartData = await _this.get('chartData');\n        const randomHexColorCode = () => {\n            let n = (Math.random() * 0xfffff * 1000000).toString(16);\n            return '#' + n.slice(0, 6);\n        };\n\n        \n        let colorArray = []\n        const numColor = 100;\n\n        while(colorArray.length != numColor){\n            let colorHEX = randomHexColorCode();\n            if (!colorArray.includes(colorHEX)){\n                colorArray.push(colorHEX);\n            }\n        }\n        // console.log(\"color array is\");\n        // console.log(colorArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then( function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");            \n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;\n                \n                //get pretty chart name if chart has multiple parts to it\n                // let type = _this.instrument.get('instrumentTypeID').toString(); //Original Code\n\n                let type = \"1\"; //Why is this hard coded to 1? Becuase this is solely for multi exto, the units and title will be the same for normal exto. \n\n                chartData.forEach(function(item) {\n                    // console.log('item');\n                    // console.log(item);\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = yAxisLegend.get('title');\n                    \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                // console.log('axisName: ' + axisName);\n                // console.log('units: ' + units);\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    title = axisName + \" (\" + units + \")\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n\n\n\n\n\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 100, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) {return d[0]; })\n                .y(function(d) { return d[1]; })\n                // .color(d3.scale.category20().range())\n                .color(colorArray)\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n            zoomChart.legend.margin({bottom: 500});\n            zoomChart.legend.rightAlign(true);\n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart); //ERROR Trigger\n\n                \n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n                    /* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } \n                    */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n\n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            // .color(d3.scale.category20().range())\n            .color(colorArray)\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        this.getSelectedExtos(this.instrument);\n    },\n    isVisibleCreateNewForm: false,\n    store: service(),\n    router: service(),\n    session: service(),\n    getSelectedExtos:function(instrument) {\n        // Logic to retrieve the children of tableRow\n        // Return an array of child gateways\n        let selectedInstrs = []\n        if(instrument != null){\n            for (let i = 1; i <= 5; i++) {\n                let instrPositionLabel = \"instrumentPosition\" + i;\n                let instrPositionObj = instrument[instrPositionLabel]; \n                if(instrPositionObj != null){\n                    let instr;\n                    if(instrPositionObj['headAt'] == null){\n                        instr = {\n                            title: instrPositionObj['id'],\n                            id: i, \n                            instrumentID: instrPositionObj['id'],\n                            position: '',\n                            data: instrPositionObj\n                        };\n                    }else{\n                        instr = {\n                            title: instrPositionObj['id'] + ' - ' + instrPositionObj['headAt']['title'],\n                            id: i, \n                            instrumentID: instrPositionObj['id'],\n                            position:  instrPositionObj['headAt']['title'],\n                            data: instrPositionObj\n                        };\n                    }\n                    selectedInstrs[i - 1] = instr;\n\n                }\n            }\n        }\n        this.set(\"selectedInstruments\", selectedInstrs);\n        // console.log(\"selectedInstruments:::: \" + selectedInstrs);\n        // console.log( selectedInstrs);\n        return selectedInstrs;\n    },  \n\n    selectedInstruments:[],\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    session: service(),\n    isRowDeleteConfirmationDialog: {},\n    rdcd: {},\n    store: service(),\n    childDict: {},\n    init() {\n        this._super(...arguments);\n    },\n\n    actions: {\n    }\n\n})\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\nexport default Ember.Component.extend({\n    session: service(),\n    userProfileService: service(),\n    api: service(),\n    provider1 : \"azure-ad-oauth2\",\n    isLoading:false,\n    oauthProfile:null,\n\n    isShowMicrosoftADTestMessage:false,\n    microsoftADTestMessages:null,\n\n    isEditingClientID:false,\n    isEditingTenantID:false,\n    isEditingRedirectURI:false,\n    isEditingTokenURL:false,\n    isEditingClientSecret:false,\n    init() {\n        this._super(...arguments);\n        this.getOAuthProfile();\n    },\n    isMasterUser:  Ember.computed(\n    'userProfileService.is_master_key_account',\n        function () {\n            return (\n            this.userProfileService.userProfileService?.profile?.is_master_key_account || false\n            );\n        }\n    ),\n    getOAuthProfile: async function(){\n        this.set(\"isLoading\", true);\n\n        let url = `${getApiBaseUrl()}/api/admin/oauth-providers/${this.provider1}/`;\n        let response = await this.api.fetch(url, {\n            method: \"GET\",\n            headers: {\n            \"Content-Type\": \"application/json\",\n            Authorization: `Bearer ${localStorage.token}`\n            },\n        });\n        if (response.status == 200) {\n            const responseData = await response.json();\n            this.set(\"oauthProfile\", responseData);  \n        }\n        else {\n            this.set(\"oauthProfile\", {});  \n        } \n        this.set(\"isLoading\", false);\n    },\n    getClientID:Ember.computed(\"oauthProfile\", function(){\n        return this.oauthProfile?.client_id || \"\";\n    }),\n    getTenantID:Ember.computed(\"oauthProfile\", function(){\n        return this.oauthProfile?.tenant_id || \"\";\n    }),\n    getClientSecret:Ember.computed(\"oauthProfile\", function(){\n        return \"\";\n    }),\n    getRedirectURI:Ember.computed(\"oauthProfile\", function(){\n        return this.oauthProfile?.redirect_uri || \"\";\n    }),\n    getTokenURL:Ember.computed(\"oauthProfile\", function(){\n        return this.oauthProfile?.token_url || \"\";\n    }),\n    updateIsEditing:function(key){\n        switch(key){\n            case \"client_id\":\n                this.set(\"isEditingClientID\", !this.isEditingClientID);\n                break;\n            case \"tenant_id\":\n                this.set(\"isEditingTenantID\", !this.isEditingTenantID);\n                break;\n            case \"redirect_uri\":\n                this.set(\"isEditingRedirectURI\", !this.isEditingRedirectURI);\n                break;\n            case \"token_url\":\n                this.set(\"isEditingTokenURL\", !this.isEditingTokenURL);\n                break;\n        }\n\n    },\n    actions:{\n        updateIsEditingProperty(key){\n            this.updateIsEditing(key);\n        },\n        clearMicrosoftADTestMessages(){\n            this.set(\"isShowMicrosoftADTestMessage\", false);\n            this.set(\"microsoftADTestMessages\", null);\n        },\n        async updateProperty(docuKey,typeKey){\n            let dataobj = {};\n            let docu = document.getElementById(docuKey);\n            if(docu != undefined)\n                dataobj[typeKey] = docu.value.trim();\n            else\n                return;\n\n            const url = `${getApiBaseUrl()}/api/admin/oauth-providers/${this.provider1}/`;\n        \n            let response = await this.api.fetch(url, {\n                method: \"PATCH\",\n                headers: {\n                \"Content-Type\": \"application/json\",\n                Authorization: `Bearer ${localStorage.token}`\n                },\n                body: JSON.stringify(dataobj)\n            });\n\n            let result = await response.json();\n            if (!response.ok) {\n            }\n            else{\n                let newProfile = this.oauthProfile;\n                newProfile[typeKey] = docu.value.trim();\n                // this.set(\"oauthProfile\", newProfile);\n                await this.getOAuthProfile();\n                this.updateIsEditing(typeKey);\n            }\n\n        },\n        async testMicrosoftADConnection(){\n            const url = `${getApiBaseUrl()}/api/admin/oauth-providers/${this.provider1}/test/`;\n\n            try {\n                let response = await this.api.fetch(url, {\n                method: \"POST\",\n                headers: {\n                    \"Content-Type\": \"application/json\",\n                    Authorization: `Bearer ${localStorage.token}`,\n                },\n                });\n\n                let result = await response.json();\n\n                if (response.ok && result.success) {\n                    this.set(\"microsoftADTestMessages\", \"Microsoft AD connection successful!\");\n                } else {\n                    this.set(\"microsoftADTestMessages\", \"Microsoft AD test failed! \" + result.error);\n                    console.error(result);\n                }\n\n            } catch (e) {\n                this.set(\"microsoftADTestMessages\", \"Connection test failed (network error)\");\n                console.error(e);\n            }\n            this.set(\"isShowMicrosoftADTestMessage\", true);\n            \n        }\n    }\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\nexport default Ember.Component.extend({\n    session: service(),\n    userProfileService: service(),\n    api: service(),\n    userProfile:null,\n    isEditingFirstName:false,\n    isEditingLastName:false,\n    isEditingEmail:false,\n    isEditingUsername:false,\n    isEditingCompany:false,\n    isEditingPosition:false,\n\n    isValidUsername: false,\n    usernameTips: \"150 characters or fewer. Letters, digits and @/./+/-/_ only\",\n    isValidEmail: false,\n    emailTips: \"Invalid email structure\",\n\n    showEmailError:false,\n    emailErrorMessage:null,\n    showUsernameError:false,\n    emailUsernameMessage:null,\n\n    isMasterUser:  Ember.computed(\n    'userProfileService.is_master_key_account',\n        function () {\n            return (\n                this.userProfileService.userProfileService?.profile?.is_master_key_account || false\n            );\n        }\n    ),\n    getFirstName:Ember.computed(\"userProfileService.userProfileService\", function(){\n        return this.userProfileService.userProfileService?.profile?.first_name || \"\";\n    }),\n    getLastName:Ember.computed(\"userProfileService.userProfileService\", function(){\n        return this.userProfileService.userProfileService?.profile?.last_name || \"\";\n    }),\n    getEmail:Ember.computed(\"userProfileService.userProfileService\", function(){\n        return this.userProfileService.userProfileService?.profile?.email || \"\";\n    }),\n    getUsername:Ember.computed(\"userProfileService.userProfileService\", function(){\n        return this.userProfileService.userProfileService?.profile?.username || \"\";\n    }),\n    getCompany:Ember.computed(\"userProfileService.userProfileService\", function(){\n        return this.userProfileService.userProfileService?.profile?.company || \"\";\n    }),\n    getPosition:Ember.computed(\"userProfileService.userProfileService\", function(){\n        return this.userProfileService.userProfileService?.profile?.position || \"\";\n    }),\n    updateIsEditing:function(key){\n        switch(key){\n            case \"firstName\":\n                this.set(\"isEditingFirstName\", !this.isEditingFirstName);\n                break;\n            case \"lastName\":\n                this.set(\"isEditingLastName\", !this.isEditingLastName);\n                break;\n            case \"email\":\n                this.resetError(\"email\");\n                this.set(\"isEditingEmail\", !this.isEditingEmail);\n                break;\n            case \"username\":\n                this.resetError(\"username\");\n                this.set(\"isEditingUsername\", !this.isEditingUsername);\n                break;\n            case \"company\":\n                this.set(\"isEditingCompany\", !this.isEditingCompany);\n                break;\n            case \"position\":\n                this.set(\"isEditingPosition\", !this.isEditingPosition);\n                break;\n        }\n\n    },\n    updateError:function(typeKey, errorMessage){\n        switch(typeKey){\n            case \"email\":\n                this.set(\"showEmailError\", true);\n                this.set(\"emailErrorMessage\", errorMessage);\n                break;\n            case \"username\":\n                this.set(\"showUsernameError\", true);\n                this.set(\"emailUsernameMessage\", errorMessage);\n                break;\n        }\n    },\n    resetError:function(typeKey){\n        switch(typeKey){\n            case \"email\":\n                this.set(\"showEmailError\", false);\n                this.set(\"emailErrorMessage\", null);\n                break;\n            case \"username\":\n                this.set(\"showUsernameError\", false);\n                this.set(\"emailUsernameMessage\", null);\n                break;\n        }\n    },\n    validateEmail:function(email){\n        if (!email) {\n        return false;\n        }\n\n        if (email.length > 254) {\n        return false;\n        }\n\n        const emailRegex =\n        /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$/;\n\n        return emailRegex.test(email);\n\n    },\n    validateUsername:function(inputUsername){\n        //Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.\n        if (!inputUsername) {\n            return false;\n        }\n\n        // Length check\n        if (inputUsername.length > 150) {\n            return false;\n        }\n\n        // Character check (Django-compatible)\n        const usernameRegex = /^[\\w.@+-]+$/;\n\n        return usernameRegex.test(inputUsername);\n\n    },\n    actions: {\n        updateEmail(event) {\n            if (this.validateEmail(event.target.value)){\n                this.set(\"isValidEmail\", false);\n            }\n            else{\n                this.set(\"isValidEmail\", true);\n            }\n        },\n        updateUsername(event) {\n            if (this.validateUsername(event.target.value)){\n                this.set(\"isValidUsername\", false);\n            }\n            else{\n                this.set(\"isValidUsername\", true);\n            }\n        },\n        updateIsEditingProperty(key){\n            this.updateIsEditing(key);\n        },\n        async updateProperty(docuKey,typeKey){\n            this.resetError(typeKey);\n            let dataobj = {};\n            let docu = document.getElementById(docuKey);\n            if(docu != undefined)\n                dataobj[typeKey] = docu.value.trim();\n            else\n                return;\n\n            const url = `${getApiBaseUrl()}/api/auth/user/profile/update/`;\n        \n            let response = await this.api.fetch(url, {\n                method: \"PATCH\",\n                headers: {\n                \"Content-Type\": \"application/json\",\n                Authorization: `Bearer ${localStorage.token}`\n                },\n                body: JSON.stringify(dataobj)\n            });\n\n            let result = await response.json();\n            let updatedObj = result.updated;\n            if (!response.ok) {\n                this.updateError(typeKey, result[typeKey].join(\" \"))\n            }\n            else{\n                if (updatedObj && updatedObj[typeKey] !== undefined) {\n                    this.userProfileService.updateField(typeKey, updatedObj[typeKey]);\n                }\n                if(typeKey == \"first_name\"){\n                    this.updateIsEditing(\"firstName\");\n                }\n                else if (typeKey == \"last_name\"){\n                    this.updateIsEditing(\"lastName\");\n                }\n                else{\n                    this.updateIsEditing(typeKey);\n                }\n            }\n\n        }\n    }\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { getApiBasePort, getApiBaseUrl } from \"../utils/api-config\";\n\nexport default Ember.Component.extend({\n    session: service(),\n    userProfileService: service(),\n    api: service(),\n\n    isLoading:false,\n    paginationSearchConfig:{\n        searchObject:{}\n    },\n    settingsConfig:{\n        MAX_TIMEOUT_AWAITING_SAMPLING: 750,ASCENDING_CONST: \"ASC\",DESCENDING_CONST: \"DESC\",\n    },\n    paginationSearchConfig:{    \n        searchObject:{ calibrationDateOrdering:\"DESC\"},\n        pagination:{page:1, pageSize:10, totalPages:1},\n        paginationPageSizes : [5,15,25,50,100,150,200],\n        calibrationInstrumentProfilePaginationList : [],\n    },\n\n    resetPasswordMessage:null,\n    isShowResetPasswordMessage:false,\n\n    async init() {\n        this._super(...arguments);\n        await this.getActivityLogList();\n    },\n    getActivityLogList: async function(){\n        this.set(\"isLoading\", true);\n        let payload = {\n            page: this.paginationSearchConfig.pagination.page,\n            page_size:this.paginationSearchConfig.pagination.pageSize,\n        };\n        \n        if ('gateway_id_sort' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.gateway_id_sort') != null){\n            payload['gateway_id_sort'] = this.get('paginationSearchConfig.searchObject')['gateway_id_sort'];\n        }\n        \n        if ('instrument_id_sort' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.instrument_id_sort') != null){\n            payload['instrument_id_sort'] = this.get('paginationSearchConfig.searchObject')['instrument_id_sort'];\n        }\n\n        if ('action_date_sort' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.action_date_sort') != null){\n            payload['action_date_sort'] = this.get('paginationSearchConfig.searchObject')['action_date_sort'];\n        }\n\n        let url = `${getApiBaseUrl()}/instrument-activity-logs/`;\n        let queryString = new URLSearchParams(payload).toString();\n        if (queryString) {\n            url += `?${queryString}`;\n        }\n        let response = await this.api.fetch(url, {\n            method: \"GET\",\n            headers: {\n            \"Content-Type\": \"application/json\",\n            Authorization: `Bearer ${localStorage.token}`\n            },\n        });\n        if (response.status == 200) {\n            const responseData = await response.json();\n\n            const rawList = responseData.data || [];\n            const included = responseData.included || [];\n\n            const data = rawList.map(record =>\n                this.flattenActivityLog(record, included)\n            );\n\n            \n            this.set(\"activityLogList\", data);\n            const metaPaginationData = responseData['meta'];\n            this.set(\"paginationSearchConfig.pagination.totalPages\", metaPaginationData['pagination']['total_pages']);\n            // const totalRowsComp = document.getElementById(\"totalReadings\");\n            // totalRowsComp.textContent = `Total: ${responseData['data'].length}`\n            this.updatePaginationList();\n        }\n        else {\n            this.set(\"activityLogList\", []);  \n        } \n        this.set(\"isLoading\", false);\n    },\n    flattenActivityLog: function (record, included) {\n        const attrs = record.attributes || {};\n        const relationships = record.relationships || {};\n\n        return {\n            activity_message: attrs[\"activity-message\"] ?? null,\n            action_date: attrs[\"action-date\"] ?? null,\n            instrument_id: relationships.instrument?.data?.id ?? null,\n            gateway_id: relationships.gateway?.data?.id ?? null,\n        };\n    },\n    updatePaginationList: function () {\n        let range = [];\n        const maxPageToShow = 3; // Adjust this based on how many pages you want to show in the middle\n        const paginationObj = this.get('paginationSearchConfig.pagination');\n\n        // Always include the first page\n        range.push(1);\n\n        if (paginationObj['totalPages'] <= maxPageToShow + 2) {\n            // If total pages are small enough, show all pages\n            for (let i = 2; i <= paginationObj['totalPages']; i++) {\n                range.push(i);\n            }\n        } else if (paginationObj['page'] <= maxPageToShow) {\n            // Current page is within the first few pages\n            for (let i = 2; i <= maxPageToShow + 1; i++) {\n                range.push(i);\n            }\n            range.push('...');\n            range.push(paginationObj['totalPages']);\n        } else if (paginationObj['page'] >= paginationObj['totalPages'] - maxPageToShow + 1) {\n            // Current page is within the last few pages\n            range.push('...');\n            for (let i = paginationObj['totalPages'] - maxPageToShow; i <= paginationObj['totalPages']; i++) {\n                range.push(i);\n            }\n        } else {\n            // Current page is in the middle\n            range.push('...');\n            for (let i = paginationObj['page'] - 1; i <= paginationObj['page'] + 1; i++) {\n                range.push(i);\n            }\n            range.push('...');\n            range.push(paginationObj['totalPages']);\n        }\n\n        this.set('paginationSearchConfig.calibrationInstrumentProfilePaginationList', range);\n    },\n    isStaffUser:  Ember.computed(\n    'userProfileService.is_master_key_account',\n        function () {\n            return (\n            this.userProfileService.userProfileService?.profile?.is_staff || false\n            );\n        }\n    ),\n    actions: {\n        async sendResetPasswordLink(){\n\n            try {\n                let email = this.userProfileService.userProfileService?.profile?.email;\n\n                if (!email) {\n                alert(\"No email found for this user.\");\n                return;\n                }\n                this.set(\"isLoading\", true);\n                const url = `${getApiBaseUrl()}/api/auth/password-reset/`;\n\n                let response = await this.api.fetch(url, {\n                method: \"POST\",\n                headers: {\n                    \"Content-Type\": \"application/json\"\n                },\n                body: JSON.stringify({ email })\n                });\n\n                this.set(\"isShowResetPasswordMessage\", true);\n                this.set(\"resetPasswordMessage\", \"Email has been sent if it exists!\");\n\n            } catch (err) {\n                console.error(err);\n                this.set(\"isShowResetPasswordMessage\", true);\n                this.set(\"resetPasswordMessage\", \"Failed to send reset password email!\");\n            }\n            this.set(\"isLoading\", false);\n            setTimeout(() => {\n                this.set(\"isShowResetPasswordMessage\", false);\n                this.set(\"resetPasswordMessage\", null);\n            }, 10000);\n        },\n        accessAdmin(){\n            event.preventDefault();  \n            let url = new URL('/admin', window.location.href);\n            url.port = getApiBasePort();\n            window.open(url.href, '_blank');  \n        },\n        columnCycleOrdering(id){\n            const searchObject = this.get(\"paginationSearchConfig.searchObject\");\n            switch(id){\n                case \"instrument_id_sort\":\n                    const instrument_id_sortComp = document.getElementById(\"instrument_id_sort\");\n                    if(searchObject['instrument_id_sort'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.instrument_id_sort\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        instrument_id_sortComp.textContent = \"Sensor ID v\";\n                    }else if(searchObject['instrument_id_sort'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.instrument_id_sort\", null);\n                        instrument_id_sortComp.textContent = \"Sensor ID \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.instrument_id_sort\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        instrument_id_sortComp.textContent = \"Sensor ID ^\";\n                    };\n                    break;\n                case \"action_date_sort\":\n                    const action_date_sortComp = document.getElementById(\"action_date_sort\");\n                    if(searchObject['action_date_sort'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.action_date_sort\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        action_date_sortComp.textContent = \"Date v\";\n                    }else if(searchObject['action_date_sort'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.action_date_sort\", null);\n                        action_date_sortComp.textContent = \"Date \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.action_date_sort\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        action_date_sortComp.textContent = \"Date ^\";\n                    };\n                    break;\n                case \"gateway_id_sort\":\n                    const gateway_id_sortComp = document.getElementById(\"gateway_id_sort\");\n                    if(searchObject['gateway_id_sort'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.gateway_id_sort\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        gateway_id_sortComp.textContent = \"Gateway ID v\";\n                    }else if(searchObject['gateway_id_sort'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.gateway_id_sort\", null);\n                        gateway_id_sortComp.textContent = \"Gateway ID \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.gateway_id_sort\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        gateway_id_sortComp.textContent = \"Gateway ID ^\";\n                    };\n                    break;\n            }\n            this.getActivityLogList();\n        },\n        jumpToPage(page){\n            // this.getSensorProfileList();\n            try{\n                if(page != \"...\"){\n                    this.set('paginationSearchConfig.pagination.page', Number.parseInt(page))\n                    this.getActivityLogList();\n                }\n            }\n            catch(err){\n\n            }\n        },\n    }\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\nexport default Ember.Component.extend({\n    session: service(),\n    userProfileService: service(),\n    api: service(),\n\n    isEditModalOpen: false,\n    selectedUser: null,\n    \n    isLoading:false,\n    paginationSearchConfig:{\n        searchObject:{}\n    },\n    settingsConfig:{\n        MAX_TIMEOUT_AWAITING_SAMPLING: 750,ASCENDING_CONST: \"ASC\",DESCENDING_CONST: \"DESC\",\n    },\n    async init() {\n        this._super(...arguments);\n        await this.getUsers();\n    },\n    getUsers: async function(){\n        this.set(\"isLoading\", true);\n        let payload = {\n        };\n        \n        if ('id' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.id') != null){\n            payload['id'] = this.get('paginationSearchConfig.searchObject')['id'];\n        }\n\n        if ('first_name' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.first_name') != null){\n            payload['first_name'] = this.get('paginationSearchConfig.searchObject')['first_name'];\n        }\n\n        if ('last_name' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.last_name') != null){\n            payload['last_name'] = this.get('paginationSearchConfig.searchObject')['last_name'];\n        }\n\n        if ('username' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.username') != null){\n            payload['username'] = this.get('paginationSearchConfig.searchObject')['username'];\n        }\n\n        if ('last_login' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.last_login') != null){\n            payload['last_login'] = this.get('paginationSearchConfig.searchObject')['last_login'];\n        }\n\n        if ('date_joined' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.date_joined') != null){\n            payload['date_joined'] = this.get('paginationSearchConfig.searchObject')['date_joined'];\n        }\n        let url = `${getApiBaseUrl()}/api/auth/users/`;\n        let queryString = new URLSearchParams(payload).toString();\n        if (queryString) {\n          url += `?${queryString}`;\n        }\n        let response = await this.api.fetch(url, {\n            method: \"GET\",\n            headers: {\n            \"Content-Type\": \"application/json\",\n            Authorization: `Bearer ${localStorage.token}`\n            },\n        });\n        if (response.status == 200) {\n            const responseData = await response.json();\n            this.set(\"userList\", responseData.users);  \n        }\n        else {\n            this.set(\"userList\", []);  \n        } \n        this.set(\"isLoading\", false);\n    },\n    editTitle: Ember.computed(\"selectedUser.id\", function () {\n    return this.selectedUser\n        ? `Edit User ${this.selectedUser.id}`\n        : \"Edit User\";\n    }),\n    \n    closeEditUserModal:function() {\n        this.set(\"isEditModalOpen\", false);\n        this.set(\"selectedUser\", null);\n    },\n    saveUserEdits:async function(updatedData) {\n        /**\n            updatedData = {\n                \"can_login_vp\": true,\n                \"can_upload_vp\": true,\n                \"company\": lorem_lpsum,\n                \"position\": lorem_lpsum\n            }\n         */\n        let url = `${getApiBaseUrl()}/api/admin/users/${this.get(\"selectedUser\").id}/`;\n        let response = await this.api.fetch(url, {\n            method: \"PATCH\",\n            headers: {\n            \"Content-Type\": \"application/json\",\n            Authorization: `Bearer ${localStorage.token}`\n            },\n            body: JSON.stringify(updatedData)\n\n        });\n        if (response.status == 200) {\n            this.closeEditUserModal();\n            await this.getUsers();\n        }\n        else{\n            console.log(`Error in updating User: ${this.get(\"selectedUser\").id}.\\nCode: ${response.status}.`);\n        }\n    },\n    actions: {\n        openEditUserModal(user) {\n            this.set(\"selectedUser\", user);\n            this.set(\"isEditModalOpen\", true);\n        },\n        columnCycleOrdering(id){\n            const searchObject = this.get(\"paginationSearchConfig.searchObject\");\n            switch(id){\n                case \"id\":\n                    const idColumnComp = document.getElementById(\"id\");\n                    if(searchObject['id'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.id\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        idColumnComp.textContent = \"ID v\";\n                    }else if(searchObject['id'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.id\", null);\n                        idColumnComp.textContent = \"ID \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.id\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        idColumnComp.textContent = \"ID ^\";\n                    };\n                    break;\n                case \"first_name\":\n                    const firstNameColumnComp = document.getElementById(\"first_name\");\n                    if(searchObject['first_name'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.first_name\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        firstNameColumnComp.textContent = \"First Name v\";\n                    }else if(searchObject['first_name'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.first_name\", null);\n                        firstNameColumnComp.textContent = \"First Name \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.first_name\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        firstNameColumnComp.textContent = \"First Name ^\";\n                    };\n                    break;\n                case \"last_name\":\n                    const lastNameColumnComp = document.getElementById(\"last_name\");\n                    if(searchObject['last_name'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.last_name\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        lastNameColumnComp.textContent = \"Last Name v\";\n                    }else if(searchObject['last_name'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.last_name\", null);\n                        lastNameColumnComp.textContent = \"Last Name \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.last_name\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        lastNameColumnComp.textContent = \"Last Name ^\";\n                    };\n                    break;\n                case \"username\":\n                    const usernameColumnComp = document.getElementById(\"username\");\n                    if(searchObject['username'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.username\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        usernameColumnComp.textContent = \"Last Name v\";\n                    }else if(searchObject['username'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.username\", null);\n                        usernameColumnComp.textContent = \"Last Name \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.username\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        usernameColumnComp.textContent = \"Last Name ^\";\n                    };\n                    break;\n                case \"last_login\":\n                    const lastLoginColumnComp = document.getElementById(\"last_login\");\n                    if(searchObject['last_login'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.last_login\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        lastLoginColumnComp.textContent = \"Last Login v\";\n                    }else if(searchObject['last_login'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.last_login\", null);\n                        lastLoginColumnComp.textContent = \"Last Login \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.last_login\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        lastLoginColumnComp.textContent = \"Last Login ^\";\n                    };\n                    break;\n                case \"date_joined\":\n                    const dateJoinedColumnComp = document.getElementById(\"date_joined\");\n                    if(searchObject['date_joined'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.date_joined\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        dateJoinedColumnComp.textContent = \"Date Joined v\";\n                    }else if(searchObject['date_joined'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.date_joined\", null);\n                        dateJoinedColumnComp.textContent = \"Date Joined \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.date_joined\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        dateJoinedColumnComp.textContent = \"Date Joined ^\";\n                    };\n                    break;\n            }\n            this.getUsers();\n        }\n    }\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default Ember.Component.extend({\n  userProfileService: service(),\n  api: service(),\n  init(){\n      this._super(...arguments);\n  },\n  profileImage:  Ember.computed(\n    'userProfileService.userProfileService',\n    function () {\n      return (\n        this.userProfileService.userProfileService?.profile?.profile_picture || null\n      );\n    }\n  ),\n  isMasterUser:  Ember.computed(\n    'userProfileService.is_master_key_account',\n    function () {\n      return (\n        this.userProfileService.userProfileService?.profile?.is_master_key_account || false\n      );\n    }\n  ),\n  firstName: Ember.computed(\n    'userProfileService.userProfileService',\n    function () {\n      return (\n        this.userProfileService.userProfileService?.profile?.first_name || \"\"\n      );\n    }\n  ),\n\n  lastName: Ember.computed(\n    'userProfileService.userProfileService',\n    function () {\n      return (\n        this.userProfileService.userProfileService?.profile?.last_name || \"\"\n      );\n    }\n  ),\n\n  actions: {\n    triggerImageUpload() {\n      document.getElementById(\"profileImageInput\").click();\n    },\n    updateTab(value){\n        this.set(\"currentTab\", value)\n    },\n    async uploadProfileImage(event) {\n      const file = event.target.files[0];\n      if (!file) return;\n\n      const allowedTypes = [\"image/jpeg\", \"image/png\"];\n\n      if (!allowedTypes.includes(file.type)) {\n        alert(\"Only JPG and PNG images are allowed\");\n        event.target.value = \"\"; // reset input\n        return;\n      }\n\n      // Optional size limit (recommended)\n      const MAX_SIZE_MB = 5;\n      if (file.size > MAX_SIZE_MB * 1024 * 1024) {\n        alert(\"Image must be smaller than 5MB\");\n        event.target.value = \"\";\n        return;\n      }\n\n      let formData = new FormData();\n      formData.append(\"profile_image\", file);\n\n      try {\n        const url = `${getApiBaseUrl()}/api/auth/user/profile/image/`;\n    \n        let response = await this.api.fetch(url, {\n          method: \"PATCH\",\n          headers: {\n            Authorization: `Bearer ${localStorage.token}`,\n          },\n          body: formData,\n        });\n\n        const result = await response.json();\n        if (!response.ok){\n          alert(\"Image upload failed\");\n        }\n        else{\n          this.userProfileService.updateField(\"profile_picture\", result['updated']);\n        }\n      } catch (e) {\n        console.error(e);\n        alert(\"General Error in Failed to upload image\");\n      }\n    }\n  }\n\n\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { action } from '@ember/object';\nimport { computed, observer } from \"@ember/object\";\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { tracked } from '@glimmer/tracking';\n\nexport default class navbar extends Component {\n    @service session;\n    @service userProfileService;\n    //@service currentUser;\n    //isAuthenticated = true;\n    @service('torii') torii;\n    @service router;\n\n    get apiPort() {\n        return ENV.API_PORT;\n    }\n\n    @action\n    navigateToSettings() {\n        this.router.transitionTo('settings'); \n    }\n\n    @action\n    navigateToMyProfile() {\n        this.router.transitionTo('my-profile'); \n    }\n\n    @computed('userProfileService.userProfileService')\n    get username() {\n        let wrapper = this.userProfileService.userProfileService;\n        let firstName = \"-\";\n        let lastName = \"-\";\n        if (!wrapper?.profile) return \"- -\";\n        if(wrapper.profile.first_name != null && wrapper.profile.first_name.length > 0){\n            firstName = wrapper.profile.first_name;\n        }\n        if(wrapper.profile.last_name != null && wrapper.profile.last_name.length > 0){\n            lastName = wrapper.profile.last_name;\n        }\n\n        return `${firstName} ${lastName}`;\n    }\n\n    @computed('session.isAuthenticated')\n    get isValid() {\n        let isValid = this.get('session').data.authenticated['isValid'];\n        //console.log(isValid);\n        return isValid === undefined ? true : isValid;\n    }\n    @computed('userProfileService.userProfileService')\n    get hasPermissionAnalyticsTab() {\n        let wrapper = this.userProfileService.userProfileService;\n        if (!wrapper?.profile) return false;\n\n        return (wrapper.profile.is_superuser || wrapper.profile.can_view_packs_validation_analytics || wrapper.profile.can_view_sensor_calibration_analytics);\n\n    }\n    @computed('userProfileService.userProfileService')\n    get hasPermissionPacksValidationAnalytics() {\n        let wrapper = this.userProfileService.userProfileService;\n        if (!wrapper?.profile) return false;\n        return wrapper.profile.is_superuser || wrapper.profile.can_view_packs_validation_analytics;\n    }\n    @computed('userProfileService.userProfileService')\n    get hasPermissionSensorCalibrationAnalytics() {\n        let wrapper = this.userProfileService.userProfileService;\n        if (!wrapper?.profile) return false;\n        return wrapper.profile.is_superuser || wrapper.profile.can_view_sensor_calibration_analytics;\n    }\n    @computed('userProfileService.userProfileService')\n    get hasPermissionProductionTab() {\n        let wrapper = this.userProfileService.userProfileService;\n        if (!wrapper?.profile) return false;\n        return wrapper.profile.is_superuser || wrapper.profile.can_view_sensor_calibration || wrapper.profile.can_view_packs_validation;\n    }\n    @computed('userProfileService.userProfileService')\n    get hasPermissionSensorCalibration() {\n        let wrapper = this.userProfileService.userProfileService;\n        if (!wrapper?.profile) return false;\n        return wrapper.profile.is_superuser || wrapper.profile.can_view_sensor_calibration;\n    }\n    @computed('userProfileService.userProfileService')\n    get hasPermissionPacksValidation() {\n        let wrapper = this.userProfileService.userProfileService;\n        if (!wrapper?.profile) return false;\n        return wrapper.profile.is_superuser || wrapper.profile.can_view_packs_validation;\n    }\n    @computed('session.isAuthenticated')\n    get isWithinLimit() {\n        let limit = this.get('session').data.authenticated['limit']\n        return limit === undefined ? true : limit;\n    }\n\n    @computed('session.isAuthenticated')\n    get modules() {\n        return this.get('session').data.authenticated['modules'];\n    }\n\n    @computed('session.isAuthenticated')\n    get hasAlerts() {\n        let perms = null;\n        try{\n            perms = this.session.data.authenticated.modules;\n        } catch {}\n        if (perms == null) {\n            return false;\n        } else {\n            return (perms['alerts']);\n        }\n    }\n\n    @action\n    navigateToSensorCalibrationAnalytics(event) {\n        event.preventDefault(); // Prevent the default anchor behavior\n        let url = new URL('/sensor-calibration-analytics', window.location.href);\n        // url.port =this.apiPort; // Set the port from your environment variable\n        window.location.href = url.href; // Open the new URL in a new tab\n    }\n    @action\n    navigateToPacksValidationAnalytics(event) {\n        event.preventDefault(); // Prevent the default anchor behavior\n        let url = new URL('/packs-validation-analytics', window.location.href);\n        // url.port =this.apiPort; // Set the port from your environment variable\n        window.location.href = url.href; // Open the new URL in a new tab\n    }\n    @action\n    navigateToSensorCalibration(event) {\n        event.preventDefault(); // Prevent the default anchor behavior\n        let url = new URL('/sensor-calibration', window.location.href);\n        // url.port =this.apiPort; // Set the port from your environment variable\n        window.location.href = url.href; // Open the new URL in a new tab\n    }\n    @action\n    navigateToPacksValidation(event) {\n        event.preventDefault(); // Prevent the default anchor behavior\n        let url = new URL('/packs-validation', window.location.href);\n        // url.port =this.apiPort; // Set the port from your environment variable\n        window.location.href = url.href; // Open the new URL in a new tab\n    }\n\n    @action\n    async logout() {\n        try {\n            console.log(\"Logging out…\");\n            await this.session.invalidate();\n            console.log(\"Logout successful\");\n        } catch (error) {\n            console.error(\"Logout failed:\", error);\n        }\n    }\n\n\n//Version 2\n    // @action\n    // async logout() {\n        \n    //     let authenticator = this.session.data.authenticated.authenticator;\n    //     let provider = this.session.data.authenticated.provider;\n        \n    //     console.log(\"Attempting to logout with authenticator:\", authenticator);\n    //     console.log(\"Attempting to logout with provider:\", provider);\n        \n    //     if (!authenticator) {\n    //         console.error('No authenticator found in session data.');\n    //         return;\n    //     }\n\n    //     try {\n    //         if(!provider){\n    //             await this.session.invalidate(); // Use the specific authenticator for logout\n    //         }\n    //         else{\n    //             // For OAuth providers handled by Torii\n    //             try {\n    //                 // await this.torii.close(provider); // Attempt to close the provider-specific session\n    //                 // await this.session.invalidate(provider); // Then invalidate the session\n    //                 await this.session.invalidate(); // Use the specific authenticator for logout\n    //                 console.log(\"OAuth logout successful\");\n    //             } catch (error) {\n    //                 console.error('OAuth logout failed:', error);\n    //             }\n    //         }\n    //         console.log(\"Logout successful\");\n    //     } catch (error) {\n    //         console.log(error);\n    //         console.error('Logout failed:', error);\n    //     }\n    // }\n\n//Version 1\n    // @action\n    // async logout() {\n    //     const provider = this.session.data.authenticated.provider;\n    //     console.log(\"Attempting to logout with provider:\", provider);\n\n    //     if (!provider) {\n    //         console.error('Logout failed: No provider found in session data.');\n    //         await this.session.invalidate(); // Invalidate the session anyway to clear session data\n    //         return;\n    //     }\n\n    //     if (provider === 'basic-auth') {\n    //         // For basic-auth, directly invalidate the session as no provider-specific cleanup is needed\n    //         try {\n    //             await this.session.invalidate();\n    //             console.log(\"Basic-auth logout successful\");\n    //         } catch (error) {\n    //             console.error('Basic-auth logout failed:', error);\n    //         }\n    //     } else {\n    //         // For OAuth providers handled by Torii\n    //         try {\n    //             await this.torii.close(provider); // Attempt to close the provider-specific session\n    //             await this.session.invalidate(); // Then invalidate the session\n    //             console.log(\"OAuth logout successful\");\n    //         } catch (error) {\n    //             console.error('OAuth logout failed:', error);\n    //         }\n    //     }\n    // }\n  \n}","define(\"geotechnical-data-platform-new/components/node\", [\"exports\", \"ember-composability-tools/components/node\"], function (_exports, _node) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _node.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            let selector = this.$('#chan_select');\n\n            let selected = {};\n            selector.val().forEach(function(selection) {\n                selected[selection] = true;\n            });\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                selector.val().forEach(function(selection) {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = selection;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save();\n                                });\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\nimport { computed } from '@ember/object';\n\nfunction resetNewGatewayObject(_this) {\n    _this.set('newGatewayObject', {});\n    _this.set('name', null);\n    _this.set('installDate', null);\n\n}\n\nexport default class CreateBluCellGateway extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewGatewayObject(this);\n        this.loadGateways(this.gatewayList);\n    }\n\n    loadGateways(gatewayList) {\n        const rawData = gatewayList; // Assuming gateways is an array of gateway objects\n        \n        // Filter gateways to get a list of only Blu900GW gateways\n        const filteredGateways = rawData.filter(function (gateway) {\n            if(gateway.active == true && gateway.get('gatewayType').title.toLowerCase() === 'blu900gw'){\n                return gateway.get('gatewayType').title.toLowerCase() === 'blu900gw';\n            }\n        });\n        \n        const mappedGateways = filteredGateways.map(function (gateway) {\n            // Retrieve parent gateway record based on available information\n            const parentId = gateway.get('parentId'); // Assuming there is a field 'parentId' in the gateway object\n            \n    \n            let gw = {\n                title: gateway.get('id') + ' - ' + gateway.get('gatewayType').title,\n                value: gateway.get('id'),\n                type: gateway.get('gatewayTypeID'),\n                parent: gateway, // Assign parent gateway to 'parent' property \n            };\n            \n            return gw;\n        });\n    \n        this.set('gateways', mappedGateways);\n    }\n        \n    isAuthenticated = true;\n    newGatewayObject = {};\n    installDate = null;\n    authError = false;\n    gateways = [];\n\n    actions = {\n        async createGateway(object){\n\n            let _this = this,\n            store = this.get('store'),\n            newGatewayObject = this.get('newGatewayObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newGatewayObject.id = this.get('id');\n            newGatewayObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            newGatewayObject.depth = this.get('depth');\n\n            newGatewayObject.gatewayType = store.peekRecord('gateway-type', this.typeID);\n            newGatewayObject.active = true;\n\n            let interval_upload = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'upload_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayUploadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                }).catch(function(error) {\n                console.log(\"Error Getting interval_upload object::: \" + error);\n              });\n\n            let interval_read = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'instrument_reading_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayReadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                  }).catch(function(error) {\n                    // handle error here\n                    console.log(\"Error Getting interval_read object::: \" + error);\n                });\n              \n\n            if(typeof newGatewayObject.id === 'undefined' || newGatewayObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('installDate') != null) {\n                newGatewayObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            let newGateway = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    console.log(\"Creating....\");\n                    newGateway = store.createRecord('gateway', newGatewayObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if(!error) {\n                newGateway.save().then(function(results){\n                    // console.log(dup);\n                    if(results.id != null) {\n                        _this.get('submit')(results.id);\n                    } else {\n                        this.setError('isVisibleError',true);\n                        error = true;\n                    }\n                }).catch(function(reason) {\n                    _this.setError('isVisibleError',true);\n                    _this.setError('authError',true);\n                }); \n            } \n        },\n        async setID(gw){\n            if(gw != null) {\n\n                let newGatewayObject = this.get('newGatewayObject');\n                console.log(newGatewayObject);\n                console.log(\"Parent Selected::: \" + gw);\n                \n                let parent = await this.store.findRecord('gateway', gw.value).then((parentGateway) => {\n                    // Parent gateway retrieved successfully\n                    console.log(parentGateway.id);\n                    return parentGateway;\n                }).catch((error) => {\n                    // Handle error if the parent gateway does not exist or any other issue occurs\n                    console.error(error);\n                });\n                this.set('newGatewayObject.parentGateway', parent);\n                console.log(\"parentGateway::::::::::: \" + this.get('newGatewayObject').parentGateway.id);\n                \n            } else {\n                this.set('newGatewayObject.parentGateway', null);\n            }\n        },\n\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let gatewayValueObjectValues = _this.get('gatewayValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(gatewayValueObjectValues).forEach(function(key,index) {\n        gatewayValueObjectValues[key] = null;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n\n    newGatewayValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newGatewayValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n\n    gatewayValueObjectValues: Ember.computed('anchorDistances', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('anchorDistances').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    newGatewayValueObjectValues: Ember.computed('gatewayValueObjectValues', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('gatewayValueObjectValues').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n             console.log(\"saveNew\");\n            let _this = this,\n                store = this.get('store'),\n                newGatewayValuesObject = this.get('newGatewayValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                gatewayValues = this.get('gatewayValues'),\n                temperatureValues = this.get('temperatureValues');\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-gateway-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newGatewayValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newGatewayValuesObject.values = Object.values(this.get('newGatewayValueObjectValues'));\n\n            const newGatewayValues = store.createRecord('gateway-value', newGatewayValuesObject);\n            // save new gateway-value to DB\n            const savedGatewayValuesObject = newGatewayValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if gateway-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //gatewayValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n            })\n            .catch(function(reason){\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    ajax:Ember.inject.service(),\n    store: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    anchorList: Ember.computed('instID', 'anchors', function() {\n        let anchors = this.get('anchors');\n        let isSelected = {};\n        //console.log(\"triggered\");\n        if (anchors == null) {\n            anchors = this.get('alert').get('anchors');\n            this.set('anchors', anchors);\n        }\n\n        anchors.forEach(element => {\n            isSelected[element.get('selectedCh')] = true;\n        });\n\n\n        return isSelected;\n    }),\n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { camelize } from '@ember/string';\n\nexport default class EditGateway extends Component.extend({\n\n    store: Ember.inject.service(),\n    gatewayReadingsIntervals: null,\n    initialSelection: null,\n    isAuthenticated : true,\n    // selectedReadingIntervalID : null,\n    selectedModel : null,\n    editing : 0,\n\n    init(){\n        this._super(...arguments);\n        this.loadGateways(this.gatewayList);\n    },\n    loadGateways(gatewayList) {\n        const rawData = gatewayList; // Assuming gateways is an array of gateway objects\n        \n        // Filter gateways to get a list of only Blu900GW gateways\n        const filteredGateways = rawData.filter(function (gateway) {\n            if(gateway.active == true && gateway.get('gatewayType').title.toLowerCase() === 'blu900gw'){\n                return gateway.get('gatewayType').title.toLowerCase() === 'blu900gw';\n            }\n        });\n        let parent = this.get('parent')\n        let selectedItem = null;\n        const mappedGateways = filteredGateways.map(function (gateway) {           \n            let gw = {\n                title: gateway.get('id'),\n                value: gateway.get('id'),\n                type: gateway.get('gatewayTypeID'),\n            };\n            \n            if(gateway.id == parent){\n                selectedItem = gw;\n            }\n            return gw;\n        });\n        \n        this.set('gateways', mappedGateways);\n        this.set('initialSelection', selectedItem);\n        \n        // console.log(this.get('gateways'));\n    },\n    parent: Ember.computed('gateway', function() {\n        let gateway = this.get('gateway');\n        let parent = gateway.get('parentGateway');\n        if(parent == null){\n            // console.log(\"parent is null\");\n            return null;\n        }\n        // console.log(\"parent::: \" + parent.get('id'));\n        return parent.get('id');\n    }),\n    gateways: [],\n    \n    getGatewayUploadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayUploadInterval = gw.gatewayUploadInterval;\n        // console.log(\"gatewayUploadInterval::: \" + gatewayUploadInterval)\n        if(gatewayUploadInterval == null){\n            return 0;\n        }\n            return (gatewayUploadInterval.id).toString();\n    }),\n\n    getGatewayReadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayReadInterval = gw.gatewayReadInterval;\n        // console.log(\"gatewayReadInterval::: \" + gatewayReadInterval)\n        if(gatewayReadInterval == null){\n            return 0;\n        }\n        return (gatewayReadInterval.id).toString();\n    }),\n    \n}){\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    _this = this;\n\n    actions = {\n        //in order for this to work the id of the select element must be the same as the attribute name\n        setGatewayInterval(event) {\n            let gateway = this.get('gateway');\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            //id of the newly selected interval\n            const selectedValue = parseInt(selectedOptions.map(option => option.value));    \n            //interval attribute name\n            const intervalType = event.target.id;\n            // when the record has no interval records associated with it, when you try to save an error is thrown.\n            // I avoid this by defaulting the interval to 5 minutes when the one is saved and the other is null.\n            let notSelected = intervalType == 'gatewayReadInterval' ? 'gatewayUploadInterval' : 'gatewayReadInterval';\n\n            this.store.findRecord('gateway-interval', selectedValue).then((interval) => { \n                let notSelectedIntervalValue = gateway[notSelected];\n                let group_name = intervalType == 'gatewayReadInterval' ? 'instrument_reading_interval' : 'upload_interval';\n                if(notSelectedIntervalValue == null){\n                    //if the non-selected interval is null I default it here.\n                    this.store.query('gateway-interval', {\n                        filter: {\n                          interval_value: 5,\n                          interval_group_name: group_name\n                        }\n                        }).then(function(results) {\n                            gateway.set(notSelected, results.get('firstObject'));\n                            gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                \n                            gateway.save().then(() => {\n                                console.log('Gateway saved successfully!');\n                            }).catch((error) => {\n                                console.log('Error saving gateway:', error);\n                            });\n            \n                        }).catch(function(error) {\n                        console.log(\"Error Getting interval_upload object::: \" + error);\n                      });\n                } else {\n                    \n                    gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                    gateway.save().then(() => {\n                        console.log('Gateway saved successfully!');\n                    }).catch((error) => {\n                        console.log('Error saving gateway:', error);\n                    });\n                }                    \n            });\n            \n        },\n         \n        updatePage(){\n            let store = this.get('store');\n            let gateway = this.get('gateway');\n            gateway.save();\n        },\n        viewData(id) {\n            this.get('router').transitionTo('raw-gateway-data', id);\n        },\n        tGraph(id) {\n            //console.log(\"Edit-gateway::: \" + id)\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, 'voltage-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveGateway(){\n            const _this = this;\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/gateway\";\n                }\n            } else {\n                window.location.href = \"/gateway\";\n            }\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        // updateProperty(propertyName, propertyValue) {\n        //     this.set(propertyName, propertyValue);\n        // },\n        async setID(gw){\n            if(gw != null) {\n\n                let gateway = this.get('gateway');\n                let parent = await this.store.findRecord('gateway', gw.value).then((parentGateway) => {\n                    // Parent gateway retrieved successfully\n                    return parentGateway;\n                }).catch((error) => {\n                    // Handle error if the parent gateway does not exist or any other issue occurs\n                    console.error(error);\n                });\n                this.set('gateway.parentGateway', parent);\n                gateway.save().then(() => {\n                    console.log(\"parentGateway::::::::::: \" + this.get('gateway').parentGateway.id);\n                }).catch((error) => {\n                    console.log('Error saving gateway:', error);\n                });\n                \n            } else {\n                this.set('gateway.parentGateway', null);\n            }\n        },\n    \n\n\n    }\n}\n\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        console.log(\"Left Axis:::: \" + leftAxis)\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          console.log(\"Right Axis: \" + rightAxis)\n          return rightAxis;\n    }),\n\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Coordinator: 1,\n        Voltage: 2,\n        RSSI: 3,\n        carrier: 4, \n        Readings: 5, \n        Uptime: 6, \n        Reconnection: 7, \n        Uploads: 8, \n        Temperature: 9,\n        var_1: 10, \n        var_2: 11, \n        var_3: 12,\n    }),\n\n    zoomTempPoints: Ember.computed(function(){\n        // let right = this.get('zoomDataPointsRightAxis');\n        let temperaturePoints = [];\n        let zoomTempData = this.get(\"zoomTempData\");\n        zoomTempData.forEach(function(item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n            temperaturePoints.push(chartData.values[0]);\n            // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n        });\n        // console.log(\"zoomTempPoints::::::::::::::: 7\");    \n        // let linesKyes = Object.keys(item.toJSON());\n        // var chartData = item.getProperties(linesKyes);\n        //  = this.get('temperaturePoints').push(chartData.values);\n        \n        console.log(\"Temperature Points:\");\n        console.log(temperaturePoints);\n\n        return temperaturePoints; //chartData;\n    }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        //TODO: fix this TA.  Hack because we added temperature at the last minute.\n        if(this.leftAxis == 'Temperature'){\n            // console.log(\"zoomDataPointsLeftAxis::::::::::::::: \" + this.get(\"temperaturePoints\"));\n            return this.get(\"zoomTempPoints\");\n        }\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        console.log(\"zoomLeftAxis ::::::::::::::: \" + JSON.stringify(zoomLeftAxis));    \n        return zoomLeftAxis;\n    }),\n    zoomDataPointsRightAxis: Ember.computed(function(){\n       //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null && this.rightAxis != 'Temperature'){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        if (this.rightAxis == 'Temperature'){\n            zoomRightAxis = this.get(\"zoomTempPoints\");\n        }\n        console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        return zoomRightAxis;\n\n    }),\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n        \n       //console.log(\"zoomDataPoints::::::::::::::: 4 and 6 \" + this.get(\"chartDataValueName\") );\n        let left = this.get('zoomDataPointsLeftAxis');\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        if(this.leftAxis != 'Temperature'){\n            fullRangePoints = this.get('fullRangeChartData');\n            fullRangePoints.map(function (item, i){\n                let linesKyes = Object.keys(item.toJSON());\n                let itemHolder = item.getProperties(linesKyes);\n                return itemHolder;\n            });\n        } else {\n            itemHolder.values = [];\n            fullRangePoints = this.get(\"temperaturePoints\");\n            if(this.leftAxis == 'Temperature'){\n                fullRangePoints.forEach(function(item){\n                    itemHolder.values.push(item[0]);\n                });\n            }\n            fullRangePoints = itemHolder;\n        }\n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n       //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n       //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        // fullRangeChartLinesData.push(temperature); //#TODO: Add Temp Points\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('gateway', function() {\n        return [\"Firmware Version\",\"Coordinator\", \"Voltage\", \"RSSi\", \"Mesh ID\"];\n    }),\n    \n    getGatewayData: Ember.computed('gateway', 'gatewayData', function() {\n        let fields = [0, 2, 14];\n        let items = [];\n        // Perform filtering logic on initial data\n        const filteredData = this.get('gatewayData');\n        if (filteredData) {\n        filteredData.forEach(item => {\n            let values = [];\n            let firmware = item.values[0];\n            let coordinator = item.values[1];\n            let voltage = item.values[2];\n            let rssi = item.values[3];\n            let mesh_id = item.values[item.values.length - 1];\n            items.push({ id: item.id, values: {'firm_version':firmware, 'coordinator': coordinator, 'voltage':voltage, 'rssi': rssi, 'mesh_id':mesh_id}, originalValue: item, save_values:{'firm_version':firmware,'voltage':voltage,'mesh_id':mesh_id} });\n        });\n        }        \n        \n        return items;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n          console.log(\"Update property: \" + propertyValue);\n          this.set(propertyName, propertyValue);\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  selected: '', // Set the initial value to 'RSSI'\n\n  defaultSelected: computed('selected', function () {\n    const selected = this.selected;\n    console.log('selected:::::::::::: ' + selected);\n    return selected === '' ? 'Voltage' : selected;\n  }),\n\n\n  actions: {\n    handleSelectedFieldChange(newValue) {\n      this.set('selected', newValue);\n    },\n  },\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class LeftAxisDropdown extends Component.extend({}) {\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        tGraph(id, modelName, params) {\n            console.log(\"in LeftAxisDropdown:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\")\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, modelName, params);\n        },\n    }\n}","import Component from '@ember/component';\nimport { computed } from '@ember/object';\n\nexport default Component.extend({\n  rightAxisField: '', // Set the initial value to 'RSSI'\n  routeValue: 'voltage-values',\n\n  defaultRightAxisField: computed('rightAxisField', function() {\n    const rightAxisField = this.rightAxisField;\n    console.log('rightAxisField:::::::::::: ' + rightAxisField);\n    return rightAxisField === '' ? 'Temperature' : rightAxisField;\n  }),\n\n  getRouteValue: computed('selected', function () {\n    const selected = this.selected.toLowerCase();\n    console.log('selected:::::::::::: ' + selected);\n    this.set('routeValue', selected + '-values');\n  }),\n\n  actions: {\n    handleRightAxisFieldChange(newValue) {\n      console.log('handleRightAxisFieldChange:::::::::::: ' + newValue);    \n      this.set('rightAxisField', newValue);\n    }\n  }\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n    \nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n        \n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    // activeExpanded: false,\n    // buttonSymbol: '+',\n    // activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n    \n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    username: computed('',function() {\n        // return this.get('session').data.authenticated['user'];\n        return \"System\";\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        console.log(count);\n        return count;\n    }),\n\n    onCarrierChanged: observer('carrier', function() {\n        let carrier = this.get('carrier');\n        console.log('carrier changed' + carrier);\n        this.set('carrier', carrier);\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n\n        toggleModal() {\n            console.log(\"toggleModal:\" + this.get('isShowingModal'));\n            this.toggleProperty('isShowingModal');\n            console.log(\"toggleModal:\" + this.get('isShowingModal'));\n            this.showModal = !this.showModal;\n        },\n    \n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        \n        async createAlert(object){\n            console.log(\"clicked created alert\");\n            let _this = this;\n            let store = this.get('store');\n            let newAlertObject = this.get('newAlertObject');\n            //let selector = this.$('#chan_select');\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions){\n            //     selected[elem.value] = true;\n            // };\n                        \n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                console.log(\"Username: \" + this.username);\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n                \n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let newAlertObj = this.get('newAlertObject');\n                         \n                        let value = this.get('newAlertObject.value');\n                        // let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n              \n                        \n                        console.log(value);\n                        // console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        \n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            _this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                            console.log(\"Value::: \" + isNaN(alertObjectValue));   \n                            console.log(\"Value::: \" + isNaN(value));   \n                            //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(async function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                    \n                                // // Loop through the selected values\n                                // console.log(_this.activeChannels)\n                                // _this.activeChannels.forEach(value => {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save().catch(function(reason) {\n                                //         if (reason.errors[0].status == 403) {\n                                //             _this.setError('isVisibleError',true);\n                                //             _this.setError('authError',true);\n                                //         }\n                                //     });\n                                // });\n                                // Make sure to place this inside an async function\n                                const activeChannels = _this.activeChannels;\n                                for (const value of activeChannels) {\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    try {\n                                        await newAnchor.save();  \n                                    } catch (reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError', true);\n                                            _this.setError('authError', true);\n                                        }\n                                    }\n                                }\n\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n    \n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('newAlertObject.target', selectedValue);\n        }\n    },\n\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if(!error) {\n                if(typeof newInstrumentObject.strokeLength === 'undefined' || newInstrumentObject.strokeLength === 0) {\n                    error = true;\n                    this.setError('fieldError',true);\n                    this.setError('isVisibleError',true);\n                }\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        // console.log(dup);\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport $ from 'jquery';\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    async init() {\n        \n        this._super(...arguments);\n        let metric = this.get('alert.metric');\n        if(metric === 'REL_DISP') {\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);\n        }\n        if(metric === 'DISP') {\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n    timeReference: null,\n    editing: 0,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    referenceAnchors:null,\n    loading:true,\n    edited:false,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n    \n      \n\n    phoneNumber: Ember.computed('alert.target', function() {\n        let target = this.get('alert.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    handleAlertObjectChange: observer('tr', function() {\n        //console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n\n    }),\n\n    onCarrierChanged: observer('carrier', function() {\n        let carrier = this.get('carrier');\n        console.log('carrier changed' + carrier);\n        this.set('carrier', carrier);\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    onVarChanged: observer('alert.response','alert.message', \"alert.target\", function() {\n        this.set(\"edited\", true); \n        console.log(\"onVarChanged\")\n        \n    }),\n\n    onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n    preLoadActiveChannels: async function (){ \n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            console.log(alertObj)\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n\n    //OLD PETER CRAP\n    // getAnchorList: Ember.computed('instID', 'anchors', function() {\n    //     let anchors = this.get('anchors');\n    //     let isSelected = {};\n    \n    //     if (anchors == null) {\n    //         let alert = this.get('alert');\n    //         anchors = alert.anchors;\n    //         this.set('anchors', anchors);\n    \n    //         anchors.forEach(element => {\n    //             isSelected[element.selectedCh] = true;\n    //         });\n    //     } else {\n    //         anchors.forEach(element => {\n    //             isSelected[element.selectedCh] = true;\n    //         });\n    //     }\n    \n    //     return isSelected;\n    // }),\n        \n\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n        console.log(\"Thing??? :\" + thing);\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                // console.log(\"called save, removing old anchors:\");\n                // console.log(anchors);\n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n                \n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0] && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else if(reason && reason.errors && reason.errors[0]){\n                            console.log(\"save error::::::::::::::::::::::::::::::::\");\n                            console.log(reason.errors[0].status);\n                        } \n                        else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        \n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n          \n    },\n\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n    didReceiveAttrs() {\n        this._super(...arguments);\n      },\n      project: null,\n      level: null,\n\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n\n    editing= 0;\n    actions = {\n                \n        setProject(event) {\n            const selectedId = event.target.value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(event) {\n            \n            const selectedId = event.target.value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            this.get('router').transitionTo('raw-data', id, { queryParams: {\"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            // console.log(\"startDateObj: \" + startDateObj + \" endDateObj: \" + formattedEndDateObj);\n            // console.log(\"base unit for this instrument is: \" +  baseUnit)\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values', { queryParams: { \"advancedYAxisUnit\": baseUnit}});\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n            // console.log(\"chartData:::::::::::: \" + JSON.stringify(chartData));\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values') { \n                chartData.values.unshift(chartData.values[0]);\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n        if (anchorDistances.length > dataValuesCount && modelName === 'strain-values') {\n            anchorDistances.splice(0, 1);\n        }\n        return anchorDistances;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        const anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        anchorDistances.unshift(0);\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        // console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            return anchorMidDistances.map(function(anchorDistance){\n                return {\n                    key: anchorDistance,\n                    type: 'referencePoints',\n                    values: [\n                        anchorDistance\n                    ]\n                };\n            });\n                \n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values') {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n        var anchorDist = anchorDistances;\n        \n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            anchorDist = this.get('anchorMidDistances'); \n        }\n\n        zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n            return {\n                key: chartLineIndex,\n                // mean: 3,\n                type: 'lines',\n                timestamp: zoomTimePoints[chartLineIndex],\n                values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        anchorDist[dataPointIndex],\n                        dataPoint\n                    ];\n                })\n            };\n        });\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                title = axisName + \" (\" + units + \")\";\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n                // console.log(\"zoomChartLinesData:::::::::::: \" + JSON.stringify(zoomChartLinesData));\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n/*                 zoomChart.xAxis.dispatch.on('xAxisMouseMove', function (mouseMove) {\n                    console.log('test');\n                });\n */\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0], true)(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\nimport html2canvas from 'html2canvas';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    yAxisUnit:null,\n    init() {\n        this._super(...arguments);\n        const queryParams = new URLSearchParams(window.location.search);\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        if(yAxisUnitParam){\n            this.set('yAxisUnit', yAxisUnitParam);\n        }\n    },\n    actions: {\n\n        saveImage() {\n            console.log(\"saveImage:::::::::::::::::\");\n            html2canvas(document.querySelector(\"#capture\"), { \n                // allowTaint: true, \n                // // foreignObjectRendering: true,\n                // useCORS: true,\n                // logging: true,\n                // scrollX: 0,\n                // scrollY: 0,\n                // width: 1000,\n                // height: 1000,\n                // x: 0,\n                // y: 0,\n                // scale: 1,\n                // backgroundColor: null,\n                // imageTimeout: 15000,\n                // removeContainer: true,\n                // foreignObjectRendering: true,\n                \n            }).then(canvas => {\n                let downloadLink = document.createElement('a');\n                downloadLink.setAttribute('download', 'CanvasAsImage.png');\n                // document.body.appendChild(downloadLink);\n\n                canvas.toBlob(function(blob) {\n                    let url = URL.createObjectURL(blob);\n                    downloadLink.setAttribute('href', url);\n                    downloadLink.click();\n                });\n            });\n        },\n        toggleLine(lineIndex) {\n            let lineSettings = JSON.parse(localStorage.getItem('lineSettings')) || {};\n        \n            lineSettings[lineIndex] = lineSettings[lineIndex] === \"block\" ? \"none\" : \"block\";\n            localStorage.setItem('lineSettings', JSON.stringify(lineSettings));\n        \n            d3.select(`.myLines[data-line-index=\"${lineIndex}\"]`)\n                .style('display', lineSettings[lineIndex]);\n        },\n\n    },\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n        // console.log(\"zoomTempPoints::::::: \" + JSON.stringify(chartData));\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        // console.log(\"zoomChartData:::\" + linesKyes);\n\n        var chartData = item.getProperties(linesKyes);\n        // console.log(\"before chartData:::\");\n        // console.log(chartData.values);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            chartData.values.push(0);\n        }\n        // console.log(\"after chartData:::\");\n        // console.log(chartData.values);\n        // console.log(\"\\n\");\n        // console.log(\"zoomDataPoints::::::: \" + JSON.stringify(chartData));\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n            var midPoints = [];\n            for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData',  function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        return promise; \n    }),\n    \n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = yAxisLegend\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");            \n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = yAxisLegend.get('title');\n                //console.log(title);\n                    \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        units=_this.get(\"yAxisUnit\") ? _this.get(\"yAxisUnit\") :  chartData.get('units');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    title = axisName + \" (\" + units + \")\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            zoomChart.legend.rightAlign(true);\n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                console.log(\"zoomChartLinesData\");\n                console.log(zoomChartLinesData);\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n                    /* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } \n                    */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n        // console.log('DIS IS:', dist);\n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Ember from 'ember';\nimport { assign } from '@ember/polyfills';\nimport { inject as service } from \"@ember/service\";\n\nexport default Ember.Component.extend({\n    router: service(),\n    paginatorSize: 5,\n    newPage: null,\n\n    currentPage: Ember.computed('meta', function() {\n        if ( !this.get('meta') || typeof this.get('meta').pagination.page === 'undefined' ) {\n            return 1;\n        }\n        return this.get('meta').pagination.page;\n    }),\n\n    totalPages: Ember.computed('meta', function() {\n        if ( !this.get('meta') ) {\n            return null;\n        }\n        return this.get('meta').pagination['total_pages'];\n    }),\n\n    totalVisibleLinksCount: Ember.computed('totalPages', 'paginatorSize', function() {\n        return ( this.get('totalPages') <= this.get('paginatorSize') ) ? this.get('totalPages') : this.get('paginatorSize');\n    }),\n\n    halfOfTotalVisibleLinksCount: Ember.computed('totalVisibleLinksCount', function() {\n        return Math.ceil(this.get('totalVisibleLinksCount') / 2);\n    }),\n\n    firstPageLink: Ember.computed('currentPage', 'totalPages', 'paginatorSize', 'halfOfTotalVisibleLinksCount',  function() {\n        if ( !this.get('meta') || this.get('currentPage') <= this.get('halfOfTotalVisibleLinksCount') + 1 || this.get('currentPage') === this.get('totalPages') && this.get('currentPage') === this.get('paginatorSize') ) {\n            return null;\n        }\n\n        let queryParams = {\n            page: 1\n        };\n\n        if ( typeof this.get('extraQueryParams') !== 'undefined' ) {\n            assign( queryParams, this.get('extraQueryParams') );\n        }\n\n        return [\n            this.get('routeLink'),\n            {\n                isQueryParams: true,\n                values: queryParams\n            }\n        ];\n    }),\n\n    lastPageLink: Ember.computed('meta', 'currentPage', 'totalPages', 'paginatorSize', 'halfOfTotalVisibleLinksCount', function() {\n        if ( !this.get('meta') || this.get('totalPages') <= 1 || this.get('totalPages') <= this.get('paginatorSize') || this.get('totalPages') <= this.get('currentPage') + this.get('halfOfTotalVisibleLinksCount') ) {\n            return null;\n        }\n\n        let queryParams = {\n            page: this.get('totalPages')\n        };\n\n        if ( typeof this.get('extraQueryParams') !== 'undefined' ) {\n            assign( queryParams, this.get('extraQueryParams') );\n        }\n\n        return [\n            this.get('routeLink'),\n            {\n                isQueryParams: true,\n                values: queryParams\n            }\n        ];\n    }),\n\n    paginationLinks: Ember.computed('meta', 'currentPage', function(){\n        let paginationLinks = [],\n            routeLink = this.get('routeLink'),\n            paginatorSize = this.get('paginatorSize'),\n            currentPage = this.get('currentPage'),\n            totalPages = this.get('totalPages'),\n            totalVisibleLinksCount = this.get('totalVisibleLinksCount'),\n            halfOfTotalVisibleLinksCount = this.get('halfOfTotalVisibleLinksCount'),\n            startPageOffset = 1,\n            endPageOffset = totalPages\n        ;\n\n        if ( currentPage - halfOfTotalVisibleLinksCount >= 1 && totalPages > paginatorSize ) {\n            startPageOffset = currentPage - halfOfTotalVisibleLinksCount;\n        }\n\n        if ( currentPage + halfOfTotalVisibleLinksCount <= totalPages && totalPages > paginatorSize ) {\n            endPageOffset = currentPage + halfOfTotalVisibleLinksCount;\n        }\n\n        if ( endPageOffset > 1 ) {\n            for (let i = startPageOffset; i <= endPageOffset; i++) {\n\n                let queryParams = {\n                        page: i\n                    };\n\n                if ( typeof this.get('extraQueryParams') !== 'undefined' ) {\n                    assign( queryParams, this.get('extraQueryParams') );\n                }\n\n                paginationLinks.push({\n                    linkName: i,\n                    params: [\n                        routeLink,\n                        {\n                            isQueryParams: true,\n                            values: queryParams\n                        }\n                    ]\n                });\n            }\n        }\n\n        return paginationLinks;\n\n    }),\n    actions: {\n        goToPage(){\n            let new_page = this.get('newPage');\n            let pages = this.get('paginationLinks')\n            if (typeof new_page !== 'undefined' && new_page != \"\") {\n                let page = pages[0]\n                //console.log(\"Page::::::::::::::: \" + page.params[0])\n                if (page.params[0] == 'raw-data') {\n                    let id = this.get('meta')['instrument-id'];\n                    page.params[1].values.page = new_page;\n                    this.get('router').transitionTo(page.params[0], id, { queryParams: page.params[1].values});\n                } else if (page.params[0] == 'raw-gateway-data') {\n                  //  console.log(\"page.params[0]:::\" + page.params[0]) ;\n                  let id = this.get('meta')['gateway-id'];\n                  page.params[1].values.page = new_page;\n                  this.get('router').transitionTo(page.params[0], id, { queryParams: page.params[1].values});\n              } else {\n                    page.params[1].values.page = new_page;\n                    this.get('router').transitionTo(page.params[0], { queryParams: page.params[1].values});\n                }\n            }\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 13) {\n            this.send('goToPage');\n        }\n    }\n});\n","define(\"geotechnical-data-platform-new/components/path-layer\", [\"exports\", \"ember-leaflet/components/path-layer\"], function (_exports, _pathLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pathLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n            newInstrumentObject.instrumentStiffness = 0;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        \n                        if(results.id != null) {\n                            let anchorCount = parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            for(var ctr = 0; ctr <= anchorCount; ctr++) {\n                                store.createRecord('anchor', {number: ctr, distance: ctr, instrument: results}).save();\n                            }\n                        }\n\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 1; i <= this.get('instrumentAnchors').length; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n\n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            this.get('router').transitionTo('raw-data', id);\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values' || modelName === 'load-values') { \n                var plated = this.get('instrument').get('plated');\n                var type = this.get('instrument').get('instrumentType').get('title');\n                //console.log(type);\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n        if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {\n            anchorDistances.splice(0, 1);\n        }\n        return anchorDistances;\n    }),\n\n    anchorAXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else { //staggered\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n    \n            midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n                return [v, anchorDistances.slice(center + 1)[i]];\n              });\n\n            midPoints.unshift(headExclusion);\n            let mid_temp = [];\n            for(let ctr = 1;ctr < midPoints.length; ctr++) {\n                mid_temp.push((midPoints[ctr - 1] + midPoints[ctr]) / 2);\n            }\n            midPoints = mid_temp;\n\n            if (modelName === 'bending-strain-values') {\n                midPoints.shift();\n                midPoints.pop();\n            }    \n            \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n        \n        //console.log(midPoints);\n        \n        return midPoints;\n    }),\n\n    anchorBXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else {\n\n        let center = anchorDistances.length - 1;\n        center = Math.ceil(center / 2);\n\n        midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n            return [v, anchorDistances.slice(center + 1)[i]];\n          });\n            midPoints.shift();\n            midPoints.pop();                  \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n\n        return midPoints;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        anchorDistances.unshift(0);\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        if(type === 'dCable') {\n            midDistances.splice(0,1);\n            //midDistances.unshift(0);\n            midDistances[0] = 0;\n            var len = this.get('instrument').get('length');\n            var length = this.get('instrument').get('instrumentLength');\n\n            var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {    \n                if(length !== null && length !== 0) {\n                    midDistances.push(length);\n                } else {\n                    midDistances.push(anchorDistances[anchorDistances.length - 1]);\n                }\n            }\n        }\n        // console.log(\"Anchors: \" + anchorDistances);\n         //console.log(\"Mids: \" + midDistances);\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', 'anchorAXDistances', 'anchorBXDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(this.get('instrument').get('instrumentTypeID') === 3) {//rebar \n            if(this.get('instrument').get('stacked')) { //is stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            } else { //is NOT stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            }\n        }\n\n        if (this.get('instrument').get('instrumentType').get('title') !== 'dRebar') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                return anchorMidDistances.map(function(anchorDistance){\n                    return {\n                        key: anchorDistance,\n                        type: 'referencePoints',\n                        values: [\n                            anchorDistance\n                        ]\n                    };\n                });\n                    \n            }\n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'load-values') {\n            return 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorAXDistances = this.get('anchorAXDistances'),\n            anchorBXDistances = this.get('anchorBXDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        \n        if ((modelName === 'strain-values' || modelName === 'load-values') && this.get('instrument').get('instrumentType').get('title') !== 'dRebar') { \n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'axial-strain-values' || modelName === 'load-values' ) {//&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorAXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'bending-strain-values' ) { //&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorBXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if(type === 'dCable') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                //console.log(fullRangeDataPoints);\n                fullRangeDataPoints.forEach(element => element.values[0]=0);\n            }\n        }\n        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n/*                 zoomChart.xAxis.dispatch.on('xAxisMouseMove', function (mouseMove) {\n                    console.log('test');\n                });\n */\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    \n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n        var events = this.get('vibeEvents');\n        //console.log('vibeEvents');\n        //console.log(events);\n        if ( this.get('vibeEvents') ) {\n            return [{\n                key: 'BluVibe',\n                type: 'distX',\n                color: '#80bf5c',\n                values: this.get('vibeEvents').map(function(event) {\n                    return [\n                        moment( event.get('id') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    vibeEventsArray: Ember.computed('vibeEvents', function() {\n        var events = this.get('vibeEvents');\n        //console.log(events);\n        if ( events ) {\n            return events.map(function(event) {\n                return {\n                    type: 'BluVibe',\n                    time: event.get('id'),\n                    timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    ppa: event.get('ppa'),\n                    ppv: event.get('ppv'),\n                    freq: event.get('frequency')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n        let KPA_TO_MMH20 = 101.9716;\n        \n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        let chartType = this.attrs.getQueryParams('chart_type');\n\n        console.log(\"Model Name::::|\" + chartType + \"|\");\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var plated = this.get('instrument').get('plated');\n            \n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                if(plated) {\n                    chartData.values[0] = chartData.values[1];\n                } else {\n                    chartData.values[0] = 0;\n                }\n            } else {\n                //chartData.values.unshift(0);\n            }\n            chartData.values.push(0);\n        }\n        if(chartType === 'mmH20') {\n            chartData.values = chartData.values.map(function(item) {\n                return item * KPA_TO_MMH20;\n            });\n        }\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        if(instType === 'Tilt') {\n            return ['X','Y','Z'];\n        } else if(instType === 'Wire') {\n            let anchors = [];\n            let numPorts = this.instrument.get('portsNum');\n            let startVal = 0;\n            let maxVal = numPorts;\n/*             if (this.port != '') {\n                //startVal = (1 * this.port) - 1;\n                startVal = (1 * numPorts) - 1;\n                maxVal = startVal + 1;\n            }\n */            for(let ctr = startVal; ctr < maxVal; ctr++) {\n                anchors.push('T' + (ctr + 1));\n                anchors.push(ctr + 1);\n            }\n            return anchors;\n        } else if(instType === 'BluVibe') {\n            return ['Data'];\n        }\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var midPoints = [];\n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                //Adjust anchors to mid points between anchors\n                for(var ctr = 1; ctr < anchorDistances.length ; ctr++) {\n                    var mid = (anchorDistances[ctr - 1] + anchorDistances[ctr]) / 2;\n                    midPoints[ctr] = + mid.toFixed(2);\n                }\n\n                //console.log(midPoints);\n\n                //add zero point and end point\n                midPoints.splice(0,1);\n                midPoints[0] = 0;\n                midPoints.push(anchorDistances[anchorDistances.length - 1]);  //TODO: change to length of exto once known\n                //console.log(midPoints);\n            } else if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                //Adjust anchors to mid points between anchors\n                //console.log(this.get('instrument'));\n                let headExclusion = this.get('instrument').get('headExclusionLength');\n                let leftAnchors = [headExclusion];\n                let rightAnchors = [headExclusion];\n                \n                let center = anchorDistances.length - 1;\n                center = Math.ceil(center / 2);\n\n                leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n\n                rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n\n                let midLeft = [];\n                for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                    midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                }\n\n                let midRight = [];\n                for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                    midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                }\n\n                if (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values') {\n                    if(this.get('instrument').get('stacked')) {\n                        midPoints = midLeft;\n                        if (modelName === 'load-values') {\n                            midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n                        }\n                    } else {\n                        midPoints = midLeft.concat(midRight);\n                        /* midPoints = $.map(midPoints.slice(1, center + 1), function(v, i) {\n                            return [v, midPoints.slice(center + 1)[i]];\n                          }); */\n                        if (modelName === 'bending-strain-values') {\n                            midPoints.shift();\n                            midPoints.pop();\n                        }\n\n                    }\n                } else {\n                    midPoints = midLeft.concat(midRight);\n                }\n                if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                    for(let ctr = 0; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n  \n/*                     for(let ctr = 0; ctr < midPoints.length / 2; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n        \n                    for(let ctr = 3; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n */                }\n            } else {\n                for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                    midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n                }\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        } else if (modelName === 'axial-displacement-values' && this.get('instrument').get('stacked')) {\n            let mid = (anchorDistances.length - 1) / 2;\n            while (anchorDistances.length > (mid + 1)) {\n                anchorDistances.pop();\n            }\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else if (modelName === 'axial-displacement-values' && !this.get('instrument').get('stacked')) {\n            anchorDistances.sort(function(a,b){return a-b;});\n\n            //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else {\n            if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                if (modelName === 'displacement-values') { //rebar stretch\n                    var midPoints = [];\n                    let headExclusion = this.get('instrument').get('headExclusionLength');\n                    let leftAnchors = [headExclusion];\n                    let rightAnchors = [headExclusion];\n                    \n                    let center = anchorDistances.length - 1;\n                    center = Math.ceil(center / 2);\n    \n                    leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                    rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n    \n                    if(!this.get('instrument').get('stacked')) {\n                        rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n                    }\n    \n                    let midLeft = [];\n                    for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                        midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                    }\n    \n                    let midRight = [];\n                    for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                        midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                    }\n\n                    midPoints = midLeft.concat(midRight);\n                    anchorDistances = midPoints;\n\n                    anchorDistances.unshift(0);\n                }\n                for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n    \n                for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n            }    \n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    // zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n            var mName = _this.get('chartDataModelName');\n            if (mName === 'strain-values' || mName === 'strain-rate-values' || mName === 'load-values') {\n                zoomDataPoints.forEach(element => element.values[0] = 0);\n            }\n        }    \n\n        //  if (this.get('instrument').get('instrumentType').get('title') == 'Tilt') {\n        //         zoomDataPoints.forEach(element => element.values.shift());\n        // }    \n\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values' && this.get('instrument').get('instrumentType').get('title') !== 'BluVibe'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (vibeEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = '';\n                if (instType === 'BluVibe') {\n                    title = _this.get('chartDataModelName');\n                } else {\n                    title = yAxisLegend.get('title');\n                }\n                let chartType = _this.attrs.getQueryParams('chart_type');\n\n                // because we can only have one displacement chart and this one uses 2 (a regular displacement and a mmH20 displacement)\n                // I had to do this hack to accomodate the mmH20 chart.  I'm not proud of it, but it works.\n                if(chartType == null || chartType == undefined || chartType == '') {\n                    title = 'displacement';\n                } else if (chartType === 'mmH20'){\n                    title = chartType;\n                }\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'mmH20':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units = \"\"; //\"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    case 'event-frequency':\n                        axisName = \"Event Frequency\";\n                        break;\n                    case 'event-ppv':\n                        axisName = \"Event PPV\";\n                        break;\n                    case 'event-ppa':\n                        axisName = \"Event PPA\";\n                        break;\n                    case 'cumulative-event-frequency':\n                        axisName = \"Cumulative Frequency\";\n                        break;\n                    case 'cumulative-event-ppv':\n                        axisName = \"Cumulative PPV\";\n                        break;\n                    case 'cumulative-event-ppa':\n                        axisName = \"Cumulative PPA\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                /* let chartName = yAxisLegend.get('title').capitalize();\n                let chartNameL = chartName.substr(0, chartName.indexOf('_'));\n                let chartNameR = chartName.substr(chartName.indexOf('_') + 1).capitalize();\n                if(chartNameL !== \"\") {\n                    chartName = chartNameL + \" \" + chartNameR;\n                } */\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName +\" (kN)\";\n                    } else if (instType === 'Wire') {\n                        if (raw === true) {\n                            title = \"Frequency (Hz)\";\n                        } else {\n                            title = \"Calculated Values\";\n                        }\n                    } else {\n                        if(units === '') {\n                            title = axisName;\n                        } else {\n                            title = axisName + \" (\" + units + \")\";\n                        }\n                    }\n                } else {\n                    if (instType === 'BluVibe') {\n                        title = axisName;\n                    } else {\n                        if(units === '') {\n                            title = axisName;\n                        } else {\n                            title = axisName + \" (\" + units + \")\";\n                        }\n                    }\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    displacementData2: Ember.computed('displacementData', function() {\n        //console.log('here');\n        let dv = this.displacementData;\n        dv.forEach(function(value) {\n            value.values.shift();\n            //console.log(value.values);\n        })\n        //dv.shift();\n        return dv;\n    }),\n\n    anchorDistances: Ember.computed('instrument', function() {\n        return['kPa'];\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n    // isPiezo: Ember.computed('instrumentType', function() {\n    //     console.log(\"instrumentType :::::::::::::::::::::::::::::::: \" + this.instrumentType);\n    //     if (this.instrumentType === 'Piezometer') {\n    //         return true;\n    //     }\n    //     return false;\n    // }),\n\n});","define(\"geotechnical-data-platform-new/components/point-path-layer\", [\"exports\", \"ember-leaflet/components/point-path-layer\"], function (_exports, _pointPathLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pointPathLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/polygon-layer\", [\"exports\", \"ember-leaflet/components/polygon-layer\"], function (_exports, _polygonLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _polygonLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/polyline-layer\", [\"exports\", \"ember-leaflet/components/polyline-layer\"], function (_exports, _polylineLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _polylineLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/popup-layer\", [\"exports\", \"ember-leaflet/components/popup-layer\"], function (_exports, _popupLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _popupLayer.default;\n    }\n  });\n});\n","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nexport default Ember.Component.extend({\n\n    isShowingModal: false,\n    host: Ember.computed(function() {\n      return \"http://\" + document.location.host.split(':')[0] + \":4500/assets/images/gateway_carrier.json\";\n    }),\n\n    carrierList: Ember.computed(function() {\n      let data = this.get('gateways');\n      // const sortedData = {\n      //   \"carrier_list\": Object.values(data.carrier_list)\n      //     .sort((a, b) => a.Country.localeCompare(b.Country))\n      //     .reduce((acc, curr) => {\n      //       acc[curr.Carrier] = curr;\n      //       return acc;\n      //     }, {})\n      // };\n      // return sortedData.carrier_list;\n      return data;\n    }),\n\n    carrierValue: function(item){\n      \n      const atIndex = item.indexOf('@');\n      if (atIndex === -1) {\n          return item;\n      }\n      return item.substring(atIndex, item.length);          \n    },\n\n    actions: {\n      close() {\n          this.set('show', false);\n      },\n\n      \n      selectGateway( phoneNumber, item) {\n          this.set('show', false);\n          this.set('isShowingModal', false);\n          const concatenatedValue = `${phoneNumber}${this.carrierValue(item)}`;\n          console.log(\"selectdGateway::::::::::::::\" + concatenatedValue);\n          // this.args.onSelect(concatenatedValue);\n          this.sendAction('onSelect', concatenatedValue);\n          \n        },\n\n      toggleModal() {\n        this.toggleProperty('isShowingModal');\n        this.toggleProperty('showModal');\n        this.toggleProperty('isShowingModal');\n        \n        this.set('isShowingModal', false);\n        // console.log(\"toggleModal:\" + this.get('showModal'));\n      },\n\n      closeTargetSelector() { \n        this.set('isShowingModal', false);\n      }\n    },\n    gateways: Ember.computed(function() {\n      let data = {\n        \"carrier_list\": {\n          \"AirCel\": {\n            \"Carrier\": \"AirCel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@aircel.co.in\"\n          },\n          \"Airtel\": {\n            \"Carrier\": \"Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelkk.com\"\n          },\n          \"AirFire Mobile\": {\n            \"Carrier\": \"AirFire Mobile\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.airfiremobile.com\"\n          },\n          \"Aio Wireless\": {\n            \"Carrier\": \"Aio Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mms.aiowireless.net\"\n          },\n          \"Alaska Communications\": {\n            \"Carrier\": \"Alaska Communications\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@msg.acsalaska.com\"\n          },\n          \"Aliant Canada\": {\n            \"Carrier\": \"Aliant Canada\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@sms.wirefree.informe.ca\"\n          },\n          \"Alltel (Allied Wireless)\": {\n            \"Carrier\": \"Alltel (Allied Wireless)\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mms.alltelwireless.com\"\n          },\n          \"Verizon Wireless\": {\n            \"Carrier\": \"Verizon Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@vzwpix.com\"\n          },\n          \"Ameritech\": {\n            \"Carrier\": \"Ameritech\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@paging.acswireless.com\"\n          },\n          \"Andhra Pradesh AirTel\": {\n            \"Carrier\": \"Andhra Pradesh AirTel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelap.com\"\n          },\n          \"Andhra Pradesh Idea\": {\n            \"Carrier\": \"Andhra Pradesh Idea\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@ideacellular.net\"\n          },\n          \"Assurance Wireless\": {\n            \"Carrier\": \"Assurance Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@vmobl.com\"\n          },\n          \"AT&T Mobility\": {\n            \"Carrier\": \"AT&T Mobility\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mms.att.net\"\n          },\n          \"Rogers Canada\": {\n            \"Carrier\": \"Rogers Mobile Canada\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@pcs.rogers.com\"\n          },\n          \"Koodo Mobile Canada\": {\n            \"Carrier\": \"Koodo Mobile Canada\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@msg.koodomobile.com\"\n          },\n          \"Virgin Mobile Canada\": {\n            \"Carrier\": \"Virgin Mobile Canada\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@vmobile.ca\"\n          },\n          \"AT&T Enterprise Paging\": {\n            \"Carrier\": \"AT&T Enterprise Paging\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@page.att.net\"\n          },\n          \"Beeline\": {\n            \"Carrier\": \"Beeline\",\n            \"Country\": \"Russia\",\n            \"Gateway\": \"number@sms.beemail.ru\"\n          },\n          \"Bell Mobility\": {\n            \"Carrier\": \"Bell Mobility\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@txt.bell.ca\"\n          },\n          \"BellSouth\": {\n            \"Carrier\": \"BellSouth\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@bellsouth.cl\"\n          },\n          \"Bluegrass Cellular\": {\n            \"Carrier\": \"Bluegrass Cellular\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mms.myblueworks.com\"\n          },\n          \"Bluesky Communications\": {\n            \"Carrier\": \"Bluesky Communications\",\n            \"Country\": \"USA Samoa\",\n            \"Gateway\": \"number@psms.bluesky.as\"\n          },\n          \"Boost mobile\": {\n            \"Carrier\": \"Boost mobile\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@myboostmobile.com\"\n          },\n          \"Bouygues Telecom\": {\n            \"Carrier\": \"Bouygues Telecom\",\n            \"Country\": \"France\",\n            \"Gateway\": \"number@mms.bouyguestelecom.fr\"\n          },\n          \"Box Internet Services\": {\n            \"Carrier\": \"Box Internet Services\",\n            \"Country\": \"Switzerland\",\n            \"Gateway\": \"number@mms.boxis.net\"\n          },\n          \"SFR\": {\n            \"Carrier\": \"SFR\",\n            \"Country\": \"France\",\n            \"Gateway\": \"number@sfr.fr\"\n          },\n          \"CellCom\": {\n            \"Carrier\": \"CellCom\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@cellcom.quiktxt.com\"\n          },\n          \"Cellular South\": {\n            \"Carrier\": \"Cellular South\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@csouth1.com\"\n          },\n          \"Centennial Wireless\": {\n            \"Carrier\": \"Centennial Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@cwemail.com\"\n          },\n          \"Chariton Valley Wireless\": {\n            \"Carrier\": \"Chariton Valley Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.cvalley.net\"\n          },\n          \"Chat Mobility\": {\n            \"Carrier\": \"Chat Mobility\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mail.msgsender.com\"\n          },\n          \"Chennai Skycell / Airtel\": {\n            \"Carrier\": \"Chennai Skycell / Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelchennai.com\"\n          },\n          \"Chennai RPG Cellular\": {\n            \"Carrier\": \"Chennai RPG Cellular\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@rpgmail.net\"\n          },\n          \"China Mobile\": {\n            \"Carrier\": \"China Mobile\",\n            \"Country\": \"China\",\n            \"Gateway\": \"number@139.com\"\n          },\n          \"Cincinnati Bell\": {\n            \"Carrier\": \"Cincinnati Bell\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mms.gocbw.com\"\n          },\n          \"Claro\": {\n            \"Carrier\": \"Claro\",\n            \"Country\": \"Colombia\",\n            \"Gateway\": \"number@iclaro.com.co\"\n          },\n          \"Cleartalk\": {\n            \"Carrier\": \"Cleartalk\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.cleartalk.us\"\n          },\n          \"Cricket\": {\n            \"Carrier\": \"Cricket\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mms.mycricket.com\"\n          },\n          \"C Spire Wireless\": {\n            \"Carrier\": \"C Spire Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@cspire1.com\"\n          },\n          \"Accessyou\": {\n            \"Carrier\": \"Accessyou\",\n            \"Country\": \"Hong Kong\",\n            \"Gateway\": \"number@messaging.accessyou.com\"\n          },\n          \"CSL\": {\n            \"Carrier\": \"CSL\",\n            \"Country\": \"Hong Kong\",\n            \"Gateway\": \"number@mgw.mmsc1.hkcsl.com\"\n          },\n          \"CTI Móvil (Now Claro)\": {\n            \"Carrier\": \"CTI Móvil (Now Claro)\",\n            \"Country\": \"Argentina\",\n            \"Gateway\": \"number@sms.ctimovil.com.ar\"\n          },\n          \"Delhi Airtel\": {\n            \"Carrier\": \"Delhi Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"Digicel\": {\n            \"Carrier\": \"Digicel\",\n            \"Country\": \"Dominica\",\n            \"Gateway\": \"number@digitextdm.com\"\n          },\n          \"DTC\": {\n            \"Carrier\": \"DTC\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.advantagecell.net\"\n          },\n          \"E-Plus\": {\n            \"Carrier\": \"E-Plus\",\n            \"Country\": \"Germany\",\n            \"Gateway\": \"number@smsmail.eplus.de\"\n          },\n          \"Edge Wireless\": {\n            \"Carrier\": \"Edge Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.edgewireless.com\"\n          },\n          \"Element Mobile\": {\n            \"Carrier\": \"Element Mobile\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@SMS.elementmobile.net\"\n          },\n          \"Emtel\": {\n            \"Carrier\": \"Emtel\",\n            \"Country\": \"Mauritius\",\n            \"Gateway\": \"number@emtelworld.net\"\n          },\n          \"Esendex\": {\n            \"Carrier\": \"Esendex\",\n            \"Country\": \"Spain\",\n            \"Gateway\": \"number@esendex.net\"\n          },\n          \"Fido\": {\n            \"Carrier\": \"Fido\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@sms.fido.ca\"\n          },\n          \"Firmensms\": {\n            \"Carrier\": \"Firmensms\",\n            \"Country\": \"Austria\",\n            \"Gateway\": \"number@subdomain.firmensms.at\"\n          },\n          \"Freebie SMS\": {\n            \"Carrier\": \"Freebie SMS\",\n            \"Country\": \"Europe\",\n            \"Gateway\": \"number@smssturen.com\"\n          },\n          \"General Communications Inc.\": {\n            \"Carrier\": \"General Communications Inc.\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mobile.gci.net\"\n          },\n          \"Globalstar\": {\n            \"Carrier\": \"Globalstar\",\n            \"Country\": \"International\",\n            \"Gateway\": \"number@msg.globalstarusa.com\"\n          },\n          \"Globul\": {\n            \"Carrier\": \"Globul\",\n            \"Country\": \"Bulgaria\",\n            \"Gateway\": \"number@sms.globul.bg\"\n          },\n          \"Goa Airtel\": {\n            \"Carrier\": \"Goa Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"Goa Idea Cellular\": {\n            \"Carrier\": \"Goa Idea Cellular\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@ideacellular.net\"\n          },\n          \"Golden State Cellular\": {\n            \"Carrier\": \"Golden State Cellular\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@gscsms.com\"\n          },\n          \"Greatcall\": {\n            \"Carrier\": \"Greatcall\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@vtxt.com\"\n          },\n          \"Gujarat Idea Cellular\": {\n            \"Carrier\": \"Gujarat Idea Cellular\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@ideacellular.net\"\n          },\n          \"Gujarat Airtel\": {\n            \"Carrier\": \"Gujarat Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"Gujarat Celforce / Fascel\": {\n            \"Carrier\": \"Gujarat Celforce / Fascel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@celforce.com\"\n          },\n          \"Guyana T&T\": {\n            \"Carrier\": \"Guyana T&T\",\n            \"Country\": \"Guyana\",\n            \"Gateway\": \"number@sms.cellinkgy.com\"\n          },\n          \"Haryana Airtel\": {\n            \"Carrier\": \"Haryana Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"Haryana Escotel\": {\n            \"Carrier\": \"Haryana Escotel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@escotelmobile.com\"\n          },\n          \"Hawaiian Telcom\": {\n            \"Carrier\": \"Hawaiian Telcom\",\n            \"Country\": \"Hawaii USA\",\n            \"Gateway\": \"number@hawaii.sprintpcs.com\"\n          },\n          \"HSL Mobile\": {\n            \"Carrier\": \"HSL Mobile\",\n            \"Country\": \"UK\",\n            \"Gateway\": \"number@sms.haysystems.com\"\n          },\n          \"Helio\": {\n            \"Carrier\": \"Helio\",\n            \"Country\": \"South Korea\",\n            \"Gateway\": \"number@myhelio.com\"\n          },\n          \"Himachai Pradesh Airtel\": {\n            \"Carrier\": \"Himachai Pradesh Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"ICE\": {\n            \"Carrier\": \"ICE\",\n            \"Country\": \"Costa Rica\",\n            \"Gateway\": \"number@sms.ice.cr\"\n          },\n          \"I-wireless(T-Mobile)\": {\n            \"Carrier\": \"I-wireless(T-Mobile)\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number.iws@iwspcs.net\"\n          },\n          \"I-wireless(Sprint PCS)\": {\n            \"Carrier\": \"I-wireless(Sprint PCS)\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@iwirelesshometext.com\"\n          },\n          \"Kajeet\": {\n            \"Carrier\": \"Kajeet\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mobile.kajeet.net\"\n          },\n          \"Karnataka Airtel\": {\n            \"Carrier\": \"Karnataka Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelkk.com\"\n          },\n          \"Kerala Airtel\": {\n            \"Carrier\": \"Kerala Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelkerala.com\"\n          },\n          \"Kerala Escotel\": {\n            \"Carrier\": \"Kerala Escotel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@escotelmobile.com\"\n          },\n          \"Kolkata Airtel\": {\n            \"Carrier\": \"Kolkata Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelkol.com\"\n          },\n          \"Koodo Mobile\": {\n            \"Carrier\": \"Koodo Mobile\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@msg.telus.com\"\n          },\n          \"LongLines\": {\n            \"Carrier\": \"LongLines\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@text.longlines.com\"\n          },\n          \"Lynx Mobility\": {\n            \"Carrier\": \"Lynx Mobility\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@sms.lynxmobility.com\"\n          },\n          \"M1\": {\n            \"Carrier\": \"M1\",\n            \"Country\": \"Singapore\",\n            \"Gateway\": \"number@m1.com.sg\"\n          },\n          \"Madhya Pradesh Airtel\": {\n            \"Carrier\": \"Madhya Pradesh Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"Maharashtra Airtel\": {\n            \"Carrier\": \"Maharashtra Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"Maharashtra Idea\": {\n            \"Carrier\": \"Maharashtra Idea\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@ideacellular.net\"\n          },\n          \"Más Móvil\": {\n            \"Carrier\": \"Más Móvil\",\n            \"Country\": \"Panama\",\n            \"Gateway\": \"number@cwmovil.com\"\n          },\n          \"Mediaburst\": {\n            \"Carrier\": \"Mediaburst\",\n            \"Country\": \"UK\",\n            \"Gateway\": \"number@sms.mediaburst.co.uk\"\n          },\n          \"MetroPCS\": {\n            \"Carrier\": \"MetroPCS\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mymetropcs.com\"\n          },\n          \"Mobiltel\": {\n            \"Carrier\": \"Mobiltel\",\n            \"Country\": \"Bulgaria\",\n            \"Gateway\": \"number@sms.mtel.net\"\n          },\n          \"Mobitel\": {\n            \"Carrier\": \"Mobitel\",\n            \"Country\": \"Sri Lanka\",\n            \"Gateway\": \"number@sms.mobitel.lk\"\n          },\n          \"Movistar\": {\n            \"Carrier\": \"Movistar\",\n            \"Country\": \"Uruguay\",\n            \"Gateway\": \"number@sms.movistar.com.uy\"\n          },\n          \"MTN\": {\n            \"Carrier\": \"MTN\",\n            \"Country\": \"South Africa\",\n            \"Gateway\": \"number@sms.co.za\"\n          },\n          \"MTS Mobility\": {\n            \"Carrier\": \"MTS Mobility\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@text.mtsmobility.com\"\n          },\n          \"Mumbai Airtel\": {\n            \"Carrier\": \"Mumbai Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@airtelmail.com\"\n          },\n          \"My-Cool-SMS\": {\n            \"Carrier\": \"My-Cool-SMS\",\n            \"Country\": \"UK\",\n            \"Gateway\": \"number@my-cool-sms.com\"\n          },\n          \"Nextech\": {\n            \"Carrier\": \"Nextech\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.ntwls.net\"\n          },\n          \"Nextel\": {\n            \"Carrier\": \"Nextel\",\n            \"Country\": \"Argentina\",\n            \"Gateway\": \"TwoWay.11number@nextel.net.ar\"\n          },\n          \"O2\": {\n            \"Carrier\": \"O2\",\n            \"Country\": \"Germany\",\n            \"Gateway\": \"number@o2online.de\"\n          },\n          \"OgVodafone\": {\n            \"Carrier\": \"OgVodafone\",\n            \"Country\": \"Iceland\",\n            \"Gateway\": \"number@sms.is\"\n          },\n          \"Orange\": {\n            \"Carrier\": \"Orange\",\n            \"Country\": \"UK\",\n            \"Gateway\": \"number@orange.net\"\n          },\n          \"Page Plus Cellular (Verizon)\": {\n            \"Carrier\": \"Page Plus Cellular (Verizon)\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@vzwpix.com\"\n          },\n          \"Pioneer Cellular\": {\n            \"Carrier\": \"Pioneer Cellular\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"nine-digit-number@zsend.com\"\n          },\n          \"Personal\": {\n            \"Carrier\": \"Personal\",\n            \"Country\": \"Argentina\",\n            \"Gateway\": \"number@alertas.personal.com.ar\"\n          },\n          \"Plus\": {\n            \"Carrier\": \"Plus\",\n            \"Country\": \"Polan\",\n            \"Gateway\": \"number@text.plusgsm.pl\"\n          },\n          \"Pocket Wireless\": {\n            \"Carrier\": \"Pocket Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.pocket.com\"\n          },\n          \"PC Telecom\": {\n            \"Carrier\": \"PC Telecom\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@mobiletxt.ca\"\n          },\n          \"Polkomtel\": {\n            \"Carrier\": \"Polkomtel\",\n            \"Country\": \"Poland\",\n            \"Gateway\": \"number@text.plusgsm.pl\"\n          },\n          \"Qwest Wireless\": {\n            \"Carrier\": \"Qwest Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@qwestmp.com\"\n          },\n          \"Red Pocket Mobile\": {\n            \"Carrier\": \"Red Pocket Mobile\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@vtext.com\"\n          },\n          \"Rogers Wireless\": {\n            \"Carrier\": \"Rogers Wireless\",\n            \"Country\": \"Canada & USA\",\n            \"Gateway\": \"number@mms.rogers.com\"\n          },\n          \"SaskTel\": {\n            \"Carrier\": \"SaskTel\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@pcs.sasktelmobility.com\"\n          },\n          \"Sendega\": {\n            \"Carrier\": \"Sendega\",\n            \"Country\": \"Norway\",\n            \"Gateway\": \"number@sendega.com\"\n          },\n          \"Setar Mobile email (Aruba)\": {\n            \"Carrier\": \"Setar Mobile email (Aruba)\",\n            \"Country\": \"Aruba\",\n            \"Gateway\": \"number@mas.aw\"\n          },\n          \"Síminn\": {\n            \"Carrier\": \"Síminn\",\n            \"Country\": \"Iceland\",\n            \"Gateway\": \"number@box.is\"\n          },\n          \"Simple Mobile\": {\n            \"Carrier\": \"Simple Mobile\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@smtext.com\"\n          },\n          \"SMS Broadcast\": {\n            \"Carrier\": \"SMS Broadcast\",\n            \"Country\": \"Australia\",\n            \"Gateway\": \"number@send.smsbroadcast.com.au\"\n          },\n          \"SMS Central\": {\n            \"Carrier\": \"SMS Central\",\n            \"Country\": \"Australia\",\n            \"Gateway\": \"number@sms.smscentral.com.au\"\n          },\n          \"SMSPUP\": {\n            \"Carrier\": \"SMSPUP\",\n            \"Country\": \"Australia\",\n            \"Gateway\": \"number@smspup.com\"\n          },\n          \"Southernlinc\": {\n            \"Carrier\": \"Southernlinc\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@page.southernlinc.com\"\n          },\n          \"South Central Communications\": {\n            \"Carrier\": \"South Central Communications\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@rinasms.com\"\n          },\n          \"Spikko\": {\n            \"Carrier\": \"Spikko\",\n            \"Country\": \"Israel\",\n            \"Gateway\": \"number@SpikkoSMS.com\"\n          },\n          \"Sprint\": {\n            \"Carrier\": \"Sprint\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@pm.sprint.com\"\n          },\n          \"Straight Talk\": {\n            \"Carrier\": \"Straight Talk\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"Other: number@mmst5.tracfone.com\"\n          },\n          \"Sunrise Communications\": {\n            \"Carrier\": \"Sunrise Communications\",\n            \"Country\": \"Switzerland\",\n            \"Gateway\": \"number@gsm.sunrise.ch\"\n          },\n          \"Syringa Wireless\": {\n            \"Carrier\": \"Syringa Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@rinasms.com\"\n          },\n          \"TeletopiaSMS\": {\n            \"Carrier\": \"TeletopiaSMS\",\n            \"Country\": \"Norway\",\n            \"Gateway\": \"number@sms.teletopiasms.no\"\n          },\n          \"T-Mobile\": {\n            \"Carrier\": \"T-Mobile\",\n            \"Country\": \"Netherlands\",\n            \"Gateway\": \"number@gin.nl\"\n          },\n          \"T-Mobile (Optus Zoo)\": {\n            \"Carrier\": \"T-Mobile (Optus Zoo)\",\n            \"Country\": \"Australia\",\n            \"Gateway\": \"number@optusmobile.com.au\"\n          },\n          \"Tamil Nadu Airtel\": {\n            \"Carrier\": \"Tamil Nadu Airtel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"919894number@airtelmobile.com\"\n          },\n          \"Tamil Nadu Aircel\": {\n            \"Carrier\": \"Tamil Nadu Aircel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"9842number@airsms.com\"\n          },\n          \"Tele2\": {\n            \"Carrier\": \"Tele2\",\n            \"Country\": \"Sweden\",\n            \"Gateway\": \"number@sms.tele2.se\"\n          },\n          \"Telecom\": {\n            \"Carrier\": \"Telecom\",\n            \"Country\": \"New Zealand\",\n            \"Gateway\": \"number@etxt.co.nz\"\n          },\n          \"Teleflip\": {\n            \"Carrier\": \"Teleflip\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@teleflip.com\"\n          },\n          \"Telstra\": {\n            \"Carrier\": \"Telstra\",\n            \"Country\": \"Australia\",\n            \"Gateway\": \"mobile@sms.tim.telstra.com\"\n          },\n          \"Telus Mobility\": {\n            \"Carrier\": \"Telus Mobility\",\n            \"Country\": \"Canada & USA\",\n            \"Gateway\": \"number@mms.telusmobility.com\"\n          },\n          \"TellusTalk\": {\n            \"Carrier\": \"TellusTalk\",\n            \"Country\": \"Europe\",\n            \"Gateway\": \"number@esms.nu\"\n          },\n          \"Tigo (Formerly Ola)\": {\n            \"Carrier\": \"Tigo (Formerly Ola)\",\n            \"Country\": \"Colombia\",\n            \"Gateway\": \"number@sms.tigo.com.co\"\n          },\n          \"TIM\": {\n            \"Carrier\": \"TIM\",\n            \"Country\": \"Italy\",\n            \"Gateway\": \"number@timnet.com\"\n          },\n          \"Ting\": {\n            \"Carrier\": \"Ting\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@message.ting.com\"\n          },\n          \"TracFone (prepaid)\": {\n            \"Carrier\": \"TracFone (prepaid)\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mmst5.tracfone.com\"\n          },\n          \"Txtlocal\": {\n            \"Carrier\": \"Txtlocal\",\n            \"Country\": \"UK\",\n            \"Gateway\": \"number@txtlocal.co.uk\"\n          },\n          \"Telcel\": {\n            \"Carrier\": \"Telcel\",\n            \"Country\": \"Mexico\",\n            \"Gateway\": \"number@itelcel.com\"\n          },\n          \"Unicel\": {\n            \"Carrier\": \"Unicel\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@utext.com\"\n          },\n          \"UniMóvil Corporation\": {\n            \"Carrier\": \"UniMóvil Corporation\",\n            \"Country\": \"UK\",\n            \"Gateway\": \"number@viawebsms.com\"\n          },\n          \"Union Wireless\": {\n            \"Carrier\": \"Union Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@union-tel.com\"\n          },\n          \"US Cellular\": {\n            \"Carrier\": \"US Cellular\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mms.uscc.net\"\n          },\n          \"USA Mobility\": {\n            \"Carrier\": \"USA Mobility\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@usamobility.net\"\n          },\n          \"UTBox\": {\n            \"Carrier\": \"UTBox\",\n            \"Country\": \"Australia\",\n            \"Gateway\": \"number@sms.utbox.net\"\n          },\n          \"Uttar Pradesh West Escotel\": {\n            \"Carrier\": \"Uttar Pradesh West Escotel\",\n            \"Country\": \"India\",\n            \"Gateway\": \"number@escotelmobile.com\"\n          },\n          \"Viaero\": {\n            \"Carrier\": \"Viaero\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@mmsviaero.com\"\n          },\n          \"Vivo\": {\n            \"Carrier\": \"Vivo\",\n            \"Country\": \"Brazil\",\n            \"Gateway\": \"number@torpedoemail.com.br\"\n          },\n          \"Virgin Mobile\": {\n            \"Carrier\": \"Virgin Mobile\",\n            \"Country\": \"UK\",\n            \"Gateway\": \"number@vxtras.com\"\n          },\n          \"Vodacom\": {\n            \"Carrier\": \"Vodacom\",\n            \"Country\": \"South Africa\",\n            \"Gateway\": \"number@voda.co.za\"\n          },\n          \"Vodafone\": {\n            \"Carrier\": \"Vodafone\",\n            \"Country\": \"New Zealand\",\n            \"Gateway\": \"number@mtxt.co.nz\"\n          },\n          \"Voyager Mobile\": {\n            \"Carrier\": \"Voyager Mobile\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@text.voyagermobile.com\"\n          },\n          \"West Central Wireless\": {\n            \"Carrier\": \"West Central Wireless\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.wcc.net\"\n          },\n          \"Wind Mobile\": {\n            \"Carrier\": \"Wind Mobile\",\n            \"Country\": \"Canada\",\n            \"Gateway\": \"number@txt.windmobile.ca\"\n          },\n          \"XIT Communications\": {\n            \"Carrier\": \"XIT Communications\",\n            \"Country\": \"USA\",\n            \"Gateway\": \"number@sms.xit.net\"\n          }\n        \n        }\n      };\n      const sortedData = {\n          \"carrier_list\": Object.values(data.carrier_list)\n          .sort((a, b) => a.Country.localeCompare(b.Country))\n          .reduce((acc, curr) => {\n          acc[curr.Carrier] = curr;\n          return acc;\n          }, {})\n      };\n      return sortedData.carrier_list;\n  })\n\n  });\n\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport Chart from 'chart.js/auto';\nimport {buildInventoryUpdateBoard, buildBatchCalibrationSheet, buildPhaseIIConclusionNotificationBoardV2, buildCalibrationV2IntermissionNotificationBoard, getV2CalibrationSchematics,showHelpNotificationBoard, clearBatchSensorCalibrationData, initializeBatchSensorCalibrationData, buildBatchSensorBoard,updateRigActivity, buildRigActivityNotificationBoard, buildAndGetDataFormat1, buildSensorProfileNotificationBoard, roundToDecimalPlaces, buildCalibrationSheet, sendGETRequest, convertDBDateToTableDate, getSlopeAndOffset, buildPhaseIIConclusionNotificationBoard, updateCalibrationStatusModule, buildRigNotificationNotificationBoard, getSensorPhaseIISchematics, formatDateTimeFromInputField, hardResetModule,resetLog, sendPATCHRequest, getSensorPhaseISchematics, validateAllForms, outgoingMessageLibrary, updateStepperPressureControlPanel, appendPhaseILog, appendPhaseIILog, appendLiveLog, websocketReconnect, webSocketDisconnect, initializeConnection, resetDataCalibProfile, resetDataRigProfile,showPopup, resetProfile, sendPOSTRequest, calibrationStatusLibrary, connectionStatusLibrary, generalStatusLibrary, getDataSetColor, getCurrentDateTime, sendDELETERequest } from '../../helpers/calibration-library';\nimport {assistiveToolTipLibrary } from '../../helpers/calibration-language-library';\n\nexport default Ember.Component.extend({\n    store: service(),\n    router: service(),\n    session: service(),\n    settingsConfig:{\n        softwareVersion:\"Sensor Calibration v2.3.38\",\n        internalVersion:\"v1.0\",\n        BATCH_SENSORS_COUNT:1,\n        UNFILLEDCONSTANT:-999,\n        CALIBRATIONSPECIFICPERMISSIONS:{},\n        APPROVEDINSTRUMENTTYPES:{},\n        APPROVEDRIGCATEGORIES:{stepper:\"Stepper\",pump: \"Pump\"},\n        chatLocked:{streamingTextBox:true, phaseITextbox:true, phaseIITextbox:true},\n        MAX_TIMEOUT_AWAITING_SAMPLING: 750,ASCENDING_CONST: \"ASC\",DESCENDING_CONST: \"DESC\",\n    },\n    isShowConfig:{\n        tabs:{home:true, calibSensorList: false},\n        isShowSettings:false,isShowCalibForm:false,\n        isShowRigForm:false,isShowPopupNotification:false,\n        isShowCommandConsole:false,isShowLiveGraphs:false,\n        isFormEditing:true\n    }, \n    paginationSearchConfig:{    \n        searchObject:{ calibrationDateOrdering:\"DESC\"},\n        pagination:{page:1, pageSize:14, totalPages:1},\n        paginationPageSizes : [5,15,25,50,100,150,200,250,500,750,1000,1500,2000],\n        calibrationInstrumentProfilePaginationList : [],\n    },\n    userInputtedData:{\n        selectedRigProfile:null, \n        selectedCalibrationProfile:null,\n        selectedSensorData:{}, \n        batchSensorData:{},\n        batchCheckboxData:{},\n        selectedAnchorData:null,\n    },\n    frontendData:{\n        packValidationCompletedProfileList : [],\n        calibrationInstrumentProfileList : [],\n        rigNotificationData:{},\n    },\n    calibrationData:{phaseISampleLookupData:[],phaseILookupData:[\n        // ['53953','53176','52397','51607','49269','46928','44609','42317','40058','37845','35681','33576','31542'],\n        // ['53862','53084','52294','51532','49207','46872','44563','42282','40045','37859','35683','33600','31565'],\n        // ['53910','53140','52372','51600','49246','46916','44596','42339','40047','37858','35703','33604','31591'],\n        // ['54358','53553','52764','51962','49530','47166','44804','42477','40181','37936','35756','33637','31603'],\n        // ['54139','53354','52560','51765','49407','47023','44671','42362','40105','37819','35639','33539','31497'],\n        // ['54350','53547','52749','51947','49552','47183','44836','42513','40234','37960','35751','33610','31570']\n    ],phaseIISampleCalibrationDataValueData:[],phaseIICalibrationDataValueData:[\n        // ['0.00','8.29','16.63','24.96','49.96','74.97','99.97','124.98','149.98','174.98','199.97','224.98','249.97'],\n        // ['0.00','8.29','16.62','24.95','49.97','74.97','99.97','124.96','149.97','174.97','199.96','224.99','249.97'],\n        // ['0.00','8.29','16.62','24.95','49.97','74.97','99.98','124.99','149.98','174.98','199.97','225.01','249.98'],\n        // ['0.00','8.23','16.60','24.95','50.00','75.00','99.99','125.00','149.98','174.98','199.98','224.99','249.98'],\n        // ['0.00','8.29','16.64','24.97','49.99','74.98','100.00','124.98','149.98','174.97','199.98','225.00','249.97'],\n        // ['0.00','8.29','16.68','25.03','50.01','75.01','99.99','125.00','149.99','174.99','199.99','224.98','249.97']\n    ],phaseIISampleCurrentData:[],phaseIICurrentData:[\n        // '0.00','8.33','16.66','25.00','50.00','75.00','100.00','125.00','150.00','175.00','200.00','225.00','250.00'\n    ],phaseIISlopeData:[\n        // '-90.8662','-90.1461','-91.019','-90.1518','-90.0585','-91.3125'\n    ], phaseIIOffsetData:[\n        // '-3.2042','-3.5446','-3.7018','-3.6037','-3.2249','-2.9856'\n    ]},\n    calibrationIsSamplingData:{isPhaseISampling:false, isPhaseIICalibrationDataValueSampling:false, isPhaseIISampling:false},\n    dashboardStatusBarData: {\n        status:connectionStatusLibrary(602), \n        connection:connectionStatusLibrary(500), \n        calibration:calibrationStatusLibrary(551),\n        current:generalStatusLibrary(600),\n        target:generalStatusLibrary(600)\n    },\n    formRigData: {},\n    formCalibData: {},\n    emergencyController: new AbortController(),\n    showIrretrivableWarning:true,\n    //For Reset \n    progressInterval: null,\n    isTriggered: false,\n    async init() {\n        this._super(...arguments);\n        await this.getCalibrationSpecificPermission();\n        await this.getSensorProfileList();\n        await this.getCompletedPackProfileList();\n        //Auto hide  \"When you initiate execution....\" after 20 seconds\n        setTimeout(() => {\n            this.set(\"showIrretrivableWarning\", false)\n          }, 20000);\n        Ember.run.scheduleOnce('afterRender', this, () => {\n            //Preload Pagination\n            const pageSizeComp = document.getElementById(\"page_size\");\n            pageSizeComp.value = this.get('paginationSearchConfig.pagination.pageSize');\n            //First render status bar\n            this.set('dashboardStatusBarData',{\n                status:generalStatusLibrary(602), \n                connection:connectionStatusLibrary(500), \n                calibration:calibrationStatusLibrary(551),\n                current:generalStatusLibrary(600),\n                target:generalStatusLibrary(600)\n            })\n            //First render rigNotificationData object.\n            if(this.get(\"getRigList\")){\n                this.get(\"getRigList\").forEach((rigObj, index)=>{             \n                    this.set(\"frontendData.rigNotificationData\",{...this.get(\"frontendData.rigNotificationData\"), [rigObj['data']['rigID']]: {data:rigObj['data'], messages:[]} });\n                });\n            } \n            //First Render Store the Calibration Type List into APPROVEDINSTRUMENTTYPES\n            let approvedObject = {};\n            if(this.get(\"typeProfileList\")){\n                this.get(\"typeProfileList\").forEach((typeObject, index)=>{\n                    approvedObject[typeObject['typeValue']] = typeObject;\n                })\n                // console.log(\"approvedObject\")\n                // console.log(approvedObject);\n                this.set(\"settingsConfig.APPROVEDINSTRUMENTTYPES\", approvedObject);    \n            }                   \n        });\n    },\n    sendCommandFromConsoleTxtbox: async function (){\n        const cmdConsole = document.getElementById(\"cmdConsole\");\n        // console.log(`cmd:${cmdConsole.value.trim()}`)\n        switch(cmdConsole.value.trim()){\n            case \"help\":\n                showHelpNotificationBoard(this);\n                break;\n            case \"getRigActivity\":\n                buildRigActivityNotificationBoard(this);\n                break;\n            case \"getCoreVersion\":\n                const internalVersion = this.get(\"settingsConfig.internalVersion\");\n                showPopup([`Currently using data translator: ${internalVersion}`], \"notification\", 5);\n                break;\n            default:\n                const [cmd, value] = cmdConsole.value.trim().split(' ');\n                await outgoingMessageLibrary(this,cmd ? cmd : \"\", value ? value : \"\");\n                cmdConsole.value = null;\n                break;\n\n        }                    \n        cmdConsole.value = null;\n        \n    },\n    buildAnchorDiagram:function(type, channels){\n        //REMEMBER, \"channels\" passed in contains temeprature channel, thus when you do length and indexing, -1 it. \n        Ember.run.scheduleOnce('afterRender', this, () => {\n            //Build Sections\n            const masterDiagramSection = document.getElementById('masterAnchorDiagram');\n            const upperMasterSection = document.getElementById('upperMasterSection');\n            const anchorMasterSection = document.getElementById('anchorMasterSection');\n            const lowerMasterSection = document.getElementById('lowerMasterSection');\n            if(type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                            \n                //Show Upper Section\n                upperMasterSection.style.display=\"flex\";\n                //Show Anchor Section\n                anchorMasterSection.style.display=\"flex\";\n                //Hide Lower Section\n                lowerMasterSection.style.display=\"none\";\n                //Show Master Section\n                masterDiagramSection.style.display=\"block\"\n            }\n            else if (type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                //Show Upper Section\n                upperMasterSection.style.display=\"flex\";\n                //Show Anchor Section\n                anchorMasterSection.style.display=\"flex\";\n                //Show Lower Section\n                lowerMasterSection.style.display=\"flex\";\n                //Show Master Section\n                masterDiagramSection.style.display=\"block\"\n            }else{\n                //Hide Everything\n                upperMasterSection.style.display=\"none\";\n                anchorMasterSection.style.display=\"none\";\n                lowerMasterSection.style.display=\"none\";\n                masterDiagramSection.style.display=\"none\"\n            }\n            //Build Channels so that it will be using building textboxes\n            let visualAnchorPoints = [];\n            try{\n                if(type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                                                                                               \n                    for(let i=1; i <= channels - 1; i ++){\n                        visualAnchorPoints.push(i);\n                    }\n                }\n                else if (type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                    for(let i=1; i <= (channels - 1)/2; i ++){\n                        visualAnchorPoints.push(i);\n                    }\n                }else{\n                }\n            }catch(e){\n                console.log(\"Error in 'Build Channels so that it will be using building textboxes' in buildAnchorDiagram: \" + e)\n            }\n\n            //Build Textboxes for Sections\n            const upperTBSection = document.getElementById('anchorUpperTextBoxSection');\n            const anchorPointsSection = document.getElementById('anchorPointsSection');\n            const lowerTBSection = document.getElementById('anchorLowerTextBoxSection');\n\n            if(upperTBSection){\n\n                upperTBSection.innerHTML = '';\n\n                const firstBufferSection = document.createElement('div');\n                firstBufferSection.style.width = \"65px\";\n                firstBufferSection.style.height = \"15px\";\n\n                upperTBSection.appendChild(firstBufferSection);\n\n                visualAnchorPoints.forEach((channel)=>{\n                    const tdElement = document.createElement('td');\n                    tdElement.classList.add('input');\n                    tdElement.style.width = \"50px\";\n                    tdElement.style.height = '15px';\n                    const inputElement = document.createElement('input');\n                    inputElement.classList.add('form-control'); \n                    inputElement.setAttribute('type', 'number'); \n                    inputElement.id=`upperAnchorTB${channel}`;\n                    inputElement.style.width = \"50px\";\n                    inputElement.style.height = '15px';\n                    inputElement.style.fontSize = \"13px\";\n                    inputElement.style.padding = \"0px\";\n                    inputElement.value=\"\";\n                    inputElement.addEventListener('change', (event) => {\n                        const id = event.target.id;\n                        const value = event.target.value;\n                        this.set(\"userInputtedData.selectedAnchorData\",{...this.get(\"userInputtedData.selectedAnchorData\"), [id]: (value == \"\" || value == null) ? '' : roundToDecimalPlaces(Number.parseFloat(value), 2)});\n                    });\n                    // this.set(\"userInputtedData.selectedAnchorData\",{...this.get(\"userInputtedData.selectedAnchorData\"), [`upperAnchorTB${channel}`]: \"\"});\n                    // inputElement.value = `${channel}`;\n                    tdElement.appendChild(inputElement);\n                    upperTBSection.appendChild(tdElement);\n    \n                });\n            }\n            if (anchorPointsSection) {\n              // Clear any existing children\n                anchorPointsSection.innerHTML = '';\n\n                const headDiv = document.createElement('div');\n                headDiv.style.background = \"#4A6A9C\";\n                headDiv.style.width = \"65px\";\n                headDiv.style.background = \"#4A6A9C\";\n                headDiv.style.height = \"15px\";\n                headDiv.style.borderRadius = \"10px 0 0 10px\";\n                anchorPointsSection.appendChild(headDiv);\n\n                visualAnchorPoints.forEach((channel) => {\n                    // Create anchor space\n                    const anchorSpace = document.createElement('div');\n                    anchorSpace.id=`anchorPoint${channel}`;\n                    anchorSpace.style.width = '50px';\n                    anchorSpace.style.height = '15px';\n                    anchorSpace.style.display = 'flex';\n                    anchorSpace.style.justifyContent = 'center';\n                    anchorSpace.style.alignItems = 'center';\n                    anchorSpace.style.flexDirection = 'row';\n                    // Create anchor point\n                    const anchorPoint = document.createElement('div');\n                    anchorPoint.style.width = '8px';\n                    anchorPoint.style.height = '8px';\n                    anchorPoint.style.background = '#4A6A9C';\n                    anchorPoint.style.borderStyle = 'solid';\n                    anchorPoint.style.borderRadius = '999px';\n                    anchorPoint.style.borderWidth = '1px';\n\n\n                    anchorSpace.appendChild(anchorPoint);\n                    anchorPointsSection.appendChild(anchorSpace);\n                });\n            }\n            if(lowerTBSection){\n\n                lowerTBSection.innerHTML = '';\n                const firstBufferSection = document.createElement('div');\n\n                firstBufferSection.style.width = \"65px\";\n                firstBufferSection.style.height = \"15px\";\n                lowerTBSection.appendChild(firstBufferSection);\n\n                visualAnchorPoints.forEach((channel)=>{\n                    const tdElement = document.createElement('td');\n                    tdElement.classList.add('input');\n                    tdElement.style.width = \"50px\";\n                    tdElement.style.height = '15px';\n                    const inputElement = document.createElement('input');\n                    inputElement.classList.add('form-control'); \n                    inputElement.setAttribute('type', 'number');\n                    inputElement.id=`lowerAnchorTB${channel}`;\n                    inputElement.style.width = \"50px\";\n                    inputElement.style.height = '15px';\n                    inputElement.style.fontSize = \"13px\";\n                    inputElement.style.padding = \"0px\";\n                    inputElement.addEventListener('change', (event) => {\n                        const id = event.target.id;\n                        const value = event.target.value;\n                        this.set(\"userInputtedData.selectedAnchorData\",{...this.get(\"userInputtedData.selectedAnchorData\"), [id]: (value == \"\" || value == null) ? '' : Number(value)});\n                    });\n                    // this.set(\"userInputtedData.selectedAnchorData\",{...this.get(\"userInputtedData.selectedAnchorData\"), [`lowerAnchorTB${channel}`]: \"\"});\n\n                    // inputElement.value = `${channel}`;\n                    tdElement.appendChild(inputElement);\n                    lowerTBSection.appendChild(tdElement);\n    \n                });\n            }\n\n            //Load Initial values for textboxes, sensor type dependent\n            //Uncomment section below if you want to have ID index as pre-loaded upperAnchorTBs\n            try{\n                if(type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){\n                    visualAnchorPoints.forEach(anchorPoint=>{\n                        const anchorUpperTBComponent = document.getElementById(`upperAnchorTB${anchorPoint}`);\n                        if(anchorUpperTBComponent){\n                            // anchorUpperTBComponent.value=`${anchorPoint}`;\n                            anchorUpperTBComponent.setAttribute('placeholder', `${anchorPoint}`);\n                            this.set(\"userInputtedData.selectedAnchorData\",{...this.get(\"userInputtedData.selectedAnchorData\"), [`upperAnchorTB${anchorPoint}`]: \"\"});\n\n                        }\n                    });\n                }\n                else if (type === this.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                    let channelArray = []\n                    for(let i = 1; i <= (channels - 1); i ++){\n                        channelArray.push(i);\n                    }\n\n                    const visualAnchorMidPointPosition = (channels - 1) / 2;  \n                    const upperHalfValues = channelArray.slice(0, visualAnchorMidPointPosition); // Extract the first half\n                    const lowerHalfvalues = channelArray.slice(visualAnchorMidPointPosition); // Extract the second half\n                    visualAnchorPoints.forEach(anchorPointPosition=>{\n                        const anchorUpperTBComponent = document.getElementById(`upperAnchorTB${anchorPointPosition}`);\n                        const anchorLowerTBComponent = document.getElementById(`lowerAnchorTB${anchorPointPosition}`);\n                        if(anchorUpperTBComponent != null && anchorLowerTBComponent != null){\n                            // anchorUpperTBComponent.value=`${upperHalfValues[anchorPointPosition -1]}`;\n                            // anchorLowerTBComponent.value=`${lowerHalfvalues[anchorPointPosition -1]}`;\n                            anchorUpperTBComponent.setAttribute('placeholder', `${upperHalfValues[anchorPointPosition -1]}`);\n                            anchorLowerTBComponent.setAttribute('placeholder', `${lowerHalfvalues[anchorPointPosition -1]}`);\n                            this.set(\"userInputtedData.selectedAnchorData\",{...this.get(\"userInputtedData.selectedAnchorData\"), [`upperAnchorTB${anchorPointPosition}`]: \"\"});\n                            this.set(\"userInputtedData.selectedAnchorData\",{...this.get(\"userInputtedData.selectedAnchorData\"), [`lowerAnchorTB${anchorPointPosition}`]: \"\"});\n\n                        }\n                    });\n                }else{\n                }\n\n            }catch(e){\n                console.log(\"Error in 'Load Initial values for textboxes, sensor type dependent' in buildAnchorDiagram: \" + e)\n            }\n\n        });\n        console.log(this.get(\"userInputtedData.selectedAnchorData\"));\n    },\n    buildValidationPopupContent:function(failedObjects){\n        this.set(\"isShowConfig.isShowPopupNotification\", true);\n        //Prepare for Parent Component\n        Ember.run.scheduleOnce('afterRender', this, () => {\n            const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n            if(popupContentSectionComponent){\n                popupContentSectionComponent.innerHTML = '';\n        \n                //Subtitle Section\n                const subtitleSection = document.createElement('div');\n                subtitleSection.style.fontSize = \"medium\";\n                subtitleSection.textContent = \"Execution Checklist:\"\n                popupContentSectionComponent.appendChild(subtitleSection);\n\n                //Fort loop add each fail section\n                for (const key in failedObjects) {\n                    if (Object.hasOwnProperty.call(failedObjects, key)) {\n                        const value = failedObjects[key];\n                        if(value.split(\"-\").length >= 3){\n                            //Actual Visual section, row by row\n                            const rigCheckerSection = document.createElement('div');\n                            rigCheckerSection.style.width = \"100%\";\n                            rigCheckerSection.style.display = \"flex\";\n                            rigCheckerSection.style.flexDirection = \"row\";\n                            rigCheckerSection.style.alignItems = \"center\";\n                            rigCheckerSection.style.paddingLeft = \"15px\";\n                            const rigLabelCheckerSection = document.createElement('div');\n                            rigLabelCheckerSection.textContent = `- ${value.split(\"-\")[0]}${value.split(\"-\")[1] == \"Label\" ? \"\" : \":\"}`;\n                            rigLabelCheckerSection.style.paddingLeft = value.split(\"-\")[3];\n                            rigLabelCheckerSection.style.paddingRight = \"10px\";\n                            rigLabelCheckerSection.style.fontSize = \"small\";\n                            rigCheckerSection.appendChild(rigLabelCheckerSection);\n                            const rigValueCheckerSection = document.createElement('div');\n                            rigValueCheckerSection.textContent = ` ${value.split(\"-\")[1] == \"Label\" ? \"\" : value.split(\"-\")[1]}`;\n                            rigValueCheckerSection.style.fontSize = \"small\";\n                            rigValueCheckerSection.style.color = `${value.split(\"-\")[2]}`;\n                            rigCheckerSection.appendChild(rigValueCheckerSection);\n                            popupContentSectionComponent.appendChild(rigCheckerSection);\n                        }\n                    }\n                }\n            }\n        });\n        \n    },\n    buildAnchorLiveViews:function(channels){\n        //Build Sections\n        const anchorSections = document.getElementById('anchorLiveViewSections');\n        if(anchorSections){\n            anchorSections.innerHTML = '';\n            for(let i=0;i<channels; i ++) {\n                const textDiv = document.createElement('div');\n                textDiv.style.fontSize = \"small\";\n                const borderSection = document.createElement('div');\n                borderSection.style.border = \"solid\";\n                borderSection.style.borderWidth = \"1px\";\n                borderSection.style.borderRadius = \"50px\";\n                borderSection.style.borderColor = \"lightgray\";\n                if(i == 0){\n                    textDiv.id = `T${i}`;\n                    textDiv.textContent = \"T:\";\n                }else{\n                    textDiv.id = `CH${i}`;\n                    textDiv.textContent = `CH${i+1}:`;\n                }\n                anchorSections.appendChild(textDiv);\n                anchorSections.appendChild(borderSection);\n            };\n        }\n    },\n    getTabKeys: Ember.computed(function(){\n        let data = ['home', 'calibSensorList'];\n        return data;\n    }),\n    getApprovedInstrumentTypeList: Ember.computed(function(){\n        let data = [];\n        for (const key in this.settingsConfig.APPROVEDINSTRUMENTTYPES) {\n          if (this.settingsConfig.APPROVEDINSTRUMENTTYPES.hasOwnProperty(key)) {\n            // console.log(key);\n            data.push({\n                id:key,\n                title:this.settingsConfig.APPROVEDINSTRUMENTTYPES[key].typeValue\n            });\n          }\n        }\n        return data;\n    }),\n    getApprovedRigCategoryList: Ember.computed(function(){\n        let data = [];\n        for (const key in this.settingsConfig.APPROVEDRIGCATEGORIES) {\n          if (this.settingsConfig.APPROVEDRIGCATEGORIES.hasOwnProperty(key)) {\n            // console.log(key);\n            data.push({\n                id:key,\n                title:this.settingsConfig.APPROVEDRIGCATEGORIES[key]\n            });\n          }\n        }\n        return data;\n    }),\n    getPaginationPageSizesList: Ember.computed(function() {\n        let pageSizeList = this.get(\"paginationSearchConfig.paginationPageSizes\");\n        let data = []\n        pageSizeList.forEach((pageSize, i) => {\n            data.push({\n                id:pageSize,\n                title:`${pageSize}`\n            })\n        });\n        return data\n    }),\n    getCalibrationSpecificPermission: async function() {\n        let responseData = await sendGETRequest('calib_permissions/');\n\n        if (responseData) {\n            const permissionObj = responseData['data'];\n            this.set(\"settingsConfig.CALIBRATIONSPECIFICPERMISSIONS\", permissionObj);\n        } else {\n            console.error('No data returned for GET calib_permissions');\n        }\n        \n        // console.log(this.get(\"settingsConfig.CALIBRATIONSPECIFICPERMISSIONS\"));\n    },\n    getSensorProfileList: async function() {\n        let data = []\n        let payload = {\n            page: this.paginationSearchConfig.pagination.page,\n            page_size:this.paginationSearchConfig.pagination.pageSize,\n        };\n        if ('calibrationIDOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.calibrationIDOrdering') != null){\n            payload['calibrationID'] = this.get('paginationSearchConfig.searchObject')['calibrationIDOrdering'];\n        }\n        if ('jobIDOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.jobIDOrdering') != null){\n            payload['jobID'] = this.get('paginationSearchConfig.searchObject')['jobIDOrdering'];\n        }\n        if ('calibrationDateOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.calibrationDateOrdering') != null){\n            payload['calibrationDate'] = this.get('paginationSearchConfig.searchObject')['calibrationDateOrdering'];\n        }\n        if ('sensorIDOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.sensorIDOrdering') != null){\n            payload['sensorID'] = this.get('paginationSearchConfig.searchObject')['sensorIDOrdering'];\n        }\n        if ('searchCalibrationID' in this.get('paginationSearchConfig.searchObject')){\n            payload['searchCalibrationID'] = this.get('paginationSearchConfig.searchObject')['searchCalibrationID'];\n        }\n        if ('searchSensorID' in this.get('paginationSearchConfig.searchObject')){\n            payload['searchSensorID'] = this.get('paginationSearchConfig.searchObject')['searchSensorID'];\n        }\n        if ('searchJobID' in this.get('paginationSearchConfig.searchObject')){\n            payload['searchJobID'] = this.get('paginationSearchConfig.searchObject')['searchJobID'];\n        }\n        let responseData = await sendGETRequest('calibration-instrument-profiles/', payload);\n\n        if (responseData) {\n            // Update the results and cache them\n            let data = [];\n            const rawSensorProfileList = responseData['data'];\n            rawSensorProfileList.forEach((element, index)=>{\n            element=element['attributes']\n            element['calibration-date'] = convertDBDateToTableDate(element['calibrationDate']);\n            data.push(element);\n            })\n            this.set(\"frontendData.calibrationInstrumentProfileList\", data);\n            const metaPaginationData = responseData['meta'];\n            this.set(\"paginationSearchConfig.pagination.totalPages\", metaPaginationData['pagination']['total_pages']);\n            const totalRowsComp = document.getElementById(\"totalReadings\");\n            totalRowsComp.textContent = `Total: ${responseData['data'].length}`\n\n            this.updatePaginationList();\n        } else {\n            console.error('No data returned from search');\n        }\n        \n        return data\n    },\n    getCompletedPackProfileList: async function() {\n        let data = [];\n        let responseData = await sendGETRequest('validation-packs-profiles/?completed=both');\n        if (responseData) {\n            // Update the results and cache them\n            const rawCompletedPackProfileList = responseData['data'];\n            rawCompletedPackProfileList.forEach((packProfileObject, index)=>{\n                data.push({\n                    id: index + 1,\n                    title:packProfileObject['attributes']['packId'],\n                    data:packProfileObject['attributes']\n                });\n            })\n        } else {\n            console.error('No data returned from search');\n        }\n        \n        // console.log('rawCompletedPackProfileList data')\n        // console.log(data)\n\n        this.set(\"frontendData.packValidationCompletedProfileList\", data);\n        return data\n    },\n    updatePaginationList: function () {\n        let range = [];\n        const maxPageToShow = 3; // Adjust this based on how many pages you want to show in the middle\n        const paginationObj = this.get('paginationSearchConfig.pagination');\n    \n        // Always include the first page\n        range.push(1);\n    \n        if (paginationObj['totalPages'] <= maxPageToShow + 2) {\n            // If total pages are small enough, show all pages\n            for (let i = 2; i <= paginationObj['totalPages']; i++) {\n                range.push(i);\n            }\n        } else if (paginationObj['page'] <= maxPageToShow) {\n            // Current page is within the first few pages\n            for (let i = 2; i <= maxPageToShow + 1; i++) {\n                range.push(i);\n            }\n            range.push('...');\n            range.push(paginationObj['totalPages']);\n        } else if (paginationObj['page'] >= paginationObj['totalPages'] - maxPageToShow + 1) {\n            // Current page is within the last few pages\n            range.push('...');\n            for (let i = paginationObj['totalPages'] - maxPageToShow; i <= paginationObj['totalPages']; i++) {\n                range.push(i);\n            }\n        } else {\n            // Current page is in the middle\n            range.push('...');\n            for (let i = paginationObj['page'] - 1; i <= paginationObj['page'] + 1; i++) {\n                range.push(i);\n            }\n            range.push('...');\n            range.push(paginationObj['totalPages']);\n        }\n    \n        this.set('paginationSearchConfig.calibrationInstrumentProfilePaginationList', range);\n    },\n    clearBatchCBData:function(){\n        const batchMasterElement = document.getElementById(`HEADER_CB`);\n        batchMasterElement.checked=false;\n        const currBatchCheckboxData = this.get(\"userInputtedData.batchCheckboxData\");\n        if (Object.keys(currBatchCheckboxData).length === 0 && currBatchCheckboxData.constructor === Object) {\n        } \n        else {\n            Ember.run.schedule('afterRender', this, () => {\n                this.get(\"frontendData.calibrationInstrumentProfileList\").forEach((data, index)=>{\n                    const calibrationID = data['calibrationId']\n                    const batchCBElement = document.getElementById(`BATCH_CB_${calibrationID}`);\n                    batchCBElement.checked=false;\n                    delete currBatchCheckboxData[calibrationID];\n                    \n                });\n\n            });\n        }\n\n    },\n    getRigList: Ember.computed('rigProfileList',function() {\n        let rigList = this.get(\"rigProfileList\");\n        // console.log(rigList);\n        let data = []\n        if(rigList){\n            rigList.forEach((element, i) => {\n                data.push({\n                    id:i + 1,\n                    dbID:element.id,\n                    title:`${element.rigName}-${element.rigIP}`,\n                    data:element\n                })\n            });\n        }\n        return data\n    }),\n    getTypeList: Ember.computed('calibrationTypesList',function() {\n        let sensorTypeList = this.get(\"calibrationTypesList\");\n        let data = []\n        if(sensorTypeList){\n            sensorTypeList.forEach((element, i) => {\n                data.push({\n                    id:i,\n                    title:element.type,\n                    data: element\n                })\n            });\n        }\n        return data\n    }),\n    getCalibrationProfileList: Ember.computed('calibrationprofileList',function() {\n        let calibProfList = this.get(\"calibrationprofileList\");\n        // console.log(calibProfList);\n        let data = []\n        if(calibProfList){\n            calibProfList.forEach((element, index) => {\n                let title = \"\"\n                title += `${element.type} `;\n                title += ` / ${element.channels} `;\n                title += ` / ${element.minLimit} to ${element.maxLimit} `;\n    \n                data.push({\n                    id: index + 1,\n                    dbID:element.id,\n                    data:element,\n                    type:element.type,\n                    channels:element.channels,\n                    title:title\n                })\n            });\n\n        }\n        return data\n    }),\n    calibrationConfigButton:Ember.observer(\"isShowConfig.isShowCalibForm\",function(){\n        console.log(\"user clicked clib button \");\n        if(this.get(\"isShowConfig.isShowCalibForm\")){\n            this.set(\"formCalibData\", {});\n        }\n    }),\n    rigConfigButton:Ember.observer(\"isShowConfig.isShowRigForm\",function(){\n        console.log(\"user clicked rig button \");\n        if(this.get(\"isShowConfig.isShowRigForm\")){\n            this.set(\"formRigData\", {});\n        }\n    }),\n    calibProfileCalibFormLoad:Ember.observer(\"selectedCalibDPCalibForm\",function(){\n        let selectedCalibFormCalibData = null;\n        console.log(this.get(\"selectedCalibDPCalibForm\"));\n        //Components for Calibration Form\n        const calibTypeComp = document.getElementById('calibType');\n        const channelsComp = document.getElementById('channels');\n        const minLimitComp = document.getElementById('minLimit');\n        const maxLimitComp = document.getElementById('maxLimit');\n        const checkpointSampleSizeComp = document.getElementById('checkpointSampleSize');\n        const checkpointSpeedComp = document.getElementById('checkpointSpeed');\n        const typeIDComp = document.getElementById('typeID');\n        const checkpointUnit = document.getElementById('unit');\n        const checkpointCurrentTargetBufferComp = document.getElementById('checkpointCurrentTargetBuffer');\n        const checkpointDelayComp = document.getElementById('checkpointDelay');\n        const checkpointPositionsComp = document.getElementById('checkpointPositions');\n        if(this.get(\"selectedCalibDPCalibForm\") === '0'){\n            console.log(this.get(\"selectedCalibDPCalibForm\"));\n\n            //Handle pre-loading selected calib profile data into calib form TBs\n            calibTypeComp.value                     ='';\n            channelsComp.value                      ='';\n            minLimitComp.value                      ='';\n            maxLimitComp.value                      ='';\n            checkpointSampleSizeComp.value          ='';\n            checkpointSpeedComp.value               ='';\n            typeIDComp.value                        ='';\n            checkpointUnit.value                    ='';\n            checkpointCurrentTargetBufferComp.value ='';\n            checkpointDelayComp.value               ='';\n            checkpointPositionsComp.value           ='';\n            calibCreationEmployeeComp.value         ='';\n            this.set(\"formCalibData\",{})\n        }else{\n\n            const calibData = this.get(\"getCalibrationProfileList\");\n            if(calibData){\n                calibData.forEach((calibProf, i)=>{\n                    if((i+1).toString() === this.get(\"selectedCalibDPCalibForm\")){\n                        selectedCalibFormCalibData = calibProf['data'];\n                        console.log(\"calib form, selected:\");\n                        // console.log(calibProf);\n                        console.log(calibProf['data']);\n\n                        //Handle pre-loading selected calib profile data into calib form TBs\n                        calibTypeComp.value=calibProf['type'];\n                        checkpointUnit.value=calibProf['data']['unit'];\n                        channelsComp.value=calibProf['data']['channels'];\n                        minLimitComp.value=calibProf['data']['minLimit'];\n                        maxLimitComp.value=calibProf['data']['maxLimit'];\n                        typeIDComp.value=calibProf['data']['typeID'];\n                        checkpointSampleSizeComp.value=calibProf['data']['checkpointSampleSize'];\n                        checkpointSpeedComp.value=calibProf['data']['checkpointSpeed'];\n                        checkpointCurrentTargetBufferComp.value=calibProf['data']['checkpointCurrentTargetBuffer'];\n                        checkpointDelayComp.value=calibProf['data']['checkpointDelay'];\n                        checkpointPositionsComp.value=calibProf['data']['checkpointPositions'];\n                        this.set(\"formCalibData\",{ \n                            id:calibProf.dbID,\n                            calibType:calibProf['type'],\n                            unit:calibProf['data']['unit'],\n                            channels:calibProf['data']['channels'],\n                            minLimit:calibProf['data']['minLimit'],\n                            maxLimit:calibProf['data']['maxLimit'],\n                            typeID:calibProf['data']['typeID'],\n                            checkpointSampleSize:calibProf['data']['checkpointSampleSize'],\n                            checkpointSpeed:calibProf['data']['checkpointSpeed'],\n                            checkpointCurrentTargetBuffer:calibProf['data']['checkpointCurrentTargetBuffer'],\n                            checkpointDelay:calibProf['data']['checkpointDelay'],\n                            checkpointPositions:calibProf['data']['checkpointPositions'],\n                            calibCreationEmployee:calibProf['data']['creationEmployee'],\n                        })\n                    }\n                });\n            }\n            if(selectedCalibFormCalibData == null){\n                showPopup([\"Selected calibration profile cannot be found\"], 'error');\n            }\n        }\n    }),\n    rigProfileRigFormLoad:Ember.observer(\"selectedRigDPRigForm\",function(){\n        let selectedRigFormRigData = null;\n        console.log(this.get(\"selectedRigDPRigForm\"));\n        //Components for Calibration Form\n        const rigIPComp = document.getElementById('rigIP');\n        const rigNameComp = document.getElementById('rigName');\n        const rigCategoryComp = document.getElementById('rigCategory');\n        const rigReferenceIDComp = document.getElementById('rigReferenceID');\n        const rigReferenceCalibrationValueComp = document.getElementById('rigReferenceCalibrationValue');\n        const rigReferenceCalibrationDateComp = document.getElementById('rigReferenceCalibrationDate');\n        if(this.get(\"selectedRigDPRigForm\") === '0'){\n            console.log(this.get(\"selectedRigDPRigForm\"));\n            //Handle pre-loading selected calib profile data into calib form TBs\n            rigIPComp.value       ='';\n            rigNameComp.value     ='';\n            rigCategoryComp.value ='';\n            rigReferenceIDComp.value ='';\n            rigReferenceCalibrationValueComp.value ='';\n            rigReferenceCalibrationDateComp.value ='';\n            this.set(\"formRigData\",{})\n        }else{\n\n            const rigData = this.get(\"getRigList\");\n            if(rigData){\n                rigData.forEach((rigProf, i)=>{\n                    if((i+1).toString() === this.get(\"selectedRigDPRigForm\")){\n                        selectedRigFormRigData = rigProf['data'];\n                        console.log(\"rig form, selected:\");\n                        console.log(rigProf);\n                        console.log(rigProf['data']);\n                        const [date, time] = rigProf['data']['rigReferenceCalibrationDate'].split(\" \");\n                        //Handle pre-loading selected calib profile data into calib form TBs\n                        rigIPComp.value=rigProf['data']['rigIP'];\n                        rigNameComp.value=rigProf['data']['rigName'];\n                        rigCategoryComp.value=rigProf['data']['rigCategory'].toLowerCase();\n                        rigReferenceIDComp.value=rigProf['data']['rigReferenceID'];\n                        rigReferenceCalibrationValueComp.value=rigProf['data']['rigReferenceCalibrationValue'];\n                        rigReferenceCalibrationDateComp.value=`${date}T${time}`;\n                        this.set(\"formRigData\",{ \n                            id:rigProf.dbID,\n                            rigIP:rigProf['data']['rigIP'],\n                            rigName:rigProf['data']['rigName'],\n                            rigCategory:rigProf['data']['rigCategory'],\n                            creationEmployee:rigProf['data']['creationEmployee'],\n                            rigReferenceID:rigProf['data']['rigReferenceID'],\n                            rigReferenceCalibrationValue:rigProf['data']['rigReferenceCalibrationValue'],\n                            rigReferenceCalibrationDate:rigProf['data']['rigReferenceCalibrationDate'],\n                        })\n                    }\n                });\n            }\n            if(selectedRigFormRigData == null){\n                showPopup([\"Selected rig profile cannot be found\"], 'error');\n            }\n        }\n    }),\n    calibProfileLoad:Ember.observer(\"selectedCalibDP\",function(){\n        // console.log(this.get(\"settingsConfig.APPROVEDINSTRUMENTTYPES\"))\n        this.set(\"userInputtedData.batchSensorData\", []);\n        if(this.get(\"selectedCalibDP\") === \"0\"){\n            resetDataCalibProfile(this);\n        }else{\n            const calibData = this.get(\"getCalibrationProfileList\");\n            if(calibData){\n                calibData.forEach((calibProf, i)=>{\n                    if((i+1).toString() === this.get(\"selectedCalibDP\")){\n                        if(calibProf['channels'] == null){\n                            calibProf['channels'] = calibProf['data']['channels'];\n                        }\n                        this.set(\"userInputtedData.selectedCalibrationProfile\", calibProf);\n                        this.set(\"userInputtedData.selectedAnchorData\", null);\n                    }\n                });\n            }\n            const selectedProfile = this.get(\"userInputtedData.selectedCalibrationProfile\");\n            console.log(selectedProfile)\n            //Build Anchor Diagram\n            this.buildAnchorDiagram(selectedProfile.type, selectedProfile.channels);\n            //Pre-Fill Sensor ID TB\n            const currentDate = new Date();\n            const month = (currentDate.getMonth() + 1).toString().padStart(2, '0');\n            const year = currentDate.getFullYear().toString().slice(-2); \n            const message = `${year}${month}${selectedProfile.channels}${selectedProfile.data.typeID}`;\n            if(this.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n                let currArr = {};\n                for(let i = 1; i <= this.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    currArr[i] = {\n                        id:i,\n                        sensorData:{\n                            sensorID:message,\n                            sensorName:null,\n                        },\n                        calibrationData:{\n                            sampleDataDump:[],\n                            sampleCurrentDataDump:[],\n                            lookupData:[\n                                // ['53953','53176','52397','51607','49269','46928','44609','42317','40058','37845','35681','33576','31542'],\n                                // ['53862','53084','52294','51532','49207','46872','44563','42282','40045','37859','35683','33600','31565'],\n                                // ['53910','53140','52372','51600','49246','46916','44596','42339','40047','37858','35703','33604','31591'],\n                                // ['54358','53553','52764','51962','49530','47166','44804','42477','40181','37936','35756','33637','31603'],\n                                // ['54139','53354','52560','51765','49407','47023','44671','42362','40105','37819','35639','33539','31497'],\n                                // ['54350','53547','52749','51947','49552','47183','44836','42513','40234','37960','35751','33610','31570']\n                            ],\n                            calibrationDataData:[\n                                // ['0.00','8.29','16.63','24.96','49.96','74.97','99.97','124.98','149.98','174.98','199.97','224.98','249.97'],\n                                // ['0.00','8.29','16.62','24.95','49.97','74.97','99.97','124.96','149.97','174.97','199.96','224.99','249.97'],\n                                // ['0.00','8.29','16.62','24.95','49.97','74.97','99.98','124.99','149.98','174.98','199.97','225.01','249.98'],\n                                // ['0.00','8.23','16.60','24.95','50.00','75.00','99.99','125.00','149.98','174.98','199.98','224.99','249.98'],\n                                // ['0.00','8.29','16.64','24.97','49.99','74.98','100.00','124.98','149.98','174.97','199.98','225.00','249.97'],\n                                // ['0.00','8.29','16.68','25.03','50.01','75.01','99.99','125.00','149.99','174.99','199.99','224.98','249.97']\n                            ],\n                            currentData:[\n                                // '0.00','8.33','16.66','25.00','50.00','75.00','100.00','125.00','150.00','175.00','200.00','225.00','250.00'\n                            ],\n                            slopeData:[\n                                // '-90.8662','-90.1461','-91.019','-90.1518','-90.0585','-91.3125'\n                            ], \n                            offsetData:[\n                                // '-3.2042','-3.5446','-3.7018','-3.6037','-3.2249','-2.9856'\n                            ]\n                        },\n                        isSamplingData:{\n                            isPhaseISampling:false,\n                            isSamplingCurrentData:false, \n                            isSamplingCalibrationData:false\n                        }\n                    };\n                };\n                this.set(\"userInputtedData.batchSensorData\", currArr);\n            }else{\n                const sensorIDTBComponent = document.getElementById(\"sensorID\");\n                sensorIDTBComponent.value = message;\n\n            }\n            // console.log(`Auto Fill Sensor ID: ${year}${month}${selectedProfile.channels}${selectedProfile.data.typeID}`)\n            //Build TBs for Anchor Live View \n            this.buildAnchorLiveViews(selectedProfile.channels);\n\n            //Live Log Charts \n                //First clear the inital dataset\n            if (this.chart) {\n                this.chart.data.labels = [];\n                this.chart.data.datasets = [];\n                this.chart.update();\n            }\n\n            let datasetArr = [];\n            for(let i=0; i<selectedProfile.channels;i++){\n                datasetArr.push({\n                    label:`CH${i}`,\n                    borderColor : getDataSetColor(i),\n                    borderWidth: 0.5,\n                    fill: false,\n                    tension: 0.1,\n                })\n            }        \n            \n            if (this.chart) {\n                this.chart.data.datasets = datasetArr;\n                this.chart.update();\n            }\n        }\n    }),\n    rigProfileLoad:Ember.observer(\"selectedRigDP\",function(){\n        // console.log('triggered rigProfileLoad');\n        this.set(\"userInputtedData.selectedRigProfile\", null);\n        webSocketDisconnect(this);\n        if(this.get(\"selectedRigDP\") === \"0\"){\n            // this.set(\"selectedRigProfile\", null);\n            // webSocketDisconnect(this);\n        }else{\n            const rigData = this.get(\"getRigList\");\n            if(rigData){\n                rigData.forEach((rig,i)=>{\n                    if((i + 1).toString() === this.get(\"selectedRigDP\")){\n                        this.set(\"userInputtedData.selectedRigProfile\", rig);\n                        // console.log('userInputtedData.selectedRigProfile updated');\n                    }\n                });\n            }\n            if(this.get(\"userInputtedData.selectedRigProfile\") != null){\n                initializeConnection(this,this.get(\"userInputtedData.selectedRigProfile\")['data']['rigIP']);\n\n            }\n        } \n    }),\n    dashboardStatusBarObserver: Ember.observer(\n        \"dashboardStatusBarData.status\",\n        \"dashboardStatusBarData.connection\",\n        \"dashboardStatusBarData.calibration\",\n        function () {\n            updateRigActivity(this);\n            // console.log(\"refresh dashboard status bar!\");\n            const statusObj = this.get(\"dashboardStatusBarData\");\n            const statusComponent = document.getElementById(\"statusStatus\");\n            const connectionComponent = document.getElementById(\"connectionStatus\");\n            const calibrationComponent = document.getElementById(\"calibrationStatus\");\n            if(statusComponent && connectionComponent && calibrationComponent ){\n                statusComponent.style.color = statusObj['status']['color'];\n                statusComponent.textContent = statusObj['status']['value'];\n                connectionComponent.style.color = statusObj['connection']['color'];\n                connectionComponent.textContent = statusObj['connection']['value'];\n                calibrationComponent.style.color = statusObj['calibration']['color'];\n                calibrationComponent.textContent = statusObj['calibration']['value'];\n            }\n        }\n    ),\n    dashboardStatusBarObserver2: Ember.observer(\n        \"dashboardStatusBarData.current\",\n        \"dashboardStatusBarData.target\",\n        function () {\n            const statusObj = this.get(\"dashboardStatusBarData\");\n            const currentComponent = document.getElementById(\"currentPoint\");\n            const targetComponent = document.getElementById(\"targetPoint\");\n            if(currentComponent && targetComponent){\n                currentComponent.style.color = statusObj['current']['color'];\n                currentComponent.textContent = statusObj['current']['value'];\n                targetComponent.style.color = statusObj['target']['color'];\n                targetComponent.textContent = statusObj['target']['value'];\n            }\n        }\n    ),\n    actions: {\n        cycleInternalHotButton(){\n            if(this.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n                this.set(\"settingsConfig.internalVersion\", \"v2.0\");\n                showPopup([`Currently using internal version: v2.0`], \"notification\", 5);\n            }else{\n                this.set(\"settingsConfig.internalVersion\", \"v1.0\");\n                showPopup([`Currently using internal version: v1.0`], \"notification\", 5);\n            }\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        startVerificationPress(elementID, holdDuration, mode) {\n            try{\n\n                this.set('isTriggered', false);\n                \n                const button = document.getElementById(elementID);\n                button.textContent=`0%`;\n                const startTime = Date.now();\n                this.set(\n                    'progressInterval',\n                    setInterval(() => {\n                    const elapsedTime = Date.now() - startTime; \n                    const progress = Math.min((elapsedTime / holdDuration) * 100, 100); // Calculate progress\n                    button.textContent=`${progress.toFixed(1)}%`;\n                \n                    if (progress === 100) { \n                        this.set('isTriggered', true);\n                        this.send('triggerAction',elementID, mode); \n                        clearInterval(this.progressInterval); \n                    }\n                    }, 50) \n                );\n            }catch(err){\n                console.log(`Error in startVerificationPress: ${err.message}`);\n                \n            }\n        },\n        cancelVerificationPress(elementID, mode) {\n            if (!this.isTriggered) {\n                const button = document.getElementById(elementID);\n                button.textContent=mode;\n\n                clearInterval(this.progressInterval); // Stop progress\n            }\n        },\n        async triggerAction(elementID, mode) {\n            // Perform the action after hold duration\n            const button = document.getElementById(elementID);\n            button.textContent=mode;\n            console.log(`triggerAction, elementID:${elementID}`);\n            switch(elementID){\n                case \"startV2CalibrationButton\":\n                    // buildCalibrationV2IntermissionNotificationBoard(this);\n                    if(JSON.stringify(this.get(\"dashboardStatusBarData\")['status']) === JSON.stringify(generalStatusLibrary(602))){\n                        showPopup(['Cannot start because status is not Validated'], 'error');\n                    }\n                    else if(JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(593)) || JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(594)) ){\n                        showPopup(['Cannot start because it was emergency Stopped.','please Reset.'], 'notification', 5);\n                    }else if (JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(551)) || JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(590))){\n                        showPopup(['Starting calibration'], 'success', 2);\n                        await getV2CalibrationSchematics(this);\n                    }else{                        \n                        showPopup(['Must be ready to start calibration'], 'notification');\n\n                    }\n                    break;\n                case \"resetCalibrationButton\":\n                    this.get(\"emergencyController\").abort();\n                    resetLog(this,'live');\n                    resetLog(this,'phaseI');\n                    resetLog(this,'phaseII');\n                    if (this.chart) {\n                        this.chart.data.labels = [];\n                        this.chart.data.datasets = [];\n                        this.chart.update();\n                    }\n                    this.set('emergencyController', new AbortController());\n                    updateCalibrationStatusModule(this, 551);\n                    webSocketDisconnect(this);\n                    hardResetModule(this)\n                    break;\n                case \"stopCalibrationButton\":\n                    await outgoingMessageLibrary(this, 'emergencyStop', '');\n                    this.get(\"emergencyController\").abort();\n                    // updateCalibrationStatusModule(this, 551);\n                    break;\n                case \"phaseIICalibrationButton\":\n                    if(JSON.stringify(this.get(\"dashboardStatusBarData\")['status']) === JSON.stringify(generalStatusLibrary(602))){\n                        showPopup(['Cannot start phase II because status is not Validated'], 'error');\n                    }\n                    else if(JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(593)) || JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(595)) ){\n                        showPopup(['Cannot start phase II because it was emergency Stopped.','To start phase I, please Reset.'], 'notification', 5);\n                    }else if (JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) != JSON.stringify(calibrationStatusLibrary(551))){\n                        showPopup(['Cannot start phase II because calibration status is not Idle'], 'notification', 3);\n                    \n                    }else{\n                        showPopup(['Starting Phase II'], 'success', 5); \n                        getSensorPhaseIISchematics(this);\n                    }\n                    break;\n                case \"phaseICalibrationButton\":\n                    if(JSON.stringify(this.get(\"dashboardStatusBarData\")['status']) === JSON.stringify(generalStatusLibrary(602))){\n                        showPopup(['Cannot start phase I because status is not Validated'], 'error');\n                    }\n                    else if(JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(593)) || JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(594)) ){\n                        showPopup(['Cannot start phase I because it was emergency Stopped.','To start phase I, please Reset.'], 'notification', 5);\n                    }else if (JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) != JSON.stringify(calibrationStatusLibrary(551))){\n                        showPopup(['Cannot start phase I because calibration status is not Idle'], 'notification');\n                    }else{\n                        showPopup(['Starting Phase I'], 'success', 2);\n                        getSensorPhaseISchematics(this);\n                    }\n                    break;\n            }\n        },\n        assistiveTooltip(type){\n            return showPopup(assistiveToolTipLibrary(type).split(\"\\n\"), \"notification\",5);\n        },\n        reconnectWebSocket(){\n            websocketReconnect(this);\n        },\n        viewCalibratedData(){\n            if(JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(551))){\n                const selectedRigProfile = this.get('userInputtedData.selectedRigProfile');\n                const selectedCalibrationProfile = this.get('userInputtedData.selectedCalibrationProfile');\n                const selectedSensorData = this.get(\"userInputtedData.selectedSensorData\");\n                if(selectedRigProfile != null && selectedCalibrationProfile != null && JSON.stringify(selectedSensorData) != \"{}\"){\n                    const data = buildAndGetDataFormat1(this);\n                    let sensorData = {...data['sensorProfileData'],\n                        anchorDataValue:data['anchorProfileData'],\n                        type:selectedCalibrationProfile['type'],\n                        rigReferenceID: selectedRigProfile['data']['rigReferenceID'],\n                        rigReferenceCalibrationValue: selectedRigProfile['data']['rigReferenceCalibrationValue'],\n                        rigReferenceCalibrationDate: selectedRigProfile['data']['rigReferenceCalibrationDate'],\n                        minLimit: selectedCalibrationProfile['data']['minLimit'],\n                        maxLimit: selectedCalibrationProfile['data']['maxLimit'],\n                    }\n                    let packProfileData = {...selectedSensorData['selectedPackProfile'],\n                        packID:selectedSensorData['selectedPackProfile']['packId'] ? selectedSensorData['selectedPackProfile']['packId'] : \"\",\n                        validationID:selectedSensorData['selectedPackProfile']['validationId'] ? selectedSensorData['selectedPackProfile']['validationId'] : \"\",\n                    }\n                    buildSensorProfileNotificationBoard(this, false, \n                        packProfileData,\n                        sensorData, data['calibrationData']['phaseILookUpArray'], \n                                    data['calibrationData']['phaseIICalibratedDataArray'], \n                                    data['calibrationData']['phaseIICalibratedCurrentArray'], \n                                    data['calibrationData']['phaseIICalibratedSlopeArray'], \n                                    data['calibrationData']['phaseIICalibratedOffsetArray']);\n                }\n\n            }else{\n                showPopup([\"Cannot open because calibration status is not Idle\"], 'warning', 3);\n            }\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        viewPhaseIICalibratedData(){\n            if(JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(calibrationStatusLibrary(551))){\n                buildPhaseIIConclusionNotificationBoard(this);\n            }else{\n                showPopup([\"Cannot open because calibration status is not Idle\"], 'warning', 3);\n            }\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        showBatchSensors(){\n            buildBatchSensorBoard(this);\n        },\n        cycleView(){\n            // Toggle states: switch between home and calibSensorList\n            if (this.isShowConfig.tabs.home) {\n              this.set('isShowConfig.tabs', { home: false, calibSensorList: true });\n            } else {\n              this.set('isShowConfig.tabs', { home: true, calibSensorList: false });\n            }\n\n        },\n        viewRigNotifications(){\n            buildRigNotificationNotificationBoard(this);\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        viewPhaseIIConclusionCalibrationSheet(){\n            // getSlopeAndOffset(this);\n            // console.log(\"slope array\")\n            // console.log(this.get('calibrationData.phaseIISlopeData'))\n            // console.log(\"offset array\")\n            // console.log(this.get('calibrationData.phaseIIOffsetData'))\n            if(this.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n                buildPhaseIIConclusionNotificationBoard(this)\n            }else if(this.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n                buildPhaseIIConclusionNotificationBoardV2(this);\n                \n            }\n        },\n        viewFromInventoryEditSheet(profile){\n            // console.log(profile)\n            buildInventoryUpdateBoard(this, profile);\n        },\n        viewCalibrationSheet(calibrationID){\n            buildCalibrationSheet(this,calibrationID)\n        },\n        async getCalibProfile(calibrationID){\n\n            let responseData = await sendGETRequest(`sensor_profile/${calibrationID}/`);\n            if(responseData != false){\n                const data = responseData['data'];\n                const sensorProfile = data['sensorProfile'];\n                const packProfile = data['packProfile'];\n                const phaseILookupData = data['calibrationData']['phaseILookupData'];\n                const phaseIICalibrationDataValueData = data['calibrationData']['phaseIICalibrationDataValueData'];\n                const phaseIICurrentData = data['calibrationData']['phaseIICurrentData'];\n                const phaseIISlopeData = data['calibrationData']['phaseIISlopeData'];\n                const phaseIIOffsetData = data['calibrationData']['phaseIIOffsetData'];\n\n                buildSensorProfileNotificationBoard(this, true, packProfile, sensorProfile, phaseILookupData, phaseIICalibrationDataValueData, phaseIICurrentData, phaseIISlopeData, phaseIIOffsetData);\n                console.log(\"you selected\") \n                console.log(data);\n            }\n        },\n        scrollTop() {\n            window.scrollTo({\n                top: 0,\n                behavior: 'smooth', // Adds smooth scrolling\n            });\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        scrollDashboard(){\n            const element = document.getElementById(\"calibrationDashboardTitle\");\n            if (element) {\n                element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n                this.set('isShowConfig.isShowSettings', false);\n            }\n        },\n        copyChatToClipboard(elementID) {\n            console.log(\"copyChatToClipboard\");\n            const chatBox = document.getElementById(elementID);\n            if (chatBox) {\n                const range = document.createRange();\n                range.selectNodeContents(chatBox);\n                const selection = window.getSelection();\n                selection.removeAllRanges();\n                selection.addRange(range);\n                document.execCommand('copy');\n                // alert('Chat copied to clipboard!');\n            }\n        },\n        unlockChatScroll(elementID) {\n            // console.log(\"unlockChatScroll\");\n            this.set(`settingsConfig.chatLocked.${elementID}`, false);\n            // alert('Chat scrolling unlocked!');\n        },\n        lockChatScroll(elementID) {\n            // console.log(\"lockChatScroll\");\n            this.set(`settingsConfig.chatLocked.${elementID}`, true);\n            const chatBox = document.getElementById(elementID);\n            if (chatBox) {\n                chatBox.scrollTop = chatBox.scrollHeight;\n            }\n            // alert('Chat scrolling locked!');\n        },\n        showLiveGraphs(){\n            const curr = this.get(\"isShowConfig.isShowLiveGraphs\");\n            this.set('isShowConfig.isShowLiveGraphs',!curr);\n        },\n        showCommandConsole(){\n            const curr = this.get(\"isShowConfig.isShowCommandConsole\");\n            this.set('isShowConfig.isShowCommandConsole',!curr);\n\n        },\n        async sendCommand(){\n            await this.sendCommandFromConsoleTxtbox();\n        },\n        async onKeyDown(event){\n            if (event.key === 'Enter'){\n                await this.sendCommandFromConsoleTxtbox();\n            }\n        },\n        exportChatToFile(elementID) {\n            console.log(\"copyChatToClipboard\");\n            const chatBox = document.getElementById(elementID);\n            if (chatBox) {\n                const chatContent = chatBox.innerText;\n                const blob = new Blob([chatContent], { type: 'text/plain;charset=utf-8' });\n                const downloadLink = document.createElement('a');\n                downloadLink.href = window.URL.createObjectURL(blob);\n                downloadLink.download = 'chat-log.txt';\n                downloadLink.click();\n            }\n        },\n        async controlPanel(type, value){\n            // console.log(`WS+JOG=${value},1`);\n            \n            if(this.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n\n            }else{\n                await outgoingMessageLibrary(this, \"setRigUnit\", 0);\n            }\n            await outgoingMessageLibrary(this, type, value);\n        },\n        closeNotificationPopup(){\n            const notificationPopupContentBody = document.getElementById('notificationPopupContentBody');\n            notificationPopupContentBody.innerHTML=\"\";\n            this.set('isShowConfig.isShowPopupNotification', false);\n\n        },\n        cycleVisualSettings(){\n            this.set('isShowConfig.isShowSettings', !this.get(\"isShowConfig.isShowSettings\"));\n        },\n        validatePriorCalibration(){\n            validateAllForms(this);\n        },\n        updateRigFormData(event) {\n            const key = event.target.id;\n            const value = event.target.value;\n            // console.log(`key:${key}, value:${value}`);\n            if (key === 'rigCategory'){\n                this.set(`formRigData.${key}`, value.toUpperCase()); \n            }else if (key === 'rigReferenceCalibrationDate'){\n                this.set(`formRigData.${key}`, formatDateTimeFromInputField(value)); \n            }\n            else{\n                this.set(`formRigData.${key}`, value); \n\n            }\n          console.log(this.get(\"formRigData\"));\n        },\n        updateCalibFormData(event) {\n            const key = event.target.id;\n            const value = event.target.value;\n            console.log(`type:${key}, value:${value}`);\n            if(key===\"checkpointPositions\"){   \n                try{\n                    \n                    this.set(`formCalibData.${key}`, value.split(','));\n                }catch(err){\n                    showPopup(['Checkpoint Positions is in incorrect syntax.\\nPlease follow this sample:0.00,8.33,25.00,50.00,75.00,100.00,125.00'],'error');\n                }\n            }else{\n                this.set(`formCalibData.${key}`, value);\n                \n            }\n        },\n        updateSensorFormData(event) {\n            const key = event.target.id;\n            const value = event.target.value;\n            // console.log(`key:${key}, value:${value}`)\n            if ((value == '' || value == null) && (key in this.get(\"userInputtedData.selectedSensorData\"))){\n                delete this.get('userInputtedData.selectedSensorData')[key];\n            }else if (key == 'selectedPackProfile' && this.get('frontendData.packValidationCompletedProfileList').length > 0){\n                if(value == 0){\n                    this.set(`userInputtedData.selectedSensorData.selectedPackProfile`, null); \n                }else{\n                    const selectedPackProfile = this.get('frontendData.packValidationCompletedProfileList')[Number.parseInt(value) - 1]['data'];\n                    console.log('you ahve selected pack profile')\n                    console.log(selectedPackProfile);\n                    this.set(`userInputtedData.selectedSensorData.selectedPackProfile`, selectedPackProfile); \n\n                }\n            }else{\n                // console.logn(value);\n                this.set(`userInputtedData.selectedSensorData.${key}`, value); \n            }\n\n            //Immediately reset status to Not Validated if the user changes any textboxes when it is already Validated\n            if(JSON.stringify(this.get(\"dashboardStatusBarData\")['status']) === JSON.stringify(generalStatusLibrary(603))){\n                this.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n            }\n        },\n        resetSort(){\n            this.set(\"paginationSearchConfig.searchObject.calibrationIDOrdering\", null);\n            const calibrationIDColumnComp = document.getElementById(\"calibrationIDColumn\");\n            calibrationIDColumnComp.textContent = \"Calibration ID  \";\n\n            this.set(\"paginationSearchConfig.searchObject.jobIDOrdering\", null);\n            const jobIDColumnComp = document.getElementById(\"jobIDColumn\");\n            jobIDColumnComp.textContent = \"Job ID  \";\n\n            this.set(\"paginationSearchConfig.searchObject.calibrationDateOrdering\", null);\n            const calibrationDateColumnComp = document.getElementById(\"calibrationDateColumn\");\n            calibrationDateColumnComp.textContent = \"Calibration Date  \";\n\n            this.set(\"paginationSearchConfig.searchObject.sensorIDOrdering\", null);\n            const sensorIDColumnComp = document.getElementById(\"sensorIDColumn\");\n            sensorIDColumnComp.textContent = \"Sensor ID  \";\n\n            this.send('resetPage');\n            this.getSensorProfileList();\n            this.clearBatchCBData();\n        },\n        updateSearchObjData(event) {\n            const key = event.target.id;\n            const value = event.target.value;\n            console.log(`key:${key}, value:${value}`)\n            if ((value == '' || value == null) && (key in this.get(\"paginationSearchConfig.searchObject\"))){\n                delete this.get('paginationSearchConfig.searchObject')[key];\n            }else if (key == 'page_size'){\n                this.set(`paginationSearchConfig.pagination.pageSize`, value);\n            }else{\n                this.set(`paginationSearchConfig.searchObject.${key}`, value); \n            } \n            // this.getSensorProfileList();\n        },\n        choseRig(value) {\n            // console.log(\"User selected:\" + value);\n            let oldRigObject = this.get(\"rigObject\");\n            if(oldRigObject != null && oldRigObject[\"ip\"] != null ){\n                oldRigObject[\"ip\"] = value;\n                this.set(\"oldRigObject\", oldRigObject);\n            }\n        },\n        choseSensorType(value) {\n            // console.log(\"User selected:\" + value);\n            let oldRigObject = this.get(\"rigObject\");\n            if(oldRigObject != null && oldRigObject['sensorType'] != null ){\n                oldRigObject['sensorType'] = value;\n                this.set(\"oldRigObject\", oldRigObject);\n            }\n        },\n        cycleEditMode(){\n            // console.log(`click edit mode:${type}`)\n            this.set(\"isShowConfig.isFormEditing\", !this.isShowConfig.isFormEditing);\n        },\n        cycleAddNewRigMode(){\n            this.set(\"isShowConfig.isShowRigForm\", !this.isShowConfig.isShowRigForm);\n            this.set(\"isShowConfig.isShowCalibForm\", false);\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        cycleAddNewCalibProfileMode(){\n            this.set(\"isShowConfig.isShowCalibForm\", !this.isShowConfig.isShowCalibForm);\n            this.set(\"isShowConfig.isShowRigForm\", false);\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        cycleShowAnchorDiagramMode(){\n            this.set(\"isShowAnchorDiagram\", !this.isShowAnchorDiagram);\n        },\n        async formDeleteButton(type){\n            switch(type){\n                case \"calib\":\n                    const calibSubmittedObject = this.get(\"formCalibData\");\n                    if(calibSubmittedObject == null || calibSubmittedObject == {}){\n                        showPopup(['Please select a calibration profile you wish to delete'],\"warning\");\n                    }else{\n                        if (await sendDELETERequest(`calib_calib_profile/${calibSubmittedObject['id']}`, calibSubmittedObject)){\n                            showPopup([\"Calibration Profile Deleted Successfully!\"],'success');\n                            resetProfile(\"calib\"); \n                            window.location.reload();\n    \n                        }else{\n                            showPopup([\"Calibration Profile Delete Failed!\",'error']);\n                        };\n                    }\n                    break;\n                case \"rig\":\n                    const rigSubmittedObject = this.get(\"formRigData\");\n                    if(rigSubmittedObject == null || rigSubmittedObject == {}){\n                        showPopup(['Please select a calibration profile you wish to delete'],\"warning\");\n                    }else{\n                        if (await sendDELETERequest(`rig_profile_view/${rigSubmittedObject['id']}`, rigSubmittedObject)){\n                            showPopup([\"Rig Profile Deleted Successfully!\"],'success');\n                            resetProfile(\"rig\"); \n                            window.location.reload();\n    \n                        }else{\n                            showPopup([\"Rig Profile Delete Failed!\",'error']);\n                        };\n                    }\n\n                    break;\n            }\n        },\n        async formSaveButton(type){\n            console.log(`formSaveButton:${type}`)\n            switch(type){\n                case \"calib\":\n                    const validationKeys = ['calibType','unit','channels','minLimit','maxLimit','checkpointCurrentTargetBuffer','checkpointSampleSize','checkpointSpeed','checkpointDelay','checkpointPositions'];\n                    const calibSubmittedObject = this.get(\"formCalibData\");\n                    console.log(`calibSubmittedObject`)\n                    console.log(calibSubmittedObject);\n                    calibSubmittedObject[\"creationDate\"] = getCurrentDateTime();\n                    //Tier 1 Validation\n                    let missingKeysMsgArr = [];\n                    validationKeys.forEach((value, index)=>{\n                        if ((!calibSubmittedObject.hasOwnProperty(value)) ||(calibSubmittedObject[value] === '') || (calibSubmittedObject[value] === null)) {\n                            missingKeysMsgArr.push(\"Missing \" + value + \"; \");\n                        }\n                    })\n                    const userProfile = this.get('session').data.authenticated['userProfile'];\n                    calibSubmittedObject[\"calibCreationEmployee\"] = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n                    const id = calibSubmittedObject['id'];\n\n\n                    if(missingKeysMsgArr.length !=0){\n                        showPopup(missingKeysMsgArr,'error', 5);\n                    }else{\n                        if(this.isShowConfig.isFormEditing){\n                            console.log(\"Calib Editing\");\n                            //Handle For Edit Mode\n                            if (await sendPATCHRequest(`calib_calib_profile/${id}`, calibSubmittedObject)){\n                                showPopup([\"Calibration Profile Edited Successfully!\"],'success');\n                                resetProfile(\"calib\"); \n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Calibration Profile Edit Failed!\",'error']);\n                            };\n                            \n    \n                        }else{\n                            console.log(\"Calib Adding\");\n                            //Handle For Add Mode\n                            delete calibSubmittedObject.id;\n                            if (await sendPOSTRequest(\"calib_calib_profile\", calibSubmittedObject)){\n                                showPopup([\"Calibration Profile Created Successfully!\"],'success');\n                                resetProfile(\"calib\"); \n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Calibration Profile Creation Failed!\",'error']);\n                            };\n                            \n                        }\n                    }\n                    break;\n                case \"rig\":\n                    const validationKeys2 = ['rigName','rigIP','rigCategory','creationDate'];\n                    const rigSubmittedObject = this.get(\"formRigData\");\n                    rigSubmittedObject[\"creationDate\"] = getCurrentDateTime();\n                    //Tier 1 Validation\n                    let missingKeysMsgArr2 = [];\n                    validationKeys2.forEach((value, index)=>{\n                        if ((rigSubmittedObject[value] == '') || (rigSubmittedObject[value] == null)) {\n                            missingKeysMsgArr.push(\"Missing \" + value + \"; \")\n                            }\n                    }) \n                    const userProfile2 = this.get('session').data.authenticated['userProfile'];\n                    rigSubmittedObject[\"company\"] = userProfile2['profile']['company'];\n                    rigSubmittedObject[\"creationEmployee\"] = `${userProfile2['profile']['first_name']} ${userProfile2['profile']['last_name']}`;\n                    if(missingKeysMsgArr2.length !=0){\n                        showPopup(missingKeysMsgArr,'error');\n                    }else{\n                        let activityLog = {};\n                        activityLog['status'] = 602;\n                        activityLog['connection'] = 500;\n                        activityLog['activity'] = 551;\n                        activityLog['activeUser'] = null;\n                        activityLog['connectedTo'] = null;\n                        activityLog['company'] = null;\n                        activityLog['latestDate'] = getCurrentDateTime();\n                        console.log(`rigSubmittedObject`)\n                        console.log(rigSubmittedObject);\n                        rigSubmittedObject[\"activityJSON\"] = activityLog;\n                        const id = rigSubmittedObject['id'];\n\n                        if(this.isShowConfig.isFormEditing){\n                            console.log(\"Rig Editing\");\n                            //Handle For Edit Mode\n                            if (await sendPATCHRequest(`rig_profile_view/${id}`, rigSubmittedObject)){\n                                showPopup([\"Rig Profile Edited Successfully!\"],'success');\n                                resetProfile(\"rig\"); \n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Rig Profile Edit Failed!\",'error']);\n                            };\n                            \n                        }else{\n                            console.log(\"Rig Adding\");\n                            //Handle For Add Mode\n                            delete rigSubmittedObject.id;\n                            if (await sendPOSTRequest(\"rig_profile_view\", rigSubmittedObject)){\n                                showPopup([\"Rig Created Successfully!\"],'success');\n                                resetProfile(\"rig\");\n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Rig Creation Failed!\"],'error');\n                            };\n                            \n                        }\n                    }\n                    break;\n\n            }\n\n        },\n        jumpToPage(page){\n            // this.getSensorProfileList();\n            try{\n                if(page != \"...\"){\n                    this.set('userInputtedData.batchCheckboxData', {});\n                    this.set('paginationSearchConfig.pagination.page', Number.parseInt(page))\n                    this.getSensorProfileList();\n                    this.clearBatchCBData();\n                }\n            }\n            catch(err){\n\n            }\n        },\n        search(){\n            this.getSensorProfileList();\n            this.clearBatchCBData();\n        },\n        resetPage(){\n            this.set(\"paginationSearchConfig.pagination.page\", 1);\n        },\n        resetSearch(){\n            this.set(\"paginationSearchConfig.searchObject\", {calibrationIDFilter:\"DESC\"});\n            const searchCalibrationIDComponent = document.getElementById('searchCalibrationID');\n            searchCalibrationIDComponent.value=null;\n            const searchJobIDComponent = document.getElementById('searchJobID');\n            searchJobIDComponent.value=null;\n            const searchSensorIDComponent = document.getElementById('searchSensorID');\n            searchSensorIDComponent.value=null;\n\n            this.getSensorProfileList();\n            this.clearBatchCBData();\n        },\n        async batchCertificate(isVisiblePopup){\n            await buildBatchCalibrationSheet(this, isVisiblePopup);\n        },\n        rowCheckbox(checkboxElementID) {\n            const cbElement = document.getElementById(checkboxElementID);\n            if(cbElement){\n                const currBatchCheckboxData = this.get(\"userInputtedData.batchCheckboxData\");\n                if(checkboxElementID === \"HEADER_CB\"){\n                    this.get(\"frontendData.calibrationInstrumentProfileList\").forEach((data, index)=>{\n                        const calibrationID = data['calibrationId']\n                        const batchCBElement = document.getElementById(`BATCH_CB_${calibrationID}`);\n                        if(cbElement.checked){\n                            batchCBElement.checked=true;\n                            currBatchCheckboxData[calibrationID] = {\"calibrationID\":calibrationID};\n                        }else{\n                            batchCBElement.checked=false;\n                            delete currBatchCheckboxData[calibrationID];\n                        }   \n                    });\n                }else{\n                    const calibrationID = checkboxElementID.split(\"_\")[2];\n                    if(cbElement.checked){\n                        currBatchCheckboxData[calibrationID] = {\"calibrationID\":calibrationID};\n                    }else{\n                        delete currBatchCheckboxData[calibrationID];\n                    }   \n                }\n                this.set('userInputtedData.batchCheckboxData', currBatchCheckboxData);\n            }\n        },\n        columnCycleOrdering(id){\n            const searchObject = this.get(\"paginationSearchConfig.searchObject\");\n            switch(id){\n                case \"calibrationIDOrdering\":\n                    const calibrationIDColumnComp = document.getElementById(\"calibrationIDColumn\");\n                    if(searchObject['calibrationIDOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.calibrationIDOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        calibrationIDColumnComp.textContent = \"Calibration ID v\";\n                    }else if(searchObject['calibrationIDOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.calibrationIDOrdering\", null);\n                        calibrationIDColumnComp.textContent = \"Calibration ID  \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.calibrationIDOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        calibrationIDColumnComp.textContent = \"Calibration ID ^\";\n                    };\n                    break;\n                case \"jobIDOrdering\":\n                    const jobIDColumnComp = document.getElementById(\"jobIDColumn\");\n                    if(searchObject['jobIDOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.jobIDOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        jobIDColumnComp.textContent = \"Job ID v\";\n                    }else if(searchObject['jobIDOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.jobIDOrdering\", null);\n                        jobIDColumnComp.textContent = \"Job ID  \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.jobIDOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        jobIDColumnComp.textContent = \"Job ID ^\";\n                    };\n                    break;\n                case \"calibrationDateOrdering\":\n                    const calibrationDateColumnComp = document.getElementById(\"calibrationDateColumn\");\n                    if(searchObject['calibrationDateOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.calibrationDateOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        calibrationDateColumnComp.textContent = \"Calibration Date v\";\n                    }else if(searchObject['calibrationDateOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.calibrationDateOrdering\", null);\n                        calibrationDateColumnComp.textContent = \"Calibration Date  \";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.calibrationDateOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        calibrationDateColumnComp.textContent = \"Calibration Date ^\";\n                    };\n                    break;\n                case \"sensorIDOrdering\":\n                    const sensorIDColumnComp = document.getElementById(\"sensorIDColumn\");\n                    if(searchObject['sensorIDOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.sensorIDOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        sensorIDColumnComp.textContent = \"Sensor ID v\";\n                    }else if(searchObject['sensorIDOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.sensorIDOrdering\", null);\n                        sensorIDColumnComp.textContent = \"Sensor ID  \";\n                    } else{\n                        this.set(\"paginationSearchConfig.searchObject.sensorIDOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        sensorIDColumnComp.textContent = \"Sensor ID ^\";\n                    };\n                    break;\n            }\n            this.getSensorProfileList();\n            this.clearBatchCBData();\n        }\n    },\n\n    didInsertElement() {\n        this._super(...arguments);\n    \n        const ctx = document.getElementById('myChart').getContext('2d');\n        this.chart = new Chart(ctx, {\n            type: 'line',\n            data: {\n                labels: [],\n                datasets: []\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: false,\n                scales: {\n                    x: {\n                        display: false, // Hide x-axis\n                    },\n                    y: {\n                        display: false, // Hide y-axis\n                    },\n                },\n                plugins: {\n                    legend: {\n                        display: true, // Ensure the legend is displayed\n                        position: 'top', // Position it at the top\n                        labels: {\n                            usePointStyle: true, // Enable custom icons in the legend\n                            generateLabels: (chart) => {\n                                // Customize the legend label icons to appear as lines\n                                return chart.data.datasets.map((dataset, index) => ({\n                                    text: dataset.label,\n                                    fillStyle: dataset.borderColor,\n                                    strokeStyle: dataset.borderColor,\n                                    lineWidth: dataset.borderWidth,\n                                    hidden: !chart.isDatasetVisible(index),\n                                    datasetIndex: index,\n                                }));\n                            },\n                            font: {\n                                size: 8, // Change the font size of the legend\n                                family: 'Arial', // Optional: Change the font family\n                                weight: 'bold', // Optional: Make the text bold\n                            },\n                            color: 'black', // Optional: Change the font color\n                            boxWidth: 8, // Match the size of the font (adjust as needed)\n                            boxHeight: 8, // Match the size of the font (adjust as needed)\n                            padding: 5, // Optional: Add padding around the legend labels\n                        },\n                    },\n                    tooltip: {\n                        enabled: false,\n                    },\n                },\n                elements: {\n                    point: {\n                        radius: 0, // Remove the circle markers\n                    },\n                },\n            },\n        });\n    }\n    \n    \n})\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport Chart from 'chart.js/auto';\nimport {showHelpNotificationBoard,checkFinalValidity,resetDataCompletedPackTypeProfile, destroyAndClearAnchorLiveView, initializeAndCreateAnchorLiveView, packValidationConclusion, buildRigActivityNotificationBoard, unloadLoadPopup , resetPackProgressionBar, updatePackProgressionBar, phase1TestMessage, updateRigActivity, buildAndGetDataFormat1, packProfileDetailBoard, roundToDecimalPlaces, sendGETRequest, convertDBDateToTableDate, updatePacksValidationStatusModule, buildRigNotificationNotificationBoard, getPacksValidationPhaseIISchematics, formatDateTimeFromInputField, hardResetModule,resetLog, sendPATCHRequest, getPacksValidationPhaseISchematics, validateAllForms, outgoingMessageLibrary, updateStepperPressureControlPanel, appendLiveLog, websocketReconnect, webSocketDisconnect, initializeConnection, resetDataSelectedPackTypeProfile, resetDataRigProfile,showPopup, resetProfile, sendPOSTRequest, packStatusLibrary, connectionStatusLibrary, generalStatusLibrary, getDataSetColor, getCurrentDateTime, sendDELETERequest } from '../../helpers/packs-validation-library';\nimport {assistiveToolTipLibrary } from '../../helpers/packs-validation-language-library';\n\n\nexport default Ember.Component.extend({\n    store: service(),\n    router: service(),\n    session: service(),    \n    userInputtedData:{\n        selectedRigProfile:null, \n        selectedPackType:null,\n        selectedPackData:{}, \n    },\n    frontendData:{\n        packsValidationProfileList : [],\n        rigNotificationData:{}, //{rigId:{data:{rig data}, messages:[]}}, The data object has been created on first render\n        manufacturedPacksData:[],\n        completedFullPacksData:[],\n    },\n    settingsConfig:{\n        tabs:{home:true, calibSensorList: false},\n        phaseENV:{phase:2,canCycle:false,isRepairing:false},\n        softwareVersion:\"Packs Validation v1.2.2\",\n        internalVersion:\"v1.0\",\n        APPROVEDRIGCATEGORIES:{stepper:\"Stepper\",pump: \"Pump\"},\n        chatLocked:{streamingTextBox:true, phaseITextbox:true, phaseIITextbox:true},\n        MAX_TIMEOUT_AWAITING_SAMPLING: 750,ASCENDING_CONST: \"ASC\",DESCENDING_CONST: \"DESC\",\n    },\n    paginationSearchConfig:{    \n        searchObject:{ validationIdOrdering:\"DESC\",packIdOrdering:null, phase1ValidationDateOrdering:null, phase2ValidationDateOrdering:null, rigIDOrdering:null},\n        pagination:{page:1, pageSize:15, totalPages:1},\n        paginationPageSizes : [5,15,25,50,100,150,200,250,500,750,1000,1500,2000],\n        packsValidationInstrumentProfilePaginationList : [],\n    },\n    packsValidationData:{\n        phase1UnloadData:[\n        // [45562,45549,44924,45050,45021,44975,45779,60349]\n    ],phase1LoadData:[\n        // [46001,49904,50152,50008,50069,49996,49854,27391]\n    ],phase2UnloadData1:[\n        // [30106,27379,27393,27373,27438,27394,27338,27412]\n    ],phase2LoadData1:[\n        // [46822,49938,50183,50045,50103,50032,49897,27410]\n    ],phase2LoadData2:[\n        // [53342,54880,55152,55065,54984,54835]\n    ],phase2UnloadData2:[\n        // [30652,29962,29978,30028,29980,29917]\n    ],phase1ValidityData:{unload:false,load:false,final:null, },\n    phase2ValidityData:{load1:false, unload1:false, unload2:false, load2:false,final:null}\n    },\n    packValidationIsSamplingData:{currentStage:null,isPhaseISampling:false, isPhaseIISampling:false},\n    isShowConfig:{\n        isShowRigForm:false,\n        isShowPackTypeForm:false,\n        isShowCommandConsole:false,\n        isShowLiveGraphs:false,\n        isFormEditing:false,\n        isShowPopupNotification:false,\n        isShowSettings:false,\n    },\n    dashboardStatusBarData: {\n        status:connectionStatusLibrary(602), \n        connection:connectionStatusLibrary(500), \n        calibration:packStatusLibrary(551),\n        current:generalStatusLibrary(600),\n        target:generalStatusLibrary(600)\n    },\n    formRigData: {},\n    formPackTypeData: {},\n    emergencyController: new AbortController(),\n    showIrretrivableWarning:true,\n    //For Reset \n    progressInterval: null,\n    isTriggered: false,\n    init() {\n        this._super(...arguments);\n        this.getPackProfileList();\n        //Auto hide  \"When you initiate execution....\" after 20 seconds\n        setTimeout(() => {\n            this.set(\"showIrretrivableWarning\", false)\n          }, 20000);\n        Ember.run.scheduleOnce('afterRender', this, async () => {\n            //Preload Pagination\n            const pageSizeComp = document.getElementById(\"page_size\");\n            pageSizeComp.value = this.get('paginationSearchConfig.pagination.pageSize');\n            //First render status bar\n            this.set('dashboardStatusBarData',{\n                status:generalStatusLibrary(602), \n                connection:connectionStatusLibrary(500), \n                calibration:packStatusLibrary(551),\n                current:generalStatusLibrary(600),\n                target:generalStatusLibrary(600)\n            })\n            //First render rigNotificationData object.\n            if(this.get(\"getRigList\")){\n                this.get(\"getRigList\").forEach((rigObj, index)=>{             \n                    this.set(\"frontendData.rigNotificationData\",{...this.get(\"frontendData.rigNotificationData\"), [rigObj['data']['rigID']]: {data:rigObj['data'], messages:[]} });\n    \n                });\n            } \n            //Pre-Fill Emplyoee & Phase # & Save company name & \n            const userProfile = this.get('session').data.authenticated['userProfile'];\n            const phaseIDLabelComponent = document.getElementById(\"phaseValidationLabel\");\n            phaseIDLabelComponent.style.fontSize = 'large';\n            phaseIDLabelComponent.style.fontStyle = 'italic'\n            phaseIDLabelComponent.style.marginLeft = '10px';\n            // console.log(userProfile);\n            if(userProfile){\n                //If the user profile is provided, manually apply associated_to_pack_validation_phase\n                if(userProfile['profile']['associated_to_pack_validation_phase'] == null){\n                    this.set('settingsConfig.tabs', { home: false, calibSensorList: true });\n                    const cycleViewComp = document.getElementById(\"cycleViewSection\");\n                    cycleViewComp.style.display = \"none\";\n                    const controlPanelComp = document.getElementById(\"controlPanel1\");\n                    controlPanelComp.style.display=\"none\";\n\n                    this.set(\"settingsConfig.phaseENV.canCycle\", false);\n                } else if(userProfile['profile']['associated_to_pack_validation_phase'] === 'both'){\n                    const cycleViewComp = document.getElementById(\"cycleViewSection\");\n                    cycleViewComp.style.display = \"block\";\n                    const controlPanelComp = document.getElementById(\"controlPanel1\");\n                    controlPanelComp.style.display=\"flex\";\n\n                    this.set(\"settingsConfig.phaseENV.canCycle\", true);\n                } else{\n                    const cycleViewComp = document.getElementById(\"cycleViewSection\");\n                    cycleViewComp.style.display = \"block\";\n                    const controlPanelComp = document.getElementById(\"controlPanel1\");\n                    controlPanelComp.style.display=\"flex\";\n\n                    this.set(\"settingsConfig.phaseENV.canCycle\", false);\n                }\n\n                //Extract & Save First & Last Name\n                if(userProfile['profile']['associated_to_pack_validation_phase'] == \"phaseII\"){\n                    console.log(`in check1:${userProfile['profile']['associated_to_pack_validation_phase']}`)\n                    phaseIDLabelComponent.textContent = \"(Phase 2)\";\n                    this.set(\"settingsConfig.phaseENV.phase\", 2);\n                    await this.getCompletedP1PackProfiles();\n                }else{\n                    // console.log(`in check2:${userProfile['profile']['associated_to_pack_validation_phase']}`)\n                    phaseIDLabelComponent.textContent = \"(Phase 1)\";\n                    this.set(\"settingsConfig.phaseENV.phase\", 1);\n                }\n            }\n            \n        });\n    },\n    buildValidationPopupContent:function(failedObjects){\n        this.set(\"isShowConfig.isShowPopupNotification\", true);\n        //Prepare for Parent Component\n        Ember.run.scheduleOnce('afterRender', this, () => {\n            const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n            if(popupContentSectionComponent){\n                popupContentSectionComponent.innerHTML = '';\n        \n                //Subtitle Section\n                const subtitleSection = document.createElement('div');\n                subtitleSection.style.fontSize = \"medium\";\n                subtitleSection.textContent = \"Execution Checklist:\"\n                popupContentSectionComponent.appendChild(subtitleSection);\n\n                //Fort loop add each fail section\n                for (const key in failedObjects) {\n                    if (Object.hasOwnProperty.call(failedObjects, key)) {\n                        const value = failedObjects[key];\n                        if(value.split(\"-\").length >= 3){\n                            //Actual Visual section, row by row\n                            const rigCheckerSection = document.createElement('div');\n                            rigCheckerSection.style.width = \"100%\";\n                            rigCheckerSection.style.display = \"flex\";\n                            rigCheckerSection.style.flexDirection = \"row\";\n                            rigCheckerSection.style.alignItems = \"center\";\n                            rigCheckerSection.style.paddingLeft = \"15px\";\n                            const rigLabelCheckerSection = document.createElement('div');\n                            rigLabelCheckerSection.textContent = `- ${value.split(\"-\")[0]}${value.split(\"-\")[1] == \"Label\" ? \"\" : \":\"}`;\n                            rigLabelCheckerSection.style.paddingLeft = value.split(\"-\")[3];\n                            rigLabelCheckerSection.style.paddingRight = \"10px\";\n                            rigLabelCheckerSection.style.fontSize = \"small\";\n                            rigCheckerSection.appendChild(rigLabelCheckerSection);\n                            const rigValueCheckerSection = document.createElement('div');\n                            rigValueCheckerSection.textContent = ` ${value.split(\"-\")[1] == \"Label\" ? \"\" : value.split(\"-\")[1]}`;\n                            rigValueCheckerSection.style.fontSize = \"small\";\n                            rigValueCheckerSection.style.color = `${value.split(\"-\")[2]}`;\n                            rigCheckerSection.appendChild(rigValueCheckerSection);\n                            popupContentSectionComponent.appendChild(rigCheckerSection);\n                        }\n                    }\n                }\n            }\n        });\n        \n    },\n    buildAnchorLiveViews:function(channels){\n        //Build Sections\n        const anchorSections = document.getElementById('anchorLiveViewSections');\n        if(anchorSections){\n            anchorSections.innerHTML = '';\n            for(let i=0;i<channels; i ++) {\n                const textDiv = document.createElement('div');\n                textDiv.style.fontSize = \"small\";\n                const borderSection = document.createElement('div');\n                borderSection.style.border = \"solid\";\n                borderSection.style.borderWidth = \"1px\";\n                borderSection.style.borderRadius = \"50px\";\n                borderSection.style.borderColor = \"lightgray\";\n                if(i == 0){\n                    textDiv.id = `T${i}`;\n                    textDiv.textContent = \"T:\";\n                }else{\n                    textDiv.id = `CH${i}`;\n                    textDiv.textContent = `CH${i+1}:`;\n                }\n                anchorSections.appendChild(textDiv);\n                anchorSections.appendChild(borderSection);\n            };\n        }\n    },\n    getCompletedP1PackProfiles:async function() {\n        console.log(\"called getCompletedP1PackProfiles\");\n        let data = []\n        let responseData = await sendGETRequest(`validation-packs-profiles/?completed=phaseI`);\n        if(responseData != false){\n            const responseArr = responseData['data'];\n            responseArr.forEach((element, i) => {\n                const attributes  = element['attributes'];\n                let title = `${attributes['packId']}`;\n                data.push({\n                    id: i + 1,\n                    dbID:attributes['packId'],\n                    data: {\n                        ...attributes,\n                        packID: attributes.packId,  //  packId → packID\n                        validationID: attributes.validationId, //  validationId → validationID\n                        rigID: attributes.rigId //  rigId → rigID\n                    },\n                    title:title\n                })\n            });\n        }\n        this.set('frontendData.manufacturedPacksData', data);\n    \n    },\n    getCompletedFullPackProfiles:async function() {\n        console.log(\"called getCompletedFullPackProfiles\");\n        let data = []\n        let responseData = await sendGETRequest(`validation-packs-profiles/?completed=both`);\n        if(responseData != false){\n            const responseArr = responseData['data'];\n            responseArr.forEach((element, i) => {\n                const attributes  = element['attributes'];\n                let title = `${attributes['packId']}`;\n                data.push({\n                    id: i + 1,\n                    dbID:attributes['packId'],\n                    data: {\n                        ...attributes,\n                        packID: attributes.packId,  //  packId → packID\n                        validationID: attributes.validationId, //  validationId → validationID\n                        rigID: attributes.rigId //  rigId → rigID\n                    },\n                    title:title\n                })\n            });\n        }\n        this.set('frontendData.completedFullPacksData', data);\n    \n    },\n    getTabKeys: Ember.computed(function(){\n        let data = ['home', 'calibSensorList'];\n        return data;\n    }),\n    getApprovedRigCategoryList: Ember.computed(function(){\n        let data = [];\n        for (const key in this.settingsConfig.APPROVEDRIGCATEGORIES) {\n          if (this.settingsConfig.APPROVEDRIGCATEGORIES.hasOwnProperty(key)) {\n            // console.log(key);\n            data.push({\n                id:key,\n                title:this.settingsConfig.APPROVEDRIGCATEGORIES[key]\n            });\n          }\n        }\n        return data;\n    }),\n    getPackProfileList: async function() {\n        let data = []\n        let payload = {\n            page: this.paginationSearchConfig.pagination.page,\n            page_size:this.paginationSearchConfig.pagination.pageSize,\n        };\n        if ('validationIdOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.validationIdOrdering') != null){\n            payload['validationID'] = this.get('paginationSearchConfig.searchObject')['validationIdOrdering'];\n        }\n        if ('packIdOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.packIdOrdering') != null){\n            payload['packID'] = this.get('paginationSearchConfig.searchObject')['packIdOrdering'];\n        }\n        if ('phase1ValidationDateOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.phase1ValidationDateOrdering') != null){\n            payload['phase1ValidationDate'] = this.get('paginationSearchConfig.searchObject')['phase1ValidationDateOrdering'];\n        }\n        if ('phase2ValidationDateOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.phase2ValidationDateOrdering') != null){\n            payload['phase2ValidationDate'] = this.get('paginationSearchConfig.searchObject')['phase2ValidationDateOrdering'];\n        }\n        if ('overruledOrdering' in this.get('paginationSearchConfig.searchObject') && this.get('paginationSearchConfig.searchObject.overruledOrdering') != null){\n            payload['overruled'] = this.get('paginationSearchConfig.searchObject')['overruledOrdering'];\n        }\n        if ('searchValidationID' in this.get('paginationSearchConfig.searchObject') ){\n            payload['searchValidationID'] = this.get('paginationSearchConfig.searchObject')['searchValidationID'];\n        }\n        if ('searchPackID' in this.get('paginationSearchConfig.searchObject')){\n            payload['searchPackID'] = this.get('paginationSearchConfig.searchObject')['searchPackID'];\n        }\n        if ('searchPackName' in this.get('paginationSearchConfig.searchObject')){\n            payload['searchPackName'] = this.get('paginationSearchConfig.searchObject')['searchPackName'];\n        }\n        if ('searchCompany' in this.get('paginationSearchConfig.searchObject')){\n            payload['searchCompany'] = this.get('paginationSearchConfig.searchObject')['searchCompany'];\n        }\n        let responseData = await sendGETRequest('validation-packs-profiles/', payload);\n\n        if (responseData) {\n            // Update the results and cache them\n            let data = [];\n            const rawSensorProfileList = responseData['data'];\n            rawSensorProfileList.forEach((element, index)=>{\n                element=element['attributes']\n                data.push(element);\n            })\n            this.set(\"frontendData.packsValidationProfileList\", data);\n            const metaPaginationData = responseData['meta'];\n            this.set(\"paginationSearchConfig.pagination.totalPages\", metaPaginationData['pagination']['total_pages']);\n            const totalRowsComp = document.getElementById(\"totalReadings\");\n            totalRowsComp.textContent = `Total: ${responseData['data'].length}`\n            this.updatePaginationList();\n        } else {\n            console.error('No data returned from search');\n        }\n        \n        return data\n    },\n    updatePaginationList: function () {\n        let range = [];\n        const maxPageToShow = 3; // Adjust this based on how many pages you want to show in the middle\n        const paginationObj = this.get('paginationSearchConfig.pagination');\n    \n        // Always include the first page\n        range.push(1);\n    \n        if (paginationObj['totalPages'] <= maxPageToShow + 2) {\n            // If total pages are small enough, show all pages\n            for (let i = 2; i <= paginationObj['totalPages']; i++) {\n                range.push(i);\n            }\n        } else if (paginationObj['page'] <= maxPageToShow) {\n            // Current page is within the first few pages\n            for (let i = 2; i <= maxPageToShow + 1; i++) {\n                range.push(i);\n            }\n            range.push('...');\n            range.push(paginationObj['totalPages']);\n        } else if (paginationObj['page'] >= paginationObj['totalPages'] - maxPageToShow + 1) {\n            // Current page is within the last few pages\n            range.push('...');\n            for (let i = paginationObj['totalPages'] - maxPageToShow; i <= paginationObj['totalPages']; i++) {\n                range.push(i);\n            }\n        } else {\n            // Current page is in the middle\n            range.push('...');\n            for (let i = paginationObj['page'] - 1; i <= paginationObj['page'] + 1; i++) {\n                range.push(i);\n            }\n            range.push('...');\n            range.push(paginationObj['totalPages']);\n        }\n        this.set('paginationSearchConfig.packsValidationInstrumentProfilePaginationList', range);\n    },\n    sendCommandFromConsoleTxtbox: async function (){\n        const cmdConsole = document.getElementById(\"cmdConsole\");\n        console.log(`cmd:${cmdConsole.value.trim()}`)\n        switch(cmdConsole.value.trim()){\n            case \"help\":\n                showHelpNotificationBoard(this);\n                break;\n            case \"getRigActivity\":\n                buildRigActivityNotificationBoard(this);\n                cmdConsole.value = null;\n                break;\n            case \"getDataTranslatorVersion\":\n                const dataTranslatorVersion = this.get(\"settingsConfig.dataTranslatorVersion\");\n                showPopup([`Currently using data translator:${dataTranslatorVersion}`], \"warning\", 5);\n                cmdConsole.value = null;\n                break;\n            default:\n                const [cmd, value] = cmdConsole.value.trim().split(' ');\n                await outgoingMessageLibrary(this,cmd ? cmd : \"\", value ? value : \"\");\n                cmdConsole.value = null;\n                break;\n        }\n        \n    },\n    getPaginationPageSizesList: Ember.computed(function() {\n        let pageSizeList = this.get(\"paginationSearchConfig.paginationPageSizes\");\n        let data = []\n        pageSizeList.forEach((pageSize, i) => {\n            data.push({\n                id:pageSize,\n                title:`${pageSize}`\n            })\n        });\n        return data\n    }),\n    getRigList: Ember.computed('rigProfileList',function() {\n        let rigList = this.get(\"rigProfileList\");\n        let data = []\n        if(rigList){\n            rigList.forEach((element, i) => {\n                data.push({\n                    id:i + 1,\n                    dbID:element.id,\n                    title:`${element.rigName}-${element.rigIP}`,\n                    data:element\n                })\n            });\n        }\n        return data\n    }),\n    getTypeList: Ember.computed('packTypeList',function() {\n        let packTypeList = this.get(\"packTypeList\");\n        let data = []\n        if(packTypeList){\n            packTypeList.forEach((element, i) => {\n                let title = `${element.packType}/${element.coilsProfile.totalCoilsCount - 1}/${element.min} to ${element.max}`;\n                data.push({\n                    id: i + 1,\n                    dbID:element.id,\n                    data:element,\n                    title:title\n                })\n            });\n        }\n        // console.log(data)\n        return data\n    }),\n    getSensorTypeList: Ember.computed('sensorTypeList',function() {\n        let sensorTypeList = this.get(\"sensorTypeList\");\n        // console.log(\"sensor types\");\n        // console.log(sensorTypeList);\n        let data = []\n        if(sensorTypeList){\n            sensorTypeList.forEach((element, i) => {\n                let title = `${element.typeValue}`;\n                data.push({\n                    id: i + 1,\n                    dbID:element.id,\n                    data:element,\n                    title:title\n                })\n            });\n        }\n        // console.log(data)\n        return data\n    }),\n    packTypeConfigButton:Ember.observer(\"isShowConfig.isShowPackTypeForm\",function(){\n        console.log(\"user clicked clib button \");\n        if(this.get(\"isShowConfig.isShowPackTypeForm\")){\n            this.set(\"formPackTypeData\", {});\n        }\n    }),\n    rigConfigButton:Ember.observer(\"isShowConfig.isShowRigForm\",function(){\n        console.log(\"user clicked rig button \");\n        if(this.get(\"isShowConfig.isShowRigForm\")){\n            this.set(\"formRigData\", {});\n        }\n    }),\n    selectedPackTypeDPCalibFormObserver:Ember.observer(\"selectedPackTypeDPCalibForm\",function(){\n        let selectedPackTypeFormTypeData = null;\n        //Components for Calibration Form\n        const minComp = document.getElementById('min');\n        const maxComp = document.getElementById('max');\n        const phase1LoadMinRangeComp = document.getElementById('phase1LoadMinRange');\n        const phase1LoadMaxRangeComp = document.getElementById('phase1LoadMaxRange');\n        const phase1UnloadMinRangeComp = document.getElementById('phase1UnloadMinRange');\n        const phase1UnloadMaxRangeComp = document.getElementById('phase1UnloadMaxRange');\n        const phase2LoadMinRange2Comp = document.getElementById('phase2LoadMinRange2');\n        const phase2LoadMaxRange2Comp = document.getElementById('phase2LoadMaxRange2');\n        const phase2UnloadMinRange2Comp = document.getElementById('phase2UnloadMinRange2');\n        const phase2UnloadMaxRange2Comp = document.getElementById('phase2UnloadMaxRange2');\n        const acceptedUnloadVarianceComp = document.getElementById('acceptedUnloadVariance');\n        const acceptedLoadVarianceComp = document.getElementById('acceptedLoadVariance');\n        const checkpointDelayComp = document.getElementById('checkpointDelay');\n        const activeCoilsCountComp = document.getElementById('activeCoilsCount');\n        const totalCoilsCountComp = document.getElementById('totalCoilsCount');\n        const referenceUnfilledCoilsPositionsComp = document.getElementById('referenceUnfilledCoilsPositions');\n        const generalCoilsPositionsComp = document.getElementById('generalCoilsPositions');\n        const packTypeComp = document.getElementById('packType');\n        if(this.get(\"selectedPackTypeDPCalibForm\") === '0'){\n            //Handle pre-loading selected calib profile data into calib form TBs\n            minComp.value ='';\n            maxComp.value ='';\n            phase1LoadMinRangeComp.value = 0;\n            phase1LoadMaxRangeComp.value = 0;\n            phase1UnloadMinRangeComp.value = 0;\n            phase1UnloadMaxRangeComp.value = 0;\n            phase2LoadMinRange2Comp.value = 0;\n            phase2LoadMaxRange2Comp.value = 0;\n            phase2UnloadMinRange2Comp.value = 0;\n            phase2UnloadMaxRange2Comp.value = 0;\n            acceptedUnloadVarianceComp.value = 0;\n            acceptedLoadVarianceComp.value = 0; \n            checkpointDelayComp.value = 0; \n            activeCoilsCountComp.value = 0; \n            totalCoilsCountComp.value = 0; \n            referenceUnfilledCoilsPositionsComp.value = ''; \n            generalCoilsPositionsComp.value = ''; \n            packTypeComp.value = 0;\n            this.set(\"formPackTypeData\",{})\n        }else{\n            const packTypeList = this.get(\"getTypeList\");\n            if(packTypeList){\n                packTypeList.forEach((packTypeProf, i)=>{\n                    if((i+1).toString() === this.get(\"selectedPackTypeDPCalibForm\")){\n                        selectedPackTypeFormTypeData = packTypeProf['data'];\n                        console.log(\"packtype form, selected:\");\n                        // console.log(packTypeProf);\n                        console.log(packTypeProf['data']);\n                        //Handle pre-loading selected calib profile data into calib form TBs\n                        minComp.value=packTypeProf['data']['min'];\n                        maxComp.value=packTypeProf['data']['max'];\n                        phase1LoadMinRangeComp.value = packTypeProf['data']['phase1LoadMinRange'];\n                        phase1LoadMaxRangeComp.value = packTypeProf['data']['phase1LoadMaxRange'];\n                        phase1UnloadMinRangeComp.value = packTypeProf['data']['phase1UnloadMinRange'];\n                        phase1UnloadMaxRangeComp.value = packTypeProf['data']['phase1UnloadMaxRange'];\n                        phase2LoadMinRange2Comp.value = packTypeProf['data']['phase2LoadMinRange2'];\n                        phase2LoadMaxRange2Comp.value = packTypeProf['data']['phase2LoadMaxRange2'];\n                        phase2UnloadMinRange2Comp.value = packTypeProf['data']['phase2UnloadMinRange2'];\n                        phase2UnloadMaxRange2Comp.value = packTypeProf['data']['phase2UnloadMaxRange2'];\n                        acceptedUnloadVarianceComp.value = packTypeProf['data']['acceptedUnloadVariance'];\n                        acceptedLoadVarianceComp.value = packTypeProf['data']['acceptedLoadVariance'];\n                        \n                        checkpointDelayComp.value = packTypeProf['data']['checkpointDelay'];\n                        activeCoilsCountComp.value                  =    packTypeProf['data']['coilsProfile']['activeCoilsCount']; \n                        totalCoilsCountComp.value                   =    packTypeProf['data']['coilsProfile']['totalCoilsCount'] ; \n                        referenceUnfilledCoilsPositionsComp.value   =    packTypeProf['data']['coilsProfile']['referenceUnfilledCoilsPositions'].join(','); \n                        generalCoilsPositionsComp.value             =    packTypeProf['data']['coilsProfile']['generalCoilsPositions'].join(',')          ; \n\n\n                        const sensorTypeList = this.get(\"sensorTypeList\");\n                        let packTypeName = \"\";\n                        if(sensorTypeList){\n                            sensorTypeList.forEach((sensorTypeObj, i)=>{\n                                if(packTypeProf['data']['packType'] === sensorTypeObj.typeValue){\n                                    \n                                    packTypeComp.value = sensorTypeObj.id.toString();\n                                    packTypeName = sensorTypeObj.typeValue;\n                                }\n                            });\n                        }\n                        this.set(\"formPackTypeData\",{\n                            id:packTypeProf['data']['id'],\n                            coilsNumber:packTypeProf['data']['coilsNumber'],\n                            channels:packTypeProf['data']['channels'],\n                            min:packTypeProf['data']['min'],\n                            max:packTypeProf['data']['max'],\n                            phase1LoadMinRange:packTypeProf['data']['phase1LoadMinRange'],\n                            phase1LoadMaxRange:packTypeProf['data']['phase1LoadMaxRange'],\n                            phase1UnloadMinRange:packTypeProf['data']['phase1UnloadMinRange'],\n                            phase1UnloadMaxRange:packTypeProf['data']['phase1UnloadMaxRange'],\n                            phase2LoadMinRange2:packTypeProf['data']['phase2LoadMinRange2'],\n                            phase2LoadMaxRange2:packTypeProf['data']['phase2LoadMaxRange2'],\n                            phase2UnloadMinRange2:packTypeProf['data']['phase2UnloadMinRange2'],\n                            phase2UnloadMaxRange2:packTypeProf['data']['phase2UnloadMaxRange2'],\n                            acceptedUnloadVariance:packTypeProf['data']['acceptedUnloadVariance'],\n                            acceptedLoadVariance:packTypeProf['data']['acceptedLoadVariance'],\n                            packType: packTypeName,\n                            checkpointDelay:            packTypeProf['data']['checkpointDelay'] ? packTypeProf['data']['checkpointDelay'] : 0,\n                            activeCoilsCount:           packTypeProf['data']['coilsProfile'] != null && packTypeProf['data']['coilsProfile']['activeCoilsCount'] != null ?          packTypeProf['data']['coilsProfile']['activeCoilsCount'] : 0,\n                            totalCoilsCount:            packTypeProf['data']['coilsProfile'] != null && packTypeProf['data']['coilsProfile']['totalCoilsCount'] != null ?           packTypeProf['data']['coilsProfile']['totalCoilsCount'] : 0,\n                            referenceUnfilledCoilsPositions:    packTypeProf['data']['coilsProfile'] != null && packTypeProf['data']['coilsProfile']['referenceUnfilledCoilsPositions'] != null ?   packTypeProf['data']['coilsProfile']['referenceUnfilledCoilsPositions'].join(',') : '',\n                            generalCoilsPositions:      packTypeProf['data']['coilsProfile'] != null && packTypeProf['data']['coilsProfile']['generalCoilsPositions'] != null ?     packTypeProf['data']['coilsProfile']['generalCoilsPositions'].join(',') : ''\n                        })\n                    }\n                });\n            }\n            if(selectedPackTypeFormTypeData == null){\n                showPopup([\"Selected pack type profile cannot be found\"], 'error');\n            }\n        }\n    }),\n    rigProfileRigFormLoad:Ember.observer(\"selectedRigDPRigForm\",function(){\n        let selectedRigFormRigData = null;\n        console.log(this.get(\"selectedRigDPRigForm\"));\n        //Components for Calibration Form\n        const rigIPComp = document.getElementById('rigIP');\n        const rigNameComp = document.getElementById('rigName');\n        const rigCategoryComp = document.getElementById('rigCategory');\n        const rigReferenceIDComp = document.getElementById('rigReferenceID');\n        const rigReferenceCalibrationValueComp = document.getElementById('rigReferenceCalibrationValue');\n        const rigReferenceCalibrationDateComp = document.getElementById('rigReferenceCalibrationDate');\n        if(this.get(\"selectedRigDPRigForm\") === '0'){\n            console.log(this.get(\"selectedRigDPRigForm\"));\n            //Handle pre-loading selected calib profile data into calib form TBs\n            rigIPComp.value       ='';\n            rigNameComp.value     ='';\n            rigCategoryComp.value ='';\n            rigReferenceIDComp.value ='';\n            rigReferenceCalibrationValueComp.value ='';\n            rigReferenceCalibrationDateComp.value ='';\n            this.set(\"formRigData\",{})\n        }else{\n\n            const rigData = this.get(\"getRigList\");\n            if(rigData){\n                rigData.forEach((rigProf, i)=>{\n                    if((i+1).toString() === this.get(\"selectedRigDPRigForm\")){\n                        selectedRigFormRigData = rigProf['data'];\n                        console.log(\"rig form, selected:\");\n                        console.log(rigProf);\n                        console.log(rigProf['data']);\n                        const [date, time] = rigProf['data']['rigReferenceCalibrationDate'].split(\" \");\n                        //Handle pre-loading selected calib profile data into calib form TBs\n                        rigIPComp.value=rigProf['data']['rigIP'];\n                        rigNameComp.value=rigProf['data']['rigName'];\n                        rigCategoryComp.value=rigProf['data']['rigCategory'].toLowerCase();\n                        rigReferenceIDComp.value=rigProf['data']['rigReferenceID'];\n                        rigReferenceCalibrationValueComp.value=rigProf['data']['rigReferenceCalibrationValue'];\n                        rigReferenceCalibrationDateComp.value=`${date}T${time}`;\n                        this.set(\"formRigData\",{ \n                            id:rigProf.dbID,\n                            rigIP:rigProf['data']['rigIP'],\n                            rigName:rigProf['data']['rigName'],\n                            rigCategory:rigProf['data']['rigCategory'],\n                            creationEmployee:rigProf['data']['creationEmployee'],\n                            rigReferenceID:rigProf['data']['rigReferenceID'],\n                            rigReferenceCalibrationValue:rigProf['data']['rigReferenceCalibrationValue'],\n                            rigReferenceCalibrationDate:rigProf['data']['rigReferenceCalibrationDate'],\n                        })\n                    }\n                });\n            }\n            if(selectedRigFormRigData == null){\n                showPopup([\"Selected rig profile cannot be found\"], 'error');\n            }\n        }\n    }),\n    packProfileLoadPhaseI:Ember.observer(\"selectedPackTypeDP\",function(){\n        if(this.get(\"selectedPackTypeDP\") === \"0\"){\n            resetDataSelectedPackTypeProfile(this);\n            resetPackProgressionBar(this);\n        }else{\n            const packTypeData = this.get(\"getTypeList\");\n            if(packTypeData){\n                packTypeData.forEach((typeProf, i)=>{\n                    if((i+1).toString() === this.get(\"selectedPackTypeDP\")){\n                        this.set(\"userInputtedData.selectedPackType\", typeProf);\n                        console.log(this.get('userInputtedData.selectedPackType'))\n                    }\n                });\n            }\n            const selectedProfile = this.get(\"userInputtedData.selectedPackType\")['data'];\n            //Show pack progress bar \n            const progressBarSection = document.getElementById('packsProgressionViewSection');   \n            const progressValueText = document.getElementById('packsProgressionValue');\n            if(progressBarSection != null && progressValueText != null){ \n                progressBarSection.style.display=\"flex\";\n                progressValueText.textContent = ``;\n            }\n            //Initialize Anchor Live View Section\n            initializeAndCreateAnchorLiveView(this, Number.parseInt(selectedProfile.coilsProfile.totalCoilsCount)+1);\n\n        }\n        this.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n        \n    }),\n    packProfileLoadPhaseII:Ember.observer(\"manufacturedPackProfileDP\",async function(){\n        if(this.get(\"manufacturedPackProfileDP\") === \"0\"){\n            resetDataCompletedPackTypeProfile(this);\n            resetPackProgressionBar(this);\n        }else{\n            const manufacturedPacksData = this.get(\"frontendData.manufacturedPacksData\");\n            if(manufacturedPacksData){\n                manufacturedPacksData.forEach((typeProf, i)=>{\n                    if((i+1).toString() === this.get(\"manufacturedPackProfileDP\")){\n                        this.set(\"manufacturedPackType\", typeProf);\n                        console.log(this.get('manufacturedPackType'))\n                    }\n                });\n            }\n            const selectedProfile = this.get(\"manufacturedPackType\")['data'];\n            let responseData = await sendGETRequest(`validation_pack_type/${selectedProfile['packType']}/`);\n            if(responseData != false){\n                const responseArr = responseData['data'];\n                console.log(\"packProfileLoadPhaseII observer packtyp obj\")\n                const manufacturedPackType = this.get('manufacturedPackType');\n                manufacturedPackType['data']['packTypeObj'] = responseArr['attributes']\n                console.log(manufacturedPackType)\n                this.set(\"manufacturedPackType\", manufacturedPackType);\n            }\n            //Show pack progress bar \n            const progressBarSection = document.getElementById('packsProgressionViewSection');   \n            const progressValueText = document.getElementById('packsProgressionValue');\n            if(progressBarSection != null && progressValueText != null){ \n                progressBarSection.style.display=\"flex\";\n                progressValueText.textContent = ``;\n            }\n\n            //Initialize Anchor Live View Section\n            initializeAndCreateAnchorLiveView(this, Number.parseInt( selectedProfile.packTypeObj.coilsProfile.totalCoilsCount) + 1);\n        }\n        this.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n    }),\n    packProfileLoadCompleted:Ember.observer(\"completedPackProfileDP\",function(){\n        if(this.get(\"completedPackProfileDP\") === \"0\"){\n            resetDataSelectedPackTypeProfile(this);\n            resetPackProgressionBar(this);\n        }else{\n            const completedPacksData = this.get(\"frontendData.completedFullPacksData\");\n            if(completedPacksData){\n                completedPacksData.forEach((typeProf, i)=>{\n                    if((i+1).toString() === this.get(\"completedPackProfileDP\")){\n                        this.set(\"completedPackProfile\", typeProf);\n                    }\n                });\n            }\n            console.log(this.get(\"completedPackProfile\"));\n            const packTypeData = this.get(\"getTypeList\");\n            if(packTypeData){\n                packTypeData.forEach((typeProf, i)=>{\n                    console.log(typeProf['data']['id'])\n                    if(typeProf['data']['id'] == this.get(\"completedPackProfile\")['data']['packType']){\n                        console.log(typeProf);\n                        this.set(\"userInputtedData.selectedPackType\", typeProf);\n                    }\n                });\n            }\n            const selectedProfile = this.get(\"userInputtedData.selectedPackType\")['data'];\n            //Show pack progress bar \n            const progressBarSection = document.getElementById('packsProgressionViewSection');   \n            const progressValueText = document.getElementById('packsProgressionValue');\n            if(progressBarSection != null && progressValueText != null){ \n                progressBarSection.style.display=\"flex\";\n                progressValueText.textContent = ``;\n            }\n\n            //Initialize Anchor Live View Section\n            initializeAndCreateAnchorLiveView(this, Number.parseInt(selectedProfile.coilsProfile.activeCoilsCount)+1);\n        }\n        this.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n    }),\n    rigProfileLoad:Ember.observer(\"selectedRigDP\",function(){\n        // console.log('triggered rigProfileLoad');\n        webSocketDisconnect(this);\n        this.set(\"userInputtedData.selectedRigProfile\", null);\n        if(this.get(\"selectedRigDP\") === \"0\"){\n            webSocketDisconnect(this);\n        }else{\n            const rigData = this.get(\"getRigList\");\n            if(rigData){\n                rigData.forEach((rig,i)=>{\n                    if((i + 1).toString() === this.get(\"selectedRigDP\")){\n                        this.set(\"userInputtedData.selectedRigProfile\", rig);\n                    }\n                });\n            }\n            if(this.get(\"userInputtedData.selectedRigProfile\") != null){\n                // phase1TestMessage(this);\n                initializeConnection(this,this.get(\"userInputtedData.selectedRigProfile\")['data']['rigIP']);\n                // updateStepperPressureControlPanel(this, this.get(\"userInputtedData.selectedRigProfile\")['data']['rigCategory']);\n            }\n        } \n    }),\n    dashboardStatusBarObserver: Ember.observer(\n        \"dashboardStatusBarData.status\",\n        \"dashboardStatusBarData.connection\",\n        \"dashboardStatusBarData.calibration\",\n        function () {\n            updateRigActivity(this);\n            // console.log(\"refresh dashboard status bar!\");\n            const statusObj = this.get(\"dashboardStatusBarData\");\n            const statusComponent = document.getElementById(\"statusStatus\");\n            const connectionComponent = document.getElementById(\"connectionStatus\");\n            const calibrationComponent = document.getElementById(\"calibrationStatus\");\n            if(statusComponent && connectionComponent && calibrationComponent ){\n                statusComponent.style.color = statusObj['status']['color'];\n                statusComponent.textContent = statusObj['status']['value'];\n                connectionComponent.style.color = statusObj['connection']['color'];\n                connectionComponent.textContent = statusObj['connection']['value'];\n                calibrationComponent.style.color = statusObj['calibration']['color'];\n                calibrationComponent.textContent = statusObj['calibration']['value'];\n            }\n        }\n    ),\n    phaseENVObeserver1: Ember.observer(\n        \"settingsConfig.phaseENV.phase\",\n        function () {\n            const phaseIDLabelComponent = document.getElementById(\"phaseValidationLabel\");\n            phaseIDLabelComponent.style.fontSize = 'large';\n            phaseIDLabelComponent.style.fontStyle = 'italic'\n            phaseIDLabelComponent.style.marginLeft = '10px';\n            const currPhase = this.get('settingsConfig.phaseENV.phase');\n            // console.log(`currPhase:${currPhase}`)\n            if(currPhase === 1){\n                phaseIDLabelComponent.textContent = \"(Phase 1)\";\n            }else{\n                phaseIDLabelComponent.textContent = \"(Phase 2)\";\n                this.getCompletedP1PackProfiles();\n            }\n        }\n    ),\n    actions: {\n        startVerificationPress(elementID, holdDuration, mode) {\n            try{\n\n                this.set('isTriggered', false);\n                \n                const button = document.getElementById(elementID);\n                button.textContent=`0%`;\n                const startTime = Date.now();\n                this.set(\n                    'progressInterval',\n                    setInterval(() => {\n                    const elapsedTime = Date.now() - startTime; \n                    const progress = Math.min((elapsedTime / holdDuration) * 100, 100); // Calculate progress\n                    button.textContent=`${progress.toFixed(1)}%`;\n                \n                    if (progress === 100) { \n                        this.set('isTriggered', true);\n                        this.send('triggerAction',elementID, mode); \n                        clearInterval(this.progressInterval); \n                    }\n                    }, 50) \n                );\n            }catch(err){\n                console.log(`Error in startVerificationPress: ${err.message}`);\n                \n            }\n        },\n        cancelVerificationPress(elementID, mode) {\n            if (!this.isTriggered) {\n                const button = document.getElementById(elementID);\n                button.textContent=mode;\n\n                clearInterval(this.progressInterval); // Stop progress\n            }\n        },\n        triggerAction(elementID, mode) {\n            // Perform the action after hold duration\n            const button = document.getElementById(elementID);\n            button.textContent=mode;\n            console.log(`triggerAction, elementID:${elementID}`);\n            switch(elementID){\n                case \"resetCalibrationButton\":\n                    this.get(\"emergencyController\").abort();\n                    resetLog(this,'live');\n                    resetLog(this,'phaseI');\n                    resetLog(this,'phaseII');\n                    if (this.chart) {\n                        this.chart.data.labels = [];\n                        this.chart.data.datasets = [];\n                        this.chart.update();\n                    }\n                    this.set('emergencyController', new AbortController());\n                    updatePacksValidationStatusModule(this, 551);\n                    webSocketDisconnect(this);\n                    hardResetModule(this)\n                    break;\n                case \"stopCalibrationButton\":\n                    this.get(\"emergencyController\").abort();\n                    // updatePacksValidationStatusModule(this, 551);\n                    break;\n                case \"phaseIButton\":\n                    if(JSON.stringify(this.get(\"dashboardStatusBarData\")['status']) === JSON.stringify(generalStatusLibrary(603))){\n                        getPacksValidationPhaseISchematics(this, null);\n                    }\n                    else{\n                        showPopup([\"Please validate!\"], 'warning', 3);\n                    }\n                    break;\n                case \"phaseIIButton\":\n                    if(JSON.stringify(this.get(\"dashboardStatusBarData\")['status']) === JSON.stringify(generalStatusLibrary(603))){\n\n                        getPacksValidationPhaseIISchematics(this, null)\n                    }\n                    else{\n                        showPopup([\"Please validate!\"], 'warning', 3);\n                    }\n                    break;\n            }\n        },\n        assistiveTooltip(type){\n            return showPopup(assistiveToolTipLibrary(type).split(\"\\n\"), \"notification\",5);\n        },\n        reconnectWebSocket(){\n            websocketReconnect(this);\n        },\n        viewPacksData(){\n            if(JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(packStatusLibrary(551))){\n                const selectedRigProfile = this.get('userInputtedData.selectedRigProfile');\n                const selectedPackType = this.get('userInputtedData.selectedPackType');\n                const selectedPackData = this.get(\"userInputtedData.selectedPackData\");\n                if(selectedRigProfile != null && selectedPackType != null && JSON.stringify(selectedPackData) != \"{}\"){\n                    const data = buildAndGetDataFormat1(this);\n                    let sensorData = {...data['sensorProfileData'],\n                        type:selectedPackType['type'],\n                        rigReferenceID: selectedRigProfile['data']['rigReferenceID'],\n                        rigReferenceCalibrationValue: selectedRigProfile['data']['rigReferenceCalibrationValue'],\n                        rigReferenceCalibrationDate: selectedRigProfile['data']['rigReferenceCalibrationDate'],\n                        minLimit: selectedPackType['data']['minLimit'],\n                        maxLimit: selectedPackType['data']['maxLimit'],\n                    }\n                    packProfileDetailBoard(this, false, \n                        sensorData, data['packsValidationData']['phaseILookUpArray'], \n                                    data['packsValidationData']['phaseIICalibratedDataArray'], \n                                    data['packsValidationData']['phaseIICalibratedCurrentArray'], \n                                    data['packsValidationData']['phaseIICalibratedSlopeArray'], \n                                    data['packsValidationData']['phaseIICalibratedOffsetArray']);\n                }\n\n            }else{\n                showPopup([\"Cannot open because calibration status is not Idle\"], 'warning', 3);\n            }\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        viewPhaseIICalibratedData(){\n            if(JSON.stringify(this.get(\"dashboardStatusBarData\")['calibration']) === JSON.stringify(packStatusLibrary(551))){\n                // buildPhaseIIConclusionNotificationBoard(this);\n            }else{\n                showPopup([\"Cannot open because calibration status is not Idle\"], 'warning', 3);\n            }\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        cycleView(){\n            // Toggle states: switch between home and calibSensorList\n            if (this.settingsConfig.tabs.home) {\n              this.set('settingsConfig.tabs', { home: false, calibSensorList: true });\n            } else {\n              this.set('settingsConfig.tabs', { home: true, calibSensorList: false });\n            }\n\n        },\n        viewRigNotifications(){\n            buildRigNotificationNotificationBoard(this);\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        viewPhaseIIConclusionCalibrationSheet(){\n            // buildPhaseIIConclusionNotificationBoard(this)\n        },\n        async getPackProfile(validationID){\n\n            let responseData = await sendGETRequest(`validation_pack_profile/${validationID}/`);\n            if(responseData != false){\n                const data = responseData['data'];\n                const packProfile = data['pack_profile'];\n                const rigProfile = data['rig_profile'];\n                const packType = data['pack_type'];\n                const packData = data['pack_data'];\n\n                packProfileDetailBoard(this, true, packProfile, rigProfile, packType, packData);\n                // console.log(\"you selected\") \n                // console.log(data);\n            }\n        },\n        scrollTop() {\n            window.scrollTo({\n                top: 0,\n                behavior: 'smooth', // Adds smooth scrolling\n            });\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        scrollDashboard(){\n            const element = document.getElementById(\"dashboardTitle\");\n            if (element) {\n                element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n                this.set('isShowConfig.isShowSettings', false);\n            }\n        },\n        copyChatToClipboard(elementID) {\n            console.log(\"copyChatToClipboard\");\n            const chatBox = document.getElementById(elementID);\n            if (chatBox) {\n                const range = document.createRange();\n                range.selectNodeContents(chatBox);\n                const selection = window.getSelection();\n                selection.removeAllRanges();\n                selection.addRange(range);\n                document.execCommand('copy');\n                // alert('Chat copied to clipboard!');\n            }\n        },\n        unlockChatScroll(elementID) {\n            console.log(\"unlockChatScroll\");\n            this.set(`settingsConfig.chatLocked.${elementID}`, false);\n            // alert('Chat scrolling unlocked!');\n        },\n        lockChatScroll(elementID) {\n            console.log(\"lockChatScroll\");\n            this.set(`settingsConfig.chatLocked.${elementID}`, true);\n            const chatBox = document.getElementById(elementID);\n            if (chatBox) {\n                chatBox.scrollTop = chatBox.scrollHeight;\n            }\n            // alert('Chat scrolling locked!');\n        },\n        showLiveGraphs(){\n            const curr = this.get(\"isShowConfig.isShowLiveGraphs\");\n            this.set('isShowConfig.isShowLiveGraphs',!curr);\n        },\n        showCommandConsole(){\n            const curr = this.get(\"isShowConfig.isShowCommandConsole\");\n            this.set('isShowConfig.isShowCommandConsole',!curr);\n\n        },\n        async sendCommand(){\n            await this.sendCommandFromConsoleTxtbox();\n        },\n        async onKeyDown(event){\n            if (event.key === 'Enter'){\n                await this.sendCommandFromConsoleTxtbox();\n            }\n        },\n        exportChatToFile(elementID) {\n            console.log(\"copyChatToClipboard\");\n            const chatBox = document.getElementById(elementID);\n            if (chatBox) {\n                const chatContent = chatBox.innerText;\n                const blob = new Blob([chatContent], { type: 'text/plain;charset=utf-8' });\n                const downloadLink = document.createElement('a');\n                downloadLink.href = window.URL.createObjectURL(blob);\n                downloadLink.download = 'chat-log.txt';\n                downloadLink.click();\n            }\n        },\n        async controlPanel(type, value){\n            // console.log(`WS+JOG=${value},1`);\n            await outgoingMessageLibrary(this, type, value);\n        },\n        closeNotificationPopup(){\n            const notificationPopupContentBody = document.getElementById('notificationPopupContentBody');\n            notificationPopupContentBody.innerHTML=\"\";\n            this.set('isShowConfig.isShowPopupNotification', false);\n\n        },\n        cycleVisualSettings(){\n            this.set('isShowConfig.isShowSettings', !this.get(\"isShowConfig.isShowSettings\"));\n        },\n        cycleIsRepair(){\n            this.set(\"settingsConfig.phaseENV.isRepairing\", !this.get('settingsConfig.phaseENV.isRepairing'));\n            if(this.get('settingsConfig.phaseENV.isRepairing')){\n                this.getCompletedFullPackProfiles();\n            }\n            console.log(this.get('settingsConfig.phaseENV.isRepairing'));\n            resetDataSelectedPackTypeProfile(this);\n            resetPackProgressionBar(this);\n        },\n        validatePriorCalibration(){\n            validateAllForms(this);\n        },\n        updateRigFormData(event) {\n            const key = event.target.id;\n            const value = event.target.value;\n            // console.log(`key:${key}, value:${value}`);\n            if (key === 'rigCategory'){\n                this.set(`formRigData.${key}`, value.toUpperCase()); \n            }else if (key === 'rigReferenceCalibrationDate'){\n                this.set(`formRigData.${key}`, formatDateTimeFromInputField(value)); \n            }\n            else{\n                this.set(`formRigData.${key}`, value); \n\n            }\n          console.log(this.get(\"formRigData\"));\n        },\n        updatePackTypeFormData(event) {\n            try{\n\n                const key = event.target.id;\n                const value = event.target.value;\n                console.log(`type:${key}, value:${value}`);\n                if(key===\"checkpointPositions\"){   \n                    try{\n                        \n                        this.set(`formPackTypeData.${key}`, value.split(','));\n                    }catch(err){\n                        showPopup(['Checkpoint Positions is in incorrect syntax.\\nPlease follow this sample:0.00,8.33,25.00,50.00,75.00,100.00,125.00'],'error');\n                    }\n                }else if (key === \"packType\"){\n                    const sensorTypeList = this.get(\"sensorTypeList\");\n                    const index = Number.parseInt(value) - 1;\n                    sensorTypeList.forEach((typeObj, i)=>{\n                        if(i === index){\n                            this.set(`formPackTypeData.packType`, typeObj.typeValue);\n                            console.log(`you selected sensor type : ${typeObj.typeValue}`);\n                        }\n                    });\n                \n                }\n                else{\n                    this.set(`formPackTypeData.${key}`, value);\n                    \n                }\n            }catch(err){\n                console.log(`Error in updatePackTypeFormData: ${err.message}`);\n                \n            }\n        },\n        updatePackFormData(event) {\n            const key = event.target.id;\n            const value = event.target.value;\n            if ((value == '' || value == null) && (key in this.get(\"userInputtedData.selectedPackData\"))){\n                delete this.get('userInputtedData.selectedPackData')[key];\n            }else{\n                this.set(`userInputtedData.selectedPackData.${key}`, value); \n            }\n\n            //Immediately reset status to Not Validated if the user changes any textboxes when it is already Validated\n            if(JSON.stringify(this.get(\"dashboardStatusBarData\")['status']) === JSON.stringify(generalStatusLibrary(603))){\n                this.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n            }\n        },\n        updateSearchObjData(event) {\n            const key = event.target.id;\n            const value = event.target.value;\n            console.log(`key:${key}, value:${value}`)\n            if ((value == '' || value == null) && (key in this.get(\"paginationSearchConfig.searchObject\"))){\n                delete this.get('paginationSearchConfig.searchObject')[key];\n            }else if (key == 'page_size'){\n                this.set(`paginationSearchConfig.pagination.pageSize`, value); \n                this.getPackProfileList();\n            }\n            else{\n                this.set(`paginationSearchConfig.searchObject.${key}`, value); \n            }\n        },\n        choseRig(value) {\n            // console.log(\"User selected:\" + value);\n            let oldRigObject = this.get(\"rigObject\");\n            if(oldRigObject != null && oldRigObject[\"ip\"] != null ){\n                oldRigObject[\"ip\"] = value;\n                this.set(\"oldRigObject\", oldRigObject);\n            }\n        },\n        choseSensorType(value) {\n            // console.log(\"User selected:\" + value);\n            let oldRigObject = this.get(\"rigObject\");\n            if(oldRigObject != null && oldRigObject['sensorType'] != null ){\n                oldRigObject['sensorType'] = value;\n                this.set(\"oldRigObject\", oldRigObject);\n            }\n        },\n        cycleEditMode(){\n            // console.log(`click edit mode:${type}`)\n            this.set(\"isShowConfig.isFormEditing\", !this.isShowConfig.isFormEditing);\n        },\n        cyclePhase(){\n            console.log(`called cyclePhase`)\n            if(this.get('settingsConfig.phaseENV.phase') === 1){\n                this.set('settingsConfig.phaseENV.phase', 2);\n            }else{\n                this.set('settingsConfig.phaseENV.phase', 1);\n            }\n            this.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n            destroyAndClearAnchorLiveView(this);\n            this.set('selectedPackTypeDP', '0');\n            this.set('manufacturedPackProfileDP', '0');\n            // this.set('selectedRigDP', '0');\n            this.set('isShowConfig.isShowSettings', false);\n\n        },\n        cycleAddNewRigMode(){\n            this.set(\"isShowConfig.isShowRigForm\", !this.isShowConfig.isShowRigForm);\n            this.set(\"isShowConfig.isShowPackTypeForm\", false);\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        cycleAddNewPackTypeMode(){\n            this.set(\"isShowConfig.isShowPackTypeForm\", !this.isShowConfig.isShowPackTypeForm);\n            this.set(\"isShowConfig.isShowRigForm\", false);\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        cycleInternalHotButton(){\n            if(this.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n                this.set(\"settingsConfig.internalVersion\", \"v2.0\");\n                showPopup([`Currently using internal version: v2.0`], \"notification\", 5);\n            }else{\n                this.set(\"settingsConfig.internalVersion\", \"v1.0\");\n                showPopup([`Currently using internal version: v1.0`], \"notification\", 5);\n            }\n            this.set('isShowConfig.isShowSettings', false);\n        },\n        async formDeleteButton(type){\n            switch(type){\n                case \"packType\":\n                    const packTypeSubmittedObject = this.get(\"formPackTypeData\");\n                    if(packTypeSubmittedObject == null || packTypeSubmittedObject == {}){\n                        showPopup(['Please select a calibration profile you wish to delete'],\"warning\");\n                    }else{\n                        if (await sendDELETERequest(`validation_pack_type/${packTypeSubmittedObject['id']}`, packTypeSubmittedObject)){\n                            showPopup([\"Calibration Profile Deleted Successfully!\"],'success');\n                            resetProfile(\"packType\"); \n                            window.location.reload();\n    \n                        }else{\n                            showPopup([\"Calibration Profile Delete Failed!\",'error']);\n                        };\n                    }\n                    break;\n                case \"rig\":\n                    const rigSubmittedObject = this.get(\"formRigData\");\n                    if(rigSubmittedObject == null || rigSubmittedObject == {}){\n                        showPopup(['Please select a calibration profile you wish to delete'],\"warning\");\n                    }else{\n                        if (await sendDELETERequest(`rig_profile_view/${rigSubmittedObject['id']}`, rigSubmittedObject)){\n                            showPopup([\"Rig Profile Deleted Successfully!\"],'success');\n                            resetProfile(\"rig\"); \n                            window.location.reload();\n    \n                        }else{\n                            showPopup([\"Rig Profile Delete Failed!\",'error']);\n                        };\n                    }\n\n                    break;\n            }\n        },\n        async formSaveButton(type){\n            console.log(`formSaveButton:${type}`)\n            switch(type){\n                case \"packType\":\n                    const validationKeys = ['min','max'];\n                    const packTypeSubmittedObject = this.get(\"formPackTypeData\");\n                    packTypeSubmittedObject[\"creationDate\"] = getCurrentDateTime();\n                    //Tier 1 Validation\n                    let missingKeysMsgArr = [];\n                    validationKeys.forEach((value, index)=>{\n                        if ((!packTypeSubmittedObject.hasOwnProperty(value)) ||(packTypeSubmittedObject[value] === '') || (packTypeSubmittedObject[value] === null)) {\n                            missingKeysMsgArr.push(\"Missing \" + value + \"; \");\n                        }\n                    })\n                    console.log(packTypeSubmittedObject);\n                    const userProfile = this.get('session').data.authenticated['userProfile'];\n                    packTypeSubmittedObject[\"creationEmployee\"] = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n                    packTypeSubmittedObject[\"coilsProfile\"] = {};\n                    packTypeSubmittedObject['coilsProfile']['activeCoilsCount'] = Number.parseInt(packTypeSubmittedObject['activeCoilsCount']);\n                    packTypeSubmittedObject['coilsProfile']['totalCoilsCount'] = Number.parseInt(packTypeSubmittedObject['totalCoilsCount']);\n                    packTypeSubmittedObject['coilsProfile']['referenceUnfilledCoilsPositions'] = packTypeSubmittedObject['referenceUnfilledCoilsPositions'].split(\",\").map(Number);\n                    packTypeSubmittedObject['coilsProfile']['generalCoilsPositions'] = packTypeSubmittedObject['generalCoilsPositions'].split(\",\").map(Number);\n                    delete packTypeSubmittedObject.activeCoilsCount;\n                    delete packTypeSubmittedObject.totalCoilsCount;\n                    delete packTypeSubmittedObject.referenceUnfilledCoilsPositions;\n                    delete packTypeSubmittedObject.generalCoilsPositions;\n                    if(missingKeysMsgArr.length !=0){\n                        showPopup(missingKeysMsgArr,'error', 5);\n                    }else{\n                        if(this.isShowConfig.isFormEditing){\n                            //Handle For Edit Mode\n                            if (await sendPATCHRequest(`validation_pack_type/${packTypeSubmittedObject['id']}`, packTypeSubmittedObject)){\n                                showPopup([\"Calibration Profile Edited Successfully!\"],'success');\n                                resetProfile(\"packType\"); \n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Calibration Profile Edit Failed!\",'error']);\n                            };\n                            \n    \n                        }else{\n                            //When adding, the backend does not need id key value\n                            delete packTypeSubmittedObject.id;\n                            console.log(\"Adding\");\n                            //Handle For Add Mode\n                            if (await sendPOSTRequest(\"validation_pack_type\", packTypeSubmittedObject)){\n                                showPopup([\"Calibration Profile Created Successfully!\"],'success');\n                                resetProfile(\"packType\"); \n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Calibration Profile Creation Failed!\",'error']);\n                            };\n                            \n                        }\n                    }\n                    break;\n                case \"rig\":\n                    console.log(`Adding Rig`)\n                    const validationKeys2 = ['rigName','rigIP','rigCategory','creationDate'];\n                    const rigSubmittedObject = this.get(\"formRigData\");\n                    rigSubmittedObject[\"creationDate\"] = getCurrentDateTime();\n                    //Tier 1 Validation\n                    let missingKeysMsgArr2 = [];\n                    validationKeys2.forEach((value, index)=>{\n                        if ((rigSubmittedObject[value] == '') || (rigSubmittedObject[value] == null)) {\n                            missingKeysMsgArr.push(\"Missing \" + value + \"; \")\n                            }\n                    }) \n                    const userProfile2 = this.get('session').data.authenticated['userProfile'];\n                    rigSubmittedObject[\"company\"] = userProfile2['profile']['company'];\n                    rigSubmittedObject[\"creationEmployee\"] = `${userProfile2['profile']['first_name']} ${userProfile2['profile']['last_name']}`;\n                    if(missingKeysMsgArr2.length !=0){\n                        showPopup(missingKeysMsgArr,'error');\n                    }else{\n                        let activityLog = {};\n                        activityLog['status'] = 602;\n                        activityLog['connection'] = 500;\n                        activityLog['activity'] = 551;\n                        activityLog['activeUser'] = null;\n                        activityLog['connectedTo'] = null;\n                        activityLog['company'] = null;\n                        activityLog['latestDate'] = getCurrentDateTime();\n                        console.log(`Adding Rig`)\n                        console.log(rigSubmittedObject);\n                        rigSubmittedObject[\"activityJSON\"] = activityLog;\n                        if(this.isShowConfig.isFormEditing){\n                            //Handle For Edit Mode\n                            if (await sendPATCHRequest(`rig_profile_view/${rigSubmittedObject['id']}`, rigSubmittedObject)){\n                                showPopup([\"Rig Profile Edited Successfully!\"],'success');\n                                resetProfile(\"rig\"); \n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Rig Profile Edit Failed!\",'error']);\n                            };\n                            \n                        }else{\n                            if (await sendPOSTRequest(\"rig_profile_view\", rigSubmittedObject)){\n                                showPopup([\"Rig Created Successfully!\"],'success');\n                                resetProfile(\"rig\");\n                                window.location.reload();\n        \n                            }else{\n                                showPopup([\"Rig Creation Failed!\"],'error');\n                            };\n                            \n                        }\n                    }\n                    break;\n\n            }\n\n        },\n        jumpToPage(page){\n            // this.getPackProfileList();\n            try{\n                if(page != \"...\"){\n                    this.set('paginationSearchConfig.pagination.page', Number.parseInt(page))\n                    this.getPackProfileList();\n                }\n            }\n            catch(err){\n\n            }\n        },\n        search(){\n            this.getPackProfileList();\n        },\n        resetPage(){\n            this.set(\"paginationSearchConfig.pagination.page\", 1);\n        },\n        resetSearch(){\n            this.set(\"paginationSearchConfig.searchObject\", {calibrationIDFilter:\"DESC\"});\n            const searchValidationIDComponent = document.getElementById('searchValidationID');\n            searchValidationIDComponent.value=null;\n            const searchPackIDComponent = document.getElementById('searchPackID');\n            searchPackIDComponent.value=null;\n            const searchPackNameComponent = document.getElementById('searchPackName');\n            searchPackNameComponent.value=null;\n            const searchCompanyComponent = document.getElementById('searchCompany');\n            searchCompanyComponent.value=null;\n            this.send('resetPage');\n            this.getPackProfileList();\n        },\n        resetSort(){\n            this.set(\"paginationSearchConfig.searchObject.validationIdOrdering\", null);\n            const validationIdColumnComp = document.getElementById(\"validationIdColumn\");\n            validationIdColumnComp.textContent = \"ID\";\n\n            this.set(\"paginationSearchConfig.searchObject.packIdOrdering\", null);\n            const packIdColumnColumnComp = document.getElementById(\"packIdColumn\");\n            packIdColumnColumnComp.textContent = \"Pack ID\";\n\n            this.set(\"paginationSearchConfig.searchObject.phase1ValidationDateOrdering\", null);\n            const phase1ValidationDateColumnComp = document.getElementById(\"phase1ValidationDateColumn\");\n            phase1ValidationDateColumnComp.textContent = \"P1 Date\";\n\n            this.set(\"paginationSearchConfig.searchObject.phase2ValidationDateOrdering\", null);\n            const phase2ValidationDateColumnComp = document.getElementById(\"phase2ValidationDateColumn\");\n            phase2ValidationDateColumnComp.textContent = \"P2 Date\";\n            \n            this.set(\"paginationSearchConfig.searchObject.overruledOrdering\", null);\n            const overruledColumnComp = document.getElementById(\"overruledColumn\");\n            overruledColumnComp.textContent = \"Overruled\";\n\n            this.send('resetPage');\n            this.getPackProfileList();\n        },\n        columnCycleOrdering(id){\n            const searchObject = this.get(\"paginationSearchConfig.searchObject\");\n            switch(id){\n                case \"overruledOrdering\":\n                    if(searchObject['overruledOrdering'] === 'false'){\n                        this.set(\"paginationSearchConfig.searchObject.overruledOrdering\", 'true');\n                        const overruledColumnComp = document.getElementById(\"overruledColumn\");\n                        overruledColumnComp.textContent = \"Overruled v\";\n                    }else if(searchObject['overruledOrdering'] === 'true'){\n                        this.set(\"paginationSearchConfig.searchObject.overruledOrdering\", null);\n                        const overruledColumnComp = document.getElementById(\"overruledColumn\");\n                        overruledColumnComp.textContent = \"Overruled\";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.overruledOrdering\", 'false');\n                        const overruledColumnComp = document.getElementById(\"overruledColumn\");\n                        overruledColumnComp.textContent = \"Overruled ^\";\n                    };\n                    break;\n                case \"validationIdOrdering\":\n                    if(searchObject['validationIdOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.validationIdOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        const validationIdColumnComp = document.getElementById(\"validationIdColumn\");\n                        validationIdColumnComp.textContent = \"ID v\";\n                    }else if(searchObject['validationIdOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.validationIdOrdering\", null);\n                        const validationIdColumnComp = document.getElementById(\"validationIdColumn\");\n                        validationIdColumnComp.textContent = \"ID\";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.validationIdOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        const validationIdColumnComp = document.getElementById(\"validationIdColumn\");\n                        validationIdColumnComp.textContent = \"ID ^\";\n                    };\n                    break;\n                case \"packIdOrdering\":\n                    if(searchObject['packIdOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.packIdOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        const packIdColumnColumnComp = document.getElementById(\"packIdColumn\");\n                        packIdColumnColumnComp.textContent = \"Pack ID v\";\n                    }else if(searchObject['packIdOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.packIdOrdering\", null);\n                        const packIdColumnColumnComp = document.getElementById(\"packIdColumn\");\n                        packIdColumnColumnComp.textContent = \"Pack ID\";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.packIdOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        const packIdColumnColumnComp = document.getElementById(\"packIdColumn\");\n                        packIdColumnColumnComp.textContent = \"Pack ID ^\";\n                    };\n                    break;\n                case \"phase1ValidationDateOrdering\":\n                    if(searchObject['phase1ValidationDateOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.phase1ValidationDateOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        const phase1ValidationDateColumnComp = document.getElementById(\"phase1ValidationDateColumn\");\n                        phase1ValidationDateColumnComp.textContent = \"P1 Date v\";\n                    }else if(searchObject['phase1ValidationDateOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.phase1ValidationDateOrdering\", null);\n                        const phase1ValidationDateColumnComp = document.getElementById(\"phase1ValidationDateColumn\");\n                        phase1ValidationDateColumnComp.textContent = \"P1 Date\";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.phase1ValidationDateOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        const phase1ValidationDateColumnComp = document.getElementById(\"phase1ValidationDateColumn\");\n                        phase1ValidationDateColumnComp.textContent = \"P1 Date ^\";\n                    };\n                    break;\n                case \"phase2ValidationDateOrdering\":\n                    if(searchObject['phase2ValidationDateOrdering'] === this.get(\"settingsConfig.ASCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.phase2ValidationDateOrdering\", this.get(\"settingsConfig.DESCENDING_CONST\"));\n                        const phase2ValidationDateColumnComp = document.getElementById(\"phase2ValidationDateColumn\");\n                        phase2ValidationDateColumnComp.textContent = \"P2 Date v\";\n                    }else if(searchObject['phase2ValidationDateOrdering'] === this.get(\"settingsConfig.DESCENDING_CONST\")){\n                        this.set(\"paginationSearchConfig.searchObject.phase2ValidationDateOrdering\", null);\n                        const phase2ValidationDateColumnComp = document.getElementById(\"phase2ValidationDateColumn\");\n                        phase2ValidationDateColumnComp.textContent = \"P2 Date\";\n                    }else{\n                        this.set(\"paginationSearchConfig.searchObject.phase2ValidationDateOrdering\", this.get(\"settingsConfig.ASCENDING_CONST\"));\n                        const phase2ValidationDateColumnComp = document.getElementById(\"phase2ValidationDateColumn\");\n                        phase2ValidationDateColumnComp.textContent = \"P2 Date ^\";\n                    };\n                    this.send('resetPage');\n                    this.getPackProfileList();\n                    break;\n            }\n            this.getPackProfileList();\n        }\n    },\n\n    didInsertElement() {\n        this._super(...arguments);\n    \n        const ctx = document.getElementById('myChart').getContext('2d');\n        this.chart = new Chart(ctx, {\n            type: 'line',\n            data: {\n                labels: [],\n                datasets: []\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: false,\n                scales: {\n                    x: {\n                        display: false, // Hide x-axis\n                    },\n                    y: {\n                        display: false, // Hide y-axis\n                    },\n                },\n                plugins: {\n                    legend: {\n                        display: true, // Ensure the legend is displayed\n                        position: 'top', // Position it at the top\n                        labels: {\n                            usePointStyle: true, // Enable custom icons in the legend\n                            generateLabels: (chart) => {\n                                // Customize the legend label icons to appear as lines\n                                return chart.data.datasets.map((dataset, index) => ({\n                                    text: dataset.label,\n                                    fillStyle: dataset.borderColor,\n                                    strokeStyle: dataset.borderColor,\n                                    lineWidth: dataset.borderWidth,\n                                    hidden: !chart.isDatasetVisible(index),\n                                    datasetIndex: index,\n                                }));\n                            },\n                            font: {\n                                size: 8, // Change the font size of the legend\n                                family: 'Arial', // Optional: Change the font family\n                                weight: 'bold', // Optional: Make the text bold\n                            },\n                            color: 'black', // Optional: Change the font color\n                            boxWidth: 8, // Match the size of the font (adjust as needed)\n                            boxHeight: 8, // Match the size of the font (adjust as needed)\n                            padding: 5, // Optional: Add padding around the legend labels\n                        },\n                    },\n                    tooltip: {\n                        enabled: false,\n                    },\n                },\n                elements: {\n                    point: {\n                        radius: 0, // Remove the circle markers\n                    },\n                },\n            },\n        });\n    }\n    \n    \n})","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class RawDropDown extends Component {\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n}","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class RawDropDown extends Component {\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n}","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class RawPortDropDown extends Component {\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    actions = {\n        showPort() {\n            //console.log(\"showPort\");\n            return;\n        }\n    }\n}","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            let selected = {};\n\n            for(const elem of selector.selectedOptions)\n            {\n                selected[elem.value] = true;\n            };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                for(const elem of selector.selectedOptions) {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = elem.value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save();\n                                }\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n\n\n    actions = {\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.stacked = true;//this.get('stacked');\n            newInstrumentObject.active = true;\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if(!error) {\n                if(typeof newInstrumentObject.strokeLength === 'undefined' || newInstrumentObject.strokeLength === 0) {\n                    error = true;\n                    this.setError('fieldError',true);\n                    this.setError('isVisibleError',true);\n                }\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n\n                        if(results.id != null) {\n                            store.createRecord('anchor', {number: 0, distance: 0, instrument: results}).save();\n                            let anchorCount = parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            for(var ctr = 0; ctr < anchorCount; ctr++) {\n                                let gauge = parseInt(newInstrumentObject.gaugeLength);\n                                let distance = parseInt(newInstrumentObject.headExclusionLength) + gauge;\n                                if(!newInstrumentObject.stacked && ctr+1 > anchorCount / 2) {\n                                    distance += (gauge + 20) / 2;\n                                }\n                                distance += (gauge + 20) * (ctr % (anchorCount / 2));\n                                if (isNaN(distance)) {\n                                    distance = 0;\n                                }\n                                store.createRecord('anchor', {number: ctr+1, distance: distance, instrument: results}).save();\n                            }\n                        }\n\n                        // console.log(dup);\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        },\n        stackedChanged(object)\n        {\n            //console.log(document.getElementById('newInstrumentObjectBulbed').checked);\n            this.set(\"stacked\",document.getElementById('newInstrumentObjectStacked').checked);\n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    \n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    ajax: Ember.inject.service(),\n    store: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeSize: 2,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    \n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = Ember.$(thing.target).val();\n            else\n                update = Ember.$(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        updatePage(){\n            let store = this.get('store');\n            let instrument = this.get('instrument');\n            let anchors = instrument.get('anchors');\n\n            anchors.forEach(function(anchor, index) {\n                let number = anchor.get('number') - 1;\n                let total = anchors.length-1;\n                if(number >= 0) {\n                    let gauge = instrument.get('gaugeLength');\n                    let distance = instrument.get('headExclusionLength') + gauge;\n                    if(!instrument.get('stacked') && number >= total / 2) {\n                        distance += (gauge + 20) / 2;\n                    }\n                    distance += (gauge + 20) * (number % (total / 2));\n                    if (isNaN(distance)) {\n                        distance = 0;\n                    }\n                    //let val = anchors[index];\n                    anchor.set('distance', distance);\n                    anchor.save();\n                }\n            });\n\n            //instrument.set('anchors',anchors);\n            //instrument.save();\n            setTimeout(function() { alert('To see changes, please refresh the page.'); }, 1);\n        },\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            this.get('router').transitionTo('raw-data', id, { queryParams: { \"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values' || modelName === 'load-values') { \n                var plated = this.get('instrument').get('plated');\n                var type = this.get('instrument').get('instrumentType').get('title');\n                //console.log(type);\n                \n                if (type === 'dCable') {\n                    chartData.values.splice(0,1);\n                    chartData.values.unshift(0);\n                    if(plated) {\n                        chartData.values.push(chartData.values[chartData.values.length - 1]);\n                    } else {\n                        chartData.values.push(0);\n                    }\n                } else if (type === 'dExto') {\n                    chartData.values.unshift(chartData.values[0]);\n                }\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'dRebar') {\n            for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n\n            for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n        }\n */\n        var modelName = this.get('chartDataModelName');\n        //if (this.get('instrument').get('instrumentType').get('title') != 'dRebar') {\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {\n                anchorDistances.splice(0, 1);\n            }\n        //}\n\n        if (modelName === 'axial-displacement-values') {\n            if (this.get('instrument').get('stacked')) {\n                let half_anchors = (anchorDistances.length / 2) + 1;\n                let gauge = this.get('instrument').get('gaugeLength');\n                while (anchorDistances.length > half_anchors) {\n                    anchorDistances.pop();\n                }\n                anchorDistances[0] = anchorDistances[1] - gauge;\n            } else {\n                let last = anchorDistances[anchorDistances.length-1];\n                anchorDistances.sort(function(a,b){return a-b;});\n                let gauge = this.get('instrument').get('gaugeLength');\n                //console.log('gauge: ' + gauge);\n                anchorDistances.forEach(function(item, index) {\n                    anchorDistances[index] = item - gauge;\n                    //console.log(item);\n                });\n                //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n                anchorDistances.shift();\n                anchorDistances.push(last);\n            }\n        }\n\n\n\n\n        return anchorDistances;\n    }),\n\n    anchorAXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else { //staggered\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n    \n            midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n                return [v, anchorDistances.slice(center + 1)[i]];\n              });\n\n            midPoints.unshift(headExclusion);\n            let mid_temp = [];\n            for(let ctr = 1;ctr < midPoints.length; ctr++) {\n                mid_temp.push((midPoints[ctr - 1] + midPoints[ctr]) / 2);\n            }\n            midPoints = mid_temp;\n\n            if (modelName === 'bending-strain-values') {\n                midPoints.shift();\n                midPoints.pop();\n            }    \n            \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n        \n        //console.log(midPoints);\n        \n        return midPoints;\n    }),\n\n    anchorBXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else {\n\n        let center = anchorDistances.length - 1;\n        center = Math.ceil(center / 2);\n\n        midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n            return [v, anchorDistances.slice(center + 1)[i]];\n          });\n            midPoints.shift();\n            midPoints.pop();                  \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n\n        return midPoints;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n            if (this.get('instrument').get('stacked')) {\n                anchorDistances.shift(0);\n                let finalSize = anchorDistances.length / 2;\n                while (anchorDistances.length > finalSize) {\n                    anchorDistances.pop(finalSize);\n                }\n                anchorDistances.unshift(this.get('instrument').get('headExclusionLength'));\n            } else { //staggered\n\n            }\n        } else { //not rebar\n            anchorDistances.unshift(0);\n        }\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        if(type === 'dCable') {\n            midDistances.splice(0,1);\n            //midDistances.unshift(0);\n            midDistances[0] = 0;\n            var len = this.get('instrument').get('length');\n            var length = this.get('instrument').get('instrumentLength');\n\n            var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {    \n                if(length !== null && length !== 0) {\n                    midDistances.push(length);\n                } else {\n                    midDistances.push(anchorDistances[anchorDistances.length - 1]);\n                }\n            }\n        }\n        // console.log(\"Anchors: \" + anchorDistances);\n         //console.log(\"Mids: \" + midDistances);\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', 'anchorAXDistances', 'anchorBXDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(this.get('instrument').get('instrumentTypeID') === 3) {//rebar \n            if(this.get('instrument').get('stacked')) { //is stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            } else { //is NOT stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            }\n        }\n\n        if (this.get('instrument').get('instrumentType').get('title') !== 'dRebar') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                return anchorMidDistances.map(function(anchorDistance){\n                    return {\n                        key: anchorDistance,\n                        type: 'referencePoints',\n                        values: [\n                            anchorDistance\n                        ]\n                    };\n                });\n                    \n            }\n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'load-values') {\n            return 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorAXDistances = this.get('anchorAXDistances'),\n            anchorBXDistances = this.get('anchorBXDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        \n        if ((modelName === 'strain-values' || modelName === 'load-values') && this.get('instrument').get('instrumentType').get('title') !== 'dRebar') { \n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'axial-strain-values' || modelName === 'load-values' ) {//&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorAXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'bending-strain-values' ) { //&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorBXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if(type === 'dCable') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                //console.log(fullRangeDataPoints);\n                fullRangeDataPoints.forEach(element => element.values[0]=0);\n            }\n        }\n        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n/*                 zoomChart.xAxis.dispatch.on('xAxisMouseMove', function (mouseMove) {\n                    console.log('test');\n                });\n */\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    yAxisUnit:null,\n    init() {\n        this._super(...arguments);\n        const queryParams = new URLSearchParams(window.location.search);\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        if(yAxisUnitParam){\n            this.set('yAxisUnit', yAxisUnitParam);\n        }\n    },\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        //console.log(linesKyes);\n\n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var plated = this.get('instrument').get('plated');\n            \n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                if(plated) {\n                    chartData.values[0] = chartData.values[1];\n                } else {\n                    chartData.values[0] = 0;\n                }\n            } else {\n                //chartData.values.unshift(0);\n            }\n            chartData.values.push(0);\n        }\n        //console.log(chartData);\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        if(instType === 'Tilt') {\n            return ['X','Y','Z'];\n        } else if(instType === 'Wire') {\n            let anchors = [];\n            let numPorts = this.instrument.get('portsNum');\n            let startVal = 0;\n            let maxVal = numPorts;\n/*             if (this.port != '') {\n                //startVal = (1 * this.port) - 1;\n                startVal = (1 * numPorts) - 1;\n                maxVal = startVal + 1;\n            }\n */            for(let ctr = startVal; ctr < maxVal; ctr++) {\n                anchors.push('T' + (ctr + 1));\n                anchors.push(ctr + 1);\n            }\n            return anchors;\n        } else if(instType === 'BluVibe') {\n            return ['Data'];\n        }\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var midPoints = [];\n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                //Adjust anchors to mid points between anchors\n                for(var ctr = 1; ctr < anchorDistances.length ; ctr++) {\n                    var mid = (anchorDistances[ctr - 1] + anchorDistances[ctr]) / 2;\n                    midPoints[ctr] = + mid.toFixed(2);\n                }\n\n                //console.log(midPoints);\n\n                //add zero point and end point\n                midPoints.splice(0,1);\n                midPoints[0] = 0;\n                midPoints.push(anchorDistances[anchorDistances.length - 1]);  //TODO: change to length of exto once known\n                //console.log(midPoints);\n            } else if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                //Adjust anchors to mid points between anchors\n                //console.log(this.get('instrument'));\n                let headExclusion = this.get('instrument').get('headExclusionLength');\n                let leftAnchors = [headExclusion];\n                let rightAnchors = [headExclusion];\n                \n                let center = anchorDistances.length - 1;\n                center = Math.ceil(center / 2);\n\n                leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n\n                rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n\n                let midLeft = [];\n                for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                    midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                }\n\n                let midRight = [];\n                for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                    midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                }\n\n                if (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values') {\n                    if(this.get('instrument').get('stacked')) {\n                        midPoints = midLeft;\n                        if (modelName === 'load-values') {\n                            midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n                        }\n                    } else {\n                        midPoints = midLeft.concat(midRight);\n                        /* midPoints = $.map(midPoints.slice(1, center + 1), function(v, i) {\n                            return [v, midPoints.slice(center + 1)[i]];\n                          }); */\n                        if (modelName === 'bending-strain-values') {\n                            midPoints.shift();\n                            midPoints.pop();\n                        }\n\n                    }\n                } else {\n                    midPoints = midLeft.concat(midRight);\n                }\n                if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                    for(let ctr = 0; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n  \n/*                     for(let ctr = 0; ctr < midPoints.length / 2; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n        \n                    for(let ctr = 3; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n */                }\n            } else {\n                for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                    midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n                }\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        } else if (modelName === 'axial-displacement-values' && this.get('instrument').get('stacked')) {\n            let mid = (anchorDistances.length - 1) / 2;\n            while (anchorDistances.length > (mid + 1)) {\n                anchorDistances.pop();\n            }\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else if (modelName === 'axial-displacement-values' && !this.get('instrument').get('stacked')) {\n            anchorDistances.sort(function(a,b){return a-b;});\n\n            //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else {\n            if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                if (modelName === 'displacement-values') { //rebar stretch\n                    var midPoints = [];\n                    let headExclusion = this.get('instrument').get('headExclusionLength');\n                    let leftAnchors = [headExclusion];\n                    let rightAnchors = [headExclusion];\n                    \n                    let center = anchorDistances.length - 1;\n                    center = Math.ceil(center / 2);\n    \n                    leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                    rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n    \n                    if(!this.get('instrument').get('stacked')) {\n                        rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n                    }\n    \n                    let midLeft = [];\n                    for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                        midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                    }\n    \n                    let midRight = [];\n                    for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                        midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                    }\n\n                    midPoints = midLeft.concat(midRight);\n                    anchorDistances = midPoints;\n\n                    anchorDistances.unshift(0);\n                }\n                for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n    \n                for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n            }    \n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n            var mName = _this.get('chartDataModelName');\n            if (mName === 'strain-values' || mName === 'strain-rate-values' || mName === 'load-values') {\n                zoomDataPoints.forEach(element => element.values[0] = 0);\n            }\n        }    \n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'Tilt') {\n                zoomDataPoints.forEach(element => element.values.shift());\n        }    \n */\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values' && this.get('instrument').get('instrumentType').get('title') !== 'BluVibe'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = '';\n                if (instType === 'BluVibe') {\n                    title = _this.get('chartDataModelName');\n                } else {\n                    title = yAxisLegend.get('title');\n                }\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    case 'event-frequency':\n                        axisName = \"Event Frequency\";\n                        break;\n                    case 'event-ppv':\n                        axisName = \"Event PPV\";\n                        break;\n                    case 'event-ppa':\n                        axisName = \"Event PPA\";\n                        break;\n                    case 'cumulative-event-frequency':\n                        axisName = \"Cumulative Frequency\";\n                        break;\n                    case 'cumulative-event-ppv':\n                        axisName = \"Cumulative PPV\";\n                        break;\n                    case 'cumulative-event-ppa':\n                        axisName = \"Cumulative PPA\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                /* let chartName = yAxisLegend.get('title').capitalize();\n                let chartNameL = chartName.substr(0, chartName.indexOf('_'));\n                let chartNameR = chartName.substr(chartName.indexOf('_') + 1).capitalize();\n                if(chartNameL !== \"\") {\n                    chartName = chartNameL + \" \" + chartNameR;\n                } */\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName + \" (kN)\";\n                    } else if (instType === 'Wire') {\n                        if (raw === true) {\n                            title = \"Frequency (Hz)\";\n                        } else {\n                            title = \"Calculated Values\";\n                        }\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                } else {\n                    if (instType === 'BluVibe') {\n                        title = axisName;\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = `<span class=\"event-type\">PPV - ${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}: ` + tooltipContent.ppv + `<br />PPA - ${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}&#178;: ` + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if (!seismicEventsArray.length || !blastEventsArray.length){ //} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n            \n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        // let cb = this.username; \n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\n\nfunction resetNewInstrumentObject(_this) {\n\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n    // _this.set('elasticLimitPct', 0);\n    // _this.set('plasticLimitPct', 0);\n    // _this.set('ultimateLimitPct', 0);\n    // _this.set('elasticLimitFce', 0);\n    // _this.set('plasticLimitFce', 0);\n    // _this.set('ultimateLimitFce', 0);\n    _this.set('newInstrumentObject.youngsModulus', 200);\n    _this.set('newInstrumentObject.crossSectionalArea', 283.53);\n    _this.set('newInstrumentObject.boltDiameter', 19);    \n}\n\nfunction setAxialStiffness(_this){\n    let stiffness = ( ( (_this.get('newInstrumentObject.youngsModulus') * _this.get('newInstrumentObject.crossSectionalArea') )/100).toFixed(2));\n    _this.set('newInstrumentObject.axialStiffness', stiffness);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n        setAxialStiffness(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n\n    onYoungsModulusChanged = observer('newInstrumentObject.youngsModulus', function() {\n        let youngsModulus = this.get('newInstrumentObject.youngsModulus');\n        \n        console.log(' YoungsModulus changed::: ' + bolt);\n        \n        console.log('Axial Stiffness::: ' + youngsModulus);\n    });\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n\n        handleBoltDiameterChange(event) {\n            let boltDiameter = event.target.value;\n            console.log('boltDiameter changed' + boltDiameter);\n            let area = Math.PI * Math.pow(boltDiameter/2, 2);\n            let axialStiffness = ((area * this.get('newInstrumentObject.youngsModulus')/100)).toFixed(2);\n            this.set('newInstrumentObject.axialStiffness', axialStiffness) ;\n            this.set('newInstrumentObject.crossSectionalArea', area.toFixed(2));\n        },\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n            \n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.stacked = true;//this.get('stacked');\n            newInstrumentObject.active = true;\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n            if(this.get('youngsModulus') == null || this.get('youngsModulus') == 0){\n                newInstrumentObject.youngsModulus = 200;\n            }\n            if(this.get('boltDiameter') == null || this.get('boltDiameter') == 0){\n                newInstrumentObject.boltDiameter = 19;\n                newInstrumentObject.crossSectionalArea = (Math.PI * Math.pow(newInstrumentObject.boltDiameter/2, 2)).toFixed(2);\n            }\n\n            newInstrumentObject.axialStiffness = ((newInstrumentObject.youngsModulus * newInstrumentObject.crossSectionalArea)/100).toFixed(2);\n            newInstrumentObject.elasticLimitFce = (newInstrumentObject.youngsModulus * newInstrumentObject.axialStiffness).toFixed(2); \n            if(!error) {\n                if(typeof newInstrumentObject.strokeLength === 'undefined' || newInstrumentObject.strokeLength === 0) {\n                    error = true;\n                    this.setError('fieldError',true);\n                    this.setError('isVisibleError',true);\n                }\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n\n                        if(results.id != null) {\n                            store.createRecord('anchor', {number: 0, distance: 0, instrument: results}).save();\n                            let anchorCount = parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            for(var ctr = 0; ctr < anchorCount; ctr++) {\n                                let gauge = parseInt(newInstrumentObject.gaugeLength);\n                                let distance = parseInt(newInstrumentObject.headExclusionLength) + gauge;\n                                if(!newInstrumentObject.stacked && ctr+1 > anchorCount / 2) {\n                                    distance += (gauge + 20) / 2;\n                                }\n                                distance += (gauge + 20) * (ctr % (anchorCount / 2));\n                                if (isNaN(distance)) {\n                                    distance = 0;\n                                }\n                                store.createRecord('anchor', {number: ctr+1, distance: distance, instrument: results}).save();\n                            }\n                        }\n\n                        // console.log(dup);\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        },\n        stackedChanged(object)\n        {\n            //console.log(document.getElementById('newInstrumentObjectBulbed').checked);\n            this.set(\"stacked\",document.getElementById('newInstrumentObjectStacked').checked);\n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    \n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n \n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('alert.target', function() {\n        let target = this.get('alert.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onCarrierChanged: observer('carrier', function() {\n        let carrier = this.get('carrier');\n        console.log('carrier changed' + carrier);\n        this.set('carrier', carrier);\n    }),\n\n    onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                // let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n                        console.log(\"Reason::: \" + reason);\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            console.log(\"DateString::: \");\n            console.log(theDate.getMonth);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\t ,\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        \n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, observer } from \"@ember/object\";\n\nexport default class EditInstrument extends Component.extend({\n    \n    init() {\n        this._super(...arguments);\n        if(this.get('youngsModulus') == null || this.get('youngsModulus') == 0){\n            this.set('youngsModulus', 200);\n        }   \n    },\n\n    onYoungsModulusChanged: observer('newInstrumentObject.youngsModulus', function() {\n        let youngsModulus = this.get('newInstrumentObject.youngsModulus');\n        \n        console.log('boltDiameter changed::: ' + bolt);\n        \n        console.log('Axial Stiffness::: ' + youngsModulus);\n    }),\n\n    handleElastLimitForce: Ember.observer('youngsModulus', function(){\n        let elf = 0; //this.get('elasticLimitFce');\n        elf = this.get('axialStiffness') * this.get('elasticLimitFce')\n        this.set('elasticLimitFce', elf.toFixed(2));\n    }),\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n\n    actions = {\n        async updateCrossSectionalArea(){\n\n            let instrument = this.get('instrument');\n            let diameter = instrument.boltDiameter;\n            this.set('boltDiameter', diameter);\n            let area = Math.PI * Math.pow(diameter/2, 2);\n            instrument.crossSectionalArea = area.toFixed(2);\n            instrument.axialStiffness = ( ( (instrument.youngsModulus * instrument.crossSectionalArea )/100).toFixed(2));\n            this.set('axialStiffness', instrument.axialStiffness);\n            console.log(\"Axial Stiffness::: \" + instrument.axialStiffness);\n            console.log(\"Cross Sectional Area::: \" + instrument.crossSectionalArea);\n            \n            instrument.save()\n            .then(() => {\n                console.log(\"Instrument saved\");\n            });\n        },\n\n        updatePage(){\n            let store = this.get('store');\n            let instrument = this.get('instrument');\n            let anchors = instrument.get('anchors');\n\n            anchors.forEach(function(anchor, index) {\n                let number = anchor.get('number');\n                let distance = anchor.get('distance');\n                let total = anchors.length-1;\n                anchor.set('distance', distance);\n            });\n            //setTimeout(function() { alert('To see changes, please refresh the page.'); }, 1);\n        },\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            this.get('router').transitionTo('raw-data', id, { queryParams: {\"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n\n            const _this = this;\n\n            if(this.get('youngsModulus') == null || this.get('youngsModulus') == 0){\n                this.set('youngsModulus',200);\n            }\n            if(this.get('boltDiameter') == null || this.get('boltDiameter') == 0){\n                this.set('boltDiameter',19);\n                this.set('crossSectionalArea', (Math.PI * Math.pow(this.get('boltDiameter')/2, 2)).toFixed(2));\n            }\n\n            this.set('axialStiffness', ((this.get('youngsModulus') * this.get('crossSectionalArea'))/100).toFixed(2));\n            console.log(\"elasticLimitFce::: \" + this.get('elasticLimitFce'));\n            this.set('elasticLimitFce', (this.get('youngsModulus') * this.get('axialStiffness')).toFixed(2)); \n\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        },\n        isStacked: Ember.computed('stacked', function() {\n            return instrument.get('stacked');\n        }),\n        stackChanged: Ember.observer('stacked',function(){                    \n            if( this.get('stacked') == true){\n                this.isStacked == true;\n            } else {\n                this.isStacked == false;\n            }\n            this.get('isValidateStacked');\n            this.get('isValidatedStaggered');\n            this.get('isAllAnchorsPopulated');\n            this.get('isSaveEditable');\n        }),\n         \n        toggleProperty(property, object) {\n            // let loadCalc = object.get('calculateLoadFromElastic');\n            // this.set('calculateLoadFromElastic', loadCalc);                                \n\n\n\n            // let store = this.get('store');\n            // let instrument = this.get('instrument');\n            // //let instrument = this.get('tableRow');\n            // try {\n            //     let stiffness = instrument.get('elasticLimitFce') / instrument.get('elasticLimitPct');\n            //     stiffness = Math.round(stiffness * 1000) / 1000;\n            //     instrument.set('instrumentStiffness', stiffness);\n            // } catch (ex) {\n            //     instrument.set('instrumentStiffness', 0);\n            // }\n            // instrument.save();\n\n        },\n          \n    }    \n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    isStacked: Ember.computed(function (){\n        let isStacked = false;    \n        if(this.get('instrument').get('stacked')) {\n            isStacked = true;\n        }\n        return isStacked;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            let chartData = item.getProperties(linesKyes);\n            let modelName = this.get('chartDataModelName');\n            // console.log(\"Model Name: \" + modelName);\n            let side = this.attrs.getQueryParams('side');\n            if(this.isStacked || modelName === 'displacement-values') {\n\n                if(chartData['values'].length >=6){\n                    //Ya, I know.  \n                    if(side === 'B'){\n                        chartData.values['1'] = chartData.values['4'];\n                        chartData.values['2'] = chartData.values['5'];\n                        chartData.values['3'] = chartData.values['6'];\n                        chartData.values = chartData.values.splice(0,4);\n                    } else {\n                        //console.log(chartData.values.splice(0,4));\n                        chartData.values = chartData.values.splice(0,4);//chartData.values.splice(5,chartData.values.length-1);\n                    }\n                }\n\n                if(modelName  === 'load-values' || modelName === 'axial-strain-values'){\n                    chartData.values.push(0);\n                }   \n                if ( modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values'  ) {                 \n                    if(chartData.values[0] == 0){\n                        chartData.values.shift();\n                    }\n                }\n            } else {\n                if ( modelName != 'displacement-values' && (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values') ) {                 \n                    let ch1 = chartData.values['1'];\n                    let ch2 = chartData.values['2'];\n                    let ch3 = chartData.values['3'];\n                    let ch4 = chartData.values['4'];\n                    let ch5 = chartData.values['5'];\n                    let ch6 = chartData.values['6'];\n\n                    chartData.values['1'] = ch1;\n                    chartData.values['2'] = ch4;\n                    chartData.values['3'] = ch2;\n                    chartData.values['4'] = ch5;\n                    chartData.values['5'] = ch3;\n                    chartData.values['6'] = ch6;\n                }\n            }\n\n\n            if(!this.isStacked && (modelName === 'axial-strain-values' || modelName === 'load-values' || modelName === 'bending-strain-values')) {\n                chartData.values.shift();\n                chartData.values.push(0);\n            }\n            return chartData;\n        \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        let itemTime = item.get('id');\n        //console.log(\"Item Time: \" + itemTime);\n        return itemTime;\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        // Axial-Load - bring to zero (ends at zero) Starts at first channel\n        // Axial-Strain - bring to zero (ends at zero) Starts at first channel\n        // this means making sure the last index in array is zero in zoomDataPoints function \n        // as well as here. \n        // Axial-Load and Axial Strain do not have zero indexes at the start.\n\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        let counter = 0;\n        \n        let side_a = [];\n        let side_b = [];\n        var midPoints = [];\n        let modelName = this.get('chartDataModelName');\n        let anchors = this.get('instrument').get('anchors');        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n        midPoints.push(0);\n        \n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n\n        // This means there are 6 channels coming in.\n        // Else there are only three.  \n        // the issue is that I'm not sure if we're getting 6 without ch0 or 7 channels with ch0\n        // or 4 with ch0 or 3 without ch0\n        if( dataValuesCount>=6 && dataValuesCount % 2 == 1) {\n            counter++;\n            for(counter; counter< (anchorDistances.length/2); counter++) {\n                side_a.push(anchorDistances[counter]);                \n            }\n            for(counter; counter< (anchorDistances.length); counter++) {\n                side_b.push(anchorDistances[counter]);                \n            }\n        } else {\n            if(dataValuesCount>3){\n                counter++; //start at index 1\n            }\n            for(counter; counter< dataValuesCount; counter++) {\n                console.log(\"side_a:\" + anchorDistances[counter]);\n                side_a.push(anchorDistances[counter]);                \n            }\n            //side_a.sort();\n        }\n        counter = 0;\n        if(this.isStacked || modelName === 'displacement-values') {            \n            let indx = 0;\n            if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                side_a.unshift(0);\n                for (indx; indx < side_a.length - 1; indx++) {\n                  midPoints.push(side_a[indx + 1] - (side_a[indx + 1] - side_a[indx]) / 2); //midPoints.push(point);    \n                }\n      \n                midPoints.sort(function (a, b) {\n                  return a - b;\n                });\n              } else {\n            \n                let side = this.attrs.getQueryParams('side');\n                if( side === 'B' && modelName === 'displacement-values' ){\n                    counter = 0;\n                    side_b.forEach(point=> {\n                        midPoints.push(point);\n                    })\n                } else if( side === 'A' && modelName === 'displacement-values' ) {\n                    side_a.forEach(point => {\n                        midPoints.push(point);                \n                    });       \n                } else{\n                    for(counter; counter < side_a.length; counter++){\n                        console.log(\"SIDE Non displacement: \" + side_a[counter]);\n                        midPoints.push(side_a[counter]);\n                    }\n                }\n    \n              } \n            \n            \n        } else {\n            side_a.unshift(0);\n            side_b.unshift(0);\n            let indx = 0;\n            if( modelName === 'axial-strain-values' || modelName === 'load-values' || modelName === 'bending-strain-values'  ){\n                for(indx; indx < side_a.length -1; indx++){\n                    midPoints.push(side_a[indx + 1] - ((side_a[indx + 1] - side_a[indx]) / 2));\n                    //midPoints.push(point);    \n                                \n                }; \n                indx = 0;      \n                for(indx; indx < side_b.length -1; indx++){\n                    midPoints.push(side_b[indx+1] - ((side_b[indx+1] - side_b[indx]) / 2));\n                    //midPoints.push(parseInt(point));\n                    \n                };\n\n                midPoints.sort(function(a, b) {\n                    return a - b;\n                  });\n            }\n        }\n        \n        //|| modelName === 'load-values'\n        //To Start at first measurement instead of zero.\n        if (modelName === 'bending-strain-values' || modelName === 'axial-strain-values' || modelName === 'load-values' ) {\n        //if (modelName === 'bending-strain-values' || modelName === 'strain-values' ) {\n                midPoints.shift();\n        }           \n        \n        if(modelName  === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values'){\n            let length = 0;\n            try {\n                // changed instrumentLength to be in mm so we don't have multiply by 1000\n                // length = (this.instrument.get('instrumentLength'))*1000;\n                length = (this.instrument.get('instrumentLength'));\n                midPoints.push(length);\n                //console.log(\"Length:::\" + length);\n                \n            } catch (ex) {\n                console.log(\"Error getting instrument length. Set length in your rebar under 'Total Bolt Length'.\" + ex);\n            }   \n            \n        }\n        \n        this.set('anchorMidDistances', midPoints);\n        anchorDistances = midPoints;\n        \n        //console.log(\"anchorDistances: \" + anchorDistances);\n        return anchorDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', function() {\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n        let anchorDistances = this.get('anchorDistances');\n        let side = this.attrs.getQueryParams('side');\n        \n        let anchDist = [];\n        anchorDistances.forEach(anchorDistance => {\n            anchDist.push({\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            });\n        });\n        \n        let length = 0;\n        try {\n            // changed instrumentLength to be in mm so we don't have multiply by 1000\n            // length = this.instrument.get('instrumentLength') * 1000;\n            length = this.instrument.get('instrumentLength');\n        } catch (ex) {\n            console.log(\"Error getting instrument length. Set length in your rebar under 'Total Bolt Length'.\");\n        }\n        \n        // console.log(\"anchorDistancesChartReferencePoints Returned: \" + JSON.stringify(anchDist));\n        return anchDist;   \n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n        let offSet = 0;\n        if (modelName === 'strain-values' ) {\n            offSet = 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            offSet = 0;\n        }\n        if(( modelName === 'bending-strain-values') && !this.get('instrument').get('stacked')) {\n            offSet = 0;\n        }\n        console.log(\"OffSet::: \" + offSet);\n        return offSet;\n    }),\n\n    // zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', function() {\n            const _this = this,\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n        let counter = 0;\n            \n        zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n            let dp =  {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            // console.log(\"dp:::\" + JSON.stringify(dp));\n            return dp;\n        }).sortBy('timestamp');\n\n\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n        //console.log(\"zoomDataPoints:::\" + JSON.stringify(zoomDataPoints));    \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        let ad = anchorDistances.map(function(chartLineName, chartLineIndex){\n            let dp = {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n            return dp;\n        }).sortBy('timestamp');\n        return ad;\n\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        //console.log(\"zoomTimePoints: \" + this.get('zoomTimePoints').length );\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        const inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset');\n        const progressAnimationDuration = _this.get('progressAnimationDuration');\n        const isDistXTooltip = _this.get('isDistXTooltip');\n        const distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration');\n\n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg');\n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = [yAxisLegend];\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n                //console.log('Title:::' + yAxisLegend.get('title'));\n                let axisName = '';\n                let units = chartData.get('units');\n                let switchTitle = yAxisLegend.get('title');\n                switch(switchTitle) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'axial_strain':\n                        //console.log(\"SWITCH:::\" + chartData.get('temporalStrainName'));\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'bending_strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { \n                    // console.log(\"X in zoomChart:::: \" + d[0]);\n                    return d[0]; \n                })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { \n                    // console.log(\"X in zoomChart:::: \" + d[0]);\n                    // console.log(\"distXAxis in zoomChart:::: d[0]:::::::::::::::: \" + d[1]);\n                    return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n            let length = 0;\n            try {\n                // we changed the instrumentLength to be in mm instead of m so we don't have to convert it\n                // length = this.instrument.get('instrumentLength') * 1000;\n                length = this.instrument.get('instrumentLength');\n                let type = this.instrument.get('instrumentType');\n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .ticks(5)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     let first = new Date(zoomChartLinesData[0].timestamp).getTime(); // values[0][0];\n                    //     let last = new Date(zoomChartLinesData[zoomChartXDomainLength].timestamp).getTime();//values[zoomChartXDomainLength-1][0];\n\n                        // console.log('first:::' + first);\n                        // console.log('last:::' + last);\n                        // console.log('d:::' + d);\n                    //     return nv.utils.getDateAutoscaleFormat (first, last)(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"))\n                    .ticks(5)\n                    ;\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\n// For Strain - in python backend start in \"displacement_measurement/data_process.py and find this\"\n// class StrainListDataClass(DataListClass):\n\n//     def get_data(self):\n//         data_points = super(StrainListDataClass, self).get_data()\n//         zeroed_points = self.get_zeroed_points(data_points)\n//         return self.get_strain(zeroed_points, self.get_mid_distances())\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    yAxisUnit:null,\n    init() {\n        this._super(...arguments);\n        const queryParams = new URLSearchParams(window.location.search);\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        if(yAxisUnitParam){\n            this.set('yAxisUnit', yAxisUnitParam);\n        }\n    },\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n        var events = this.get('vibeEvents');\n        // console.log('vibeEvents');\n        // console.log(events);\n        if ( this.get('vibeEvents') ) {\n            return [{\n                key: 'BluVibe',\n                type: 'distX',\n                //color: '#d18b40',\n                color: '#80bf5c',\n                values: this.get('vibeEvents').map(function(event) {\n                    return [\n                        moment( event.get('id') ).valueOf(),\n                        console.log(\"event: \" + event.get('size')),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    vibeEventsArray: Ember.computed('vibeEvents', function() {\n        var events = this.get('vibeEvents');\n        //console.log(\"Events:::\" + events);\n        if ( events ) {\n            return events.map(function(event) {\n                return {\n                    type: 'BluVibe',\n                    time: event.get('id'),\n                    timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    ppa: event.get('ppa'),\n                    ppv: event.get('ppv'),\n                    freq: event.get('frequency')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n        var chartData = item.getProperties(linesKyes);\n        return chartData;\n    }),\n    isStacked: Ember.computed(function (){\n        let isStacked = false;    \n        if(this.get('instrument').get('stacked')) {\n            isStacked = true;\n        }\n        return isStacked;\n    }),\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        \n        // console.log(\"zoomDataPoints::::::::::::::::::::::::::::::::::::::::::::::::::: \");\n        let linesKyes = Object.keys(item.toJSON());\n        let chartData = item.getProperties(linesKyes);\n        let modelName = this.get('chartDataModelName');\n        // console.log(\"zoomDataPoints::: \" + modelName);\n        if(this.isStacked || modelName === 'strain-values') {\n            let side = this.attrs.getQueryParams('side');\n            let modelName = this.get('chartDataModelName');\n            if(modelName  === 'load-values' || modelName === 'axial-strain-values'){\n                if(chartData['values'].length >=6){\n                    //Ya, I know.  \n                    if(side === 'B'){\n                        chartData.values['1'] = chartData.values['4'];\n                        chartData.values['2'] = chartData.values['5'];\n                        chartData.values['3'] = chartData.values['6'];\n                        chartData.values = chartData.values.splice(0,4);\n                    } else {\n                        chartData.values = chartData.values.splice(0,4);//chartData.values.splice(5,chartData.values.length-1);\n                    }\n                }\n            }\n            if(modelName  === 'load-values' || modelName === 'axial-strain-values'){\n            //if( modelName  === 'load-values' ){\n                    chartData.values.push(0);\n            }   \n            if ( modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values'  ) {                 \n                if(chartData.values[0] == 0){\n                    chartData.values.shift();\n                }\n            }\n            //console.log(\"temporal::ChartData::\" + JSON.stringify(chartData));\n            if (modelName === 'strain-values') { \n                chartData.values.shift();\n            }\n                \n        }\n\n        if(!this.isStacked && (modelName === 'axial-strain-values' || modelName === 'load-values' || modelName === 'bending-strain-values')) {\n            chartData.values.shift();\n        }\n\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        \n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n\n        let anchors = this.get('instrument').get('anchors');        \n        let anchorDistances = anchors.map(function(anchor){\n            let singleAnchorDistance = anchor.get('distance');\n            return singleAnchorDistance;\n        });\n        \n        var modelName = this.get('chartDataModelName');\n                \n        if (modelName === 'load-values' || modelName === 'bending-strain-values' || modelName === 'axial-strain-values' || modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') { \n                        \n            let side_a = []\n            let side_b = []\n            side_b.push(0);\n            var midPoints = [];\n            midPoints.push(0);\n\n            anchorDistances.forEach(function(value, index){                \n                if(index <= 3 && value[index] !=0){\n                    side_a.push(anchorDistances[index]);\n                }\n                else{\n                    side_b.push(anchorDistances[index]);\n                }                    \n            });\n            //side_a.sort();\n            //side_b.sort();\n            let indx = 0;\n            for(indx; indx < side_a.length -1; indx++){\n                midPoints.push(side_a[indx + 1] - ((side_a[indx + 1] - side_a[indx]) / 2));\n            } \n            \n            indx = 0;\n            if(dataValuesCount > 5){\n                for(indx; indx < side_b.length -1; indx++){\n                    \n                    //console.log(\"SIDE_B: Index: \" + indx + \"    \" +( side_b[indx+1] - ((side_b[indx+1] - side_b[indx]) / 2)));\n                    midPoints.push(side_b[indx+1] - ((side_b[indx+1] - side_b[indx]) / 2));\n                }     \n            }\n                        \n            midPoints.shift();\n            anchorDistances = midPoints;\n        }\n\n        let anchorCount = anchorDistances.length;\n        //console.log(\"anchorDistances1: \" + JSON.stringify(anchorDistances));\n        let newAnchorDistances = [];\n        anchorDistances = anchorDistances.map((obj, index) => {\n            //console.log(\"Object:::\" + obj);\n            if(obj > 0){\n                let sideA = dataValuesCount>5 ? 'A-' : '';\n                let sideB = dataValuesCount>5 ? 'B-' : '';\n\n                if( (dataValuesCount< 5 && index <=2) || (index <= ((anchorCount-1) / 2))){\n                    newAnchorDistances.push(sideA + obj);\n                } \n                else {\n                    if(dataValuesCount>5)\n                        newAnchorDistances.push(sideB + obj);     \n                }\n            }\n            else{\n                if(dataValuesCount>5)\n                    newAnchorDistances.push(obj);\n            }        \n        });  \n        anchorDistances = newAnchorDistances; \n        return anchorDistances;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    // zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(zoomTempPoints));\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                //console.log(\"chartLineName \" + chartLineName); \n                //console.log(\"chartLineIndex \" + chartLineIndex); \n                                \n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (vibeEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    // console.log(\"fullReang\")\n                    // console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        // console.log(\"ChartID:::::::: \" + _this.get(\"chartId\"));\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            // TODO::: fix me\n            vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = yAxisLegend\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = \"dRebarv2\";\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = yAxisLegend.get('title');\n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'axial_strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName + \" (kN)\";\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = `<span class=\"event-type\">PPV - ${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}: ` + tooltipContent.ppv + `<br />PPA - ${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}&#178;: ` + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { \n                    nv.log('New State:', JSON.stringify(e)); \n                });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n\n});","import Component from '@glimmer/component';\nimport { action } from '@ember/object';\n\nexport default class TargetSelectorComponent extends Component {\n  showModal = false;\n\n  @action\n  openModal() {\n    this.showModal = true;\n  }\n\n  @action\n  closeModal() {\n    this.showModal = false;\n  }\n\n  @action\n  selectRecord(record) {\n    this.args.onSelect(record);\n    this.showModal = false;\n  }\n  \n  @action\n  handleRecordSelection(record) {\n    // Do something with the selected record\n    // console.log(record.Gateway);\n  }\n\n\n\n// import Component from '@ember/component';\n// import { action } from '@ember/object';\n\n// export default Component.extend({\n//     init() {\n//     this._super(...arguments);\n//     this.set('model', []);\n    \n//     @action\n//     openModal() {\n//       this.showModal = true;\n//     }\n\n//     @action\n//     closeModal() {\n//       this.showModal = false;\n//     }\n\n//     @action\n//     selectRecord(record) {\n//       this.args.onSelect(record);\n//       this.showModal = false;\n//     }\n//     // ajax(host).then((data) => {\n//     //     this.set('model', data.carrier_list);\n//     // });\n//     },\n//     isShowingModal: false,\n//     host: Ember.computed(function() {\n//       return \"http://\" + document.location.host.split(':')[0] + \":4500/assets/images/gateway_carrier.json\";\n//     }),\n   \n//     carrierList: Ember.computed(function() {\n//       let data = this.getCarriers();\n//       const sortedData = {\n//         \"carrier_list\": Object.values(data.carrier_list)\n//           .sort((a, b) => a.Country.localeCompare(b.Country))\n//           .reduce((acc, curr) => {\n//             acc[curr.Carrier] = curr;\n//             return acc;\n//           }, {})\n//       };\n//       return sortedData.carrier_list;\n//     }),\n\n//     // async fetchCarriers() {\n//     //   return fetch(this.get('host'), {\n//     //     headers : { \n//     //       'Content-Type': 'application/json',\n//     //       'Accept': 'application/json'\n//     //      }  \n//     //     })\n//     //     .then(response => response.json())\n//     //     .then(data => {\n//     //       console.log(\"fetchCarriers:\");\n//     //       // console.log(\"fetchCarriers:\" + JSON.stringify(data.carrier_list));\n//     //       return data;\n//     //     })\n//     // },\n    \n//     actions: {\n//       close() {\n//           this.set('show', false);\n//       },\n\n//       select(record) {\n//           this.set('show', false);\n//           this.sendAction('onSelect', record);\n//       },\n\n//       toggleModal() {\n//         console.log(\"toggleModal:\" + this.get('isShowingModal'));\n//         this.toggleProperty('isShowingModal');\n//         console.log(\"toggleModal:\" + this.get('isShowingModal'));\n//       },\n//       closeTargetSelector() { \n//         this.set('isShowingModal', false);\n//       }\n//     },\n    \ngetCarriers(){\n    \n  return  {\n    \"carrier_list\": {\n      \"AirCel\": {\n        \"Carrier\": \"AirCel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@aircel.co.in\"\n      },\n      \"Airtel\": {\n        \"Carrier\": \"Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelkk.com\"\n      },\n      \"AirFire Mobile\": {\n        \"Carrier\": \"AirFire Mobile\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.airfiremobile.com\"\n      },\n      \"Aio Wireless\": {\n        \"Carrier\": \"Aio Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mms.aiowireless.net\"\n      },\n      \"Alaska Communications\": {\n        \"Carrier\": \"Alaska Communications\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@msg.acsalaska.com\"\n      },\n      \"Aliant Canada\": {\n        \"Carrier\": \"Aliant Canada\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@sms.wirefree.informe.ca\"\n      },\n      \"Alltel (Allied Wireless)\": {\n        \"Carrier\": \"Alltel (Allied Wireless)\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mms.alltelwireless.com\"\n      },\n      \"Verizon Wireless\": {\n        \"Carrier\": \"Verizon Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@vzwpix.com\"\n      },\n      \"Ameritech\": {\n        \"Carrier\": \"Ameritech\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@paging.acswireless.com\"\n      },\n      \"Andhra Pradesh AirTel\": {\n        \"Carrier\": \"Andhra Pradesh AirTel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelap.com\"\n      },\n      \"Andhra Pradesh Idea\": {\n        \"Carrier\": \"Andhra Pradesh Idea\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@ideacellular.net\"\n      },\n      \"Assurance Wireless\": {\n        \"Carrier\": \"Assurance Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@vmobl.com\"\n      },\n      \"AT&T Mobility\": {\n        \"Carrier\": \"AT&T Mobility\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mms.att.net\"\n      },\n      \"AT&T Enterprise Paging\": {\n        \"Carrier\": \"AT&T Enterprise Paging\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@page.att.net\"\n      },\n      \"Beeline\": {\n        \"Carrier\": \"Beeline\",\n        \"Country\": \"Russia\",\n        \"Gateway\": \"number@sms.beemail.ru\"\n      },\n      \"Bell Mobility\": {\n        \"Carrier\": \"Bell Mobility\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@txt.bell.ca\"\n      },\n      \"BellSouth\": {\n        \"Carrier\": \"BellSouth\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@bellsouth.cl\"\n      },\n      \"Bluegrass Cellular\": {\n        \"Carrier\": \"Bluegrass Cellular\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mms.myblueworks.com\"\n      },\n      \"Bluesky Communications\": {\n        \"Carrier\": \"Bluesky Communications\",\n        \"Country\": \"USA Samoa\",\n        \"Gateway\": \"number@psms.bluesky.as\"\n      },\n      \"Boost mobile\": {\n        \"Carrier\": \"Boost mobile\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@myboostmobile.com\"\n      },\n      \"Bouygues Telecom\": {\n        \"Carrier\": \"Bouygues Telecom\",\n        \"Country\": \"France\",\n        \"Gateway\": \"number@mms.bouyguestelecom.fr\"\n      },\n      \"Box Internet Services\": {\n        \"Carrier\": \"Box Internet Services\",\n        \"Country\": \"Switzerland\",\n        \"Gateway\": \"number@mms.boxis.net\"\n      },\n      \"SFR\": {\n        \"Carrier\": \"SFR\",\n        \"Country\": \"France\",\n        \"Gateway\": \"number@sfr.fr\"\n      },\n      \"CellCom\": {\n        \"Carrier\": \"CellCom\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@cellcom.quiktxt.com\"\n      },\n      \"Cellular South\": {\n        \"Carrier\": \"Cellular South\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@csouth1.com\"\n      },\n      \"Centennial Wireless\": {\n        \"Carrier\": \"Centennial Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@cwemail.com\"\n      },\n      \"Chariton Valley Wireless\": {\n        \"Carrier\": \"Chariton Valley Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.cvalley.net\"\n      },\n      \"Chat Mobility\": {\n        \"Carrier\": \"Chat Mobility\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mail.msgsender.com\"\n      },\n      \"Chennai Skycell / Airtel\": {\n        \"Carrier\": \"Chennai Skycell / Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelchennai.com\"\n      },\n      \"Chennai RPG Cellular\": {\n        \"Carrier\": \"Chennai RPG Cellular\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@rpgmail.net\"\n      },\n      \"China Mobile\": {\n        \"Carrier\": \"China Mobile\",\n        \"Country\": \"China\",\n        \"Gateway\": \"number@139.com\"\n      },\n      \"Cincinnati Bell\": {\n        \"Carrier\": \"Cincinnati Bell\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mms.gocbw.com\"\n      },\n      \"Claro\": {\n        \"Carrier\": \"Claro\",\n        \"Country\": \"Colombia\",\n        \"Gateway\": \"number@iclaro.com.co\"\n      },\n      \"Cleartalk\": {\n        \"Carrier\": \"Cleartalk\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.cleartalk.us\"\n      },\n      \"Cricket\": {\n        \"Carrier\": \"Cricket\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mms.mycricket.com\"\n      },\n      \"C Spire Wireless\": {\n        \"Carrier\": \"C Spire Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@cspire1.com\"\n      },\n      \"Accessyou\": {\n        \"Carrier\": \"Accessyou\",\n        \"Country\": \"Hong Kong\",\n        \"Gateway\": \"number@messaging.accessyou.com\"\n      },\n      \"CSL\": {\n        \"Carrier\": \"CSL\",\n        \"Country\": \"Hong Kong\",\n        \"Gateway\": \"number@mgw.mmsc1.hkcsl.com\"\n      },\n      \"CTI Móvil (Now Claro)\": {\n        \"Carrier\": \"CTI Móvil (Now Claro)\",\n        \"Country\": \"Argentina\",\n        \"Gateway\": \"number@sms.ctimovil.com.ar\"\n      },\n      \"Delhi Airtel\": {\n        \"Carrier\": \"Delhi Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"Digicel\": {\n        \"Carrier\": \"Digicel\",\n        \"Country\": \"Dominica\",\n        \"Gateway\": \"number@digitextdm.com\"\n      },\n      \"DTC\": {\n        \"Carrier\": \"DTC\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.advantagecell.net\"\n      },\n      \"E-Plus\": {\n        \"Carrier\": \"E-Plus\",\n        \"Country\": \"Germany\",\n        \"Gateway\": \"number@smsmail.eplus.de\"\n      },\n      \"Edge Wireless\": {\n        \"Carrier\": \"Edge Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.edgewireless.com\"\n      },\n      \"Element Mobile\": {\n        \"Carrier\": \"Element Mobile\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@SMS.elementmobile.net\"\n      },\n      \"Emtel\": {\n        \"Carrier\": \"Emtel\",\n        \"Country\": \"Mauritius\",\n        \"Gateway\": \"number@emtelworld.net\"\n      },\n      \"Esendex\": {\n        \"Carrier\": \"Esendex\",\n        \"Country\": \"Spain\",\n        \"Gateway\": \"number@esendex.net\"\n      },\n      \"Fido\": {\n        \"Carrier\": \"Fido\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@sms.fido.ca\"\n      },\n      \"Firmensms\": {\n        \"Carrier\": \"Firmensms\",\n        \"Country\": \"Austria\",\n        \"Gateway\": \"number@subdomain.firmensms.at\"\n      },\n      \"Freebie SMS\": {\n        \"Carrier\": \"Freebie SMS\",\n        \"Country\": \"Europe\",\n        \"Gateway\": \"number@smssturen.com\"\n      },\n      \"General Communications Inc.\": {\n        \"Carrier\": \"General Communications Inc.\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mobile.gci.net\"\n      },\n      \"Globalstar\": {\n        \"Carrier\": \"Globalstar\",\n        \"Country\": \"International\",\n        \"Gateway\": \"number@msg.globalstarusa.com\"\n      },\n      \"Globul\": {\n        \"Carrier\": \"Globul\",\n        \"Country\": \"Bulgaria\",\n        \"Gateway\": \"number@sms.globul.bg\"\n      },\n      \"Goa Airtel\": {\n        \"Carrier\": \"Goa Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"Goa Idea Cellular\": {\n        \"Carrier\": \"Goa Idea Cellular\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@ideacellular.net\"\n      },\n      \"Golden State Cellular\": {\n        \"Carrier\": \"Golden State Cellular\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@gscsms.com\"\n      },\n      \"Greatcall\": {\n        \"Carrier\": \"Greatcall\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@vtxt.com\"\n      },\n      \"Gujarat Idea Cellular\": {\n        \"Carrier\": \"Gujarat Idea Cellular\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@ideacellular.net\"\n      },\n      \"Gujarat Airtel\": {\n        \"Carrier\": \"Gujarat Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"Gujarat Celforce / Fascel\": {\n        \"Carrier\": \"Gujarat Celforce / Fascel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@celforce.com\"\n      },\n      \"Guyana T&T\": {\n        \"Carrier\": \"Guyana T&T\",\n        \"Country\": \"Guyana\",\n        \"Gateway\": \"number@sms.cellinkgy.com\"\n      },\n      \"Haryana Airtel\": {\n        \"Carrier\": \"Haryana Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"Haryana Escotel\": {\n        \"Carrier\": \"Haryana Escotel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@escotelmobile.com\"\n      },\n      \"Hawaiian Telcom\": {\n        \"Carrier\": \"Hawaiian Telcom\",\n        \"Country\": \"Hawaii USA\",\n        \"Gateway\": \"number@hawaii.sprintpcs.com\"\n      },\n      \"HSL Mobile\": {\n        \"Carrier\": \"HSL Mobile\",\n        \"Country\": \"UK\",\n        \"Gateway\": \"number@sms.haysystems.com\"\n      },\n      \"Helio\": {\n        \"Carrier\": \"Helio\",\n        \"Country\": \"South Korea\",\n        \"Gateway\": \"number@myhelio.com\"\n      },\n      \"Himachai Pradesh Airtel\": {\n        \"Carrier\": \"Himachai Pradesh Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"ICE\": {\n        \"Carrier\": \"ICE\",\n        \"Country\": \"Costa Rica\",\n        \"Gateway\": \"number@sms.ice.cr\"\n      },\n      \"I-wireless(T-Mobile)\": {\n        \"Carrier\": \"I-wireless(T-Mobile)\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number.iws@iwspcs.net\"\n      },\n      \"I-wireless(Sprint PCS)\": {\n        \"Carrier\": \"I-wireless(Sprint PCS)\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@iwirelesshometext.com\"\n      },\n      \"Kajeet\": {\n        \"Carrier\": \"Kajeet\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mobile.kajeet.net\"\n      },\n      \"Karnataka Airtel\": {\n        \"Carrier\": \"Karnataka Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelkk.com\"\n      },\n      \"Kerala Airtel\": {\n        \"Carrier\": \"Kerala Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelkerala.com\"\n      },\n      \"Kerala Escotel\": {\n        \"Carrier\": \"Kerala Escotel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@escotelmobile.com\"\n      },\n      \"Kolkata Airtel\": {\n        \"Carrier\": \"Kolkata Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelkol.com\"\n      },\n      \"Koodo Mobile\": {\n        \"Carrier\": \"Koodo Mobile\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@msg.telus.com\"\n      },\n      \"LongLines\": {\n        \"Carrier\": \"LongLines\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@text.longlines.com\"\n      },\n      \"Lynx Mobility\": {\n        \"Carrier\": \"Lynx Mobility\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@sms.lynxmobility.com\"\n      },\n      \"M1\": {\n        \"Carrier\": \"M1\",\n        \"Country\": \"Singapore\",\n        \"Gateway\": \"number@m1.com.sg\"\n      },\n      \"Madhya Pradesh Airtel\": {\n        \"Carrier\": \"Madhya Pradesh Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"Maharashtra Airtel\": {\n        \"Carrier\": \"Maharashtra Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"Maharashtra Idea\": {\n        \"Carrier\": \"Maharashtra Idea\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@ideacellular.net\"\n      },\n      \"Más Móvil\": {\n        \"Carrier\": \"Más Móvil\",\n        \"Country\": \"Panama\",\n        \"Gateway\": \"number@cwmovil.com\"\n      },\n      \"Mediaburst\": {\n        \"Carrier\": \"Mediaburst\",\n        \"Country\": \"UK\",\n        \"Gateway\": \"number@sms.mediaburst.co.uk\"\n      },\n      \"MetroPCS\": {\n        \"Carrier\": \"MetroPCS\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mymetropcs.com\"\n      },\n      \"Mobiltel\": {\n        \"Carrier\": \"Mobiltel\",\n        \"Country\": \"Bulgaria\",\n        \"Gateway\": \"number@sms.mtel.net\"\n      },\n      \"Mobitel\": {\n        \"Carrier\": \"Mobitel\",\n        \"Country\": \"Sri Lanka\",\n        \"Gateway\": \"number@sms.mobitel.lk\"\n      },\n      \"Movistar\": {\n        \"Carrier\": \"Movistar\",\n        \"Country\": \"Uruguay\",\n        \"Gateway\": \"number@sms.movistar.com.uy\"\n      },\n      \"MTN\": {\n        \"Carrier\": \"MTN\",\n        \"Country\": \"South Africa\",\n        \"Gateway\": \"number@sms.co.za\"\n      },\n      \"MTS Mobility\": {\n        \"Carrier\": \"MTS Mobility\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@text.mtsmobility.com\"\n      },\n      \"Mumbai Airtel\": {\n        \"Carrier\": \"Mumbai Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@airtelmail.com\"\n      },\n      \"My-Cool-SMS\": {\n        \"Carrier\": \"My-Cool-SMS\",\n        \"Country\": \"UK\",\n        \"Gateway\": \"number@my-cool-sms.com\"\n      },\n      \"Nextech\": {\n        \"Carrier\": \"Nextech\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.ntwls.net\"\n      },\n      \"Nextel\": {\n        \"Carrier\": \"Nextel\",\n        \"Country\": \"Argentina\",\n        \"Gateway\": \"TwoWay.11number@nextel.net.ar\"\n      },\n      \"O2\": {\n        \"Carrier\": \"O2\",\n        \"Country\": \"Germany\",\n        \"Gateway\": \"number@o2online.de\"\n      },\n      \"OgVodafone\": {\n        \"Carrier\": \"OgVodafone\",\n        \"Country\": \"Iceland\",\n        \"Gateway\": \"number@sms.is\"\n      },\n      \"Orange\": {\n        \"Carrier\": \"Orange\",\n        \"Country\": \"UK\",\n        \"Gateway\": \"number@orange.net\"\n      },\n      \"Page Plus Cellular (Verizon)\": {\n        \"Carrier\": \"Page Plus Cellular (Verizon)\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@vzwpix.com\"\n      },\n      \"Pioneer Cellular\": {\n        \"Carrier\": \"Pioneer Cellular\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"nine-digit-number@zsend.com\"\n      },\n      \"Personal\": {\n        \"Carrier\": \"Personal\",\n        \"Country\": \"Argentina\",\n        \"Gateway\": \"number@alertas.personal.com.ar\"\n      },\n      \"Plus\": {\n        \"Carrier\": \"Plus\",\n        \"Country\": \"Polan\",\n        \"Gateway\": \"number@text.plusgsm.pl\"\n      },\n      \"Pocket Wireless\": {\n        \"Carrier\": \"Pocket Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.pocket.com\"\n      },\n      \"PC Telecom\": {\n        \"Carrier\": \"PC Telecom\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@mobiletxt.ca\"\n      },\n      \"Polkomtel\": {\n        \"Carrier\": \"Polkomtel\",\n        \"Country\": \"Poland\",\n        \"Gateway\": \"number@text.plusgsm.pl\"\n      },\n      \"Qwest Wireless\": {\n        \"Carrier\": \"Qwest Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@qwestmp.com\"\n      },\n      \"Red Pocket Mobile\": {\n        \"Carrier\": \"Red Pocket Mobile\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@vtext.com\"\n      },\n      \"Rogers Wireless\": {\n        \"Carrier\": \"Rogers Wireless\",\n        \"Country\": \"Canada & USA\",\n        \"Gateway\": \"number@mms.rogers.com\"\n      },\n      \"SaskTel\": {\n        \"Carrier\": \"SaskTel\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@pcs.sasktelmobility.com\"\n      },\n      \"Sendega\": {\n        \"Carrier\": \"Sendega\",\n        \"Country\": \"Norway\",\n        \"Gateway\": \"number@sendega.com\"\n      },\n      \"Setar Mobile email (Aruba)\": {\n        \"Carrier\": \"Setar Mobile email (Aruba)\",\n        \"Country\": \"Aruba\",\n        \"Gateway\": \"number@mas.aw\"\n      },\n      \"Síminn\": {\n        \"Carrier\": \"Síminn\",\n        \"Country\": \"Iceland\",\n        \"Gateway\": \"number@box.is\"\n      },\n      \"Simple Mobile\": {\n        \"Carrier\": \"Simple Mobile\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@smtext.com\"\n      },\n      \"SMS Broadcast\": {\n        \"Carrier\": \"SMS Broadcast\",\n        \"Country\": \"Australia\",\n        \"Gateway\": \"number@send.smsbroadcast.com.au\"\n      },\n      \"SMS Central\": {\n        \"Carrier\": \"SMS Central\",\n        \"Country\": \"Australia\",\n        \"Gateway\": \"number@sms.smscentral.com.au\"\n      },\n      \"SMSPUP\": {\n        \"Carrier\": \"SMSPUP\",\n        \"Country\": \"Australia\",\n        \"Gateway\": \"number@smspup.com\"\n      },\n      \"Southernlinc\": {\n        \"Carrier\": \"Southernlinc\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@page.southernlinc.com\"\n      },\n      \"South Central Communications\": {\n        \"Carrier\": \"South Central Communications\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@rinasms.com\"\n      },\n      \"Spikko\": {\n        \"Carrier\": \"Spikko\",\n        \"Country\": \"Israel\",\n        \"Gateway\": \"number@SpikkoSMS.com\"\n      },\n      \"Sprint\": {\n        \"Carrier\": \"Sprint\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@pm.sprint.com\"\n      },\n      \"Straight Talk\": {\n        \"Carrier\": \"Straight Talk\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"Other: number@mmst5.tracfone.com\"\n      },\n      \"Sunrise Communications\": {\n        \"Carrier\": \"Sunrise Communications\",\n        \"Country\": \"Switzerland\",\n        \"Gateway\": \"number@gsm.sunrise.ch\"\n      },\n      \"Syringa Wireless\": {\n        \"Carrier\": \"Syringa Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@rinasms.com\"\n      },\n      \"TeletopiaSMS\": {\n        \"Carrier\": \"TeletopiaSMS\",\n        \"Country\": \"Norway\",\n        \"Gateway\": \"number@sms.teletopiasms.no\"\n      },\n      \"T-Mobile\": {\n        \"Carrier\": \"T-Mobile\",\n        \"Country\": \"Netherlands\",\n        \"Gateway\": \"number@gin.nl\"\n      },\n      \"T-Mobile (Optus Zoo)\": {\n        \"Carrier\": \"T-Mobile (Optus Zoo)\",\n        \"Country\": \"Australia\",\n        \"Gateway\": \"number@optusmobile.com.au\"\n      },\n      \"Tamil Nadu Airtel\": {\n        \"Carrier\": \"Tamil Nadu Airtel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"919894number@airtelmobile.com\"\n      },\n      \"Tamil Nadu Aircel\": {\n        \"Carrier\": \"Tamil Nadu Aircel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"9842number@airsms.com\"\n      },\n      \"Tele2\": {\n        \"Carrier\": \"Tele2\",\n        \"Country\": \"Sweden\",\n        \"Gateway\": \"number@sms.tele2.se\"\n      },\n      \"Telecom\": {\n        \"Carrier\": \"Telecom\",\n        \"Country\": \"New Zealand\",\n        \"Gateway\": \"number@etxt.co.nz\"\n      },\n      \"Teleflip\": {\n        \"Carrier\": \"Teleflip\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@teleflip.com\"\n      },\n      \"Telstra\": {\n        \"Carrier\": \"Telstra\",\n        \"Country\": \"Australia\",\n        \"Gateway\": \"mobile@sms.tim.telstra.com\"\n      },\n      \"Telus Mobility\": {\n        \"Carrier\": \"Telus Mobility\",\n        \"Country\": \"Canada & USA\",\n        \"Gateway\": \"number@mms.telusmobility.com\"\n      },\n      \"TellusTalk\": {\n        \"Carrier\": \"TellusTalk\",\n        \"Country\": \"Europe\",\n        \"Gateway\": \"number@esms.nu\"\n      },\n      \"Tigo (Formerly Ola)\": {\n        \"Carrier\": \"Tigo (Formerly Ola)\",\n        \"Country\": \"Colombia\",\n        \"Gateway\": \"number@sms.tigo.com.co\"\n      },\n      \"TIM\": {\n        \"Carrier\": \"TIM\",\n        \"Country\": \"Italy\",\n        \"Gateway\": \"number@timnet.com\"\n      },\n      \"Ting\": {\n        \"Carrier\": \"Ting\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@message.ting.com\"\n      },\n      \"TracFone (prepaid)\": {\n        \"Carrier\": \"TracFone (prepaid)\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mmst5.tracfone.com\"\n      },\n      \"Txtlocal\": {\n        \"Carrier\": \"Txtlocal\",\n        \"Country\": \"UK\",\n        \"Gateway\": \"number@txtlocal.co.uk\"\n      },\n      \"Telcel\": {\n        \"Carrier\": \"Telcel\",\n        \"Country\": \"Mexico\",\n        \"Gateway\": \"number@itelcel.com\"\n      },\n      \"Unicel\": {\n        \"Carrier\": \"Unicel\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@utext.com\"\n      },\n      \"UniMóvil Corporation\": {\n        \"Carrier\": \"UniMóvil Corporation\",\n        \"Country\": \"UK\",\n        \"Gateway\": \"number@viawebsms.com\"\n      },\n      \"Union Wireless\": {\n        \"Carrier\": \"Union Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@union-tel.com\"\n      },\n      \"US Cellular\": {\n        \"Carrier\": \"US Cellular\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mms.uscc.net\"\n      },\n      \"USA Mobility\": {\n        \"Carrier\": \"USA Mobility\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@usamobility.net\"\n      },\n      \"UTBox\": {\n        \"Carrier\": \"UTBox\",\n        \"Country\": \"Australia\",\n        \"Gateway\": \"number@sms.utbox.net\"\n      },\n      \"Uttar Pradesh West Escotel\": {\n        \"Carrier\": \"Uttar Pradesh West Escotel\",\n        \"Country\": \"India\",\n        \"Gateway\": \"number@escotelmobile.com\"\n      },\n      \"Viaero\": {\n        \"Carrier\": \"Viaero\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@mmsviaero.com\"\n      },\n      \"Vivo\": {\n        \"Carrier\": \"Vivo\",\n        \"Country\": \"Brazil\",\n        \"Gateway\": \"number@torpedoemail.com.br\"\n      },\n      \"Virgin Mobile\": {\n        \"Carrier\": \"Virgin Mobile\",\n        \"Country\": \"UK\",\n        \"Gateway\": \"number@vxtras.com\"\n      },\n      \"Vodacom\": {\n        \"Carrier\": \"Vodacom\",\n        \"Country\": \"South Africa\",\n        \"Gateway\": \"number@voda.co.za\"\n      },\n      \"Vodafone\": {\n        \"Carrier\": \"Vodafone\",\n        \"Country\": \"New Zealand\",\n        \"Gateway\": \"number@mtxt.co.nz\"\n      },\n      \"Voyager Mobile\": {\n        \"Carrier\": \"Voyager Mobile\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@text.voyagermobile.com\"\n      },\n      \"West Central Wireless\": {\n        \"Carrier\": \"West Central Wireless\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.wcc.net\"\n      },\n      \"Wind Mobile\": {\n        \"Carrier\": \"Wind Mobile\",\n        \"Country\": \"Canada\",\n        \"Gateway\": \"number@txt.windmobile.ca\"\n      },\n      \"XIT Communications\": {\n        \"Carrier\": \"XIT Communications\",\n        \"Country\": \"USA\",\n        \"Gateway\": \"number@sms.xit.net\"\n      }\n    }\n    }\n  }\n}\n","define(\"geotechnical-data-platform-new/components/rectangle-layer\", [\"exports\", \"ember-leaflet/components/rectangle-layer\"], function (_exports, _rectangleLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _rectangleLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/root\", [\"exports\", \"ember-composability-tools/components/root\"], function (_exports, _root) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _root.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/searchable-select-option\", [\"exports\", \"ember-searchable-select/components/searchable-select-option\"], function (_exports, _searchableSelectOption) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _searchableSelectOption.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/searchable-select\", [\"exports\", \"ember-searchable-select/components/searchable-select\"], function (_exports, _searchableSelect) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _searchableSelect.default;\n    }\n  });\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    session: service(),\n    userProfileService: service(),\n});\n","\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    session: service(),\n    router: service(),\n    userProfileService: service(),\n    loading:false,\n    actions: {\n        navigateToLicenseKeys(){\n            this.set('loading', true);\n            this.router.transitionTo(\"keys\");\n        },\n        navigateToBackendLogs(){\n            this.set('loading', true);\n            this.router.transitionTo(\"log-viewer\");\n\n        }\n    }\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    session: service(),\n    userProfileService: service(),\n    init() {\n        this._super(...arguments);\n    },\n    actions: {\n        \n        close(){\n            this.get(\"closeModal\")();\n        },\n        save(type){\n            console.log(\"save modal type:\" + type)\n            this.get(\"confirmModal\")(type);\n        }\n    }\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\nexport default Ember.Component.extend({\n    session: service(),\n    router: service(),\n    userProfileService: service(),\n    api: service(),\n    selectedDatetimeFormat: null,\n    selectTimezone: null,\n\n    isShowClearLogsConfirmationModal:false,\n    clearLogsConfirmationModalType:null,\n\n    confirmMessage: {\n        all: \"This will permanently delete all LogViewer & your User logs. This action cannot be undone.\",\n        log_viewer: \"This will permanently delete all LogViewer logs.\",\n        user_logs: \"This will permanently delete all your user activity logs.\"\n    },\n    NA_CONSTANT:\"N/A\",\n    generalUsedValue:0,\n    generalUsedPercent:0,\n    generalFreeValue:0,\n    generalFreePercent:0,\n    generalTotalValue:0,\n\n    postgresGeneralLogsValue:0,\n    postgresGeneralLogsPercent:0,\n    postgresUserLogsValue:0,\n    postgresUserLogsPercent:0,\n    postgresInstrValue:0,\n    postgresInstrPercent:0,\n    postgresGWValue:0,\n    postgresGWPercent:0,\n    postgresOthersValue:0,\n    postgresOthersPercent:0,\n    postgresTotalValue:0,\n\n\n    showStorageMessage:false,\n    updateStorageMessage:null,\n\n    loading:false,\n    async init(){\n        this._super(...arguments);\n        let records = this.get('model').toArray();\n\n        for (let i = 0; i < records.length; i++) {\n            if (records[i].get('title') === 'GLOBAL_DATETIME_FORMAT') {\n                this.set(\"selectedDatetimeFormat\", records[i].get('value'));\n            }\n            else if (records[i].get('title') === 'TIME_ZONE') {\n                this.set(\"selectTimezone\", records[i].get('value'));\n            }\n        }\n        \n        await this.getStorage();\n    },\n    getStorage: async function(){\n        this.set(\"isLoading\", true);\n        let url = `${getApiBaseUrl()}/storage/breakdown/`;\n        let response = await this.api.fetch(url, {\n            method: \"GET\",\n            headers: {\n            \"Content-Type\": \"application/json\",\n            Authorization: `Bearer ${localStorage.token}`\n            },\n        });\n        if (response.status == 200) {\n            const responseData = await response.json(); \n            this.processGeneralData(responseData.data.general);\n            this.processPostGresData(responseData.data.postgres);\n            this.processInfluxData(responseData.data.influx);\n        }\n        else {\n            this.errorGeneralData();\n            this.errorPostGresData();\n            this.errorInfluxData();\n        } \n        this.set(\"isLoading\", false);\n    },\n    processGeneralData:function(data){\n        try{\n            let usedData = data.used.data;\n            let freeData = data.free.data;\n            let totalData = data.total.data;\n            //Get Used Value\n            this.set(\"generalUsedValue\", `${(usedData).toFixed(1)} ${data.used.unit}`)\n            //Get Used Percent\n            this.set(\"generalUsedPercent\", ((usedData / totalData) * 100).toFixed(1))\n            //Get Free Value\n            this.set(\"generalFreeValue\", `${(freeData).toFixed(1)} ${data.free.unit}`)\n            //Get Free Percent\n            this.set(\"generalFreePercent\", ((freeData / totalData) * 100).toFixed(1))\n            //Get Total Value\n            this.set(\"generalTotalValue\", `${(totalData).toFixed(1)} ${data.total.unit}`)\n        }\n        catch (e){\n            console.log(e);\n            this.errorGeneralData();\n            \n        }\n    },\n    errorGeneralData:function(){\n            //Get Used Value\n            this.set(\"generalUsedValue\", NA_CONSTANT)\n            //Get Used Percent\n            this.set(\"generalUsedPercent\", 0)\n            //Get Free Value\n            this.set(\"generalFreeValue\", NA_CONSTANT)\n            //Get Free Percent\n            this.set(\"generalFreePercent\", 0)\n            //Get Total Value\n            this.set(\"generalTotalValue\", NA_CONSTANT)\n    },\n\n    processPostGresData:function(data){\n        try{\n            let tableLabel = [\"general_logs\", \"user_logs\", \"instruments\", \"gateways\", \"others\"]\n            //Bar color matching exactly between tableLabel and colorLabel\n            let colorLabel = [ \"#4E79A7\", \"#F28E2B\", \"#59A14F\", \"#E15759\", \"#BAB0AC\"]\n            let total = data.database.data;\n            let parentStorageBarSection = document.getElementById(\"postgresParentStorageBar\");\n            let parentLabelSection = document.getElementById(\"postgresLabelSection\");\n\n            for(let i=0; i<tableLabel.length; i++){\n                const label = tableLabel[i];\n                let value = data[\"tables\"][label][\"data\"];\n                let title = data[\"tables\"][label][\"label\"];\n                let unit = data[\"tables\"][label][\"unit\"];\n                let percentage = ((value / total) * 100).toFixed(1)\n                //Build Bar Section\n                const bar = document.createElement(\"div\");\n                bar.className = \"settings-storage-neutral\";\n                bar.style.width = `${percentage}%`;\n                bar.style.backgroundColor = colorLabel[i];\n                parentStorageBarSection.appendChild(bar);\n                //Label Section\n                const text = document.createElement(\"div\");\n                text.style.color=colorLabel[i];\n                text.style.whiteSpace = \"pre-line\";\n                text.textContent = `${title}\\n${value.toFixed(4)} ${unit}/${percentage}%`;\n                parentLabelSection.appendChild(text);\n            }\n            //Total Section\n            const totalText = document.createElement(\"div\");\n            totalText.style.color=\"black\";\n            totalText.style.whiteSpace = \"pre-line\";\n            totalText.textContent = `Total\\n${total.toFixed(4)} ${data.database.unit}`;\n            parentLabelSection.appendChild(totalText);\n        }\n        catch (e){\n            console.log(e);\n            this.errorPostGresData();\n            \n        }\n    },\n\n    errorPostGresData:function(){\n        let parentStorageBarSection = document.getElementById(\"postgresParentStorageBar\");\n        parentStorageBarSection.innerHTML = \"\";\n        let parentLabelSection = document.getElementById(\"postgresLabelSection\");\n        parentLabelSection.innerHTML = \"\";\n    },\n\n    processInfluxData:function(data){\n        try{\n            let parentStorageBarSection = document.getElementById(\"influxParentStorageBar\");\n            parentStorageBarSection.innerHTML = \"\";\n            let parentLabelSection = document.getElementById(\"influxLabelSection\");\n            const text = document.createElement(\"div\");\n            text.style.color=\"black\";\n            text.style.whiteSpace = \"pre-line\";\n            text.textContent = `Used: ${data.data} ${data.unit}\\n${data.note}`;\n            parentLabelSection.appendChild(text);\n        }\n        catch (e){\n            console.log(e);\n            this.errorPostGresData();\n            \n        }\n    },\n\n    errorInfluxData:function(){\n        let parentStorageBarSection = document.getElementById(\"influxParentStorageBar\");\n        parentStorageBarSection.innerHTML = \"\";\n        let parentLabelSection = document.getElementById(\"influxLabelSection\");\n        parentLabelSection.innerHTML = \"\";\n    },\n    isMasterProfile:Ember.computed(\"userProfileService\", function(){\n        try{\n            return this.get(\"userProfileService\")[\"userProfileService\"].profile.is_master_key_account;\n        }\n        catch(err){\n            return false;\n        }\n    }),\n    isStaffUser: Ember.computed('userProfileService', function () {\n        return (\n        this.userProfileService.userProfileService?.profile?.is_staff || false\n        );\n    }),\n    datetimeFormatArray: [\n        {\n            id: 'YYYY-MM-DD HH:mm:ss',\n            title: 'YYYY-MM-DD HH:mm:ss (ISO 8601)'\n        },\n        {\n            id: 'YYYY-DD-MM HH:mm:ss',\n            title: 'YYYY-DD-MM HH:mm:ss'\n        },\n        {\n            id: 'MM-DD-YYYY HH:mm:ss',\n            title: 'MM-DD-YYYY HH:mm:ss (USA)'\n        },\n        {\n            id: 'DD-MM-YYYY HH:mm:ss',\n            title: 'DD-MM-YYYY HH:mm:ss'\n        },\n        {\n            id: 'YYYY/MM/DD HH:mm:ss',\n            title: 'MM/DD/YYYY HH:mm:ss'\n        },\n        {\n            id: 'YYYY/DD/MM HH:mm:ss',\n            title: 'YYYY/DD/MM HH:mm:ss'\n        },\n        {\n            id: 'MM/DD/YYYY HH:mm:ss',\n            title: 'MM/DD/YYYY HH:mm:ss'\n        },\n        {\n            id: 'DD/MM/YYYY HH:mm:ss',\n            title: 'DD/MM/YYYY HH:mm:ss'\n        },\n    ],\n    timeZones: [\n        {\n            id: 'Africa/Abidjan',\n            title: 'Africa/Abidjan'\n        },\n        {\n            id: 'Africa/Accra',\n            title: 'Africa/Accra'\n        },\n        {\n            id: 'Africa/Addis_Ababa',\n            title: 'Africa/Addis_Ababa'\n        },\n        {\n            id: 'Africa/Algiers',\n            title: 'Africa/Algiers'\n        },\n        {\n            id: 'Africa/Asmara',\n            title: 'Africa/Asmara'\n        },\n        {\n            id: 'Africa/Asmera',\n            title: 'Africa/Asmera'\n        },\n        {\n            id: 'Africa/Bamako',\n            title: 'Africa/Bamako'\n        },\n        {\n            id: 'Africa/Bangui',\n            title: 'Africa/Bangui'\n        },\n        {\n            id: 'Africa/Banjul',\n            title: 'Africa/Banjul'\n        },\n        {\n            id: 'Africa/Bissau',\n            title: 'Africa/Bissau'\n        },\n        {\n            id: 'Africa/Blantyre',\n            title: 'Africa/Blantyre'\n        },\n        {\n            id: 'Africa/Brazzaville',\n            title: 'Africa/Brazzaville'\n        },\n        {\n            id: 'Africa/Bujumbura',\n            title: 'Africa/Bujumbura'\n        },\n        {\n            id: 'Africa/Cairo',\n            title: 'Africa/Cairo'\n        },\n        {\n            id: 'Africa/Casablanca',\n            title: 'Africa/Casablanca'\n        },\n        {\n            id: 'Africa/Ceuta',\n            title: 'Africa/Ceuta'\n        },\n        {\n            id: 'Africa/Conakry',\n            title: 'Africa/Conakry'\n        },\n        {\n            id: 'Africa/Dakar',\n            title: 'Africa/Dakar'\n        },\n        {\n            id: 'Africa/Dar_es_Salaam',\n            title: 'Africa/Dar_es_Salaam'\n        },\n        {\n            id: 'Africa/Djibouti',\n            title: 'Africa/Djibouti'\n        },\n        {\n            id: 'Africa/Douala',\n            title: 'Africa/Douala'\n        },\n        {\n            id: 'Africa/El_Aaiun',\n            title: 'Africa/El_Aaiun'\n        },\n        {\n            id: 'Africa/Freetown',\n            title: 'Africa/Freetown'\n        },\n        {\n            id: 'Africa/Gaborone',\n            title: 'Africa/Gaborone'\n        },\n        {\n            id: 'Africa/Harare',\n            title: 'Africa/Harare'\n        },\n        {\n            id: 'Africa/Johannesburg',\n            title: 'Africa/Johannesburg'\n        },\n        {\n            id: 'Africa/Juba',\n            title: 'Africa/Juba'\n        },\n        {\n            id: 'Africa/Kampala',\n            title: 'Africa/Kampala'\n        },\n        {\n            id: 'Africa/Khartoum',\n            title: 'Africa/Khartoum'\n        },\n        {\n            id: 'Africa/Kigali',\n            title: 'Africa/Kigali'\n        },\n        {\n            id: 'Africa/Kinshasa',\n            title: 'Africa/Kinshasa'\n        },\n        {\n            id: 'Africa/Lagos',\n            title: 'Africa/Lagos'\n        },\n        {\n            id: 'Africa/Libreville',\n            title: 'Africa/Libreville'\n        },\n        {\n            id: 'Africa/Lome',\n            title: 'Africa/Lome'\n        },\n        {\n            id: 'Africa/Luanda',\n            title: 'Africa/Luanda'\n        },\n        {\n            id: 'Africa/Lubumbashi',\n            title: 'Africa/Lubumbashi'\n        },\n        {\n            id: 'Africa/Lusaka',\n            title: 'Africa/Lusaka'\n        },\n        {\n            id: 'Africa/Malabo',\n            title: 'Africa/Malabo'\n        },\n        {\n            id: 'Africa/Maputo',\n            title: 'Africa/Maputo'\n        },\n        {\n            id: 'Africa/Maseru',\n            title: 'Africa/Maseru'\n        },\n        {\n            id: 'Africa/Mbabane',\n            title: 'Africa/Mbabane'\n        },\n        {\n            id: 'Africa/Mogadishu',\n            title: 'Africa/Mogadishu'\n        },\n        {\n            id: 'Africa/Monrovia',\n            title: 'Africa/Monrovia'\n        },\n        {\n            id: 'Africa/Nairobi',\n            title: 'Africa/Nairobi'\n        },\n        {\n            id: 'Africa/Ndjamena',\n            title: 'Africa/Ndjamena'\n        },\n        {\n            id: 'Africa/Niamey',\n            title: 'Africa/Niamey'\n        },\n        {\n            id: 'Africa/Nouakchott',\n            title: 'Africa/Nouakchott'\n        },\n        {\n            id: 'Africa/Ouagadougou',\n            title: 'Africa/Ouagadougou'\n        },\n        {\n            id: 'Africa/Porto-Novo',\n            title: 'Africa/Porto-Novo'\n        },\n        {\n            id: 'Africa/Sao_Tome',\n            title: 'Africa/Sao_Tome'\n        },\n        {\n            id: 'Africa/Timbuktu',\n            title: 'Africa/Timbuktu'\n        },\n        {\n            id: 'Africa/Tripoli',\n            title: 'Africa/Tripoli'\n        },\n        {\n            id: 'Africa/Tunis',\n            title: 'Africa/Tunis'\n        },\n        {\n            id: 'Africa/Windhoek',\n            title: 'Africa/Windhoek'\n        },\n        {\n            id: 'America/Adak',\n            title: 'America/Adak'\n        },\n        {\n            id: 'America/Anchorage',\n            title: 'America/Anchorage'\n        },\n        {\n            id: 'America/Anguilla',\n            title: 'America/Anguilla'\n        },\n        {\n            id: 'America/Antigua',\n            title: 'America/Antigua'\n        },\n        {\n            id: 'America/Araguaina',\n            title: 'America/Araguaina'\n        },\n        {\n            id: 'America/Argentina/Buenos_Aires',\n            title: 'America/Argentina/Buenos_Aires'\n        },\n        {\n            id: 'America/Argentina/Catamarca',\n            title: 'America/Argentina/Catamarca'\n        },\n        {\n            id: 'America/Argentina/ComodRivadavia',\n            title: 'America/Argentina/ComodRivadavia'\n        },\n        {\n            id: 'America/Argentina/Cordoba',\n            title: 'America/Argentina/Cordoba'\n        },\n        {\n            id: 'America/Argentina/Jujuy',\n            title: 'America/Argentina/Jujuy'\n        },\n        {\n            id: 'America/Argentina/La_Rioja',\n            title: 'America/Argentina/La_Rioja'\n        },\n        {\n            id: 'America/Argentina/Mendoza',\n            title: 'America/Argentina/Mendoza'\n        },\n        {\n            id: 'America/Argentina/Rio_Gallegos',\n            title: 'America/Argentina/Rio_Gallegos'\n        },\n        {\n            id: 'America/Argentina/Salta',\n            title: 'America/Argentina/Salta'\n        },\n        {\n            id: 'America/Argentina/San_Juan',\n            title: 'America/Argentina/San_Juan'\n        },\n        {\n            id: 'America/Argentina/San_Luis',\n            title: 'America/Argentina/San_Luis'\n        },\n        {\n            id: 'America/Argentina/Tucuman',\n            title: 'America/Argentina/Tucuman'\n        },\n        {\n            id: 'America/Argentina/Ushuaia',\n            title: 'America/Argentina/Ushuaia'\n        },\n        {\n            id: 'America/Aruba',\n            title: 'America/Aruba'\n        },\n        {\n            id: 'America/Asuncion',\n            title: 'America/Asuncion'\n        },\n        {\n            id: 'America/Atikokan',\n            title: 'America/Atikokan'\n        },\n        {\n            id: 'America/Atka',\n            title: 'America/Atka'\n        },\n        {\n            id: 'America/Bahia',\n            title: 'America/Bahia'\n        },\n        {\n            id: 'America/Bahia_Banderas',\n            title: 'America/Bahia_Banderas'\n        },\n        {\n            id: 'America/Barbados',\n            title: 'America/Barbados'\n        },\n        {\n            id: 'America/Belem',\n            title: 'America/Belem'\n        },\n        {\n            id: 'America/Belize',\n            title: 'America/Belize'\n        },\n        {\n            id: 'America/Blanc-Sablon',\n            title: 'America/Blanc-Sablon'\n        },\n        {\n            id: 'America/Boa_Vista',\n            title: 'America/Boa_Vista'\n        },\n        {\n            id: 'America/Bogota',\n            title: 'America/Bogota'\n        },\n        {\n            id: 'America/Boise',\n            title: 'America/Boise'\n        },\n        {\n            id: 'America/Buenos_Aires',\n            title: 'America/Buenos_Aires'\n        },\n        {\n            id: 'America/Cambridge_Bay',\n            title: 'America/Cambridge_Bay'\n        },\n        {\n            id: 'America/Campo_Grande',\n            title: 'America/Campo_Grande'\n        },\n        {\n            id: 'America/Cancun',\n            title: 'America/Cancun'\n        },\n        {\n            id: 'America/Caracas',\n            title: 'America/Caracas'\n        },\n        {\n            id: 'America/Catamarca',\n            title: 'America/Catamarca'\n        },\n        {\n            id: 'America/Cayenne',\n            title: 'America/Cayenne'\n        },\n        {\n            id: 'America/Cayman',\n            title: 'America/Cayman'\n        },\n        {\n            id: 'America/Chicago',\n            title: 'America/Chicago'\n        },\n        {\n            id: 'America/Chihuahua',\n            title: 'America/Chihuahua'\n        },\n        {\n            id: 'America/Coral_Harbour',\n            title: 'America/Coral_Harbour'\n        },\n        {\n            id: 'America/Cordoba',\n            title: 'America/Cordoba'\n        },\n        {\n            id: 'America/Costa_Rica',\n            title: 'America/Costa_Rica'\n        },\n        {\n            id: 'America/Creston',\n            title: 'America/Creston'\n        },\n        {\n            id: 'America/Cuiaba',\n            title: 'America/Cuiaba'\n        },\n        {\n            id: 'America/Curacao',\n            title: 'America/Curacao'\n        },\n        {\n            id: 'America/Danmarkshavn',\n            title: 'America/Danmarkshavn'\n        },\n        {\n            id: 'America/Dawson',\n            title: 'America/Dawson'\n        },\n        {\n            id: 'America/Dawson_Creek',\n            title: 'America/Dawson_Creek'\n        },\n        {\n            id: 'America/Denver',\n            title: 'America/Denver'\n        },\n        {\n            id: 'America/Detroit',\n            title: 'America/Detroit'\n        },\n        {\n            id: 'America/Dominica',\n            title: 'America/Dominica'\n        },\n        {\n            id: 'America/Edmonton',\n            title: 'America/Edmonton'\n        },\n        {\n            id: 'America/Eirunepe',\n            title: 'America/Eirunepe'\n        },\n        {\n            id: 'America/El_Salvador',\n            title: 'America/El_Salvador'\n        },\n        {\n            id: 'America/Ensenada',\n            title: 'America/Ensenada'\n        },\n        {\n            id: 'America/Fort_Nelson',\n            title: 'America/Fort_Nelson'\n        },\n        {\n            id: 'America/Fort_Wayne',\n            title: 'America/Fort_Wayne'\n        },\n        {\n            id: 'America/Fortaleza',\n            title: 'America/Fortaleza'\n        },\n        {\n            id: 'America/Glace_Bay',\n            title: 'America/Glace_Bay'\n        },\n        {\n            id: 'America/Godthab',\n            title: 'America/Godthab'\n        },\n        {\n            id: 'America/Goose_Bay',\n            title: 'America/Goose_Bay'\n        },\n        {\n            id: 'America/Grand_Turk',\n            title: 'America/Grand_Turk'\n        },\n        {\n            id: 'America/Grenada',\n            title: 'America/Grenada'\n        },\n        {\n            id: 'America/Guadeloupe',\n            title: 'America/Guadeloupe'\n        },\n        {\n            id: 'America/Guatemala',\n            title: 'America/Guatemala'\n        },\n        {\n            id: 'America/Guayaquil',\n            title: 'America/Guayaquil'\n        },\n        {\n            id: 'America/Guyana',\n            title: 'America/Guyana'\n        },\n        {\n            id: 'America/Halifax',\n            title: 'America/Halifax'\n        },\n        {\n            id: 'America/Havana',\n            title: 'America/Havana'\n        },\n        {\n            id: 'America/Hermosillo',\n            title: 'America/Hermosillo'\n        },\n        {\n            id: 'America/Indiana/Indianapolis',\n            title: 'America/Indiana/Indianapolis'\n        },\n        {\n            id: 'America/Indiana/Knox',\n            title: 'America/Indiana/Knox'\n        },\n        {\n            id: 'America/Indiana/Marengo',\n            title: 'America/Indiana/Marengo'\n        },\n        {\n            id: 'America/Indiana/Petersburg',\n            title: 'America/Indiana/Petersburg'\n        },\n        {\n            id: 'America/Indiana/Tell_City',\n            title: 'America/Indiana/Tell_City'\n        },\n        {\n            id: 'America/Indiana/Vevay',\n            title: 'America/Indiana/Vevay'\n        },\n        {\n            id: 'America/Indiana/Vincennes',\n            title: 'America/Indiana/Vincennes'\n        },\n        {\n            id: 'America/Indiana/Winamac',\n            title: 'America/Indiana/Winamac'\n        },\n        {\n            id: 'America/Indianapolis',\n            title: 'America/Indianapolis'\n        },\n        {\n            id: 'America/Inuvik',\n            title: 'America/Inuvik'\n        },\n        {\n            id: 'America/Iqaluit',\n            title: 'America/Iqaluit'\n        },\n        {\n            id: 'America/Jamaica',\n            title: 'America/Jamaica'\n        },\n        {\n            id: 'America/Jujuy',\n            title: 'America/Jujuy'\n        },\n        {\n            id: 'America/Juneau',\n            title: 'America/Juneau'\n        },\n        {\n            id: 'America/Kentucky/Louisville',\n            title: 'America/Kentucky/Louisville'\n        },\n        {\n            id: 'America/Kentucky/Monticello',\n            title: 'America/Kentucky/Monticello'\n        },\n        {\n            id: 'America/Knox_IN',\n            title: 'America/Knox_IN'\n        },\n        {\n            id: 'America/Kralendijk',\n            title: 'America/Kralendijk'\n        },\n        {\n            id: 'America/La_Paz',\n            title: 'America/La_Paz'\n        },\n        {\n            id: 'America/Lima',\n            title: 'America/Lima'\n        },\n        {\n            id: 'America/Los_Angeles',\n            title: 'America/Los_Angeles'\n        },\n        {\n            id: 'America/Louisville',\n            title: 'America/Louisville'\n        },\n        {\n            id: 'America/Lower_Princes',\n            title: 'America/Lower_Princes'\n        },\n        {\n            id: 'America/Maceio',\n            title: 'America/Maceio'\n        },\n        {\n            id: 'America/Managua',\n            title: 'America/Managua'\n        },\n        {\n            id: 'America/Manaus',\n            title: 'America/Manaus'\n        },\n        {\n            id: 'America/Marigot',\n            title: 'America/Marigot'\n        },\n        {\n            id: 'America/Martinique',\n            title: 'America/Martinique'\n        },\n        {\n            id: 'America/Matamoros',\n            title: 'America/Matamoros'\n        },\n        {\n            id: 'America/Mazatlan',\n            title: 'America/Mazatlan'\n        },\n        {\n            id: 'America/Mendoza',\n            title: 'America/Mendoza'\n        },\n        {\n            id: 'America/Menominee',\n            title: 'America/Menominee'\n        },\n        {\n            id: 'America/Merida',\n            title: 'America/Merida'\n        },\n        {\n            id: 'America/Metlakatla',\n            title: 'America/Metlakatla'\n        },\n        {\n            id: 'America/Mexico_City',\n            title: 'America/Mexico_City'\n        },\n        {\n            id: 'America/Miquelon',\n            title: 'America/Miquelon'\n        },\n        {\n            id: 'America/Moncton',\n            title: 'America/Moncton'\n        },\n        {\n            id: 'America/Monterrey',\n            title: 'America/Monterrey'\n        },\n        {\n            id: 'America/Montevideo',\n            title: 'America/Montevideo'\n        },\n        {\n            id: 'America/Montreal',\n            title: 'America/Montreal'\n        },\n        {\n            id: 'America/Montserrat',\n            title: 'America/Montserrat'\n        },\n        {\n            id: 'America/Nassau',\n            title: 'America/Nassau'\n        },\n        {\n            id: 'America/New_York',\n            title: 'America/New_York'\n        },\n        {\n            id: 'America/Nipigon',\n            title: 'America/Nipigon'\n        },\n        {\n            id: 'America/Nome',\n            title: 'America/Nome'\n        },\n        {\n            id: 'America/Noronha',\n            title: 'America/Noronha'\n        },\n        {\n            id: 'America/North_Dakota/Beulah',\n            title: 'America/North_Dakota/Beulah'\n        },\n        {\n            id: 'America/North_Dakota/Center',\n            title: 'America/North_Dakota/Center'\n        },\n        {\n            id: 'America/North_Dakota/New_Salem',\n            title: 'America/North_Dakota/New_Salem'\n        },\n        {\n            id: 'America/Ojinaga',\n            title: 'America/Ojinaga'\n        },\n        {\n            id: 'America/Panama',\n            title: 'America/Panama'\n        },\n        {\n            id: 'America/Pangnirtung',\n            title: 'America/Pangnirtung'\n        },\n        {\n            id: 'America/Paramaribo',\n            title: 'America/Paramaribo'\n        },\n        {\n            id: 'America/Phoenix',\n            title: 'America/Phoenix'\n        },\n        {\n            id: 'America/Port-au-Prince',\n            title: 'America/Port-au-Prince'\n        },\n        {\n            id: 'America/Port_of_Spain',\n            title: 'America/Port_of_Spain'\n        },\n        {\n            id: 'America/Porto_Acre',\n            title: 'America/Porto_Acre'\n        },\n        {\n            id: 'America/Porto_Velho',\n            title: 'America/Porto_Velho'\n        },\n        {\n            id: 'America/Puerto_Rico',\n            title: 'America/Puerto_Rico'\n        },\n        {\n            id: 'America/Punta_Arenas',\n            title: 'America/Punta_Arenas'\n        },\n        {\n            id: 'America/Rainy_River',\n            title: 'America/Rainy_River'\n        },\n        {\n            id: 'America/Rankin_Inlet',\n            title: 'America/Rankin_Inlet'\n        },\n        {\n            id: 'America/Recife',\n            title: 'America/Recife'\n        },\n        {\n            id: 'America/Regina',\n            title: 'America/Regina'\n        },\n        {\n            id: 'America/Resolute',\n            title: 'America/Resolute'\n        },\n        {\n            id: 'America/Rio_Branco',\n            title: 'America/Rio_Branco'\n        },\n        {\n            id: 'America/Rosario',\n            title: 'America/Rosario'\n        },\n        {\n            id: 'America/Santa_Isabel',\n            title: 'America/Santa_Isabel'\n        },\n        {\n            id: 'America/Santarem',\n            title: 'America/Santarem'\n        },\n        {\n            id: 'America/Santiago',\n            title: 'America/Santiago'\n        },\n        {\n            id: 'America/Santo_Domingo',\n            title: 'America/Santo_Domingo'\n        },\n        {\n            id: 'America/Sao_Paulo',\n            title: 'America/Sao_Paulo'\n        },\n        {\n            id: 'America/Scoresbysund',\n            title: 'America/Scoresbysund'\n        },\n        {\n            id: 'America/Shiprock',\n            title: 'America/Shiprock'\n        },\n        {\n            id: 'America/Sitka',\n            title: 'America/Sitka'\n        },\n        {\n            id: 'America/St_Barthelemy',\n            title: 'America/St_Barthelemy'\n        },\n        {\n            id: 'America/St_Johns',\n            title: 'America/St_Johns'\n        },\n        {\n            id: 'America/St_Kitts',\n            title: 'America/St_Kitts'\n        },\n        {\n            id: 'America/St_Lucia',\n            title: 'America/St_Lucia'\n        },\n        {\n            id: 'America/St_Thomas',\n            title: 'America/St_Thomas'\n        },\n        {\n            id: 'America/St_Vincent',\n            title: 'America/St_Vincent'\n        },\n        {\n            id: 'America/Swift_Current',\n            title: 'America/Swift_Current'\n        },\n        {\n            id: 'America/Tegucigalpa',\n            title: 'America/Tegucigalpa'\n        },\n        {\n            id: 'America/Thule',\n            title: 'America/Thule'\n        },\n        {\n            id: 'America/Thunder_Bay',\n            title: 'America/Thunder_Bay'\n        },\n        {\n            id: 'America/Tijuana',\n            title: 'America/Tijuana'\n        },\n        {\n            id: 'America/Toronto',\n            title: 'America/Toronto'\n        },\n        {\n            id: 'America/Tortola',\n            title: 'America/Tortola'\n        },\n        {\n            id: 'America/Vancouver',\n            title: 'America/Vancouver'\n        },\n        {\n            id: 'America/Virgin',\n            title: 'America/Virgin'\n        },\n        {\n            id: 'America/Whitehorse',\n            title: 'America/Whitehorse'\n        },\n        {\n            id: 'America/Winnipeg',\n            title: 'America/Winnipeg'\n        },\n        {\n            id: 'America/Yakutat',\n            title: 'America/Yakutat'\n        },\n        {\n            id: 'America/Yellowknife',\n            title: 'America/Yellowknife'\n        },\n        {\n            id: 'Antarctica/Casey',\n            title: 'Antarctica/Casey'\n        },\n        {\n            id: 'Antarctica/Davis',\n            title: 'Antarctica/Davis'\n        },\n        {\n            id: 'Antarctica/DumontDUrville',\n            title: 'Antarctica/DumontDUrville'\n        },\n        {\n            id: 'Antarctica/Macquarie',\n            title: 'Antarctica/Macquarie'\n        },\n        {\n            id: 'Antarctica/Mawson',\n            title: 'Antarctica/Mawson'\n        },\n        {\n            id: 'Antarctica/McMurdo',\n            title: 'Antarctica/McMurdo'\n        },\n        {\n            id: 'Antarctica/Palmer',\n            title: 'Antarctica/Palmer'\n        },\n        {\n            id: 'Antarctica/Rothera',\n            title: 'Antarctica/Rothera'\n        },\n        {\n            id: 'Antarctica/South_Pole',\n            title: 'Antarctica/South_Pole'\n        },\n        {\n            id: 'Antarctica/Syowa',\n            title: 'Antarctica/Syowa'\n        },\n        {\n            id: 'Antarctica/Troll',\n            title: 'Antarctica/Troll'\n        },\n        {\n            id: 'Antarctica/Vostok',\n            title: 'Antarctica/Vostok'\n        },\n        {\n            id: 'Arctic/Longyearbyen',\n            title: 'Arctic/Longyearbyen'\n        },\n        {\n            id: 'Asia/Aden',\n            title: 'Asia/Aden'\n        },\n        {\n            id: 'Asia/Almaty',\n            title: 'Asia/Almaty'\n        },\n        {\n            id: 'Asia/Amman',\n            title: 'Asia/Amman'\n        },\n        {\n            id: 'Asia/Anadyr',\n            title: 'Asia/Anadyr'\n        },\n        {\n            id: 'Asia/Aqtau',\n            title: 'Asia/Aqtau'\n        },\n        {\n            id: 'Asia/Aqtobe',\n            title: 'Asia/Aqtobe'\n        },\n        {\n            id: 'Asia/Ashgabat',\n            title: 'Asia/Ashgabat'\n        },\n        {\n            id: 'Asia/Ashkhabad',\n            title: 'Asia/Ashkhabad'\n        },\n        {\n            id: 'Asia/Atyrau',\n            title: 'Asia/Atyrau'\n        },\n        {\n            id: 'Asia/Baghdad',\n            title: 'Asia/Baghdad'\n        },\n        {\n            id: 'Asia/Bahrain',\n            title: 'Asia/Bahrain'\n        },\n        {\n            id: 'Asia/Baku',\n            title: 'Asia/Baku'\n        },\n        {\n            id: 'Asia/Bangkok',\n            title: 'Asia/Bangkok'\n        },\n        {\n            id: 'Asia/Barnaul',\n            title: 'Asia/Barnaul'\n        },\n        {\n            id: 'Asia/Beirut',\n            title: 'Asia/Beirut'\n        },\n        {\n            id: 'Asia/Bishkek',\n            title: 'Asia/Bishkek'\n        },\n        {\n            id: 'Asia/Brunei',\n            title: 'Asia/Brunei'\n        },\n        {\n            id: 'Asia/Calcutta',\n            title: 'Asia/Calcutta'\n        },\n        {\n            id: 'Asia/Chita',\n            title: 'Asia/Chita'\n        },\n        {\n            id: 'Asia/Choibalsan',\n            title: 'Asia/Choibalsan'\n        },\n        {\n            id: 'Asia/Chongqing',\n            title: 'Asia/Chongqing'\n        },\n        {\n            id: 'Asia/Chungking',\n            title: 'Asia/Chungking'\n        },\n        {\n            id: 'Asia/Colombo',\n            title: 'Asia/Colombo'\n        },\n        {\n            id: 'Asia/Dacca',\n            title: 'Asia/Dacca'\n        },\n        {\n            id: 'Asia/Damascus',\n            title: 'Asia/Damascus'\n        },\n        {\n            id: 'Asia/Dhaka',\n            title: 'Asia/Dhaka'\n        },\n        {\n            id: 'Asia/Dili',\n            title: 'Asia/Dili'\n        },\n        {\n            id: 'Asia/Dubai',\n            title: 'Asia/Dubai'\n        },\n        {\n            id: 'Asia/Dushanbe',\n            title: 'Asia/Dushanbe'\n        },\n        {\n            id: 'Asia/Famagusta',\n            title: 'Asia/Famagusta'\n        },\n        {\n            id: 'Asia/Gaza',\n            title: 'Asia/Gaza'\n        },\n        {\n            id: 'Asia/Harbin',\n            title: 'Asia/Harbin'\n        },\n        {\n            id: 'Asia/Hebron',\n            title: 'Asia/Hebron'\n        },\n        {\n            id: 'Asia/Ho_Chi_Minh',\n            title: 'Asia/Ho_Chi_Minh'\n        },\n        {\n            id: 'Asia/Hong_Kong',\n            title: 'Asia/Hong_Kong'\n        },\n        {\n            id: 'Asia/Hovd',\n            title: 'Asia/Hovd'\n        },\n        {\n            id: 'Asia/Irkutsk',\n            title: 'Asia/Irkutsk'\n        },\n        {\n            id: 'Asia/Istanbul',\n            title: 'Asia/Istanbul'\n        },\n        {\n            id: 'Asia/Jakarta',\n            title: 'Asia/Jakarta'\n        },\n        {\n            id: 'Asia/Jayapura',\n            title: 'Asia/Jayapura'\n        },\n        {\n            id: 'Asia/Jerusalem',\n            title: 'Asia/Jerusalem'\n        },\n        {\n            id: 'Asia/Kabul',\n            title: 'Asia/Kabul'\n        },\n        {\n            id: 'Asia/Kamchatka',\n            title: 'Asia/Kamchatka'\n        },\n        {\n            id: 'Asia/Karachi',\n            title: 'Asia/Karachi'\n        },\n        {\n            id: 'Asia/Kashgar',\n            title: 'Asia/Kashgar'\n        },\n        {\n            id: 'Asia/Kathmandu',\n            title: 'Asia/Kathmandu'\n        },\n        {\n            id: 'Asia/Katmandu',\n            title: 'Asia/Katmandu'\n        },\n        {\n            id: 'Asia/Khandyga',\n            title: 'Asia/Khandyga'\n        },\n        {\n            id: 'Asia/Kolkata',\n            title: 'Asia/Kolkata'\n        },\n        {\n            id: 'Asia/Krasnoyarsk',\n            title: 'Asia/Krasnoyarsk'\n        },\n        {\n            id: 'Asia/Kuala_Lumpur',\n            title: 'Asia/Kuala_Lumpur'\n        },\n        {\n            id: 'Asia/Kuching',\n            title: 'Asia/Kuching'\n        },\n        {\n            id: 'Asia/Kuwait',\n            title: 'Asia/Kuwait'\n        },\n        {\n            id: 'Asia/Macao',\n            title: 'Asia/Macao'\n        },\n        {\n            id: 'Asia/Macau',\n            title: 'Asia/Macau'\n        },\n        {\n            id: 'Asia/Magadan',\n            title: 'Asia/Magadan'\n        },\n        {\n            id: 'Asia/Makassar',\n            title: 'Asia/Makassar'\n        },\n        {\n            id: 'Asia/Manila',\n            title: 'Asia/Manila'\n        },\n        {\n            id: 'Asia/Muscat',\n            title: 'Asia/Muscat'\n        },\n        {\n            id: 'Asia/Nicosia',\n            title: 'Asia/Nicosia'\n        },\n        {\n            id: 'Asia/Novokuznetsk',\n            title: 'Asia/Novokuznetsk'\n        },\n        {\n            id: 'Asia/Novosibirsk',\n            title: 'Asia/Novosibirsk'\n        },\n        {\n            id: 'Asia/Omsk',\n            title: 'Asia/Omsk'\n        },\n        {\n            id: 'Asia/Oral',\n            title: 'Asia/Oral'\n        },\n        {\n            id: 'Asia/Phnom_Penh',\n            title: 'Asia/Phnom_Penh'\n        },\n        {\n            id: 'Asia/Pontianak',\n            title: 'Asia/Pontianak'\n        },\n        {\n            id: 'Asia/Pyongyang',\n            title: 'Asia/Pyongyang'\n        },\n        {\n            id: 'Asia/Qatar',\n            title: 'Asia/Qatar'\n        },\n        {\n            id: 'Asia/Qyzylorda',\n            title: 'Asia/Qyzylorda'\n        },\n        {\n            id: 'Asia/Rangoon',\n            title: 'Asia/Rangoon'\n        },\n        {\n            id: 'Asia/Riyadh',\n            title: 'Asia/Riyadh'\n        },\n        {\n            id: 'Asia/Saigon',\n            title: 'Asia/Saigon'\n        },\n        {\n            id: 'Asia/Sakhalin',\n            title: 'Asia/Sakhalin'\n        },\n        {\n            id: 'Asia/Samarkand',\n            title: 'Asia/Samarkand'\n        },\n        {\n            id: 'Asia/Seoul',\n            title: 'Asia/Seoul'\n        },\n        {\n            id: 'Asia/Shanghai',\n            title: 'Asia/Shanghai'\n        },\n        {\n            id: 'Asia/Singapore',\n            title: 'Asia/Singapore'\n        },\n        {\n            id: 'Asia/Srednekolymsk',\n            title: 'Asia/Srednekolymsk'\n        },\n        {\n            id: 'Asia/Taipei',\n            title: 'Asia/Taipei'\n        },\n        {\n            id: 'Asia/Tashkent',\n            title: 'Asia/Tashkent'\n        },\n        {\n            id: 'Asia/Tbilisi',\n            title: 'Asia/Tbilisi'\n        },\n        {\n            id: 'Asia/Tehran',\n            title: 'Asia/Tehran'\n        },\n        {\n            id: 'Asia/Tel_Aviv',\n            title: 'Asia/Tel_Aviv'\n        },\n        {\n            id: 'Asia/Thimbu',\n            title: 'Asia/Thimbu'\n        },\n        {\n            id: 'Asia/Thimphu',\n            title: 'Asia/Thimphu'\n        },\n        {\n            id: 'Asia/Tokyo',\n            title: 'Asia/Tokyo'\n        },\n        {\n            id: 'Asia/Tomsk',\n            title: 'Asia/Tomsk'\n        },\n        {\n            id: 'Asia/Ujung_Pandang',\n            title: 'Asia/Ujung_Pandang'\n        },\n        {\n            id: 'Asia/Ulaanbaatar',\n            title: 'Asia/Ulaanbaatar'\n        },\n        {\n            id: 'Asia/Ulan_Bator',\n            title: 'Asia/Ulan_Bator'\n        },\n        {\n            id: 'Asia/Urumqi',\n            title: 'Asia/Urumqi'\n        },\n        {\n            id: 'Asia/Ust-Nera',\n            title: 'Asia/Ust-Nera'\n        },\n        {\n            id: 'Asia/Vientiane',\n            title: 'Asia/Vientiane'\n        },\n        {\n            id: 'Asia/Vladivostok',\n            title: 'Asia/Vladivostok'\n        },\n        {\n            id: 'Asia/Yakutsk',\n            title: 'Asia/Yakutsk'\n        },\n        {\n            id: 'Asia/Yangon',\n            title: 'Asia/Yangon'\n        },\n        {\n            id: 'Asia/Yekaterinburg',\n            title: 'Asia/Yekaterinburg'\n        },\n        {\n            id: 'Asia/Yerevan',\n            title: 'Asia/Yerevan'\n        },\n        {\n            id: 'Atlantic/Azores',\n            title: 'Atlantic/Azores'\n        },\n        {\n            id: 'Atlantic/Bermuda',\n            title: 'Atlantic/Bermuda'\n        },\n        {\n            id: 'Atlantic/Canary',\n            title: 'Atlantic/Canary'\n        },\n        {\n            id: 'Atlantic/Cape_Verde',\n            title: 'Atlantic/Cape_Verde'\n        },\n        {\n            id: 'Atlantic/Faeroe',\n            title: 'Atlantic/Faeroe'\n        },\n        {\n            id: 'Atlantic/Faroe',\n            title: 'Atlantic/Faroe'\n        },\n        {\n            id: 'Atlantic/Jan_Mayen',\n            title: 'Atlantic/Jan_Mayen'\n        },\n        {\n            id: 'Atlantic/Madeira',\n            title: 'Atlantic/Madeira'\n        },\n        {\n            id: 'Atlantic/Reykjavik',\n            title: 'Atlantic/Reykjavik'\n        },\n        {\n            id: 'Atlantic/South_Georgia',\n            title: 'Atlantic/South_Georgia'\n        },\n        {\n            id: 'Atlantic/St_Helena',\n            title: 'Atlantic/St_Helena'\n        },\n        {\n            id: 'Atlantic/Stanley',\n            title: 'Atlantic/Stanley'\n        },\n        {\n            id: 'Australia/ACT',\n            title: 'Australia/ACT'\n        },\n        {\n            id: 'Australia/Adelaide',\n            title: 'Australia/Adelaide'\n        },\n        {\n            id: 'Australia/Brisbane',\n            title: 'Australia/Brisbane'\n        },\n        {\n            id: 'Australia/Broken_Hill',\n            title: 'Australia/Broken_Hill'\n        },\n        {\n            id: 'Australia/Canberra',\n            title: 'Australia/Canberra'\n        },\n        {\n            id: 'Australia/Currie',\n            title: 'Australia/Currie'\n        },\n        {\n            id: 'Australia/Darwin',\n            title: 'Australia/Darwin'\n        },\n        {\n            id: 'Australia/Eucla',\n            title: 'Australia/Eucla'\n        },\n        {\n            id: 'Australia/Hobart',\n            title: 'Australia/Hobart'\n        },\n        {\n            id: 'Australia/LHI',\n            title: 'Australia/LHI'\n        },\n        {\n            id: 'Australia/Lindeman',\n            title: 'Australia/Lindeman'\n        },\n        {\n            id: 'Australia/Lord_Howe',\n            title: 'Australia/Lord_Howe'\n        },\n        {\n            id: 'Australia/Melbourne',\n            title: 'Australia/Melbourne'\n        },\n        {\n            id: 'Australia/NSW',\n            title: 'Australia/NSW'\n        },\n        {\n            id: 'Australia/North',\n            title: 'Australia/North'\n        },\n        {\n            id: 'Australia/Perth',\n            title: 'Australia/Perth'\n        },\n        {\n            id: 'Australia/Queensland',\n            title: 'Australia/Queensland'\n        },\n        {\n            id: 'Australia/South',\n            title: 'Australia/South'\n        },\n        {\n            id: 'Australia/Sydney',\n            title: 'Australia/Sydney'\n        },\n        {\n            id: 'Australia/Tasmania',\n            title: 'Australia/Tasmania'\n        },\n        {\n            id: 'Australia/Victoria',\n            title: 'Australia/Victoria'\n        },\n        {\n            id: 'Australia/West',\n            title: 'Australia/West'\n        },\n        {\n            id: 'Australia/Yancowinna',\n            title: 'Australia/Yancowinna'\n        },\n        {\n            id: 'Brazil/Acre',\n            title: 'Brazil/Acre'\n        },\n        {\n            id: 'Brazil/DeNoronha',\n            title: 'Brazil/DeNoronha'\n        },\n        {\n            id: 'Brazil/East',\n            title: 'Brazil/East'\n        },\n        {\n            id: 'Brazil/West',\n            title: 'Brazil/West'\n        },\n        {\n            id: 'CET',\n            title: 'CET'\n        },\n        {\n            id: 'CST6CDT',\n            title: 'CST6CDT'\n        },\n        {\n            id: 'Canada/Atlantic',\n            title: 'Canada/Atlantic'\n        },\n        {\n            id: 'Canada/Central',\n            title: 'Canada/Central'\n        },\n        {\n            id: 'Canada/East-Saskatchewan',\n            title: 'Canada/East-Saskatchewan'\n        },\n        {\n            id: 'Canada/Eastern',\n            title: 'Canada/Eastern'\n        },\n        {\n            id: 'Canada/Mountain',\n            title: 'Canada/Mountain'\n        },\n        {\n            id: 'Canada/Newfoundland',\n            title: 'Canada/Newfoundland'\n        },\n        {\n            id: 'Canada/Pacific',\n            title: 'Canada/Pacific'\n        },\n        {\n            id: 'Canada/Saskatchewan',\n            title: 'Canada/Saskatchewan'\n        },\n        {\n            id: 'Canada/Yukon',\n            title: 'Canada/Yukon'\n        },\n        {\n            id: 'Chile/Continental',\n            title: 'Chile/Continental'\n        },\n        {\n            id: 'Chile/EasterIsland',\n            title: 'Chile/EasterIsland'\n        },\n        {\n            id: 'Cuba',\n            title: 'Cuba'\n        },\n        {\n            id: 'EET',\n            title: 'EET'\n        },\n        {\n            id: 'EST',\n            title: 'EST'\n        },\n        {\n            id: 'EST5EDT',\n            title: 'EST5EDT'\n        },\n        {\n            id: 'Egypt',\n            title: 'Egypt'\n        },\n        {\n            id: 'Eire',\n            title: 'Eire'\n        },\n        {\n            id: 'Etc/GMT',\n            title: 'Etc/GMT'\n        },\n        {\n            id: 'Etc/GMT+0',\n            title: 'Etc/GMT+0'\n        },\n        {\n            id: 'Etc/GMT+1',\n            title: 'Etc/GMT+1'\n        },\n        {\n            id: 'Etc/GMT+10',\n            title: 'Etc/GMT+10'\n        },\n        {\n            id: 'Etc/GMT+11',\n            title: 'Etc/GMT+11'\n        },\n        {\n            id: 'Etc/GMT+12',\n            title: 'Etc/GMT+12'\n        },\n        {\n            id: 'Etc/GMT+2',\n            title: 'Etc/GMT+2'\n        },\n        {\n            id: 'Etc/GMT+3',\n            title: 'Etc/GMT+3'\n        },\n        {\n            id: 'Etc/GMT+4',\n            title: 'Etc/GMT+4'\n        },\n        {\n            id: 'Etc/GMT+5',\n            title: 'Etc/GMT+5'\n        },\n        {\n            id: 'Etc/GMT+6',\n            title: 'Etc/GMT+6'\n        },\n        {\n            id: 'Etc/GMT+7',\n            title: 'Etc/GMT+7'\n        },\n        {\n            id: 'Etc/GMT+8',\n            title: 'Etc/GMT+8'\n        },\n        {\n            id: 'Etc/GMT+9',\n            title: 'Etc/GMT+9'\n        },\n        {\n            id: 'Etc/GMT-0',\n            title: 'Etc/GMT-0'\n        },\n        {\n            id: 'Etc/GMT-1',\n            title: 'Etc/GMT-1'\n        },\n        {\n            id: 'Etc/GMT-10',\n            title: 'Etc/GMT-10'\n        },\n        {\n            id: 'Etc/GMT-11',\n            title: 'Etc/GMT-11'\n        },\n        {\n            id: 'Etc/GMT-12',\n            title: 'Etc/GMT-12'\n        },\n        {\n            id: 'Etc/GMT-13',\n            title: 'Etc/GMT-13'\n        },\n        {\n            id: 'Etc/GMT-14',\n            title: 'Etc/GMT-14'\n        },\n        {\n            id: 'Etc/GMT-2',\n            title: 'Etc/GMT-2'\n        },\n        {\n            id: 'Etc/GMT-3',\n            title: 'Etc/GMT-3'\n        },\n        {\n            id: 'Etc/GMT-4',\n            title: 'Etc/GMT-4'\n        },\n        {\n            id: 'Etc/GMT-5',\n            title: 'Etc/GMT-5'\n        },\n        {\n            id: 'Etc/GMT-6',\n            title: 'Etc/GMT-6'\n        },\n        {\n            id: 'Etc/GMT-7',\n            title: 'Etc/GMT-7'\n        },\n        {\n            id: 'Etc/GMT-8',\n            title: 'Etc/GMT-8'\n        },\n        {\n            id: 'Etc/GMT-9',\n            title: 'Etc/GMT-9'\n        },\n        {\n            id: 'Etc/GMT0',\n            title: 'Etc/GMT0'\n        },\n        {\n            id: 'Etc/Greenwich',\n            title: 'Etc/Greenwich'\n        },\n        {\n            id: 'Etc/UCT',\n            title: 'Etc/UCT'\n        },\n        {\n            id: 'Etc/UTC',\n            title: 'Etc/UTC'\n        },\n        {\n            id: 'Etc/Universal',\n            title: 'Etc/Universal'\n        },\n        {\n            id: 'Etc/Zulu',\n            title: 'Etc/Zulu'\n        },\n        {\n            id: 'Europe/Amsterdam',\n            title: 'Europe/Amsterdam'\n        },\n        {\n            id: 'Europe/Andorra',\n            title: 'Europe/Andorra'\n        },\n        {\n            id: 'Europe/Astrakhan',\n            title: 'Europe/Astrakhan'\n        },\n        {\n            id: 'Europe/Athens',\n            title: 'Europe/Athens'\n        },\n        {\n            id: 'Europe/Belfast',\n            title: 'Europe/Belfast'\n        },\n        {\n            id: 'Europe/Belgrade',\n            title: 'Europe/Belgrade'\n        },\n        {\n            id: 'Europe/Berlin',\n            title: 'Europe/Berlin'\n        },\n        {\n            id: 'Europe/Bratislava',\n            title: 'Europe/Bratislava'\n        },\n        {\n            id: 'Europe/Brussels',\n            title: 'Europe/Brussels'\n        },\n        {\n            id: 'Europe/Bucharest',\n            title: 'Europe/Bucharest'\n        },\n        {\n            id: 'Europe/Budapest',\n            title: 'Europe/Budapest'\n        },\n        {\n            id: 'Europe/Busingen',\n            title: 'Europe/Busingen'\n        },\n        {\n            id: 'Europe/Chisinau',\n            title: 'Europe/Chisinau'\n        },\n        {\n            id: 'Europe/Copenhagen',\n            title: 'Europe/Copenhagen'\n        },\n        {\n            id: 'Europe/Dublin',\n            title: 'Europe/Dublin'\n        },\n        {\n            id: 'Europe/Gibraltar',\n            title: 'Europe/Gibraltar'\n        },\n        {\n            id: 'Europe/Guernsey',\n            title: 'Europe/Guernsey'\n        },\n        {\n            id: 'Europe/Helsinki',\n            title: 'Europe/Helsinki'\n        },\n        {\n            id: 'Europe/Isle_of_Man',\n            title: 'Europe/Isle_of_Man'\n        },\n        {\n            id: 'Europe/Istanbul',\n            title: 'Europe/Istanbul'\n        },\n        {\n            id: 'Europe/Jersey',\n            title: 'Europe/Jersey'\n        },\n        {\n            id: 'Europe/Kaliningrad',\n            title: 'Europe/Kaliningrad'\n        },\n        {\n            id: 'Europe/Kiev',\n            title: 'Europe/Kiev'\n        },\n        {\n            id: 'Europe/Kirov',\n            title: 'Europe/Kirov'\n        },\n        {\n            id: 'Europe/Lisbon',\n            title: 'Europe/Lisbon'\n        },\n        {\n            id: 'Europe/Ljubljana',\n            title: 'Europe/Ljubljana'\n        },\n        {\n            id: 'Europe/London',\n            title: 'Europe/London'\n        },\n        {\n            id: 'Europe/Luxembourg',\n            title: 'Europe/Luxembourg'\n        },\n        {\n            id: 'Europe/Madrid',\n            title: 'Europe/Madrid'\n        },\n        {\n            id: 'Europe/Malta',\n            title: 'Europe/Malta'\n        },\n        {\n            id: 'Europe/Mariehamn',\n            title: 'Europe/Mariehamn'\n        },\n        {\n            id: 'Europe/Minsk',\n            title: 'Europe/Minsk'\n        },\n        {\n            id: 'Europe/Monaco',\n            title: 'Europe/Monaco'\n        },\n        {\n            id: 'Europe/Moscow',\n            title: 'Europe/Moscow'\n        },\n        {\n            id: 'Europe/Nicosia',\n            title: 'Europe/Nicosia'\n        },\n        {\n            id: 'Europe/Oslo',\n            title: 'Europe/Oslo'\n        },\n        {\n            id: 'Europe/Paris',\n            title: 'Europe/Paris'\n        },\n        {\n            id: 'Europe/Podgorica',\n            title: 'Europe/Podgorica'\n        },\n        {\n            id: 'Europe/Prague',\n            title: 'Europe/Prague'\n        },\n        {\n            id: 'Europe/Riga',\n            title: 'Europe/Riga'\n        },\n        {\n            id: 'Europe/Rome',\n            title: 'Europe/Rome'\n        },\n        {\n            id: 'Europe/Samara',\n            title: 'Europe/Samara'\n        },\n        {\n            id: 'Europe/San_Marino',\n            title: 'Europe/San_Marino'\n        },\n        {\n            id: 'Europe/Sarajevo',\n            title: 'Europe/Sarajevo'\n        },\n        {\n            id: 'Europe/Saratov',\n            title: 'Europe/Saratov'\n        },\n        {\n            id: 'Europe/Simferopol',\n            title: 'Europe/Simferopol'\n        },\n        {\n            id: 'Europe/Skopje',\n            title: 'Europe/Skopje'\n        },\n        {\n            id: 'Europe/Sofia',\n            title: 'Europe/Sofia'\n        },\n        {\n            id: 'Europe/Stockholm',\n            title: 'Europe/Stockholm'\n        },\n        {\n            id: 'Europe/Tallinn',\n            title: 'Europe/Tallinn'\n        },\n        {\n            id: 'Europe/Tirane',\n            title: 'Europe/Tirane'\n        },\n        {\n            id: 'Europe/Tiraspol',\n            title: 'Europe/Tiraspol'\n        },\n        {\n            id: 'Europe/Ulyanovsk',\n            title: 'Europe/Ulyanovsk'\n        },\n        {\n            id: 'Europe/Uzhgorod',\n            title: 'Europe/Uzhgorod'\n        },\n        {\n            id: 'Europe/Vaduz',\n            title: 'Europe/Vaduz'\n        },\n        {\n            id: 'Europe/Vatican',\n            title: 'Europe/Vatican'\n        },\n        {\n            id: 'Europe/Vienna',\n            title: 'Europe/Vienna'\n        },\n        {\n            id: 'Europe/Vilnius',\n            title: 'Europe/Vilnius'\n        },\n        {\n            id: 'Europe/Volgograd',\n            title: 'Europe/Volgograd'\n        },\n        {\n            id: 'Europe/Warsaw',\n            title: 'Europe/Warsaw'\n        },\n        {\n            id: 'Europe/Zagreb',\n            title: 'Europe/Zagreb'\n        },\n        {\n            id: 'Europe/Zaporozhye',\n            title: 'Europe/Zaporozhye'\n        },\n        {\n            id: 'Europe/Zurich',\n            title: 'Europe/Zurich'\n        },\n        {\n            id: 'GB',\n            title: 'GB'\n        },\n        {\n            id: 'GB-Eire',\n            title: 'GB-Eire'\n        },\n        {\n            id: 'GMT',\n            title: 'GMT'\n        },\n        {\n            id: 'GMT+0',\n            title: 'GMT+0'\n        },\n        {\n            id: 'GMT-0',\n            title: 'GMT-0'\n        },\n        {\n            id: 'GMT0',\n            title: 'GMT0'\n        },\n        {\n            id: 'Greenwich',\n            title: 'Greenwich'\n        },\n        {\n            id: 'HST',\n            title: 'HST'\n        },\n        {\n            id: 'Hongkong',\n            title: 'Hongkong'\n        },\n        {\n            id: 'Iceland',\n            title: 'Iceland'\n        },\n        {\n            id: 'Indian/Antananarivo',\n            title: 'Indian/Antananarivo'\n        },\n        {\n            id: 'Indian/Chagos',\n            title: 'Indian/Chagos'\n        },\n        {\n            id: 'Indian/Christmas',\n            title: 'Indian/Christmas'\n        },\n        {\n            id: 'Indian/Cocos',\n            title: 'Indian/Cocos'\n        },\n        {\n            id: 'Indian/Comoro',\n            title: 'Indian/Comoro'\n        },\n        {\n            id: 'Indian/Kerguelen',\n            title: 'Indian/Kerguelen'\n        },\n        {\n            id: 'Indian/Mahe',\n            title: 'Indian/Mahe'\n        },\n        {\n            id: 'Indian/Maldives',\n            title: 'Indian/Maldives'\n        },\n        {\n            id: 'Indian/Mauritius',\n            title: 'Indian/Mauritius'\n        },\n        {\n            id: 'Indian/Mayotte',\n            title: 'Indian/Mayotte'\n        },\n        {\n            id: 'Indian/Reunion',\n            title: 'Indian/Reunion'\n        },\n        {\n            id: 'Iran',\n            title: 'Iran'\n        },\n        {\n            id: 'Israel',\n            title: 'Israel'\n        },\n        {\n            id: 'Jamaica',\n            title: 'Jamaica'\n        },\n        {\n            id: 'Japan',\n            title: 'Japan'\n        },\n        {\n            id: 'Kwajalein',\n            title: 'Kwajalein'\n        },\n        {\n            id: 'Libya',\n            title: 'Libya'\n        },\n        {\n            id: 'MET',\n            title: 'MET'\n        },\n        {\n            id: 'MST',\n            title: 'MST'\n        },\n        {\n            id: 'MST7MDT',\n            title: 'MST7MDT'\n        },\n        {\n            id: 'Mexico/BajaNorte',\n            title: 'Mexico/BajaNorte'\n        },\n        {\n            id: 'Mexico/BajaSur',\n            title: 'Mexico/BajaSur'\n        },\n        {\n            id: 'Mexico/General',\n            title: 'Mexico/General'\n        },\n        {\n            id: 'NZ',\n            title: 'NZ'\n        },\n        {\n            id: 'NZ-CHAT',\n            title: 'NZ-CHAT'\n        },\n        {\n            id: 'Navajo',\n            title: 'Navajo'\n        },\n        {\n            id: 'PRC',\n            title: 'PRC'\n        },\n        {\n            id: 'PST8PDT',\n            title: 'PST8PDT'\n        },\n        {\n            id: 'Pacific/Apia',\n            title: 'Pacific/Apia'\n        },\n        {\n            id: 'Pacific/Auckland',\n            title: 'Pacific/Auckland'\n        },\n        {\n            id: 'Pacific/Bougainville',\n            title: 'Pacific/Bougainville'\n        },\n        {\n            id: 'Pacific/Chatham',\n            title: 'Pacific/Chatham'\n        },\n        {\n            id: 'Pacific/Chuuk',\n            title: 'Pacific/Chuuk'\n        },\n        {\n            id: 'Pacific/Easter',\n            title: 'Pacific/Easter'\n        },\n        {\n            id: 'Pacific/Efate',\n            title: 'Pacific/Efate'\n        },\n        {\n            id: 'Pacific/Enderbury',\n            title: 'Pacific/Enderbury'\n        },\n        {\n            id: 'Pacific/Fakaofo',\n            title: 'Pacific/Fakaofo'\n        },\n        {\n            id: 'Pacific/Fiji',\n            title: 'Pacific/Fiji'\n        },\n        {\n            id: 'Pacific/Funafuti',\n            title: 'Pacific/Funafuti'\n        },\n        {\n            id: 'Pacific/Galapagos',\n            title: 'Pacific/Galapagos'\n        },\n        {\n            id: 'Pacific/Gambier',\n            title: 'Pacific/Gambier'\n        },\n        {\n            id: 'Pacific/Guadalcanal',\n            title: 'Pacific/Guadalcanal'\n        },\n        {\n            id: 'Pacific/Guam',\n            title: 'Pacific/Guam'\n        },\n        {\n            id: 'Pacific/Honolulu',\n            title: 'Pacific/Honolulu'\n        },\n        {\n            id: 'Pacific/Johnston',\n            title: 'Pacific/Johnston'\n        },\n        {\n            id: 'Pacific/Kiritimati',\n            title: 'Pacific/Kiritimati'\n        },\n        {\n            id: 'Pacific/Kosrae',\n            title: 'Pacific/Kosrae'\n        },\n        {\n            id: 'Pacific/Kwajalein',\n            title: 'Pacific/Kwajalein'\n        },\n        {\n            id: 'Pacific/Majuro',\n            title: 'Pacific/Majuro'\n        },\n        {\n            id: 'Pacific/Marquesas',\n            title: 'Pacific/Marquesas'\n        },\n        {\n            id: 'Pacific/Midway',\n            title: 'Pacific/Midway'\n        },\n        {\n            id: 'Pacific/Nauru',\n            title: 'Pacific/Nauru'\n        },\n        {\n            id: 'Pacific/Niue',\n            title: 'Pacific/Niue'\n        },\n        {\n            id: 'Pacific/Norfolk',\n            title: 'Pacific/Norfolk'\n        },\n        {\n            id: 'Pacific/Noumea',\n            title: 'Pacific/Noumea'\n        },\n        {\n            id: 'Pacific/Pago_Pago',\n            title: 'Pacific/Pago_Pago'\n        },\n        {\n            id: 'Pacific/Palau',\n            title: 'Pacific/Palau'\n        },\n        {\n            id: 'Pacific/Pitcairn',\n            title: 'Pacific/Pitcairn'\n        },\n        {\n            id: 'Pacific/Pohnpei',\n            title: 'Pacific/Pohnpei'\n        },\n        {\n            id: 'Pacific/Ponape',\n            title: 'Pacific/Ponape'\n        },\n        {\n            id: 'Pacific/Port_Moresby',\n            title: 'Pacific/Port_Moresby'\n        },\n        {\n            id: 'Pacific/Rarotonga',\n            title: 'Pacific/Rarotonga'\n        },\n        {\n            id: 'Pacific/Saipan',\n            title: 'Pacific/Saipan'\n        },\n        {\n            id: 'Pacific/Samoa',\n            title: 'Pacific/Samoa'\n        },\n        {\n            id: 'Pacific/Tahiti',\n            title: 'Pacific/Tahiti'\n        },\n        {\n            id: 'Pacific/Tarawa',\n            title: 'Pacific/Tarawa'\n        },\n        {\n            id: 'Pacific/Tongatapu',\n            title: 'Pacific/Tongatapu'\n        },\n        {\n            id: 'Pacific/Truk',\n            title: 'Pacific/Truk'\n        },\n        {\n            id: 'Pacific/Wake',\n            title: 'Pacific/Wake'\n        },\n        {\n            id: 'Pacific/Wallis',\n            title: 'Pacific/Wallis'\n        },\n        {\n            id: 'Pacific/Yap',\n            title: 'Pacific/Yap'\n        },\n        {\n            id: 'Poland',\n            title: 'Poland'\n        },\n        {\n            id: 'Portugal',\n            title: 'Portugal'\n        },\n        {\n            id: 'ROC',\n            title: 'ROC'\n        },\n        {\n            id: 'ROK',\n            title: 'ROK'\n        },\n        {\n            id: 'Singapore',\n            title: 'Singapore'\n        },\n        {\n            id: 'Turkey',\n            title: 'Turkey'\n        },\n        {\n            id: 'UCT',\n            title: 'UCT'\n        },\n        {\n            id: 'US/Alaska',\n            title: 'US/Alaska'\n        },\n        {\n            id: 'US/Aleutian',\n            title: 'US/Aleutian'\n        },\n        {\n            id: 'US/Arizona',\n            title: 'US/Arizona'\n        },\n        {\n            id: 'US/Central',\n            title: 'US/Central'\n        },\n        {\n            id: 'US/East-Indiana',\n            title: 'US/East-Indiana'\n        },\n        {\n            id: 'US/Eastern',\n            title: 'US/Eastern'\n        },\n        {\n            id: 'US/Hawaii',\n            title: 'US/Hawaii'\n        },\n        {\n            id: 'US/Indiana-Starke',\n            title: 'US/Indiana-Starke'\n        },\n        {\n            id: 'US/Michigan',\n            title: 'US/Michigan'\n        },\n        {\n            id: 'US/Mountain',\n            title: 'US/Mountain'\n        },\n        {\n            id: 'US/Pacific',\n            title: 'US/Pacific'\n        },\n        {\n            id: 'US/Pacific-New',\n            title: 'US/Pacific-New'\n        },\n        {\n            id: 'US/Samoa',\n            title: 'US/Samoa'\n        },\n        {\n            id: 'UTC',\n            title: 'UTC'\n        },\n        {\n            id: 'Universal',\n            title: 'Universal'\n        },\n        {\n            id: 'W-SU',\n            title: 'W-SU'\n        },\n        {\n            id: 'WET',\n            title: 'WET'\n        },\n        {\n            id: 'Zulu',\n            title: 'Zulu'\n        }\n    ],\n    getWarningMessage:Ember.computed(\"clearLogsConfirmationModalType\",function(){\n        return this.confirmMessage[this.get(\"clearLogsConfirmationModalType\")];\n    }),\n    clearLogs:async function(key){\n        this.set(\"loading\", true);\n        this.set(\"showStorageMessage\", false);\n        this.set(\"updateStorageMessage\", null);\n        let dataobj = {\n            \"key\": key\n        }\n        /**\n         * key is either all, log_viewer, user_logs\n         * dataobj = {\n            \"key\": key\n        }\n            */\n        const url = `${getApiBaseUrl()}/update/storage/`;\n    \n        let response = await this.api.fetch(url, {\n            method: \"POST\",\n            headers: {\n            \"Content-Type\": \"application/json\",\n            Authorization: `Bearer ${localStorage.token}`\n            },\n            body: JSON.stringify(dataobj)\n        });\n\n        let result = await response.json();\n        let message = result.message;\n        if (!response.ok) {\n            \n        }\n        else{\n            \n        }\n        this.set(\"showStorageMessage\", true);\n        this.set(\"updateStorageMessage\", `${message}`);\n        this.set(\"loading\", false);\n        setTimeout(() => {\n            this.set(\"showStorageMessage\", false);\n            this.set(\"updateStorageMessage\", null);\n        }, 10000);\n\n    },\n    close:function(){\n        this.set(\"clearLogsConfirmationModalType\", null);\n        this.set(\"isShowClearLogsConfirmationModal\", false);\n    },\n    confirm:async function(type){\n        await this.clearLogs(type);\n        this.set(\"isShowClearLogsConfirmationModal\", false);\n        this.set(\"clearLogsConfirmationModalType\", null);\n    },\n    actions: {\n        setClearLogsType(type){\n            this.set(\"clearLogsConfirmationModalType\", type);\n            this.set(\"isShowClearLogsConfirmationModal\", true);\n        },\n        navigateToLookups(){\n            this.set('loading', true);\n            this.router.transitionTo(\"list-lookups\");\n        },\n        updateDatetimeFormat(newValue){\n\n            // Find the project setting record\n            let records = this.get('model').toArray();\n            let setting = records.find(\n            r => r.title === 'GLOBAL_DATETIME_FORMAT'\n            );\n\n            if (!setting) {\n                console.error('GLOBAL_DATETIME_FORMAT setting not found');\n                return;\n            }\n\n            setting.set('value', newValue);\n            \n            this.set('loading', true);\n\n            setting.save().then(() => {\n                this.set('loading', false);\n            }).catch(error => {\n                this.set('loading', false);\n                console.error('Failed to update datetime format', error);\n            });\n        },\n        updateTimezone(newValue){\n\n\n            let records = this.get('model').toArray();\n            let setting = records.find(\n            r => r.title === 'TIME_ZONE'\n            );\n\n            if (!setting) {\n                console.error('TIME_ZONE setting not found');\n                return;\n            }\n\n\n            setting.set('value', newValue);\n            \n            this.set('loading', true);\n\n            setting.save().then(() => {\n                this.set('loading', false);\n            }).catch(error => {\n                this.set('loading', false);\n                console.error('Failed to update timezone format', error);\n            });\n        }\n    }\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\n\nexport default Ember.Component.extend({\n  userProfileService: service(),\n  init(){\n      this._super(...arguments);\n  },\n\n  actions: {\n    updateTab(value){\n        this.set(\"currentTab\", value)\n    }\n  }\n\n\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    //this allows the check boxes to save after being clicked.\n    isChecked: Ember.computed('object', 'field', {\n        get(key) {\n            let instrument = this.get('object');\n            return instrument.get(this.get('field'));\n          },\n          set(key, value) {\n            let instrument = this.get('object');\n            instrument.set(this.get('field'), value);\n            //console.log(\"Value: \" + value);\n            return instrument.get(this.get('field'));\n          }\n        \n    }),\n    actions: {\n        //this allows the check boxes to save after being clicked.\n        change(object){\n            let _this = this;\n            //var origVal = _this.isChecked;\n            //console.log(\"SaveState::: \" + _this.isChecked);\n            //object.set(_this.get('field'), !_this.isChecked);\n            this.set('isChecked', !this.isChecked)\n            object.save().catch(function(reason) {\n\n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n                object.set(_this.get('field'), _this.isChecked);\n\n                //Just need to make this line of code work -> change the checkbox to orignal value\n                //Active is properly set, just the front end needs to reflect the change back to original value\n                let field = document.getElementById(_this.get('field'));\n                field.checked = _this.isChecked;\n\n                window.scrollTo(0,0);\n            });\n            if(typeof this.update === \"function\"){\n                this.update();\n            }\n        }\n    },\n});\n","import Ember from 'ember';\n\nvar originVal;\nvar field;\n\nexport default Ember.Component.extend({\n    datetimeLabel:\"\",\n    init(){\n        this._super(...arguments);\n        this.set(\"datetimeLabel\", this.formattedField(this.object.get(this.field)));\n    },\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n    formattedField:function(rawValue) {\n        let standardizedFormat = \"YYYY-MM-DD HH:mm:ss\";\n        let format = this.get(\"format\");\n        const parsedMoment = moment(rawValue, standardizedFormat, true);\n\n        return parsedMoment.isValid()\n            ? parsedMoment.format(format)  // Format for display\n            : '';\n    },\n    isEditing: false,\n    dateTimePicker: null,\n    showClear: false,\n    actions: {\n        edit(){\n            originVal = this.object.get(this.field)\n            this.set('isEditing', true);\n            let currentValue = this.object.get(this.field)\n            if(currentValue == null){\n                this.set('newValue', moment(new Date()).format('YYYY-MM-DDTHH:mm:ss'));            \n            }else {\n                this.set('newValue', moment(new Date(currentValue)).format('YYYY-MM-DDTHH:mm:ss'));            \n            }\n\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            let value = this.get('newValue');\n            let newDate = moment(new Date(value)).format('YYYY-MM-DD HH:mm:ss');\n            if (newDate == \"Invalid date\")\n                newDate = null;\n            object.set(this.get('field'), newDate);\n\n            this.set(\"datetimeLabel\", this.formattedField(newDate));\n            field = this.get('field');\n            object.save().catch(function(reason) {\n      \n                let editError = document.getElementById(\"instrumentEditError\");\n                if(editError != null){\n                    editError.hidden = false;\n                }                \n                if (originVal == null) {\n                    originVal = \"\";\n                }\n                \n                object.set(field, originVal);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.get('isTextarea') === true && e.ctrlKey === false) {\n                return;\n            }\n            this.send('save', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n  isEditing: false,\n  tagName: 'tr',\n  classNameBindings: ['isEditing:active-cell-values-inline-edit'], //, 'isZeroTimestampClass'],\n  isRowDeleteConfirmationDialog: {},\n  rdcd: {},\n  gatewayType: null,\n\n  setRDCD(value) {\n    let rdcd = this.get('isRowDeleteConfirmationDialog');\n    rdcd[value[0]] = value[1];\n    this.set('isRowDeleteConfirmationDialog', rdcd);\n    this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n  },\n\n  valueOver: Ember.computed('gateway', function (self, value) {\n    //console.log(value);\n    return true;\n  }),\n\n  tableRowIndexString: Ember.computed('tableRowIndex', function () {\n    return String(this.get('tableRowIndex'));\n  }),\n\n  gatewayValueObjectValues: Ember.computed('gatewayValueObject', function () {\n    // console.log('gatewayValueObjectValues:::: ' + this.get('gatewayValueObject.values'));\n\n    let obj = this.get('gatewayValueObject.values');\n    let gatewayType = this.get('gatewayType').get('title');\n    return Object.assign({}, obj); // convert array to an object, to be able to get it's items by index in handlebars template\n  }),\n\n  // temperatureValuesObject: Ember.computed(\n  //   'temperatureValuesModel',\n  //   function () {\n  //     let temperatureValuesObject = this.get('temperatureValuesModel').objectAt(this.get('tableRowIndex'));\n  //     return temperatureValuesObject;\n  //   }\n  // ),\n\n  // temperatureObjectValue: Ember.computed('temperatureValuesObject', function () {\n  //   let temporaryTemperature = null;\n  //   try {\n  //     temporaryTemperature = this.get('temperatureValuesObject')\n  //       .get('values')[0]\n  //       .toFixed(2);\n  //     if (temporaryTemperature <= -999) {\n  //       temporaryTemperature = 'NaN';\n  //     }\n  //   } catch (e) {\n  //     temporaryTemperature = 'NaN';\n  //   }\n  //   console.log('temporaryTemperature:::::: ' + temporaryTemperature);\n      \n  //   return temporaryTemperature;\n  // }),\n\n  actions: {\n    edit() {\n      this.set('isEditing', true);\n      //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n      //return this.$().attr({ tabindex: 1 }), this.$().focus(); // brings the view into focus in order to capture keyUps.\n    },\n    save() {\n      let _this = this;\n      // save gateway values\n      let obj = Object.values(this.get('gatewayValueObjectValues'));\n      gatewayValueObj = this.get('gatewayValueObject');\n\n      gatewayValueObj.set('values', obj); //set values property to gatewayValueObjectValues converted to array\n      this.get('gatewayValueObject')\n        .save({ adapterOptions: this.get('gatewayId') })\n        .then(function (results) {\n          let values = results._internalModel._record.get('values');\n          //values.shift();\n          results._internalModel._record.set('values', values);\n          _this\n            .get('temperatureValuesObject')\n            .set('values', [_this.get('temperatureObjectValue')]);\n          let gatewayTime = _this.get('temperatureValuesObject');\n          gatewayTime.save({ adapterOptions: _this.get('gatewayId') });\n        })\n        .catch(function (reason) {\n          console.log(reason);\n          if (reason.errors[0].status == 403) {\n            _this.setProp('permissionError', true);\n          }\n        });\n      // hide form\n      this.set('isEditing', false);\n      window.location.reload(); // Refresh the page to update the table\n    },\n    cancel() {\n      // reset displacementValueObjectValues and temperatureObjectValue to original values\n      //this.set('displacementValueObjectValues', Object.assign({}, this.get('displacementValueObject.values')) );\n      //this.set('temperatureObjectValue', this.get('temperatureValuesObject').get('values')[0]);\n\n      this.set('isEditing', false);\n      //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n    },\n    remove() {\n      let _this = this;\n\n      let gatewayValuesModel = this.get('gatewayValuesModel');\n      let gatewayValueObject = this.get('gatewayValueObject');\n\n      // let temperatureValuesModel = this.get('temperatureValuesModel');\n      // let temperatureValuesObject = this.get('temperatureValuesObject');\n      // console.log('temperatureValuesObject:::: ' + temperatureValuesModel);\n\n      let badValues = [null, undefined, ''];\n      // if (!badValues.includes(temperatureValuesObject)) {\n        // if (!temperatureValuesObject.get('isDeleted')) {\n      //     temperatureValuesObject.deleteRecord();\n      //     temperatureValuesObject\n      //       .save({ adapterOptions: this.get('gatewayId') })\n      //       .then(function () {\n      //         temperatureValuesModel.removeObject(temperatureValuesObject);\n      //       });\n      //   }\n      // }\n\n      if (!gatewayValueObject.originalValue.get('isDeleted')) {\n        gatewayValueObject.originalValue.deleteRecord();\n        gatewayValueObject.originalValue\n          .save({ adapterOptions: this.get('gatewayId') })\n          .then(function () {\n            gatewayValuesModel.removeObject(gatewayValueObject.originalValue);\n          })\n          .catch(function (reason) {\n            if (reason.errors[0].status == 403) {\n              _this.setProp('permissionError', true);\n            }\n          });\n      }\n\n      // hide form\n      this.set('isEditing', false);\n      window.location.reload(); // Refresh the page to update the table\n    },\n    toggleRowDeleteConfirmationDialog(id) {\n      let list = this.get('isRowDeleteConfirmationDialog');\n      let value = list[id] ? false : true;\n      this.setRDCD([id, value]);\n      //this.set('isRowDeleteConfirmationDialog', list); //update isVisibleRowDetails variable for each single row\n      //this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n    },\n  },\n  didRender() {\n    //this.$('.has-tooltip-info').tooltip(); //activate tooltips\n    //console.log(this.get('instrumentType').get('title'));\n  },\n  keyDown: function (e) {\n    if (e.keyCode === 27) {\n      this.send('cancel');\n    }\n    if (e.keyCode === 13) {\n      this.send('save', this.get('object'));\n    }\n  },\n});\n\n// function escape(myStr) {\n//     return myStr.replace('.', ',');\n// }\n","import Ember from 'ember';\n\nvar originEast;\nvar originNorth;\nvar originDepth;\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n    isEditing: false,\n    east: null,\n    north: null,\n    depth: null,\n    actions: {\n        edit(){\n            originEast = this.get('east');\n            originNorth = this.get('north');\n            originDepth = this.get('depth');\n            \n            this.set('isEditing', true);\n            this.set('newEast', this.get('east'));\n            this.set('newNorth', this.get('north'));\n            this.set('newDepth', this.get('depth'));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            // object.set(this.get('field'), this.get('geoPoint').toEwkt());\n            object.set('east', this.get('newEast'));\n            object.set('north', this.get('newNorth'));\n            object.set('depth', this.get('newDepth'));\n            \n            object.save().catch(function(reason) {\n      \n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n                \n                if (originEast == undefined) {\n                    originEast = \"\";\n                }\n                if (originNorth == undefined) {\n                    originNorth = \"\";\n                }\n                if (originDepth == undefined) {\n                    originDepth = \"\";\n                }\n\n                object.set('east', originEast);\n                object.set('north', originNorth);\n                object.set('depth', originDepth);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newEast', this.get('east'));\n            this.set('newNorth', this.get('north'));\n            this.set('newDepth', this.get('depth'));\n            this.set('isEditing', false);\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            this.send('save', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\n\n\n\nexport default Ember.Component.extend({\n    isEditable: true,\n    isEditing: false,\n    isTextInput: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'text';\n    }),\n    isTextarea: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'textarea';\n    }),\n    actions: {\n        edit(){\n            \n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            object.set(this.get('field'), this.get('newValue'));\n            \n            object.save();\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.get('isTextarea') === true && e.ctrlKey === false) {\n                return;\n            }\n            this.send('save', this.get('object'));\n        }\n    }\n});\n"," import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n    isEditable: true,\n    isEditing: false,\n    isTextInput: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'text';\n    }),\n    isTextarea: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'textarea';\n    }),\n    actions: {\n        edit(){\n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n\n            object.set(this.get('field'), parseFloat(this.get('newValue')));\n            object.save()\n            .then(() => {\n                if(typeof this.update === \"function\") {\n                    this.update();\n                }\n                this.set('isEditing', false);\n            });\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.get('isTextarea') === true && e.ctrlKey === false) {\n                return;\n            }\n            this.send('save', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\n\nvar originVal;\nvar field;\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n    isEditable: true,\n    isEditing: false,\n    \n    isTextInput: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'text';\n    }),\n    isTextarea: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'textarea';\n    }),\n    actions: {\n        \n        edit(){\n            originVal = this.get(`object.${this.get('field')}`);\n            this.set('isEditing', true);\n            this.set('newValue', \"\");\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            //console.log('here');\n            \n            object.set(this.get('field'), this.get('newValue'));\n\n            field = this.get('field');\n            \n            object.save().catch(function(reason) {\n      \n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n                \n                if (originVal == undefined) {\n                    originVal = \"\";\n                }\n\n                object.set(field, originVal);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.get('isTextarea') === true && e.ctrlKey === false) {\n                return;\n            }\n            this.send('save', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\n\nvar originVal;\nvar field;\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n    isEditable: true,\n    isEditing: false,\n    \n    isTextInput: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'text';\n    }),\n    isTextarea: Ember.computed('inputType', function() {\n        return this.get('inputType') === 'textarea';\n    }),\n    actions: {\n        \n        edit(){\n            originVal = this.get(`object.${this.get('field')}`);\n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            console.log('in single save input, object is');\n            console.log(object);\n            object.set(this.get('field'), this.get('newValue'));\n\n            field = this.get('field');\n            \n            object.save().catch(function(reason) {\n      \n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n                \n                if (originVal == undefined) {\n                    originVal = \"\";\n                }\n\n                object.set(field, originVal);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.get('isTextarea') === true && e.ctrlKey === false) {\n                return;\n            }\n            this.send('save', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    isEditing: false,\n    tagName: 'tr',\n    classNameBindings: ['isEditing:active-cell-values-inline-edit', 'isZeroTimestampClass'],\n    isRowDeleteConfirmationDialog: {},\n    instrumentType: null,\n\n    valueOver: Ember.computed('instrument',function(self, value) {\n        //console.log(value);\n        return true;\n    }),\n\n    // isFine: Ember.computed('instrumentType', function() {\n    //     var isFine = false;\n    //     //console.log(this.get('instrumentType').get('title'));\n    //     switch(this.get('instrumentType').get('title')) {\n    //         case 'Tilt':\n    //             isFine=true;\n    //             break;\n    //         case 'BluVibe':\n    //             isFine=true;\n    //             break;\n    //         case 'Wire':\n    //             isFine=true;\n    //             break;\n    //     }\n    //     return isFine;\n    // }),\n\n    tableRowIndexString: Ember.computed('tableRowIndex', function() {\n        return String(this.get('tableRowIndex'));\n    }),\n\n    displacementValueObjectValues: Ember.computed('displacementValueObject', function() {\n        let obj = this.get('displacementValueObject.values');\n/*         let instType = this.get('instrumentType').get('title');\n        if (instType == \"Wire\") {\n            let chans = this.get('instrument').get('channelsNum');\n            if (obj.length >= chans) {\n                obj.shift();\n                this.set('displacementValueObject.values',obj);\n            }\n\n        } */\n        return Object.assign({}, obj); // convert array to an object, to be able to get it's items by index in handlebars template\n    }),\n\n    temperatureValuesObject: Ember.computed('temperatureValuesModel', function() {\n        return this.get('temperatureValuesModel').objectAt( this.get('tableRowIndex') );\n    }),\n\n    temperatureObjectValue: Ember.computed('temperatureValuesObject', function() {\n        let temporaryTemperature = null;\n        try{\n            temporaryTemperature = this.get('temperatureValuesObject').get('values')[0];\n        }\n        catch(e){\n            temporaryTemperature = 0;\n        }\n        return temporaryTemperature;\n\n    }),\n\n    \n    actions: {\n        edit() {\n            this.set('isEditing', true);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n            //return this.$().attr({ tabindex: 1 }), this.$().focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save() {\n            let _this = this;\n            // save displacement values\n            let obj = Object.values(this.get('displacementValueObjectValues'));\n\n            let instrumentType = this.instrumentType.get('title');\n\n            if(instrumentType === 'Wire' || instrumentType === 'Tilt' || instrumentType === 'BluVibe') {\n                obj.unshift(0);\n            }\n\n            //console.log(obj);\n            this.get('displacementValueObject').set('values', obj ); //set values property to displacementValueObjectValues converted to array\n            this.get('displacementValueObject').save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                let instType = _this.get('instrumentType').get('title');\n                if (instType === \"Wire\" || instType === 'Tilt' || instType === 'BluVibe') {\n                    // if displacement-value was successfully saved to DB, then display it\n                    //console.log(results._internalModel._record.get('values'));\n                    let values = results._internalModel._record.get('values');\n                    values.shift();\n                    results._internalModel._record.set('values', values);\n                }\n            });\n\n            // save temperature\n            this.get('temperatureValuesObject').set('values', [this.get('temperatureObjectValue')] );\n            this.get('temperatureValuesObject').save({adapterOptions: this.get('instrumentId')});\n\n            // hide form\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        },\n        cancel() {\n            // reset displacementValueObjectValues and temperatureObjectValue to original values\n            //this.set('displacementValueObjectValues', Object.assign({}, this.get('displacementValueObject.values')) );\n            //this.set('temperatureObjectValue', this.get('temperatureValuesObject').get('values')[0]);\n\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        },\n        remove(){\n            let displacementValueObject = this.get('displacementValueObject'),\n                temperatureValuesObject = this.get('temperatureValuesObject'),\n                displacementValuesModel = this.get('displacementValuesModel'),\n                temperatureValuesModel = this.get('temperatureValuesModel')\n            ;\n\n            temperatureValuesObject.deleteRecord();\n            temperatureValuesObject.get('isDeleted');\n            temperatureValuesObject.save({adapterOptions: this.get('instrumentId')}).then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                temperatureValuesModel.removeObject(temperatureValuesObject);\n            });\n\n            displacementValueObject.deleteRecord();\n            displacementValueObject.get('isDeleted');\n            displacementValueObject.save({adapterOptions: this.get('instrumentId')}).then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                displacementValuesModel.removeObject(displacementValueObject);\n            });\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n    },\n    didRender(){\n        //this.$('.has-tooltip-info').tooltip(); //activate tooltips\n        //console.log(this.get('instrumentType').get('title'));\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel');\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    isEditing: false,\n    datetimeLabel:\"\",\n    init(){\n        this._super(...arguments);\n        this.set(\"datetimeLabel\", this.formattedField(this.displacementValueObject.get(\"id\")));\n    },\n    tagName: 'tr',\n    classNameBindings: ['isEditing:active-cell-values-inline-edit', 'isZeroTimestampClass'],\n    isRowDeleteConfirmationDialog: {},\n    rdcd: {},\n    instrumentType: null,\n    loading: false,\n    setRDCD(value) {\n        let rdcd = this.get('isRowDeleteConfirmationDialog');\n        rdcd[value[0]] = value[1];\n        this.set('isRowDeleteConfirmationDialog', rdcd);\n        this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n    },\n\n    formattedField:function(rawDate) {\n        const standardizedFormat = \"YYYY-MM-DD HH:mm:ss\";\n        const format = this.get(\"format\")[\"value\"];\n        let formattedValue = \"\";\n\n        // Step 1: Parse the raw date using standardized format (backend default)\n        const parsed = moment(rawDate, standardizedFormat, true);\n\n        if (!parsed.isValid()) {\n            return '';  // Return empty string if invalid\n        }\n\n        // Step 2: Format to target format, or fallback\n        formattedValue = format ? parsed.format(format) : parsed.format(standardizedFormat);\n\n        return formattedValue;\n    },\n    valueOver: Ember.computed('instrument',function(self, value) {\n        //console.log(value);\n        return true;\n    }),\n\n    tableRowIndexString: Ember.computed('tableRowIndex', function() {\n        return String(this.get('tableRowIndex'));\n    }),\n\n    displacementValueObjectValues: Ember.computed('displacementValueObject', function() {\n        let obj = this.get('displacementValueObject.values');\n        let instType = this.get('instrumentType').get('title');\n        return Object.assign({}, obj); // convert array to an object, to be able to get it's items by index in handlebars template\n    }),\n\n    temperatureValuesObject: Ember.computed('temperatureValuesModel', function() {\n        return this.get('temperatureValuesModel').objectAt( this.get('tableRowIndex') );\n    }),\n\n    temperatureObjectValue: Ember.computed('temperatureValuesObject', function() {\n        let temporaryTemperature = null;\n        let tempObject = this.get('temperatureValuesObject');\n        let vals = null;\n\n        try{\n            vals = tempObject.get('values');\n            temporaryTemperature = vals[0].toFixed(1);\n        }\n        catch(e){\n            temporaryTemperature = null;\n            console.log(e);\n        }    \n        return temporaryTemperature;\n\n    }),\n    isCheckedHelper: Ember.computed(\"batchSelectedRows\", function() {\n        let batchSelectedRowsObj = this.get(\"batchSelectedRows\");\n        let index = this.get(\"tableRowIndex\");\n        // console.log(\"in isCheckedHelper, batch length is: \" + this.get(\"batchSelectedRows\").length +\" tableRowIndex: \" + this.get(\"tableRowIndex\") );\n        if(batchSelectedRowsObj && batchSelectedRowsObj[index]){\n            return true;\n        }else{\n            return false;\n        } \n      }),\n      convertMMToAdictBits: function(arrayMMs){\n          let bitsArray = [];\n          arrayMMs.forEach((mmValue)=>{\n              bitsArray.push(parseFloat((mmValue / parseFloat(this.get('strokeLength')) ) * 65536))\n          });\n          return bitsArray;\n      },\n    actions: {\n        toggleIndivSwitch(value) {\n            let batchSelectedRowsObj = this.get(\"batchSelectedRows\");\n            if(batchSelectedRowsObj){\n                batchSelectedRowsObj[value] = document.getElementById('batchSwitchID').checked;\n                // this.set('isMaxBatch',document.getElementById('batchSwitchID').checked);\n                // console.log( \"ID: \" + value + \"-\" + document.getElementById('batchSwitchID').checked);\n                this.set(\"batchSelectedRows\", batchSelectedRowsObj);\n            }\n        },\n        edit() {\n            this.set('isEditing', true);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n            //return this.$().attr({ tabindex: 1 }), this.$().focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save() {\n            let _this = this;\n            this.set('loading', true);            \n            this.set('isEditing', false);\n            // save displacement values\n            let obj = Object.values(this.get('displacementValueObjectValues'));\n\n            let instrumentType = this.instrumentType.get('title');\n\n            if(instrumentType == 'Wire' || instrumentType === 'Tilt' || instrumentType === 'BluVibe' || instrumentType === 'Piezo') {\n                obj.unshift(0);\n            }\n            console.log(obj)\n            let oldObj = obj;\n            if(instrumentType == 'Adict'){\n                obj = this.convertMMToAdictBits(obj);\n                console.log(obj);\n            }\n            this.get('displacementValueObject').set('values', obj ); //set values property to displacementValueObjectValues converted to array\n            this.get('displacementValueObject').save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                let instType = instrumentType;\n                if (instType == 'Wire' || instType === 'Tilt' || instType === 'BluVibe' || instrumentType === 'Piezo') {\n                    // if displacement-value was successfully saved to DB, then display it\n                    //console.log(results._internalModel._record.get('values'));\n                    let values = results._internalModel._record.get('values');\n                    values.shift();\n                    results._internalModel._record.set('values', values);\n                }\n                // save temperature\n                _this.get('temperatureValuesObject').set('values', [_this.get('temperatureObjectValue')] );\n                _this.get('temperatureValuesObject').save({adapterOptions: _this.get('instrumentId')});\n            })\n            .catch(function(reason){\n                this.set('loading', false);\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n            if(instrumentType == 'Adict'){\n                this.get('displacementValueObject').set('values', oldObj );\n            }\n\n            // hide form\n            this.set('loading', false);\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        },\n        cancel() {\n            // reset displacementValueObjectValues and temperatureObjectValue to original values\n            //this.set('displacementValueObjectValues', Object.assign({}, this.get('displacementValueObject.values')) );\n            //this.set('temperatureObjectValue', this.get('temperatureValuesObject').get('values')[0]);\n           this.set('loading', false);\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        },\n        remove(){\n            \n            let _this = this;\n            this.set('loading', true);\n            let displacementValueObject = this.get('displacementValueObject');\n            let temperatureValuesObject = this.get('temperatureValuesObject');\n            \n            let displacementValuesModel = this.get('displacementValuesModel');\n            let temperatureValuesModel = this.get('temperatureValuesModel');\n            ;\n            try{\n                temperatureValuesObject.deleteRecord();\n                temperatureValuesObject.get('isDeleted');\n                temperatureValuesObject.save({adapterOptions: this.get('instrumentId')}).then(function(){\n                    // deal with records that just were created\n                    // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                    temperatureValuesModel.removeObject(temperatureValuesObject);\n                })\n                .catch(function(reason){\n                    this.set('loading', false);\n                    console.log(\"Reason::: \" + reason);\n                });\n            } catch(e) {\n                this.set('loading', false);\n                console.log(\"Deleting Temperature::: \" + e);\n            }\n\n            try{\n                displacementValueObject.deleteRecord();\n                displacementValueObject.get('isDeleted');\n                displacementValueObject.save({adapterOptions: this.get('instrumentId')}).then(function(){\n                    // deal with records that just were created\n                    // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                    displacementValuesModel.removeObject(displacementValueObject);\n                })\n                .catch(function(reason){\n                    this.set('loading', false);\n                    if (reason.errors[0].status == 403) {\n                        _this.setProp('permissionError', true);\n                    }\n                });\n            } catch(e) {\n                this.set('loading', false);\n                console.log(\"Deleting Displacement::: \" + e);\n            }\n            \n            this.set('loading', false);\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            let list = this.get('isRowDeleteConfirmationDialog');\n            let value = list[id] ? false : true;\n            this.setRDCD([id,value]);\n            //this.set('isRowDeleteConfirmationDialog', list); //update isVisibleRowDetails variable for each single row\n            //this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n        },\n    },\n    didRender(){\n        //this.$('.has-tooltip-info').tooltip(); //activate tooltips\n        //console.log(this.get('instrumentType').get('title'));\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel');\n        }\n        if (e.keyCode === 13) {\n            this.send('save', this.get('object'));\n        }\n    }\n});\n\n\n// function escape(myStr) {\n//     return myStr.replace('.', ',');\n// }","import Ember from 'ember';\nimport { check } from 'prettier';\n\nexport default Ember.Component.extend({\n\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n        //console.log(\"editing: \" + this.get('isEditing'));\n    }),\n    isEditing: false,\n    store: Ember.inject.service(),\n    channelsNum: 0,\n    isToe: Ember.computed('headAt', function() {\n        return this.get('headAt') === 'HAT';\n    }),\n    isCollar: Ember.computed('headAt', function() {\n        return this.get('headAt') === 'HAC';\n    }),\n    anchorsAmount: Ember.computed('object', function() {\n        return this.get('object').length;\n    }),\n    isAllAnchorsPopulated: Ember.computed('object', 'anchorsAmount', function() {            \n        let allPopulated = true;\n        let objectLength = this.get('object').map(function(obj){\n            //console.log(\"ObjectLenth: \" + JSON.stringify(obj));\n            return obj.get('distance') !== '' && obj.get('distance') !== null;\n        });\n        //console.log(\"ObjectLenth: \" + objectLength);\n        if (objectLength.indexOf(false) > -1) {\n            allPopulated = false;\n        } else {\n            allPopulated = true;\n        }\n        return allPopulated;\n    }),\n   \n    // sort anchors depending on head position\n    sortProperties: Ember.computed('isToe', function() {\n        if (this.get('isToe')) {\n            return ['number:asc'];\n        }\n        return ['number:desc'];\n    }),\n    sortedInstrumentAnchors: Ember.computed.sort('anchors', 'sortProperties'),\n\n    listedAnchors: Ember.computed(function() {\n        let object = this.get('object');\n        let newSet = [];\n        let anchorCount = this.get('anchorsAmount');\n        if(this.get('stacked')) {\n            object.forEach(function(obj){\n                if(obj.get('number') > 0) {\n                    let anchor = (obj.get('number')-1) % ((anchorCount-1) / 2);\n                    var hash={};\n                    if(obj.get('number')-1 < (anchorCount-1) / 2) {\n                        hash={'number-a':\" - \" + (anchor + 1),'distance-a': obj.get('distance')};\n                        newSet.push(hash);\n                    } else {\n                        hash=newSet.shift();\n                        hash['number-b'] = anchor + 1 + ((anchorCount-1)/2) + \" - \";\n                        hash['distance-b'] = obj.get('distance');\n                        newSet.push(hash);\n                    }\n                }\n            });   \n        } else {\n            object.forEach(function(obj){\n                if(obj.get('number') > 0) {\n                    let anchor = (obj.get('number')-1) % ((anchorCount-1) / 2);\n                    var hash={};\n                    if(obj.get('number')-1 < (anchorCount-1) / 2) {\n                        hash={'number-a':\" - \" + (anchor + 1),'distance-a':obj.get('distance')};\n                        newSet.push(hash);\n                    } else {\n                        let temp=newSet.shift();\n                        hash={'number-b': (anchor + 1 + ((anchorCount-1)/2)) + \" - \",'distance-b':obj.get('distance')};\n                        newSet.push(temp);\n                        newSet.push(hash);\n                    }\n                }\n            });   \n            \n        }\n        //console.log(\"Anchors: \" + JSON.stringify(newSet.reverse()));\n        return newSet.reverse();\n    }),\n\n    // Binding Style Attributes to prevent console warning\n    // https://emberjs.com/deprecations/v1.x/#toc_binding-style-attributes.\n    anchorsCSSCounteStyle: Ember.computed('isToe', 'anchorsAmount', function() {\n        let anchorsCSSCounteStyle = this.get('isToe') ? -1 : this.get('anchorsAmount');\n        return Ember.String.htmlSafe(\"counter-reset: anchorNumber \" + anchorsCSSCounteStyle);\n    }),\n\n    actions: {\n        updateAnchorsCounter(object){\n            let j = 0;\n            object.forEach(function(obj){\n                if (!obj.get('isDeleted')) {\n                    j++;\n                }\n            });\n            this.set('anchorsAmount', j);\n        },\n        edit(){\n                this.set('isEditing', true);\n                this.set('newValue', this.get(`object.${this.get('field')}`));\n                return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n\n            /* this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n            return this.$().attr({ tabindex: 1 }), this.$().focus(); // brings the view into focus in order to capture keyUps. */\n        },\n        inputNewValue(currentAnchor, anchorKey, anchorValue) {\n            var anchKeyPart = anchorKey.substring(anchorKey.length - 1); // => \"1\"\n            var currentAnchorNumber = currentAnchor['number-'+anchKeyPart].replace('-','').trim();\n\n            //this little bit of hackery is because we move the anchors into a new array\n            //in order to arrange them in the form of A -> 1,2,3  and B ->1,2,3  \n            //this is due to the fact that the rebar takes measurements along each side and \n            //together the measurements are used to find the total tension and compression.\n            this.get('object').map(function(obj){\n                //get anchor number and see if it's the same as the temp anchor number\n                if(obj.get('number') == currentAnchorNumber){\n                    obj.set('distance', anchorValue);\n                    //console.log(\"after set: \" + obj.get('distance'));\n                }\n                    \n            });\n            //need to do this after moving the new value from the temp array to the actual anchor array.\n            //that new value is needed n notifyPropertyChange\n            this.notifyPropertyChange('anchorsAmount'); // trigger property change to notify 'isAllAnchorsPopulated' computed property to be recalculated when updating anchors inputs\n            \n            currentAnchor[anchorKey] = anchorValue; //.set(whichAnchor, newValue);\n                        \n        },\n        prePopulateAnchors() {\n            let object = this.get('object'),\n                anchorsArray = [],\n                emptyAnchorsAmount = this.get('channelsNum') - this.get('anchorsAmount')\n            ;            \n            if ( emptyAnchorsAmount > 0 ) {\n                for (var i = emptyAnchorsAmount - 1; i >= 0; i--) {\n                    let newAnchor = this.get('store').createRecord('anchor', {\n                        number: i,\n                        distance: ''\n                    });\n                    anchorsArray.push(newAnchor);\n                }\n            }\n            if (anchorsArray.length) {\n                object.pushObjects(anchorsArray);\n                this.send('updateAnchorsCounter', object);\n            }\n\n            // Afterthought to fix broken anchor ordering in database. Proabbaly could be removed at some point when there won't be anymore anchors with empty number value.\n            let isAnchorNumbersCorrupted = -1;\n            object.forEach(function(obj){\n                if (obj.get('number') === 0) {\n                    isAnchorNumbersCorrupted++;\n                }\n            });\n            if (isAnchorNumbersCorrupted) {\n                object.forEach(function(obj, i){\n                    obj.set('number', i);\n                });\n            }\n\n        },\n        save(object){\n            //console.log(JSON.stringify(\"object: \" + object));\n\n            for (let i = object.length; i >= 0; i--) {\n                let currentObject = object.objectAt(i);\n                //console.log(JSON.stringify(currentObject));\n                if (typeof currentObject !== 'undefined' && currentObject.get('hasDirtyAttributes')) {\n                    currentObject.save();\n                    //console.log(\"anchor count: \" + i);\n                }\n            }\n            this.set('isEditing', false);\n        },\n\n        // save(object){\n        //     object.save();\n        //     this.set('isEditing', false);\n        //     this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        // },\n        cancel(object){\n            // rollback all unsaved items\n            for (let i = object.length; i >= 0; i--) {\n                let currentObject = object.objectAt(i);\n                if (typeof currentObject !== 'undefined') {\n                    currentObject.rollbackAttributes();\n                }\n            }\n            this.send('updateAnchorsCounter', this.get('object'));\n            this.notifyPropertyChange('anchorsAmount');\n            this.set('isEditing', false);\n        }\n    },\n    didRender(){\n        this.send('prePopulateAnchors');\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.isAllAnchorsPopulated===true) {\n                this.send('save', this.get('object'));\n            }\n        }\n    },\n    // isValidateStacked: Ember.computed('object','anchorsAmount', function() {\n    //     let validatedStack = true;\n    //     console.log(\"isStacked: \" + this.get('isStacked'));\n    //     let uniqueArray = [];\n    //     let anchorArray = [];\n        \n    //     this.get('object').map(function(obj){\n    //         if( !isNaN(obj.get('distance')) ) {\n    //             anchorArray.push(parseInt(obj.get('distance')));\n    //         } else {\n    //             anchorArray.push(obj.get('distance'));\n    //         }\n    //     });\n    //     uniqueArray = anchorArray.filter(function(item, pos, self) {\n    //         return self.indexOf(item) == pos;\n    //     });\n\n    //     if( this.get('isStacked') ){            \n    //         if(uniqueArray.length != 4 && this.get('isAllAnchorsPopulated')){\n    //             validatedStack = false;\n    //         }      \n    //     }                  \n    //     console.log(\"Validated Stacked:\" + validatedStack)\n    //     return validatedStack;        \n    // }),\n    // isValidatedStaggered: Ember.computed('object','anchorsAmount', function() {\n    //     let validatedStaggered = true;\n    //     console.log(\"isStacked: \" + this.get('isStacked'));\n    //     let uniqueArray = [];\n    //     let anchorArray = [];\n        \n    //     this.get('object').map(function(obj){\n    //         try{\n    //             anchorArray.push(parseInt(obj.get('distance')));\n    //         } catch (error){\n    //             console.log(error);\n    //         }\n    //     });\n    //     uniqueArray = anchorArray.filter(function(item, pos, self) {\n    //         return self.indexOf(item) == pos;\n    //     });\n\n    //     if( !this.get('isStacked') ){            \n    //         if(uniqueArray.length<7 && this.get('isAllAnchorsPopulated')){\n    //             validatedStaggered = false;\n    //         }\n    //     }\n    //     console.log(\"Validated Staggered:\" + validatedStaggered)\n    //     return validatedStaggered;        \n    // }),\n\n});","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n\n    isEditing: false,\n    store: Ember.inject.service(),\n    channelsNum: 0,\n    isToe: Ember.computed('headAt', function() {\n        return this.get('headAt') === 'HAT';\n    }),\n    isCollar: Ember.computed('headAt', function() {\n        return this.get('headAt') === 'HAC';\n    }),\n    anchorsAmount: Ember.computed('object', {\n        get() {\n            if (this._anchorCount) {\n                return this._anchorCount;\n            }\n            return this.get('object').length;\n        },\n\n        set(key, value) {\n            return this._anchorCount = value;\n        }\n    }),\n    isAllAnchorsPopulated: Ember.computed('object', 'anchorsAmount', function() {\n        let objectLength = this.get('object').map(function(obj){\n            return obj.get('distance') !== '' && obj.get('distance') !== null;\n        });\n        if (objectLength.indexOf(false) > -1) {\n            return false;\n        } else {\n            return true;\n        }\n    }),\n\n    // sort anchors depending on head position\n    sortProperties: Ember.computed('isToe', function() {\n        if (this.get('isToe')) {\n            return ['number:asc'];\n        }\n        return ['number:desc'];\n    }),\n    sortedInstrumentAnchors: Ember.computed.sort('object', 'sortProperties'),\n\n    // Binding Style Attributes to prevent console warning\n    // https://emberjs.com/deprecations/v1.x/#toc_binding-style-attributes.\n    anchorsCSSCounteStyle: Ember.computed('isToe', 'anchorsAmount', function() {\n        let anchorsCSSCounteStyle = this.get('isToe') ? -1 : this.get('anchorsAmount');\n        return Ember.String.htmlSafe(\"counter-reset: anchorNumber \" + anchorsCSSCounteStyle);\n    }),\n\n    actions: {\n        updateAnchorsCounter(object){\n            let j = 0;\n            object.forEach(function(obj){\n                if (!obj.get('isDeleted')) {\n                    j++;\n                }\n            });\n            this.set('anchorsAmount', j);\n        },\n        edit(){\n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        inputNewValue(currentAnchor, newValue) {\n            this.notifyPropertyChange('anchorsAmount'); // trigger property change to notify 'isAllAnchorsPopulated' computed property to be recalculated when updating anchors inputs\n            currentAnchor.set('distance', newValue);\n        },\n        prePopulateAnchors() {\n            let object = this.get('object');\n            let anchorsArray = [];\n            let emptyAnchorsAmount = this.get('channelsNum') - this.get('anchorsAmount');\n\n            if ( emptyAnchorsAmount != null && emptyAnchorsAmount > 0 ) {\n                // console.log(\"emptyAnchorsAmount:::: \" + emptyAnchorsAmount)\n                // console.log(\"channelsNum:::: \" + this.get('channelsNum') + \"   anchorsAmount:::::: \" +  this.get('anchorsAmount'))\n                for (var i = emptyAnchorsAmount - 1; i >= 0; i--) {\n                    let newAnchor = this.get('store').createRecord('anchor', {\n                        number: i,\n                        distance: ''\n                    });\n                    anchorsArray.push(newAnchor);\n                }\n            }\n\n            if (anchorsArray.length) {\n                object.pushObjects(anchorsArray);\n                this.send('updateAnchorsCounter', object);\n            }\n\n            // // Afterthought to fix broken anchor ordering in database. Proabbaly could be removed at some point when there won't be anymore anchors with empty number value.\n            // let isAnchorNumbersCorrupted = -1;\n            // object.forEach(function(obj){\n            //     if (obj.get('number') === 0) {\n            //         isAnchorNumbersCorrupted++;\n            //     }\n            // });\n            // if (isAnchorNumbersCorrupted) {\n            //     object.forEach(function(obj, i){\n            //         obj.set('number', i);\n            //     });\n            // }\n\n        },\n        save(object){\n            for (let i = object.length; i >= 0; i--) {\n                let currentObject = object.objectAt(i);\n                if (typeof currentObject !== 'undefined' && currentObject.get('hasDirtyAttributes')) {\n                    currentObject.save()\n                    //console.log(\"anchor count: \" + i);\n                }\n            }\n\n\n\n            // try{\n\n            //     if(object !== null && typeof object !== 'undefined'){\n            //         for (let i = object.length; i >= 0; i--) {\n            //             let currentObject = object.objectAt(i);\n                        \n            //             if(currentObject.get('isLoaded')){\n            //                 if (typeof currentObject !== 'undefined' && currentObject.get('hasDirtyAttributes')) {\n            //                     currentObject.save();\n            //                     //console.log(\"anchor count: \" + i);\n            //                 }\n            //             }\n            //         }\n            //     }\n            // }\n            // catch(e){\n            //     console.log(e);\n            // }\n            this.set('isEditing', false);\n        },\n        cancel(object){\n            // rollback all unsaved items\n            for (let i = object.length; i >= 0; i--) {\n                let currentObject = object.objectAt(i);\n                if (typeof currentObject !== 'undefined') {\n                    currentObject.rollbackAttributes();\n                }\n            }\n            \n            this.send('updateAnchorsCounter', this.get('object'));\n            this.notifyPropertyChange('anchorsAmount');\n            this.set('isEditing', false);\n        }\n    },\n    didRender(){\n        this.send('prePopulateAnchors');\n    },\n    keyDown: function(e) {\n        // console.log(\"keyDown::::::::::::: \" + JSON.stringify(e));\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.get('isAllAnchorsPopulated')===true) {\n                this.send('save', this.get('object'));\n            }\n        }\n    }\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Ember from 'ember';\nimport { camelize } from '@ember/string';\n\nvar originVal;\nvar field;\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n\n    store: Ember.inject.service(),\n    isEditable: true,\n    isEditing: false,\n    isRelational: true,\n    \n    // isNew means that this is being used on an object that has not been saved before. \n    // New as in not in the database yet. So saving is done at the form level not per control.        \n    isNew: false,\n    selectOptionsArray: Ember.computed.map('selectOptions', function(item){\n        const selectOptionsKyes = this.get('selectOptionsKyes').split(\",\");\n        \n        // console.log(\"Key: \" + Ember.get(item, selectOptionsKyes[0]) + \"   Value:: \" + Ember.get(item, selectOptionsKyes[1]))\n        \n        return {\n            key: Ember.get(item, selectOptionsKyes[0]),\n            value: Ember.get(item, selectOptionsKyes[1])\n        };\n    }),\n    \n    modelName: Ember.computed('selectOptions', function() {\n        return this.get('selectOptions.type.modelName');\n    }),\n\n    actions: {\n        selectNewValue(value){\n            // isNew means that this is being used on an object that has not been saved before. \n            // New as in not in the database yet.\n            let isNew = this.isNew;\n\n            // Only save if it's already in the database.\n            if( !isNew){\n                // console.log(`New value: ${value}`);\n                this.set('newValue', value);\n                this.send('save',this.get('parentObject'));\n            }\n            if (this.onSelectionChange) { // check if onSelectionChange function is defined\n                this.onSelectionChange(value);\n            }\n        },\n\n        edit(){\n            originVal = this.get(`object.${this.get('valueSource')}`);\n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('valueSource')}`));\n            // console.log(\"Setting New Value::::: \" + this.get(\"newValue\"));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        async save(object){\n            // console.log(`Saving: ${object.id}`);            \n            let modelName = this.get('modelName');\n            // console.log(`modelName: ${modelName}`);\n            // console.log(\"valueSource:: \" + this.get('valueSource'));\n            \n            if (this.get('isRelational')) {\n                var newSelectValue = await this.get('store').findRecord(modelName, this.get('newValue'));\n                object.set(camelize(this.get('inputFieldId')), newSelectValue);\n            } else {\n                // console.log(\"valueSource:: \" + this.get('newValue'));\n                object.set(this.get('valueSource'), this.get('newValue'));\n            }\n\n            // field = this.get('field');\n            \n            await object.save().catch(function(reason) {\n                // console.log(\"REASON:::::::: \" + reason);\n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n         \n                // console.log(\"objects saved\");\n                object.set(camelize(modelName), newSelectValue);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n    store: Ember.inject.service(),\n    isEditable: true,\n    isEditing: false,\n    isRelational: true,\n    selectOptionsArray: Ember.computed.map('selectOptions', function(item){\n        const selectOptionsKyes = this.get('selectOptionsKyes').split(\",\");\n        return {\n            key: Ember.get(item, selectOptionsKyes[0]),\n            value: Ember.get(item, selectOptionsKyes[1])\n        };\n    }),\n    modelName: Ember.computed('selectOptions', function() {\n        return this.get('selectOptions.type.modelName');\n    }),\n    actions: {\n        selectNewValue(value){\n            this.set('newValue', value);\n        },\n        edit(){\n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('valueSource')}`));\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            let modelName = this.get('modelName');\n            //console.log(this.get('newValue'));\n            object.set(this.get('valueSource'), this.get('newValue'));\n            object.save();\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        }\n    },\n    didRender(){\n        //this.$('.has-tooltip-info').tooltip(); //activate tooltips\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\nimport { camelize } from '@ember/string';\n\nvar originVal;\nvar field;\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n\n    store: Ember.inject.service(),\n    isEditable: true,\n    isEditing: false,\n    isRelational: true,\n    selectOptionsArray: Ember.computed('selectOptions', function () {\n        let valueArray = this.get('selectOptions');\n        let items = valueArray[this.get(\"selectOptionKey\")];\n        let selectOptionsKyes = this.get('selectOptionsKyes').split(\",\");\n        let selectOptions = items.map(function (item) {\n          return {\n            key: item[selectOptionsKyes[0]],\n            value: item[selectOptionsKyes[1]]\n          };\n        });\n        return selectOptions;\n    }),\n    modelName: Ember.computed('selectOptions', function() {\n        let modelName = this.get('selectOptions');\n        // console.log(`modelName: ${modelName.type.modelName}`);\n        return this.get('selectOptions.type.modelName');\n    }),\n    getOption(key) {\n        let { field, selectOptions, selectOptionKey, object } = this.getProperties('field', 'selectOptions', 'selectOptionKey', 'object');\n        let queryValue = object[field];\n        let value = selectOptions[selectOptionKey].find(({ id }) => id === queryValue) || {};\n        return value;\n    },\n    getOptionValue: Ember.computed('selectOptions', function() {\n        let { field, selectOptions, selectOptionKey, object } = this.getProperties('field', 'selectOptions', 'selectOptionKey', 'object');\n        let queryValue = object[field];\n        let { value } = selectOptions[selectOptionKey].find(({ id }) => id === queryValue) || {};\n        return value;\n    }),\n    actions: {\n        // selectNewValue(value){\n        //     console.log(`New value: ${value}`);\n        //     this.set('newValue', value);\n        //     let parent = this.get('parentObject');\n        //     this.send('save',this.get('parentObject'));\n        // },\n        getNewOptionValue() {\n            let { field, selectOptions, selectOptionKey, object } = this.getProperties('field', 'selectOptions', 'selectOptionKey', 'object');\n            let queryValue = object[field];\n            let { value } = selectOptions[selectOptionKey].find(({ id }) => id === queryValue) || {};\n            return value;\n        },\n\n        selectNewValue(value){\n            // console.log(`New value: ${value}`);\n            this.set('newValue', value+\"\");\n            let parent = this.get('parentObject');\n            this.send('save',parent);\n        },\n        edit(){\n            originVal = this.get(`object.${this.get('field')}`);\n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            let modelName = this.get('modelName');\n            let field = this.get('field');\n            if (this.get('isRelational')) {\n                var newSelectValue = this.get('newValue');\n                // console.log(`newSelectValue: ${newSelectValue}`);\n                // console.log(`newSelectValue Value: ${this.get('newValue')}`);\n                object.set(field, this.get('newValue'));\n            } else {\n                object.set(this.get('valueSource'), this.get('newValue'));\n            }\n\n            // field = this.get('field');\n            \n            object.save().catch(function(reason) {\n      \n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n                \n                // // let orig = \"\";\n                // // if (originVal == 1) {\n                // //     orig = \"dExto\";\n                // // }\n\n                // //console.log(field);\n                // console.log(originVal);\n\n                // const objectMaps = {\n                //     'HAC': 'collar',\n                //     'HAT': 'toe',\n                //     '1': 'dExto',\n                //     '2': 'dCable',\n                //     '3': 'dRebar',\n                //     '4': 'dMPBX',\n                //     '5': 'dCOnv',\n                //     '6': 'Tilt',\n                //     '7': 'Slough',\n                //     '8': 'Thermostring',\n                //     '9': 'Piezo',\n                //     '10': 'HID',\n                //     '11': 'dGMM',\n                //     '12': 'Wire',\n                //     '13': 'Adict',\n                //     '15': 'BluVibe',\n                // };\n\n                // let originString = objectMaps[originVal];\n\n                // if (! ((originVal == 'HAC') || (originVal == 'HAT')) ) {\n                //     //object.set(\"instrumentType.title\", originString);\n                // } else {\n                //     //object.set(\"headAt.title\", originString);\n                // }\n\n                object.set(camelize(modelName), newSelectValue);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\nimport { camelize } from '@ember/string';\n\nvar originVal;\nvar field;\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n\n    store: Ember.inject.service(),\n    isEditable: true,\n    isEditing: false,\n    isRelational: true,\n    selectOptionsArray: Ember.computed.map('selectOptions', function(item){\n        const selectOptionsKyes = this.get('selectOptionsKyes').split(\",\");\n        // console.log(\"Key: \" + Ember.get(item, selectOptionsKyes[0]) + \"   Value:: \" + Ember.get(item, selectOptionsKyes[1]))\n        \n        return {\n            key: Ember.get(item, selectOptionsKyes[0]),\n            value: Ember.get(item, selectOptionsKyes[1])\n        };\n    }),\n    \n    modelName: Ember.computed('selectOptions', function() {\n        return this.get('selectOptions.type.modelName');\n    }),\n\n    actions: {\n        selectNewValue(value){\n            // console.log(`New value: ${value}`);\n            this.set('newValue', value);\n            if (this.onSelectionChange) { // check if onSelectionChange function is defined\n                this.onSelectionChange(value);\n            }\n            this.send('save',this.get('parentObject'));\n        },\n\n        edit(){\n            originVal = this.get(`object.${this.get('valueSource')}`);\n            this.set('isEditing', true);\n            this.set('newValue', this.get(`object.${this.get('valueSource')}`));\n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        async save(object){\n            // console.log(`Saving: ${object.id}`);            \n            let modelName = this.get('modelName');\n            // console.log(`modelName: ${modelName}`);\n            // console.log(\"valueSource:: \" + this.get('valueSource'));\n            if (this.get('isRelational')) {\n                var newSelectValue = this.get('store').peekRecord(modelName, this.get('newValue'));\n                object.set(camelize(modelName), newSelectValue);\n            } else {\n                // console.log(\"valueSource:: \" + this.get('newValue'));\n                object.set(this.get('valueSource'), this.get('newValue'));\n            }\n\n            // field = this.get('field');\n            \n            await object.save().catch(function(reason) {\n                // console.log(\"REASON:::::::: \" + reason);\n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n                \n                // // let orig = \"\";\n                // // if (originVal == 1) {\n                // //     orig = \"dExto\";\n                // // }\n\n                // //console.log(field);\n                // console.log(originVal);\n\n                // const objectMaps = {\n                //     'HAC': 'collar',\n                //     'HAT': 'toe',\n                //     '1': 'dExto',\n                //     '2': 'dCable',\n                //     '3': 'dRebar',\n                //     '4': 'dMPBX',\n                //     '5': 'dCOnv',\n                //     '6': 'Tilt',\n                //     '7': 'Slough',\n                //     '8': 'Thermostring',\n                //     '9': 'Piezo',\n                //     '10': 'HID',\n                //     '11': 'dGMM',\n                //     '12': 'Wire',\n                //     '13': 'Adict',\n                //     '15': 'BluVibe',\n                // };\n\n                // let originString = objectMaps[originVal];\n\n                // if (! ((originVal == 'HAC') || (originVal == 'HAT')) ) {\n                //     //object.set(\"instrumentType.title\", originString);\n                // } else {\n                //     //object.set(\"headAt.title\", originString);\n                // }\n                // console.log(\"objects saved\");\n                object.set(camelize(modelName), newSelectValue);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\n\nvar originVal;\nvar field;\n\nexport default Ember.Component.extend({\n    editChanged: Ember.observer('isEditing', function() {\n        if (this.get('isEditing')==true) {\n            if(typeof this.editField === \"function\") {\n                this.editField();\n            }\n        } else {\n            if(typeof this.stopEditField === \"function\") {\n                this.stopEditField();\n            }\n        }\n    }),\n\n    isEditing: false,\n    dateTimePicker: null,\n    showClear: false,\n    actions: {\n        edit(){\n            originVal = this.object.get(this.field)\n            this.set('isEditing', true);\n            this.set('newValue', moment(new Date(this.object.get(this.field))).format('HH:mm:ss'));            \n            return this.element.tabindex = 1, this.element.focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save(object){\n            let value = this.get('newValue');\n//            let newDate = moment(new Date(value)).format('HH:mm:ss');\n            let newDate = moment(value,'HH:mm:ss');\n            if (newDate == \"Invalid date\")\n                newDate = null;\n            object.set(this.get('field'), newDate.format('HH:mm:ss'));\n\n            field = this.get('field');\n            object.save().catch(function(reason) {\n      \n                let editError = document.getElementById(\"instrumentEditError\");\n                editError.hidden = false;\n                \n                if (originVal == null) {\n                    originVal = \"\";\n                }\n                \n                object.set(field, originVal);\n\n                window.scrollTo(0,0);\n            });\n            this.set('isEditing', false);\n        },\n        cancel(){\n            this.set('newValue', this.get(`object.${this.get('field')}`));\n            this.set('isEditing', false);\n        }\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel', this.get('object'));\n        }\n        if (e.keyCode === 13) {\n            if (this.get('isTextarea') === true && e.ctrlKey === false) {\n                return;\n            }\n            this.send('save', this.get('object'));\n        }\n    }\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        activeChanged() {\n            this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            let selected = {};\n\n            for(const elem of selector.selectedOptions)\n            {\n                selected[elem.value] = true;\n            };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                for(const elem of selector.selectedOptions) {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = elem.value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save();\n                                }\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n\n\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.bulbed = this.get('bulbed');\n            newInstrumentObject.plated = this.get('plated');\n            newInstrumentObject.stacked = this.get('stacked');\n            newInstrumentObject.active = true;\n            newInstrumentObject.instrumentStiffness = 0;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        // console.log(dup);\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    \n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n    \n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            this.get('router').transitionTo('raw-data', id);\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values' || modelName === 'load-values') { \n                var plated = this.get('instrument').get('plated');\n                var type = this.get('instrument').get('instrumentType').get('title');\n                //console.log(type);\n                \n                if (type === 'dCable') {\n                    chartData.values.splice(0,1);\n                    chartData.values.unshift(0);\n                    if(plated) {\n                        chartData.values.push(chartData.values[chartData.values.length - 1]);\n                    } else {\n                        chartData.values.push(0);\n                    }\n                } else if (type === 'dExto') {\n                    chartData.values.unshift(chartData.values[0]);\n                }\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'dRebar') {\n            for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n\n            for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n        }\n */\n        var modelName = this.get('chartDataModelName');\n        //if (this.get('instrument').get('instrumentType').get('title') != 'dRebar') {\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {\n                anchorDistances.splice(0, 1);\n            }\n        //}\n\n        if (modelName === 'axial-displacement-values') {\n            if (this.get('instrument').get('stacked')) {\n                let half_anchors = (anchorDistances.length / 2) + 1;\n                let gauge = this.get('instrument').get('gaugeLength');\n                while (anchorDistances.length > half_anchors) {\n                    anchorDistances.pop();\n                }\n                anchorDistances[0] = anchorDistances[1] - gauge;\n            } else {\n                let last = anchorDistances[anchorDistances.length-1];\n                anchorDistances.sort(function(a,b){return a-b;});\n                let gauge = this.get('instrument').get('gaugeLength');\n                //console.log('gauge: ' + gauge);\n                anchorDistances.forEach(function(item, index) {\n                    anchorDistances[index] = item - gauge;\n                    //console.log(item);\n                });\n                //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n                anchorDistances.shift();\n                anchorDistances.push(last);\n            }\n        }\n\n\n\n\n        return anchorDistances;\n    }),\n\n    anchorAXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else { //staggered\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n    \n            midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n                return [v, anchorDistances.slice(center + 1)[i]];\n              });\n\n            midPoints.unshift(headExclusion);\n            let mid_temp = [];\n            for(let ctr = 1;ctr < midPoints.length; ctr++) {\n                mid_temp.push((midPoints[ctr - 1] + midPoints[ctr]) / 2);\n            }\n            midPoints = mid_temp;\n\n            if (modelName === 'bending-strain-values') {\n                midPoints.shift();\n                midPoints.pop();\n            }    \n            \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n        \n        //console.log(midPoints);\n        \n        return midPoints;\n    }),\n\n    anchorBXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else {\n\n        let center = anchorDistances.length - 1;\n        center = Math.ceil(center / 2);\n\n        midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n            return [v, anchorDistances.slice(center + 1)[i]];\n          });\n            midPoints.shift();\n            midPoints.pop();                  \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n\n        return midPoints;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n            if (this.get('instrument').get('stacked')) {\n                anchorDistances.shift(0);\n                let finalSize = anchorDistances.length / 2;\n                while (anchorDistances.length > finalSize) {\n                    anchorDistances.pop(finalSize);\n                }\n                anchorDistances.unshift(this.get('instrument').get('headExclusionLength'));\n            } else { //staggered\n\n            }\n        } else { //not rebar\n            anchorDistances.unshift(0);\n        }\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        if(type === 'dCable') {\n            midDistances.splice(0,1);\n            //midDistances.unshift(0);\n            midDistances[0] = 0;\n            var len = this.get('instrument').get('length');\n            var length = this.get('instrument').get('instrumentLength');\n\n            var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {    \n                if(length !== null && length !== 0) {\n                    midDistances.push(length);\n                } else {\n                    midDistances.push(anchorDistances[anchorDistances.length - 1]);\n                }\n            }\n        }\n        // console.log(\"Anchors: \" + anchorDistances);\n         //console.log(\"Mids: \" + midDistances);\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', 'anchorAXDistances', 'anchorBXDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(this.get('instrument').get('instrumentTypeID') === 3) {//rebar \n            if(this.get('instrument').get('stacked')) { //is stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            } else { //is NOT stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            }\n        }\n\n        if (this.get('instrument').get('instrumentType').get('title') !== 'dRebar') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                return anchorMidDistances.map(function(anchorDistance){\n                    return {\n                        key: anchorDistance,\n                        type: 'referencePoints',\n                        values: [\n                            anchorDistance\n                        ]\n                    };\n                });\n                    \n            }\n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'load-values') {\n            return 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorAXDistances = this.get('anchorAXDistances'),\n            anchorBXDistances = this.get('anchorBXDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        \n        if ((modelName === 'strain-values' || modelName === 'load-values') && this.get('instrument').get('instrumentType').get('title') !== 'dRebar') { \n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'axial-strain-values' || modelName === 'load-values' ) {//&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorAXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'bending-strain-values' ) { //&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorBXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if(type === 'dCable') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                //console.log(fullRangeDataPoints);\n                fullRangeDataPoints.forEach(element => element.values[0]=0);\n            }\n        }\n        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg')\n            ;\n            let yAxisLegend = this.get('yAxisLegend');\n            let apiCallsPromises = [yAxisLegend];\n \n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n/*                 zoomChart.xAxis.dispatch.on('xAxisMouseMove', function (mouseMove) {\n                    console.log('test');\n                });\n */\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        //console.log(linesKyes);\n\n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var plated = this.get('instrument').get('plated');\n            \n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                if(plated) {\n                    chartData.values[0] = chartData.values[1];\n                } else {\n                    chartData.values[0] = 0;\n                }\n            } else {\n                //chartData.values.unshift(0);\n            }\n            chartData.values.push(0);\n        }\n        //console.log(chartData);\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        if(instType === 'Tilt') {\n            return ['X','Y','Z'];\n        } else if(instType === 'Wire') {\n            let anchors = [];\n            let numPorts = this.instrument.get('portsNum');\n            let startVal = 0;\n            let maxVal = numPorts;\n/*             if (this.port != '') {\n                //startVal = (1 * this.port) - 1;\n                startVal = (1 * numPorts) - 1;\n                maxVal = startVal + 1;\n            }\n */            for(let ctr = startVal; ctr < maxVal; ctr++) {\n                anchors.push('T' + (ctr + 1));\n                anchors.push(ctr + 1);\n            }\n            return anchors;\n        } else if(instType === 'BluVibe') {\n            return ['Data'];\n        }\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var midPoints = [];\n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                //Adjust anchors to mid points between anchors\n                for(var ctr = 1; ctr < anchorDistances.length ; ctr++) {\n                    var mid = (anchorDistances[ctr - 1] + anchorDistances[ctr]) / 2;\n                    midPoints[ctr] = + mid.toFixed(2);\n                }\n\n                //console.log(midPoints);\n\n                //add zero point and end point\n                midPoints.splice(0,1);\n                midPoints[0] = 0;\n                midPoints.push(anchorDistances[anchorDistances.length - 1]);  //TODO: change to length of exto once known\n                //console.log(midPoints);\n            } else if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                //Adjust anchors to mid points between anchors\n                //console.log(this.get('instrument'));\n                let headExclusion = this.get('instrument').get('headExclusionLength');\n                let leftAnchors = [headExclusion];\n                let rightAnchors = [headExclusion];\n                \n                let center = anchorDistances.length - 1;\n                center = Math.ceil(center / 2);\n\n                leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n\n                rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n\n                let midLeft = [];\n                for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                    midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                }\n\n                let midRight = [];\n                for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                    midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                }\n\n                if (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values') {\n                    if(this.get('instrument').get('stacked')) {\n                        midPoints = midLeft;\n                        if (modelName === 'load-values') {\n                            midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n                        }\n                    } else {\n                        midPoints = midLeft.concat(midRight);\n                        /* midPoints = $.map(midPoints.slice(1, center + 1), function(v, i) {\n                            return [v, midPoints.slice(center + 1)[i]];\n                          }); */\n                        if (modelName === 'bending-strain-values') {\n                            midPoints.shift();\n                            midPoints.pop();\n                        }\n\n                    }\n                } else {\n                    midPoints = midLeft.concat(midRight);\n                }\n                if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                    for(let ctr = 0; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n  \n/*                     for(let ctr = 0; ctr < midPoints.length / 2; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n        \n                    for(let ctr = 3; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n */                }\n            } else {\n                for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                    midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n                }\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        } else if (modelName === 'axial-displacement-values' && this.get('instrument').get('stacked')) {\n            let mid = (anchorDistances.length - 1) / 2;\n            while (anchorDistances.length > (mid + 1)) {\n                anchorDistances.pop();\n            }\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else if (modelName === 'axial-displacement-values' && !this.get('instrument').get('stacked')) {\n            anchorDistances.sort(function(a,b){return a-b;});\n\n            //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else {\n            if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                if (modelName === 'displacement-values') { //rebar stretch\n                    var midPoints = [];\n                    let headExclusion = this.get('instrument').get('headExclusionLength');\n                    let leftAnchors = [headExclusion];\n                    let rightAnchors = [headExclusion];\n                    \n                    let center = anchorDistances.length - 1;\n                    center = Math.ceil(center / 2);\n    \n                    leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                    rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n    \n                    if(!this.get('instrument').get('stacked')) {\n                        rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n                    }\n    \n                    let midLeft = [];\n                    for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                        midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                    }\n    \n                    let midRight = [];\n                    for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                        midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                    }\n\n                    midPoints = midLeft.concat(midRight);\n                    anchorDistances = midPoints;\n\n                    anchorDistances.unshift(0);\n                }\n                for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n    \n                for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n            }    \n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n            var mName = _this.get('chartDataModelName');\n            if (mName === 'strain-values' || mName === 'strain-rate-values' || mName === 'load-values') {\n                zoomDataPoints.forEach(element => element.values[0] = 0);\n            }\n        }    \n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'Tilt') {\n                zoomDataPoints.forEach(element => element.values.shift());\n        }    \n */\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values' && this.get('instrument').get('instrumentType').get('title') !== 'BluVibe'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = '';\n                if (instType === 'BluVibe') {\n                    title = _this.get('chartDataModelName');\n                } else {\n                    title = yAxisLegend.get('title');\n                }\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    case 'event-frequency':\n                        axisName = \"Event Frequency\";\n                        break;\n                    case 'event-ppv':\n                        axisName = \"Event PPV\";\n                        break;\n                    case 'event-ppa':\n                        axisName = \"Event PPA\";\n                        break;\n                    case 'cumulative-event-frequency':\n                        axisName = \"Cumulative Frequency\";\n                        break;\n                    case 'cumulative-event-ppv':\n                        axisName = \"Cumulative PPV\";\n                        break;\n                    case 'cumulative-event-ppa':\n                        axisName = \"Cumulative PPA\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                /* let chartName = yAxisLegend.get('title').capitalize();\n                let chartNameL = chartName.substr(0, chartName.indexOf('_'));\n                let chartNameR = chartName.substr(chartName.indexOf('_') + 1).capitalize();\n                if(chartNameL !== \"\") {\n                    chartName = chartNameL + \" \" + chartNameR;\n                } */\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName +  \" (kN)\";\n                    } else if (instType === 'Wire') {\n                        if (raw === true) {\n                            title = \"Frequency (Hz)\";\n                        } else {\n                            title = \"Calculated Values\";\n                        }\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                } else {\n                    if (instType === 'BluVibe') {\n                        title = axisName;\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n        // console.log(\"Dist:::::::::::\" + dist);\n        return dist;\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    tagName: 'th',\n    orderingAscending: false,\n\n    isSelectedSort: Ember.computed('selectedSortProperty', 'sortProperty', function() {\n        let selectedSortProperty = this.get('selectedSortProperty');\n        if ( selectedSortProperty ) {\n            if ( selectedSortProperty.indexOf('-') === 0 ) {\n                selectedSortProperty = selectedSortProperty.substring(1);\n            }\n            return selectedSortProperty === this.get('sortProperty');\n        }\n    }),\n\n    actions: {\n        sortBy: function(sortProperty) {\n            //console.log('sorting');\n            this.toggleProperty('orderingAscending');\n\n            if ( this.get('orderingAscending') ) {\n                sortProperty = '-' + sortProperty;\n            }\n            this.sort(sortProperty);\n        }\n    }\n\n})","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\n\nexport default class SvgInstrumentComponent extends Component {\n  // Default values\n  get height() {\n    return this.args.height || 500;\n  }\n\n  get width() {\n    return this.args.width || 500;\n  }\n\n  get orientation() {\n    return this.args.orientation || 'horizontal';\n  }\n\n  get anchors() {\n    return this.args.anchors || true;\n  }\n\n  get type() {\n    return this.args.type || 'stacked';\n  }\n}\n","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\n\nexport default class BaseTemporalChartDropdownComponent extends Component {\n    \n    constructor() {\n        super(...arguments);\n    }\n}\n","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Component from '@glimmer/component';\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({\n\n});","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n        \n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n\n\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n            newInstrumentObject.instrumentStiffness = 0;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        // console.log(dup);\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    \n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,    \n\n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            this.get('router').transitionTo('raw-data', id);\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values' || modelName === 'load-values') { \n                var plated = this.get('instrument').get('plated');\n                var type = this.get('instrument').get('instrumentType').get('title');\n                //console.log(type);\n                \n                if (type === 'dCable') {\n                    chartData.values.splice(0,1);\n                    chartData.values.unshift(0);\n                    if(plated) {\n                        chartData.values.push(chartData.values[chartData.values.length - 1]);\n                    } else {\n                        chartData.values.push(0);\n                    }\n                } else if (type === 'dExto') {\n                    chartData.values.unshift(chartData.values[0]);\n                }\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'dRebar') {\n            for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n\n            for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                anchorDistances[ctr] = (ctr) + '-' + anchorDistances[ctr];\n            }\n        }\n */\n        var modelName = this.get('chartDataModelName');\n        //if (this.get('instrument').get('instrumentType').get('title') != 'dRebar') {\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {\n                anchorDistances.splice(0, 1);\n            }\n        //}\n\n        if (modelName === 'axial-displacement-values') {\n            if (this.get('instrument').get('stacked')) {\n                let half_anchors = (anchorDistances.length / 2) + 1;\n                let gauge = this.get('instrument').get('gaugeLength');\n                while (anchorDistances.length > half_anchors) {\n                    anchorDistances.pop();\n                }\n                anchorDistances[0] = anchorDistances[1] - gauge;\n            } else {\n                let last = anchorDistances[anchorDistances.length-1];\n                anchorDistances.sort(function(a,b){return a-b;});\n                let gauge = this.get('instrument').get('gaugeLength');\n                //console.log('gauge: ' + gauge);\n                anchorDistances.forEach(function(item, index) {\n                    anchorDistances[index] = item - gauge;\n                    //console.log(item);\n                });\n                //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n                anchorDistances.shift();\n                anchorDistances.push(last);\n            }\n        }\n\n\n\n\n        return anchorDistances;\n    }),\n\n    anchorAXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else { //staggered\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n    \n            midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n                return [v, anchorDistances.slice(center + 1)[i]];\n              });\n\n            midPoints.unshift(headExclusion);\n            let mid_temp = [];\n            for(let ctr = 1;ctr < midPoints.length; ctr++) {\n                mid_temp.push((midPoints[ctr - 1] + midPoints[ctr]) / 2);\n            }\n            midPoints = mid_temp;\n\n            if (modelName === 'bending-strain-values') {\n                midPoints.shift();\n                midPoints.pop();\n            }    \n            \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n        \n        //console.log(midPoints);\n        \n        return midPoints;\n    }),\n\n    anchorBXDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n\n        let midPoints = [];\n\n        if(this.get('instrument').get('stacked')) {\n            let headExclusion = this.get('instrument').get('headExclusionLength');\n            let leftAnchors = [headExclusion];\n            \n            let center = anchorDistances.length - 1;\n            center = Math.ceil(center / 2);\n\n            leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n\n            let midLeft = [];\n            for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n            }\n            midPoints = midLeft;\n        } else {\n\n        let center = anchorDistances.length - 1;\n        center = Math.ceil(center / 2);\n\n        midPoints = $.map(anchorDistances.slice(1, center + 1), function(v, i) {\n            return [v, anchorDistances.slice(center + 1)[i]];\n          });\n            midPoints.shift();\n            midPoints.pop();                  \n        }\n\n        midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n\n        return midPoints;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n            if (this.get('instrument').get('stacked')) {\n                anchorDistances.shift(0);\n                let finalSize = anchorDistances.length / 2;\n                while (anchorDistances.length > finalSize) {\n                    anchorDistances.pop(finalSize);\n                }\n                anchorDistances.unshift(this.get('instrument').get('headExclusionLength'));\n            } else { //staggered\n\n            }\n        } else { //not rebar\n            anchorDistances.unshift(0);\n        }\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        if(type === 'dCable') {\n            midDistances.splice(0,1);\n            //midDistances.unshift(0);\n            midDistances[0] = 0;\n            var len = this.get('instrument').get('length');\n            var length = this.get('instrument').get('instrumentLength');\n\n            var modelName = this.get('chartDataModelName');\n            if (anchorDistances.length > dataValuesCount && (modelName === 'strain-values' || modelName === 'load-values')) {    \n                if(length !== null && length !== 0) {\n                    midDistances.push(length);\n                } else {\n                    midDistances.push(anchorDistances[anchorDistances.length - 1]);\n                }\n            }\n        }\n        // console.log(\"Anchors: \" + anchorDistances);\n         //console.log(\"Mids: \" + midDistances);\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', 'anchorAXDistances', 'anchorBXDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(this.get('instrument').get('instrumentTypeID') === 3) {//rebar \n            if(this.get('instrument').get('stacked')) { //is stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            } else { //is NOT stacked\n                if (modelName === 'axial-strain-values' || modelName === 'load-values') {\n                    anchorDistances = this.get('anchorAXDistances');\n                } else if (modelName === 'bending-strain-values') {\n                    anchorDistances = this.get('anchorBXDistances');\n                }\n            }\n        }\n\n        if (this.get('instrument').get('instrumentType').get('title') !== 'dRebar') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                return anchorMidDistances.map(function(anchorDistance){\n                    return {\n                        key: anchorDistance,\n                        type: 'referencePoints',\n                        values: [\n                            anchorDistance\n                        ]\n                    };\n                });\n                    \n            }\n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'load-values') {\n            return 28;\n        } else if((modelName === 'axial-strain-values' || modelName === 'bending-strain-values') && this.get('instrument').get('stacked')) {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorAXDistances = this.get('anchorAXDistances'),\n            anchorBXDistances = this.get('anchorBXDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints'),\n            anchorMidDistances = this.get('anchorMidDistances')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        \n        if ((modelName === 'strain-values' || modelName === 'load-values') && this.get('instrument').get('instrumentType').get('title') !== 'dRebar') { \n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorMidDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'axial-strain-values' || modelName === 'load-values' ) {//&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorAXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else if (modelName === 'bending-strain-values' ) { //&& !this.get('instrument').get('stacked')) {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorBXDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n                return {\n                    key: chartLineIndex,\n                    // mean: 3,\n                    type: 'lines',\n                    timestamp: zoomTimePoints[chartLineIndex],\n                    values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            anchorDistances[dataPointIndex],\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        if(type === 'dCable') {\n            if(modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                //console.log(fullRangeDataPoints);\n                fullRangeDataPoints.forEach(element => element.values[0]=0);\n            }\n        }\n        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                if(yAxisLegend.get('title')==='load') {\n                    title = axisName + \" (kN)\";\n                } else {\n                    title = axisName + \" (\" + units + \")\";\n                }\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n/*                 zoomChart.xAxis.dispatch.on('xAxisMouseMove', function (mouseMove) {\n                    console.log('test');\n                });\n */\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        //console.log(linesKyes);\n\n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var plated = this.get('instrument').get('plated');\n            \n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                if(plated) {\n                    chartData.values[0] = chartData.values[1];\n                } else {\n                    chartData.values[0] = 0;\n                }\n            } else {\n                //chartData.values.unshift(0);\n            }\n            chartData.values.push(0);\n        }\n        //console.log(chartData);\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        let instType = this.instrument.get('instrumentType').get('title');\n        if(instType === 'Tilt') {\n            return ['X','Y','Z'];\n        } else if(instType === 'Wire') {\n            let anchors = [];\n            let numPorts = this.instrument.get('portsNum');\n            let startVal = 0;\n            let maxVal = numPorts;\n/*             if (this.port != '') {\n                //startVal = (1 * this.port) - 1;\n                startVal = (1 * numPorts) - 1;\n                maxVal = startVal + 1;\n            }\n */            for(let ctr = startVal; ctr < maxVal; ctr++) {\n                anchors.push('T' + (ctr + 1));\n                anchors.push(ctr + 1);\n            }\n            return anchors;\n        } else if(instType === 'BluVibe') {\n            return ['Data'];\n        }\n        let chartData = this.get('fullRangeChartData');\n        let dataValuesCount;\n        try {\n            dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        } catch (error) {\n            dataValuesCount = 0;\n        }\n        let anchors = this.get('instrument').get('anchors');\n        \n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        //anchorDistances.push('T'); //TODO: add temperature\n\n        //IF chart is Strain-Values chart\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') { \n            var midPoints = [];\n            if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n                //Adjust anchors to mid points between anchors\n                for(var ctr = 1; ctr < anchorDistances.length ; ctr++) {\n                    var mid = (anchorDistances[ctr - 1] + anchorDistances[ctr]) / 2;\n                    midPoints[ctr] = + mid.toFixed(2);\n                }\n\n                //console.log(midPoints);\n\n                //add zero point and end point\n                midPoints.splice(0,1);\n                midPoints[0] = 0;\n                midPoints.push(anchorDistances[anchorDistances.length - 1]);  //TODO: change to length of exto once known\n                //console.log(midPoints);\n            } else if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                //Adjust anchors to mid points between anchors\n                //console.log(this.get('instrument'));\n                let headExclusion = this.get('instrument').get('headExclusionLength');\n                let leftAnchors = [headExclusion];\n                let rightAnchors = [headExclusion];\n                \n                let center = anchorDistances.length - 1;\n                center = Math.ceil(center / 2);\n\n                leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n\n                rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n\n                let midLeft = [];\n                for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                    midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                }\n\n                let midRight = [];\n                for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                    midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                }\n\n                if (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'load-values') {\n                    if(this.get('instrument').get('stacked')) {\n                        midPoints = midLeft;\n                        if (modelName === 'load-values') {\n                            midPoints.push(this.get('instrument').get('instrumentLength') * 1000);\n                        }\n                    } else {\n                        midPoints = midLeft.concat(midRight);\n                        /* midPoints = $.map(midPoints.slice(1, center + 1), function(v, i) {\n                            return [v, midPoints.slice(center + 1)[i]];\n                          }); */\n                        if (modelName === 'bending-strain-values') {\n                            midPoints.shift();\n                            midPoints.pop();\n                        }\n\n                    }\n                } else {\n                    midPoints = midLeft.concat(midRight);\n                }\n                if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values') {\n                    for(let ctr = 0; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n  \n/*                     for(let ctr = 0; ctr < midPoints.length / 2; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n        \n                    for(let ctr = 3; ctr < midPoints.length; ctr++) {\n                        midPoints[ctr] = (ctr+1) + '-' + midPoints[ctr];\n                    }\n */                }\n            } else {\n                for(var ctr = 0; ctr < anchorDistances.length-1; ctr++) {\n                    midPoints[ctr] = ((anchorDistances[ctr] + anchorDistances[ctr + 1]) / 2).toFixed(2);\n                }\n            }\n            if(modelName==='displacement-values') {\n                midPoints.unshift(0);\n            }\n            anchorDistances = midPoints;\n        } else if (modelName === 'axial-displacement-values' && this.get('instrument').get('stacked')) {\n            let mid = (anchorDistances.length - 1) / 2;\n            while (anchorDistances.length > (mid + 1)) {\n                anchorDistances.pop();\n            }\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else if (modelName === 'axial-displacement-values' && !this.get('instrument').get('stacked')) {\n            anchorDistances.sort(function(a,b){return a-b;});\n\n            //anchorDistances.push(this.get('instrument').get('instrumentLength') * 1000);\n            anchorDistances[0] = this.get('instrument').get('headExclusionLength');\n        } else {\n            if (this.get('instrument').get('instrumentType').get('title') === 'dRebar') {\n                if (modelName === 'displacement-values') { //rebar stretch\n                    var midPoints = [];\n                    let headExclusion = this.get('instrument').get('headExclusionLength');\n                    let leftAnchors = [headExclusion];\n                    let rightAnchors = [headExclusion];\n                    \n                    let center = anchorDistances.length - 1;\n                    center = Math.ceil(center / 2);\n    \n                    leftAnchors = leftAnchors.concat(anchorDistances.slice(1, center + 1));\n                    rightAnchors = rightAnchors.concat(anchorDistances.slice(center + 1));\n    \n                    if(!this.get('instrument').get('stacked')) {\n                        rightAnchors[0] = (leftAnchors[1] + leftAnchors[0]) / 2;\n                    }\n    \n                    let midLeft = [];\n                    for(var ctr = 0; ctr < leftAnchors.length - 1; ctr++) {\n                        midLeft[ctr] = (leftAnchors[ctr] + leftAnchors[ctr + 1]) / 2;\n                    }\n    \n                    let midRight = [];\n                    for(var ctr = 0; ctr < rightAnchors.length - 1; ctr++) {\n                        midRight[ctr] = (rightAnchors[ctr] + rightAnchors[ctr + 1]) / 2;\n                    }\n\n                    midPoints = midLeft.concat(midRight);\n                    anchorDistances = midPoints;\n\n                    anchorDistances.unshift(0);\n                }\n                for(let ctr = 1; ctr < anchorDistances.length / 2; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n    \n                for(let ctr = 4; ctr < anchorDistances.length; ctr++) {\n                    anchorDistances[ctr] = ctr + '-' + anchorDistances[ctr];\n                }\n            }    \n        }\n        //console.log(anchorDistances);\n        return anchorDistances;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        if (this.get('instrument').get('instrumentType').get('title') === 'dCable') {\n            var mName = _this.get('chartDataModelName');\n            if (mName === 'strain-values' || mName === 'strain-rate-values' || mName === 'load-values') {\n                zoomDataPoints.forEach(element => element.values[0] = 0);\n            }\n        }    \n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'Tilt') {\n                zoomDataPoints.forEach(element => element.values.shift());\n        }    \n */\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values' && this.get('instrument').get('instrumentType').get('title') !== 'BluVibe'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (vibeEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            // vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg')\n            ;\n            //below is attempted fix to get label changed.\n            let yAxisLegend = this.get('yAxisLegend');\n            let apiCallsPromises = [yAxisLegend];\n        \n        //console.log(\"ChartID: \" + _this.get('chartId') );\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n        // label fix code\n        // Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                // label fix code\n                yAxisLegend = yAxisLegend;\n                // yAxisLegend = yAxisLegend.get('firstObject');\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = '';\n                if (instType === 'BluVibe') {\n                    title = _this.get('chartDataModelName');\n                } else {\n                    try{\n                        title = yAxisLegend.get('title');\n                    } catch (e) {\n                        title = _this.get('chartDataModelName');\n                    }\n                }\n                //console.log(\"Switch: \" + title);\n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    case 'event-frequency':\n                        axisName = \"Event Frequency\";\n                        break;\n                    case 'event-ppv':\n                        axisName = \"Event PPV\";\n                        break;\n                    case 'event-ppa':\n                        axisName = \"Event PPA\";\n                        break;\n                    case 'cumulative-event-frequency':\n                        axisName = \"Cumulative Frequency\";\n                        break;\n                    case 'cumulative-event-ppv':\n                        axisName = \"Cumulative PPV\";\n                        break;\n                    case 'cumulative-event-ppa':\n                        axisName = \"Cumulative PPA\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n\n                /* let chartName = yAxisLegend.get('title').capitalize();\n                let chartNameL = chartName.substr(0, chartName.indexOf('_'));\n                let chartNameR = chartName.substr(chartName.indexOf('_') + 1).capitalize();\n                if(chartNameL !== \"\") {\n                    chartName = chartNameL + \" \" + chartNameR;\n                } */\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName + \" (kN)\";\n                    } else if (instType === 'Wire') {\n                        if (raw === true) {\n                            title = \"Frequency (Hz)\";\n                        } else {\n                            title = \"Calculated Values\";\n                        }\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                } else {\n                    if (instType === 'BluVibe') {\n                        title = axisName;\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            //console.log(\"chartDataModelName: \" + _this.get('chartDataModelName'));\n\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length) { //} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    anchorDistances: Ember.computed('instrument', function() {\n        let anchors = this.get(\"instrument\").get('anchors');\n        let dist = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        return dist;                \n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","define(\"geotechnical-data-platform-new/components/tile-layer\", [\"exports\", \"ember-leaflet/components/tile-layer\"], function (_exports, _tileLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _tileLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        return count-2;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n        \n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    _this.set('newInstrumentObject', {});\n    _this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    //_this.set('project', null);\n    _this.set('installDate', null);\n    _this.set('east', null);\n    _this.set('north', null);\n    _this.set('depth', null);\n    _this.set('azimuth', null);\n    _this.set('dip', null);\n    _this.set('instrumentType', 0);\n    _this.set('headAt', 'HAC');\n    _this.set('instrumentLength', 0);\n    _this.set('strokeLength', 0);\n    _this.set('referenceAnchor', null);\n    _this.set('headExclusionLength', 0);\n    _this.set('gaugeLength', 0);\n    _this.set('bulbed', false);\n    _this.set('plated', false);\n    _this.set('stacked', false);\n    _this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n\n\n\n\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.strokeLength = 0;\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n            newInstrumentObject.instrumentStiffness = 0;\n            //console.log('here');\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if(!error) {\n                if(typeof newInstrumentObject.strokeLength === 'undefined') {\n                    error = true;\n                    this.setError('fieldError',true);\n                    this.setError('isVisibleError',true);\n                }\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        \n                        if(results.id != null) {\n                            store.createRecord('anchor', {number: 0, distance: 0, instrument: results}).save();\n                            store.createRecord('anchor', {number: 1, distance: 1, instrument: results}).save();\n                            store.createRecord('anchor', {number: 2, distance: 2, instrument: results}).save();\n                            store.createRecord('anchor', {number: 3, distance: 3, instrument: results}).save(); \n                            store.createRecord('anchor', {number: 4, distance: 4, instrument: results}).save(); \n                            store.createRecord('anchor', {number: 5, distance: 5, instrument: results}).save(); \n                        }\n\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 1; i <= this.get('instrumentAnchors').length; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        displacementValueObjectValues.shift();\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    \n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n            newDisplacementValuesObject.values.unshift('0');\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n\n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-2;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n    actions: {\n\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n            \n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        }\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            this.get('router').transitionTo('raw-data', id);\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        sGraph(id) {\n            this.get('router').transitionTo('spatial-graphs.spatial-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed.map('zoomTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        var chartData = item.getProperties(linesKyes);\n\n        return chartData;\n    }),\n\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        //console.log(linesKyes);\n\n        var chartData = item.getProperties(linesKyes);\n\n        var modelName = this.get('chartDataModelName');\n        if (modelName === 'strain-values' || modelName === 'strain-rate-values' || modelName === 'load-values' || modelName === 'axial-strain-values' || modelName === 'bending-strain-values') {           \n            chartData.values.push(0);\n        }\n        //console.log(chartData);\n        return chartData;\n    }),\n\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n\n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('tiltMode', function() {\n        let val = this.get('tiltMode');\n\n        switch (val) {\n            case 0:\n                return['Ax','Ay','Az'];\n            case 1:\n                return['a','nx','ny','nz'];\n            case 2:\n                return['X','Y','Z'];\n            case 3:\n                return['φ','θ','ψ'];\n\n        }\n        return ['a','b','c','d','Mode'];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n        //console.log(blastEventsChartDistXData);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n\n/*         if (this.get('instrument').get('instrumentType').get('title') == 'Tilt') {\n                zoomDataPoints.forEach(element => element.values.shift());\n        }    \n */\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values' && this.get('instrument').get('instrumentType').get('title') !== 'BluVibe'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            //vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;//.get('firstObject');\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n\n                let axisName = '';\n                let units = chartData.get('units');\n                title = '';\n                if (instType === 'BluVibe') {\n                    title = _this.get('chartDataModelName');\n                } else {\n                    title = yAxisLegend.get('title');\n                }\n                \n                switch(title) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    case 'load':\n                        axisName = chartData.get('temporalLoadName');\n                        break;\n                    case 'axial_strain':\n                        axisName = \"Axial Strain\";\n                        units = \"%\";\n                        break;\n                    case 'bending_strain':\n                        axisName = \"Bending Strain\";\n                        units = \"%\";\n                        break;\n                    case 'axial_displacement':\n                        axisName = \"Axial Displacement\";\n                        break;\n                    case 'temperature':\n                        axisName = \"Temperature\";\n                        units = \"°C\";\n                        break;\n                    case 'event-frequency':\n                        axisName = \"Event Frequency\";\n                        break;\n                    case 'event-ppv':\n                        axisName = \"Event PPV\";\n                        break;\n                    case 'event-ppa':\n                        axisName = \"Event PPA\";\n                        break;\n                    case 'cumulative-event-frequency':\n                        axisName = \"Cumulative Frequency\";\n                        break;\n                    case 'cumulative-event-ppv':\n                        axisName = \"Cumulative PPV\";\n                        break;\n                    case 'cumulative-event-ppa':\n                        axisName = \"Cumulative PPA\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                        //console.log(title);\n                }\n\n                /* let chartName = yAxisLegend.get('title').capitalize();\n                let chartNameL = chartName.substr(0, chartName.indexOf('_'));\n                let chartNameR = chartName.substr(chartName.indexOf('_') + 1).capitalize();\n                if(chartNameL !== \"\") {\n                    chartName = chartNameL + \" \" + chartNameR;\n                } */\n\n                if (yAxisLegend) {\n                    let raw = _this.raw;\n                    if(yAxisLegend.get('title')==='load') {\n                        title = axisName +  \" (kN)\";\n                    } else if (instType === 'Wire') {\n                        if (raw === true) {\n                            title = \"Frequency (Hz)\";\n                        } else {\n                            title = \"Calculated Values\";\n                        }\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                } else {\n                    if (instType === 'BluVibe') {\n                        title = axisName;\n                    } else {\n                        title = axisName + \" (\" + units + \")\";\n                    }\n                }\n                //title = yAxisLegend.get('unit');\n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n    isVisibleReadingCreated: false,\n    multi: false,\n    \n    anchorDistances: Ember.computed('instrument','displacementData', function() {\n        let data = this.get('displacementData');\n        try {\n            let mode = data.get('lastObject').toJSON().values[4];\n            switch (mode) {\n                case 0:\n                    return['Ax','Ay','Az','n/a','Mode'];\n                case 1:\n                    return['a','nx','ny','nz','Mode'];\n                case 2:\n                    return['X','Y','Z','tilt_z_up','Mode'];\n                case 3:\n                    return['φ','θ','ψ','n/a','Mode'];\n\n            }\n        } catch {}\n        return ['a','b','c','d','Mode'];\n    }),\n\n    onCreateNewVisible: Ember.observer('isVisibleCreateNewForm', function() {\n        if (this.get('isVisibleCreateNewForm') == true)\n            this.set('isVisibleReadingCreated', false);\n    }),\n\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","define(\"geotechnical-data-platform-new/components/tooltip-layer\", [\"exports\", \"ember-leaflet/components/tooltip-layer\"], function (_exports, _tooltipLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _tooltipLayer.default;\n    }\n  });\n});\n","import toriiIframePlaceholder from 'torii/components/torii-iframe-placeholder';\n\nexport default toriiIframePlaceholder;\n\n","define(\"geotechnical-data-platform-new/components/vendor-instrument\", [], function () {\n  \"use strict\";\n});\n","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            let error = false;\n\n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewGatewayObject(_this) {\n    // console.log(\"NewGatewayObject::: \");\n    _this.set('newGatewayObject', {});\n    _this.set('name', null);\n    _this.set('installDate', null);\n\n}\n\nexport default class CreateBluCellGateway extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewGatewayObject(this);\n    }\n\n    isAuthenticated = true;\n    newGatewayObject = {};\n    installDate = null;\n    authError = false;\n\n    actions = {\n        async createGateway(object){\n\n            let _this = this,\n            store = this.get('store'),\n            newGatewayObject = this.get('newGatewayObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newGatewayObject.id = this.get('id');\n            newGatewayObject.installDate = this.get('installDate');\n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            newGatewayObject.depth = this.get('depth');\n            newGatewayObject.gatewayType = store.peekRecord('gateway-type', this.get('typeID'));\n            newGatewayObject.active = true;\n\n            let interval_upload = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'upload_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayUploadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                }).catch(function(error) {\n                console.log(\"Error Getting interval_upload object::: \" + error);\n              });\n\n            let interval_read = await this.store.query('gateway-interval', {\n                filter: {\n                  interval_value: 5,\n                  interval_group_name: 'instrument_reading_interval'\n                }\n                }).then(function(results) {\n                    newGatewayObject.gatewayReadInterval = results.get('firstObject');\n                    return results.get('firstObject');\n                  }).catch(function(error) {\n                    // handle error here\n                    console.log(\"Error Getting interval_read object::: \" + error);\n                });\n              \n\n            if(typeof newGatewayObject.id === 'undefined' || newGatewayObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('installDate') != null) {\n                newGatewayObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            let newGateway = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    // console.log(\"Creating....\");\n                    newGateway = store.createRecord('gateway', newGatewayObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if(!error) {\n                newGateway.save().then(function(results){\n                    // console.log(dup);\n                    if(results.id != null) {\n                        _this.get('submit')(results.id);\n                    } else {\n                        this.setError('isVisibleError',true);\n                        error = true;\n                    }\n                }).catch(function(reason) {\n                    _this.setError('isVisibleError',true);\n                    _this.setError('authError',true);\n                }); \n            } \n        },\n        // bulbChanged(object)\n        // {\n        //     this.set(\"bulbed\",document.getElementById('newInstrumentObjectBulbed').checked);\n        // },\n        // plateChanged(object)\n        // {\n        //     this.set(\"plated\",document.getElementById('newInstrumentObjectPlated').checked);\n        // }\n    }\n}","import Component from '@ember/component';\nimport Ember from 'ember';\n\nfunction resetNewInstrumentObject(_this) {\n    //console.log('reset');\n    _this.set('newInstrumentObject', {});\n    //_this.set('name', null);\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    //_this.set('east', null);\n    //_this.set('north', null);\n    //_this.set('depth', null);\n    //_this.set('azimuth', null);\n    //_this.set('dip', null);\n    //_this.set('instrumentType', 0);\n    //_this.set('headAt', 'HAC');\n    //_this.set('instrumentLength', 0);\n    //_this.set('strokeLength', 0);\n    //_this.set('referenceAnchor', null);\n    //_this.set('headExclusionLength', 0);\n    //_this.set('gaugeLength', 0);\n    //_this.set('bulbed', false);\n    //_this.set('plated', false);\n    //_this.set('stacked', false);\n    //_this.set('active', true);\n}\n\nexport default class CreatePackInstrument extends Component {\n    //@service session;\n    //@service currentUser;\n\n\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n    isAuthenticated = true;\n    newInstrumentObject = {};\n    headAt = 'HAC';\n    zeroTimestamp = null;\n    installDate = null;\n    authError = false;\n    project = null;\n    level = null;\n\n    actions= {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n\n\n    // actions = {\n        createInstrument(object){\n\n            //console.log(this.get('prevDup'));\n            //console.log((typeof this.get('prevDup') === \"undefined\"));\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n            newInstrumentObject.zeroTimestamp = this.get('zeroTimestamp');\n            newInstrumentObject.installDate = this.get('installDate');\n            \n            //newInstrumentObject.east = this.get('east');\n            //newInstrumentObject.north = this.get('north');\n            //newInstrumentObject.depth = this.get('depth');\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n            newInstrumentObject.instrumentStiffness = 0;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n            if (!error) {\n                \n                    newInstrument.save().then(function(results){\n                        //TODO::: Might be able to get rid of this.\n                        //Need to test that though.\n                        if(results.id != null) {\n                            store.createRecord('anchor', {number: 0, distance: 0, instrument: results}).save();\n                            store.createRecord('anchor', {number: 1, distance: 1, instrument: results}).save();\n                            store.createRecord('anchor', {number: 2, distance: 2, instrument: results}).save();\n                            store.createRecord('anchor', {number: 3, distance: 3, instrument: results}).save(); \n                            store.createRecord('anchor', {number: 4, distance: 4, instrument: results}).save(); \n                            store.createRecord('anchor', {number: 5, distance: 5, instrument: results}).save(); \n                            store.createRecord('anchor', {number: 6, distance: 6, instrument: results}).save();\n                            store.createRecord('anchor', {number: 7, distance: 7, instrument: results}).save();\n                            store.createRecord('anchor', {number: 8, distance: 8, instrument: results}).save();\n                            store.createRecord('anchor', {number: 9, distance: 9, instrument: results}).save();\n                            store.createRecord('anchor', {number: 10, distance: 10, instrument: results}).save();\n                            store.createRecord('anchor', {number: 11, distance: 11, instrument: results}).save();\n                            store.createRecord('anchor', {number: 12, distance: 12, instrument: results}).save();\n                            store.createRecord('anchor', {number: 13, distance: 13, instrument: results}).save();\n                            store.createRecord('anchor', {number: 14, distance: 14, instrument: results}).save();\n                            store.createRecord('anchor', {number: 15, distance: 15, instrument: results}).save();\n                            store.createRecord('anchor', {number: 16, distance: 16, instrument: results}).save();\n                            store.createRecord('anchor', {number: 17, distance: 17, instrument: results}).save();\n                            store.createRecord('anchor', {number: 18, distance: 18, instrument: results}).save();\n                            store.createRecord('anchor', {number: 19, distance: 19, instrument: results}).save();\n                            store.createRecord('anchor', {number: 20, distance: 20, instrument: results}).save();\n                            store.createRecord('anchor', {number: 21, distance: 21, instrument: results}).save();\n                            store.createRecord('anchor', {number: 22, distance: 22, instrument: results}).save();\n                            store.createRecord('anchor', {number: 23, distance: 23, instrument: results}).save();\n                            store.createRecord('anchor', {number: 24, distance: 24, instrument: results}).save();\n                            store.createRecord('anchor', {number: 25, distance: 25, instrument: results}).save();\n                            store.createRecord('anchor', {number: 26, distance: 26, instrument: results}).save();\n                            store.createRecord('anchor', {number: 27, distance: 27, instrument: results}).save();\n                            store.createRecord('anchor', {number: 28, distance: 28, instrument: results}).save();\n                        }\n\n                        if(results.id != null) {\n                            _this.get('submit')(results.id);\n                        } else {\n                            this.setError('isVisibleError',true);\n                            error = true;\n                        }\n                    }).catch(function(reason) {\n                        \n                        _this.setError('isVisibleError',true);\n                        _this.setError('authError',true);\n                    }); \n            } \n        }\n    }\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 1; i <= this.get('instrumentAnchors').length; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        displacementValueObjectValues.shift();\n        return displacementValueObjectValues;\n    }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n    \n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n            newDisplacementValuesObject.values.unshift('0');\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let gatewayValueObjectValues = _this.get('gatewayValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(gatewayValueObjectValues).forEach(function(key,index) {\n        gatewayValueObjectValues[key] = null;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n\n    newGatewayValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n\n    // look for isVisibleCreateNewForm variable change and reset newGatewayValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n\n    gatewayValueObjectValues: Ember.computed('anchorDistances', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('anchorDistances').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    newGatewayValueObjectValues: Ember.computed('gatewayValueObjectValues', function() {\n        let gatewayValueObjectValues = [];\n        for (let i = 0; i <= this.get('gatewayValueObjectValues').length - 1; i++) {\n            gatewayValueObjectValues[i] = 0;\n        }\n        return gatewayValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            //  console.log(\"saveNew\");\n            let _this = this,\n                store = this.get('store'),\n                newGatewayValuesObject = this.get('newGatewayValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                gatewayValues = this.get('gatewayValues'),\n                temperatureValues = this.get('temperatureValues');\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-gateway-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newGatewayValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newGatewayValuesObject.values = Object.values(this.get('newGatewayValueObjectValues'));\n\n            const newGatewayValues = store.createRecord('gateway-value', newGatewayValuesObject);\n            // save new gateway-value to DB\n            const savedGatewayValuesObject = newGatewayValues.save({adapterOptions: this.get('gatewayId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if gateway-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //gatewayValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n\n            })\n            .catch(function(reason){\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import { get3DAnimationData, buildEChartsBluVibeSimulation, applyGraphScaling, buildECharts3DBarForBluVibe, parseDataForEChartsXFocusYFocusZFocus3DBar, parseDataForEChartsXFocusYFocusZFocus2DBar, buildECharts2DBarForBluVibe,buildEChartsXYZFocus3DLineForBluVibe, parseDataForEChartsXYZFocus3DLine, buildEChartsXFocusYFocusZFocus3DLineForBluVibe, buildEChartsXFocusYFocusZFocus2DLineForBluVibe, parseDataForEChartsXFocusYFocusZFocus2DLine, parseDataForEChartsXFocusYFocusZFocus3DLine, getGraphUnit} from '../../helpers/frequency-event-library';\nimport { textLibrary} from '../../helpers/frequency-event-language-library';\nimport * as echarts from 'echarts';\nimport 'echarts-gl';\n\n\nexport default Ember.Component.extend({\n    is3D:false,\n    controlsText:\"\",\n    playbackOptions:{\n        isVisible: false,\n        isPlayLoop: false,\n        playbackSpeed:1,\n        playbackSpeedData:[5,4,3,2.5,2,1.75,1.5,1.25,1,0.75,0.5,0.25]\n    },\n    graphScaling: {\n        x: { min: null, max: null },\n        y: { min: null, max: null },\n        z: { min: null, max: null }\n    },\n    init() {\n        this._super(...arguments);\n    },\n    isShowConfig:{\n        isShowXYZ3DInstructions:true,\n    }, \n    getTimestamp:Ember.computed(function(){\n        const bluvibeV2ModelProfile = this.getCurrentBluvibeV2ModelProfile();\n        let timestamp = bluvibeV2ModelProfile.get(\"timestamp\");\n        let globalDatetimeFormat = this.get(\"globalDatetimeFormat\").get(\"value\");\n        const standardizedFormat = \"YYYY-MM-DD HH:mm:ss.SSS\";\n        const parsed = moment(timestamp, standardizedFormat, true);\n        let convertedTimestamp = globalDatetimeFormat ? parsed.format(`${globalDatetimeFormat}.SSS`) : parsed.format(standardizedFormat);\n        return convertedTimestamp;\n    }),\n    getControlsText:function(){\n        const tab = this.get(\"selectedFreqEventTabKey\");\n        const subTab = this.get(\"selectedFreqEventSubTabKey\");\n        const subSubTab = this.get(\"selectedFreqEventSubSubTabKey\");\n        const is3D = this.get(\"is3D\");\n        const ctrlsKey = `${tab}_${subTab}_${subSubTab}_controls`\n        // console.log(ctrlsKey)\n        switch(ctrlsKey){\n            case \"raw_raw_xyz_axis_focus_null_controls\":\n            case \"acceleration_sub_acceleration_linear_regression_sub_sub_xyz_axis_focus_controls\":\n            case \"velocity_sub_velocity_linear_regression_sub_sub_xyz_axis_focus_controls\":\n            case \"displacement_sub_displacement_linear_regression_sub_sub_xyz_axis_focus_controls\":\n                return textLibrary(\"controls_guide_1\");\n\n            case \"acceleration_sub_fft_sub_sub_x_axis_focus_controls\":\n            case \"acceleration_sub_fft_sub_sub_y_axis_focus_controls\":\n            case \"acceleration_sub_fft_sub_sub_z_axis_focus_controls\":\n\n            case \"velocity_sub_fft_sub_sub_x_axis_focus_controls\":\n            case \"velocity_sub_fft_sub_sub_y_axis_focus_controls\":\n            case \"velocity_sub_fft_sub_sub_z_axis_focus_controls\":\n\n            case \"displacement_sub_fft_sub_sub_x_axis_focus_controls\":\n            case \"displacement_sub_fft_sub_sub_y_axis_focus_controls\":\n            case \"displacement_sub_fft_sub_sub_z_axis_focus_controls\":\n\n                if(is3D)\n                    return textLibrary(\"controls_guide_1\");\n                else\n                    return textLibrary(\"-\");\n                \n            case \"raw_x_axis_focus_null_controls\":\n            case \"raw_y_axis_focus_null_controls\":\n            case \"raw_z_axis_focus_null_controls\":\n\n            case \"acceleration_sub_linear_regression_sub_sub_x_axis_focus_controls\":\n            case \"acceleration_sub_linear_regression_sub_sub_y_axis_focus_controls\":\n            case \"acceleration_sub_linear_regression_sub_sub_z_axis_focus_controls\":\n\n            case \"velocity_sub_linear_regression_sub_sub_x_axis_focus_controls\":\n            case \"velocity_sub_linear_regression_sub_sub_y_axis_focus_controls\":\n            case \"velocity_sub_linear_regression_sub_sub_z_axis_focus_controls\":\n\n\n            case \"displacement_sub_linear_regression_sub_sub_x_axis_focus_controls\":\n            case \"displacement_sub_linear_regression_sub_sub_y_axis_focus_controls\":\n            case \"displacement_sub_linear_regression_sub_sub_z_axis_focus_controls\":\n\n                if(is3D)\n                    return textLibrary(\"controls_guide_2\");\n                else\n                    return textLibrary(\"-\");v\n        }\n    },\n    getCurrentBluvibeV2ModelProfile:function(){\n        const bluvibeV2ModelProfiles = this.get(\"bluvibeV2ModelProfiles\");\n        let obj = null;\n        bluvibeV2ModelProfiles.forEach(profileObj=>{\n            // console.log(parseInt(profileObj[\"id\"].trim()) == parseInt(this.get(\"profileId\").trim()));\n            if(parseInt(profileObj[\"id\"].trim()) == parseInt(this.get(\"profileId\").trim())){\n                obj = profileObj;\n            }\n        })\n        return obj;\n\n    },\n    rebuildEChartsComponent: function(){\n        // console.log(`current tab is: ${this.get(\"selectedFreqEventTabKey\")} ||| current sub tab is: ${this.get(\"selectedFreqEventSubTabKey\")}`);\n        const tab = this.get(\"selectedFreqEventTabKey\");\n        const subTab = this.get(\"selectedFreqEventSubTabKey\");\n        const subSubTab = this.get(\"selectedFreqEventSubSubTabKey\");\n        const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n        const bluvibeV2ModelProfile = this.getCurrentBluvibeV2ModelProfile();\n\n        // console.log(`rebuildEChartsComponent tab is: ${tab} ||| sub tab is: ${subTab} ||| sub sub tab is: ${subSubTab}`);\n        // console.log(\"rebuildEChartsComponent  sample\");\n        // console.log(this.get(\"bluvibeV2ModelData\")[0][\"attributes\"])\n        // console.log(\"rebuildEChartsComponent bluvibeV2ModelData length \");\n        // console.log(this.get(\"bluvibeV2ModelData\")[\"attributes\"].length)\n        //Update Scaling Textboxes for XYZ\n        this.setGraphVisibleScaling();\n        this.setPlaybackVisible(false);\n        if((bluvibeV2ModelProfile != null) && (chartDom != null) ){\n            if (chartDom) {\n                echarts.dispose(chartDom);\n            }\n            switch(tab){\n                case \"raw\":\n                    switch(subTab){\n                        case \"raw_xyz_axis_focus\":\n                            const data = parseDataForEChartsXYZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"time\", \"value\");\n                            buildEChartsXYZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `${this.get(\"advancedYAxisUnit\")}`, xDataLabel: \"RAW X\", yDataLabel: \"RAW Y\", zDataLabel: \"RAW Z\"})\n                            break;\n                        case \"x_axis_focus\":\n                            if(this.get(\"is3D\")){\n                                const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"value\");\n                                buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `X (${this.get(\"advancedYAxisUnit\")})`})\n                            }else{\n                                const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"value\"); \n                                buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `X (${this.get(\"advancedYAxisUnit\")})`})\n                            }\n                            break;\n                        case \"y_axis_focus\":\n                            if(this.get(\"is3D\")){\n                                const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"value\");\n                                buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Y (${this.get(\"advancedYAxisUnit\")})`})\n                            }else{\n                                const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"value\"); \n                                buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Y (${this.get(\"advancedYAxisUnit\")})`})\n                            }\n                            break;\n                        case \"z_axis_focus\":\n                            if(this.get(\"is3D\")){\n                                const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"value\");\n                                buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Z (${this.get(\"advancedYAxisUnit\")})`})\n                            }else{\n                                const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"value\"); \n                                buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Z (${this.get(\"advancedYAxisUnit\")})`})\n                            }\n                            break;\n                    }\n                    break;\n                case \"acceleration\":\n                    switch(subTab){\n                        case \"sub_acceleration_linear_regression\":\n                            switch(subSubTab){\n                                case \"sub_sub_xyz_axis_focus\":\n                                    const data = parseDataForEChartsXYZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"time\", \"acceleration\");\n                                    buildEChartsXYZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Acceleration (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`, xDataLabel: \"Accel. X\", yDataLabel: \"Accel. Y\", zDataLabel: \"Accel. Z\"})\n                                    break;\n                                case \"sub_sub_x_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"acceleration\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `X (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"acceleration\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Acceleration X (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }\n                                    break;\n                                case \"sub_sub_y_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"acceleration\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Y (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"acceleration\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Acceleration Y (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }\n                                    break;\n                                case \"sub_sub_z_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"acceleration\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Z (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"acceleration\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Acceleration Z (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }\n                                    break;\n                            }\n                            break;\n                        case \"sub_acceleration_fft\":\n                            switch(subSubTab){\n                                case \"sub_sub_x_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"x\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }\n                                    break;\n                                case \"sub_sub_y_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"y\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }\n                                    break;\n                                case \"sub_sub_z_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"z\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s\\u00B2)`})\n                                    }\n                                    break;\n                            }\n                            break;\n                    }\n                    break;\n                case \"velocity\":\n                    switch(subTab){\n                        case \"sub_velocity_linear_regression\":\n                            switch(subSubTab){\n                                case \"sub_sub_xyz_axis_focus\":\n                                    const data = parseDataForEChartsXYZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"time\", \"velocity\");\n                                    buildEChartsXYZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Velocity (${this.get(\"advancedYAxisUnit\")}/s)`, xDataLabel: \"Velo. X\", yDataLabel: \"Velo. Y\", zDataLabel: \"Velo. Z\"})\n                                    \n                                    break;\n                                case \"sub_sub_x_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"velocity\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Velocity (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"velocity\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Velocity (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }\n                                    break;\n                                case \"sub_sub_y_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"velocity\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Velocity (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"velocity\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Velocity (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }\n                                    break;\n                                case \"sub_sub_z_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"velocity\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Velocity (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"velocity\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Velocity (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }\n                                    break;\n                            }\n                            break;\n                        case \"sub_velocity_fft\":\n                            switch(subSubTab){\n                                case \"sub_sub_x_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"x\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }\n                                    break;\n                                case \"sub_sub_y_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s)`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"y\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }\n                                    break;\n                                case \"sub_sub_z_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s)`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"z\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")}/s)`})\n                                    }\n                                    break;\n                            }\n                            break;\n                    }\n                    break;\n                case \"displacement\":\n                    switch(subTab){\n                        case \"sub_displacement_linear_regression\":\n                            switch(subSubTab){\n                                case \"sub_sub_xyz_axis_focus\":\n                                    this.setPlaybackVisible(true);\n                                    const data = get3DAnimationData(this, this.get(\"bluvibeV2ModelData\"),this.get(\"bluvibeV2ModelPitchRollData\")); \n                                    buildEChartsBluVibeSimulation(this, data, {xAxisLabel: `${this.get(\"advancedYAxisUnit\")}`, yAxisLabel: `${this.get(\"advancedYAxisUnit\")}`, zAxisLabel: `${this.get(\"advancedYAxisUnit\")}`})\n                                    break;\n                                case \"sub_sub_x_axis_focus\":\n                                    if(this.get(\"is3D\")){                                        \n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"displacement\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Displacement (${this.get(\"advancedYAxisUnit\")})`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"displacement\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Displacement (${this.get(\"advancedYAxisUnit\")})`})\n                                    }\n                                    break;\n                                case \"sub_sub_y_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"displacement\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Displacement (${this.get(\"advancedYAxisUnit\")})`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"displacement\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Displacement (${this.get(\"advancedYAxisUnit\")})`})\n                                    }\n                                    break;\n                                case \"sub_sub_z_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"displacement\");\n                                        buildEChartsXFocusYFocusZFocus3DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: ` `, zAxisLabel: `Displacement (${this.get(\"advancedYAxisUnit\")})`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DLine(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"displacement\"); \n                                        buildEChartsXFocusYFocusZFocus2DLineForBluVibe(this, data, {xAxisLabel: `Time (${getGraphUnit(\"time\")})`, yAxisLabel: `Displacement (${this.get(\"advancedYAxisUnit\")})`})\n                                    }\n                                    break;\n                            }\n                            break;\n                        case \"sub_displacement_fft\":\n                            switch(subSubTab){\n                                case \"sub_sub_x_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"x\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")})`})\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"x\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")})`})\n                                    }\n                                    break;\n                                case \"sub_sub_y_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"y\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")})`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"y\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")})`})\n                                    }\n                                    break;\n                                case \"sub_sub_z_axis_focus\":\n                                    if(this.get(\"is3D\")){\n                                        const data = parseDataForEChartsXFocusYFocusZFocus3DBar(this, this.get(\"bluvibeV2ModelData\"), \"z\", \"frequency\", \"amplitude\");\n                                        buildECharts3DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: ` `, zAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")})`})\n\n                                    }else{\n                                        const data = parseDataForEChartsXFocusYFocusZFocus2DBar(this, this.get(\"bluvibeV2ModelData\"), \"z\",\"frequency\", \"amplitude\");\n                                        buildECharts2DBarForBluVibe(this, data, {xAxisLabel: `Frequency (${getGraphUnit(\"frequency\")})`, yAxisLabel: `Amplitude (${this.get(\"advancedYAxisUnit\")})`})\n                                    }\n                                    break;\n                            }\n                            break;\n                    }\n                    break;\n\n            }\n            this.set(\"controlsText\", this.getControlsText());\n        }\n\n        //Update Integration Method button when visible:\n        const integrationMethodButton = document.getElementById(\"integrationMethodButtonID\");\n        if(integrationMethodButton)\n            integrationMethodButton.textContent = this.get(\"integrationMethod\");\n    },\n    setGraphVisibleScaling:  function () {\n        const tab = this.get(\"selectedFreqEventTabKey\");\n        const subTab = this.get(\"selectedFreqEventSubTabKey\");\n        const subSubTab = this.get(\"selectedFreqEventSubSubTabKey\");\n        const is3D = this.get(\"is3D\");\n        const xGraphScaling = document.getElementById(\"xGraphScaling\");\n        const yGraphScaling = document.getElementById(\"yGraphScaling\");\n        const zGraphScaling = document.getElementById(\"zGraphScaling\");\n        const ctrlsKey = `${tab}_${subTab}_${subSubTab}`\n        // console.log('setGraphVisibleScaling')\n        // console.log(ctrlsKey)\n        switch(ctrlsKey){\n            case \"raw_raw_xyz_axis_focus_null\":\n            case \"acceleration_sub_acceleration_linear_regression_sub_sub_xyz_axis_focus\":\n            case \"velocity_sub_velocity_linear_regression_sub_sub_xyz_axis_focus\":\n            case \"displacement_sub_displacement_linear_regression_sub_sub_xyz_axis_focus\":\n                xGraphScaling.style.display = \"flex\";\n                yGraphScaling.style.display = \"flex\";\n                zGraphScaling.style.display = \"flex\";\n                break;\n\n            case \"raw_x_axis_focus_null\":\n            case \"raw_y_axis_focus_null\":\n            case \"raw_z_axis_focus_null\":\n\n            case \"acceleration_sub_acceleration_linear_regression_sub_sub_x_axis_focus\":\n            case \"acceleration_sub_acceleration_linear_regression_sub_sub_y_axis_focus\":\n            case \"acceleration_sub_acceleration_linear_regression_sub_sub_z_axis_focus\":\n\n            case \"acceleration_sub_acceleration_fft_sub_sub_x_axis_focus\":\n            case \"acceleration_sub_acceleration_fft_sub_sub_y_axis_focus\":\n            case \"acceleration_sub_acceleration_fft_sub_sub_z_axis_focus\":\n\n            case \"velocity_sub_velocity_linear_regression_sub_sub_x_axis_focus\":\n            case \"velocity_sub_velocity_linear_regression_sub_sub_y_axis_focus\":\n            case \"velocity_sub_velocity_linear_regression_sub_sub_z_axis_focus\":\n\n            case \"velocity_sub_velocity_fft_sub_sub_x_axis_focus\":\n            case \"velocity_sub_velocity_fft_sub_sub_y_axis_focus\":\n            case \"velocity_sub_velocity_fft_sub_sub_z_axis_focus\":\n\n            case \"displacement_sub_displacement_linear_regression_sub_sub_x_axis_focus\":\n            case \"displacement_sub_displacement_linear_regression_sub_sub_y_axis_focus\":\n            case \"displacement_sub_displacement_linear_regression_sub_sub_z_axis_focus\":\n\n            case \"displacement_sub_displacement_fft_sub_sub_x_axis_focus\":\n            case \"displacement_sub_displacement_fft_sub_sub_y_axis_focus\":\n            case \"displacement_sub_displacement_fft_sub_sub_z_axis_focus\":\n\n                if(is3D){\n                    xGraphScaling.style.display = \"flex\";\n                    yGraphScaling.style.display = \"flex\";\n                    zGraphScaling.style.display = \"flex\";\n                }\n                else{\n                    xGraphScaling.style.display = \"flex\";\n                    yGraphScaling.style.display = \"flex\";\n                    zGraphScaling.style.display = \"none\";\n                }\n                break;\n        }\n    },\n    setPlaybackVisible:function(visibility){\n        this.set(\"playbackOptions.isVisible\", visibility);\n    },\n    getPlaybackSpeed: Ember.computed('playbackOptions.playbackSpeed', function () {\n        return this.get(\"playbackOptions.playbackSpeed\");\n    }),\n    getGraphTitle: Ember.computed('selectedFreqEventTabKey','selectedFreqEventSubTabKey',  'selectedFreqEventSubSubTabKey', function () {\n        const title_key=`${this.get(\"selectedFreqEventTabKey\")}_${this.get(\"selectedFreqEventSubTabKey\")}_${this.get(\"selectedFreqEventSubSubTabKey\")}_title`;\n        return textLibrary(title_key);\n    }),\n    setVisibleIntegrationMethod: Ember.computed('selectedFreqEventTabKey','selectedFreqEventSubTabKey', function () {\n        const tab = this.get(\"selectedFreqEventTabKey\");\n        const subTab = this.get(\"selectedFreqEventSubTabKey\");\n        let visible = false;\n        switch(tab){\n            case \"raw\":\n            case \"acceleration\":\n                visible = false;\n                break;\n            case \"velocity\":\n                switch(subTab){\n                    case \"sub_linear_regression\":\n                        visible = true;\n                        break;\n                    case \"sub_fft\":\n                        visible = false;\n                        break;\n                }\n                break;\n            case \"displacement\":\n                switch(subTab){\n                    case \"sub_linear_regression\":\n                        visible = true;\n                        break;\n                    case \"sub_fft\":\n                        visible = false;\n                        break;\n                }\n                break;\n\n        }\n        return visible\n    }),\n    showLoadingObserver: Ember.observer('showLoading', function () {\n        // console.log(`current is loading? ${this.get(\"showLoading\")}`)\n        if(!this.get(\"showLoading\")){\n            this.rebuildEChartsComponent();\n        }\n    }),\n\n    actions: {\n        cyclePlayLoop(){\n            this.set(\"playbackOptions.isPlayLoop\", !this.get(\"playbackOptions.isPlayLoop\"));\n        },\n        cyclePlaybackSpeed(value){\n            this.set(\"playbackOptions.playbackSpeed\", Number(value));\n            console.log(value)\n        },\n        updateSimulationIndex(value) {\n        this.set('simulationIndex', parseInt(value));\n        this.updateChartPosition();\n        },\n\n        toggleSimulationPlay() {\n        this.toggleProperty('isPlaying');\n        if (this.isPlaying) {\n            this.animate();\n        } else {\n            cancelAnimationFrame(this.animationFrame);\n        }\n        },\n        resetGraphScaling(){\n            const maxXGraph = document.getElementById(\"maxXGraph\");\n            const minXGraph = document.getElementById(\"minXGraph\");\n            const maxYGraph = document.getElementById(\"maxYGraph\");\n            const minYGraph = document.getElementById(\"minYGraph\");\n            const maxZGraph = document.getElementById(\"maxZGraph\");\n            const minZGraph = document.getElementById(\"minZGraph\");\n            maxXGraph.value = null;\n            minXGraph.value = null;\n            maxYGraph.value = null;\n            minYGraph.value = null;\n            maxZGraph.value = null;\n            minZGraph.value = null;\n\n            this.graphScaling.x.max = null;\n            this.graphScaling.x.min = null;\n            this.graphScaling.y.max = null;\n            this.graphScaling.y.min = null;\n            this.graphScaling.z.max = null;\n            this.graphScaling.z.min = null;\n            applyGraphScaling(this);\n\n        },\n        updateGraphScaling(component){\n            const tbID = component.target.id;\n            const tbValue = component.target.value;\n            console.log(`id: ${tbID}, value: ${tbValue}`);\n\n            const value = tbValue === \"\" ? null : parseFloat(tbValue);\n\n            if (tbID == \"maxXGraph\") this.graphScaling.x.max = value;\n            if (tbID == \"minXGraph\") this.graphScaling.x.min = value;\n            if (tbID == \"maxYGraph\") this.graphScaling.y.max = value;\n            if (tbID == \"minYGraph\") this.graphScaling.y.min = value;\n            if (tbID == \"maxZGraph\") this.graphScaling.z.max = value;\n            if (tbID == \"minZGraph\") this.graphScaling.z.min = value;\n\n            applyGraphScaling(this);\n        },\n        handleToggle3D(){\n            // console.log(\"clicked handleToggle3D\");\n            const curr3D = this.get(\"is3D\");\n            if(curr3D){\n                this.set(\"is3D\", false);\n            }\n            else{\n                this.set(\"is3D\", true);\n            }\n            this.rebuildEChartsComponent();\n        },\n        handleToggleIntegrationMethod(){\n            const buttonElement = document.getElementById(\"integrationMethodButtonID\");\n            console.log(`clicked handleToggle3D button id:${buttonElement.textContent}`);\n            if(buttonElement.textContent === \"trapazoidal\"){\n                buttonElement.textContent = \"simpson\";\n                this.set(\"integrationMethod\", \"simpson\");\n            }else{\n                buttonElement.textContent = \"trapazoidal\";\n                this.set(\"integrationMethod\", \"trapazoidal\");\n            }\n        }\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n    router: Ember.inject.service(),\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('alert.target', function() {\n        let target = this.get('alert.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n    onCarrierChanged: observer('carrier', function() {\n        let carrier = this.get('carrier');\n        console.log('carrier changed' + carrier);\n        this.set('carrier', carrier);\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        \n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { camelize } from '@ember/string';\n\nexport default class EditInstrument extends Component.extend({\n    gatewayReadingsIntervals: null,\n\n    init(){\n        this._super(...arguments);\n    },\n    \n    store: Ember.inject.service(),\n    isAuthenticated : true,\n    // selectedReadingIntervalID : null,\n    selectedModel : null,\n    editing : 0,\n    \n    getGatewayUploadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayUploadInterval = gw.gatewayUploadInterval;\n        // console.log(\"gatewayUploadInterval::: \" + gatewayUploadInterval)\n        if(gatewayUploadInterval == null){\n            return 0;\n        }\n            return (gatewayUploadInterval.id).toString();\n    }),\n\n    getGatewayReadIntervalID: Ember.computed(function() {\n        let gw = this.get('gateway');\n        let gatewayReadInterval = gw.gatewayReadInterval;\n        // console.log(\"gatewayReadInterval::: \" + gatewayReadInterval)\n        if(gatewayReadInterval == null){\n            return 0;\n        }\n        return (gatewayReadInterval.id).toString();\n    }),\n    \n}){\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    _this = this;\n\n    actions = {\n        //in order for this to work the id of the select element must be the same as the attribute name\n        setGatewayInterval(event) {\n            let gateway = this.get('gateway');\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            //id of the newly selected interval\n            const selectedValue = parseInt(selectedOptions.map(option => option.value));    \n            //interval attribute name\n            const intervalType = event.target.id;\n            // when the record has no interval records associated with it, when you try to save an error is thrown.\n            // I avoid this by defaulting the interval to 5 minutes when the one is saved and the other is null.\n            let notSelected = intervalType == 'gatewayReadInterval' ? 'gatewayUploadInterval' : 'gatewayReadInterval';\n\n            this.store.findRecord('gateway-interval', selectedValue).then((interval) => { \n                let notSelectedIntervalValue = gateway[notSelected];\n                let group_name = intervalType == 'gatewayReadInterval' ? 'instrument_reading_interval' : 'upload_interval';\n                if(notSelectedIntervalValue == null){\n                    //if the non-selected interval is null I default it here.\n                    this.store.query('gateway-interval', {\n                        filter: {\n                          interval_value: 5,\n                          interval_group_name: group_name\n                        }\n                        }).then(function(results) {\n                            gateway.set(notSelected, results.get('firstObject'));\n                            gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                \n                            gateway.save().then(() => {\n                                console.log('Gateway saved successfully!');\n                            }).catch((error) => {\n                                console.log('Error saving gateway:', error);\n                            });\n            \n                        }).catch(function(error) {\n                        console.log(\"Error Getting interval_upload object::: \" + error);\n                      });\n                } else {\n                    \n                    gateway.set(intervalType, interval); // Set the related object as the new value of the attribute\n                    gateway.save().then(() => {\n                        console.log('Gateway saved successfully!');\n                    }).catch((error) => {\n                        console.log('Error saving gateway:', error);\n                    });\n                }                    \n            });\n            \n        },\n                \n        updatePage(){\n            let store = this.get('store');\n            let gateway = this.get('gateway');\n            gateway.save();\n        },\n        viewData(id) {\n            this.get('router').transitionTo('raw-gateway-data', id);\n        },\n        tGraph(id) {\n            //console.log(\"Edit-gateway::: \" + id)\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, 'voltage-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveGateway(){\n            const _this = this;\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/gateway\";\n                }\n            } else {\n                window.location.href = \"/gateway\";\n            }\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        // updateProperty(propertyName, propertyValue) {\n        //     this.set(propertyName, propertyValue);\n        // },\n    \n\n\n    }\n}\n\n\n\n// import Component from '@ember/component'; \n// export default Component.extend({ \n//     classNames: ['person-select'], \n//     people: null, \n//     selectedPerson: null, \n//     actions: { \n//         selectPerson(person) { \n//             this.set('selectedPerson', person); \n//         } \n//     } \n// });\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrument extends Component.extend({\n    init(){\n        this._super(...arguments);\n            this.set(\"showLoading\", false);\n    },\n    \n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    showLoading = false;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        viewData(id) {\n            this.set(\"showLoading\", true);\n            let subModel = this.get(\"instrument\")[\"subModel\"];\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(1, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            console.log(`edit instrument baseUnit: ${baseUnit}`)\n            if(subModel == \"B\"){\n                this.get('router').transitionTo('raw-frequency-events-data', id, {\n                    queryParams: {\n                        \"advancedStartDate\": startDateObj, \n                        \"advancedEndDate\": formattedEndDateObj, \n                        \"profile_id\": undefined,\n                        \"analysis_category\": \"raw\",\n                        \"method\": \"trapezoidal\", \n                        \"advancedYAxisUnit\": baseUnit\n                    }\n                });\n\n            }else{\n                this.get('router').transitionTo('raw-data', id, { \n                    queryParams: { \n                        \"advancedStartDate\": startDateObj, \n                        \"advancedEndDate\": formattedEndDateObj, \n                        \"advancedYAxisUnit\": baseUnit\n                    }\n                });\n\n            }\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            // console.log(\"startDateObj: \" + startDateObj + \" endDateObj: \" + formattedEndDateObj);\n            // console.log(\"base unit for this instrument is: \" +  baseUnit)\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values', { queryParams: { \"chart_type\":\"ppv\", \"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n\n        },\n        fEvent(id) {\n            this.set(\"showLoading\", true);\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            // console.log(\"startDateObj: \" + startDateObj + \" endDateObj: \" + formattedEndDateObj);\n            // console.log(\"base unit for this instrument is: \" +  baseUnit)\n            this.get('router').transitionTo('frequency-events', id, { \n                queryParams: { \n                    \"advancedStartDate\": startDateObj, \n                    \"advancedEndDate\": formattedEndDateObj\n                }\n            });\n        },\n        fGraph(id) {\n            this.get('router').transitionTo('frequency-graphs.frequency-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";\n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}","import Ember from 'ember';\n\nexport default Ember.Component.extend({ \n});","\nimport Ember from 'ember';\n\nexport default Ember.Component.extend({ \n});","import Ember from 'ember';\nimport moment from 'moment';\nimport html2canvas from 'html2canvas';\nimport { toJpeg } from 'html-to-image';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'frequency-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    worker: new Worker('/js/screenshot-worker.js'),\n\n    capitalizeFirstLetter: function(string) {\n        return string.charAt(0).toUpperCase() + string.slice(1);\n    },\n    //Added for Advanced Filter Feature\n    getXYValueObj:function(){\n        let xyValueObj = {};\n\n        const queryParams = new URLSearchParams(window.location.search);\n\n        const advancedEndDate = queryParams.get('advancedEndDate');\n        const advancedStartDate = queryParams.get('advancedStartDate');\n        const advancedXMax = queryParams.get('advancedXMax');\n        const advancedXMin = queryParams.get('advancedXMin');\n        const advancedYAxisUnit = queryParams.get('advancedYAxisUnit');\n        const advancedYLeftMax = queryParams.get('advancedYLeftMax');\n        const advancedYLeftMin = queryParams.get('advancedYLeftMin');\n\n        xyValueObj[\"advancedEndDate\"]   = advancedEndDate ? advancedEndDate : null;\n        xyValueObj[\"advancedStartDate\"] = advancedStartDate ? advancedStartDate : null;\n        xyValueObj[\"advancedXMax\"]      = advancedXMax ? Number.parseFloat(advancedXMax) : null;\n        xyValueObj[\"advancedXMin\"]      = advancedXMin ? Number.parseFloat(advancedXMin) : null; \n        xyValueObj[\"advancedYAxisUnit\"] = advancedYAxisUnit ? advancedYAxisUnit : null; \n        xyValueObj[\"advancedYLeftMax\"]  = advancedYLeftMax ? Number.parseFloat(advancedYLeftMax) : null;\n        xyValueObj[\"advancedYLeftMin\"]  = advancedYLeftMin ? Number.parseFloat(advancedYLeftMin) : null; \n        return xyValueObj;\n\n    },\n\n    //find what sort of \n    chartMetric: Ember.computed(function(){\n        let chartMetric = this.attrs.getQueryParams('chart_type');\n        //this looks strange but we're only charting ppv and ppa\n        //but the default chartMetric is frequency for the other charts that use this param\n        if( chartMetric == null || chartMetric == 'frequency' ){\n            return 'PPV ';\n        }\n        else if( chartMetric == 'ppa' ){\n            return 'PPA ';\n        }\n        else if( chartMetric == 'ppl' ){\n            return 'PPV ';\n        }\n        return 'PPV ';\n    }),  \n    recordsToDisplay: Ember.computed(function(){\n        let recordsToDisplay = this.attrs.getQueryParams('display_records');\n        if(recordsToDisplay == null){\n          return '100';\n        }\n        if(recordsToDisplay == 1){\n            return -1;\n        }\n        return recordsToDisplay;\n    }),\n    chDataPoints: function(chartData, ordinalValue){\n        let filteredData = [];\n        let firstValue = 'Freq ' + ordinalValue;\n        let secondValue = this.get('chartMetric') + ordinalValue;\n        \n        filteredData = chartData.map(function(item){\n            let chartData;\n            chartData = [ item[firstValue] ,item[secondValue], item['timestamp']];    \n            return chartData;\n        })\n        return filteredData;\n    },\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function () {\n        return [this.get('chartMetric') + '1'];\n      }\n    ),\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n        let chartMetric = this.get('chartMetric');\n        \n        let recordsToDisplay = this.get(\"recordsToDisplay\");\n        let zoomChartData = this.get(\"zoomChartData\");\n        let zoomTimePoints = this.get('zoomTimePoints');\n        \n        zoomChartData = zoomChartData.map(function (item, i){\n          let temporaryObject = new Object();\n        \n          temporaryObject['timestamp'] = moment( zoomTimePoints[i] ).valueOf(); //zoomTimePoints[i].getProperties('timestamp')['timestamp'];\n          temporaryObject['Freq X'] = item.values[2];\n          temporaryObject[\"Freq Y\"] = item.values[16];\n          temporaryObject[\"Freq Z\"] = item.values[16];\n          temporaryObject[\"Freq R\"] = item.values[23];\n          temporaryObject[\"PPV X\"] = item.values[4];\n          temporaryObject[\"PPV Y\"] = item.values[11];\n          temporaryObject[\"PPV Z\"] = item.values[18];\n          temporaryObject[\"PPV R\"] = item.values[25];\n          temporaryObject[\"PPA X\"] = item.values[5];\n          temporaryObject[\"PPA Y\"] = item.values[12];\n          temporaryObject[\"PPA Z\"] = item.values[19];\n          temporaryObject[\"PPA R\"] = item.values[26];\n\n\n\n          return temporaryObject;\n        });\n        function swap(items, leftIndex, rightIndex){\n          var temp = items[leftIndex];\n          items[leftIndex] = items[rightIndex];\n          items[rightIndex] = temp;\n        }\n    \n        function partition(items, left, right) {\n          var pivot   = maxValue(items[Math.floor((right + left) / 2)],chartMetric), //middle element\n              i       = left, //left pointer\n              j       = right; //right pointer\n          while (i <= j) {\n              while (maxValue(items[i], chartMetric) < pivot) {\n                  i++;\n              }\n              while (maxValue(items[j], chartMetric) > pivot ){\n                  j--;\n              }\n              if (i <= j) {\n                  swap(items, i, j); //swap two elements\n                  i++;\n                  j--;\n              }\n          }\n          return i;\n        }\n    \n        function quickSort(items, left, right) {\n          var index;\n          if (items.length > 1) {\n              index = partition(items, left, right); //index returned from partition\n              if (left < index - 1) { //more elements on the left side of the pivot\n                  quickSort(items, left, index - 1);\n              }\n              if (index < right) { //more elements on the right side of the pivot\n                  quickSort(items, index, right);\n              }\n          }\n          return items;\n        }\n    \n        function maxValue(_data, chartMetric){\n          var out = 0;\n          out = Math.max(_data[chartMetric + '1'], _data[chartMetric + '2'], _data[chartMetric + '3'], _data[chartMetric + '4']);\n          return out;\n        }\n    \n        zoomChartData = quickSort(zoomChartData, 0, zoomChartData.length - 1);\n        if(recordsToDisplay >0 && recordsToDisplay < zoomChartData.length){\n          //console.log(\"begin::: \" + (zoomChartData.length - (1+parseInt(recordsToDisplay))));\n          //console.log(\"end::: \" + (zoomChartData.length - 1));\n    \n          zoomChartData = zoomChartData.slice( -1 * (recordsToDisplay));\n        }\n        zoomChartData = zoomChartData.sortBy(\"timestamp\");\n         \n        return this.getData(zoomChartData);\n    \n    }),\n    zoomTimePoints: Ember.computed.map('zoomChartData', function (item) {\n        let itemID = item.get('id');\n        //console.log(\"zoomTimePoints ItemID : \" + itemID);\n        return itemID;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints','zoomTimePoints','zoomTempPoints','seismicEventsChartDistXData', 'blastEventsChartDistXData', function () {\n        return this.get('zoomDataPoints');//zoomChartLinesData;\n    }),\n    //Added for Advanced Filter Feature\n    graphPointValidator:function(xyValueObj, x,y){\n        //This function is called by getData.\n        //This validator takes in a point and then proceeds to check if it meets either or both x and y axis range.\n        //Cases:\n        //  - If there is a range obj to consider, \n        //      - If the range object contains both x and y range, then (x,y) must be within BOTH ranges INCLUSIVELY\n        //      - If the range object contains either x or y range, then (x,y) must be within either ranges INCLUSIVELY\n        //  - If there is not range object, then that means it runs to default, which is \"no such validator\"\n        //Other case it can return False is when the user is using Auto Scaling.\n        //The idea of using this validator function is preserving original framework or appending points to a data array\n        // console.log(`xyValueObj is None? ${this.xyValueObj == undefined}`);\n        if (xyValueObj){\n            //Case user provide both X and Y ranges\n            if (xyValueObj[\"advancedYLeftMin\"] != null && xyValueObj[\"advancedYLeftMax\"] != null && xyValueObj[\"advancedXMin\"] != null && xyValueObj[\"advancedXMax\"] != null){\n                let xMin = xyValueObj[\"advancedXMin\"];\n                let xMax = xyValueObj[\"advancedXMax\"];\n                let yLeftMin = xyValueObj[\"advancedYLeftMin\"];\n                let yLeftMax = xyValueObj[\"advancedYLeftMax\"];\n                // console.log(`Validating: x:${x}, y:${y}`);\n                if((xMin <= Number.parseFloat(x) && (Number.parseFloat(x) <= xMax)) && ((yLeftMin <= Number.parseFloat(y)) && (Number.parseFloat(y) <= yLeftMax))){\n                    // console.log(`   PASSED`);\n                    return true;\n                }else{\n                    // console.log(`   FAILED`);\n                    return false;\n                }\n            }\n            //Case user provide only X range\n            else if ( xyValueObj[\"advancedXMin\"] != null && xyValueObj[\"advancedXMax\"] != null){\n                let xMin = xyValueObj[\"advancedXMin\"];\n                let xMax = xyValueObj[\"advancedXMax\"];\n                if((xMin <= Number.parseFloat(x)) && (Number.parseFloat(x) <= xMax)){\n                    return true;\n                }else{\n                    return false;\n                }\n            }\n            //Case user provide only Y range\n            else if ( xyValueObj[\"advancedYLeftMin\"] != null && xyValueObj[\"advancedYLeftMax\"] != null){\n                let yLeftMin = xyValueObj[\"advancedYLeftMin\"];\n                let yLeftMax = xyValueObj[\"advancedYLeftMax\"];\n                if((yLeftMin <= Number.parseFloat(y)) && (Number.parseFloat(y) <= yLeftMax)){\n                    return true;\n                }else{\n                    return false;\n                }\n            }\n            else{\n                return true;\n            }\n        }else{\n            return true;\n        }\n    },\n    getData: function(points) { \n        //Added for Advanced Filter Feature\n        let xyValueObj = this.getXYValueObj();\n        let data = [];\n        let chartMetric = this.get(\"chartMetric\");\n        let channels = [chartMetric + \"X\",chartMetric + \"Y\",chartMetric + \"Z\",chartMetric + \"R\"];\n        let frequency = [\"Freq X\", \"Freq Y\", \"Freq Z\", \"Freq R\"]; \n        let chart_type = this.get(\"chart_type\");\n        for (let i = 0; i < channels.length; i++) {\n            let valuesOfValues = [];\n        \n            for(let j = 0; j< points.length; j++){\n                let x = points[j][frequency[i]];\n                let y = points[j][channels[i]];\n                //Added for Advanced Filter Feature\n                if (this.graphPointValidator(xyValueObj, chart_type === \"ppl\" ? Math.log10(x) : x, y)){\n                    //This is for calulcating spcial values of x points. Keep on adding more should you need, but be smart\n                    if(chart_type == \"ppl\"){\n                        valuesOfValues.push({x: Math.log10(x), y: y, timestamp: points[j][\"timestamp\"] , size: 5, shape: \"circle\", xGraphIndex:frequency[i], yGraphIndex:channels[i]});  \n                        \n                    }else{\n                        valuesOfValues.push({x: x , y: y, timestamp: points[j][\"timestamp\"] , size: 5, shape: \"circle\", xGraphIndex:frequency[i], yGraphIndex:channels[i]});        \n                    }   \n                }          \n            }  \n            data.push({\n                key: channels[i],\n                values: valuesOfValues\n            });\n        }\n        // console.log(\"data : \");\n        // console.log(data);\n        return data;\n    },\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n    chart_type: Ember.computed(function(){\n        let chart_type = this.attrs.getQueryParams('chart_type');\n        return chart_type;\n    }),\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let measurementTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_')\n        //console.log(\"measurementTitle:::: \" + measurementTitle);\n        let promise = this.get('store').queryRecord('measurement', {title: \"vibration\"});\n        return promise;\n    }),\n    y1AxisTitle: Ember.computed(function(){\n        let title = '';\n        let units = '';\n        let axisName = '';\n        let chartMetric = this.get(\"chartMetric\");\n        chartMetric = chartMetric.trim();\n        if( chartMetric == \"PPV\"){\n          title = \"PPV\";\n        }\n        if(chartMetric == \"PPA\"){\n          title = \"PPA\";\n        }\n        if(chartMetric == \"Freq\"){\n          title = \"Frequency\";\n        }\n        if(chartMetric == \"PPL\"){\n            title = \"PPV\";\n          }\n        switch (title) {\n            case 'Frequency':\n                axisName = 'Frequency';\n                units = 'Hz';\n                break;\n            case 'PPV':\n                axisName = \"PPV\";\n                units += `${this.getXYValueObj()['advancedYAxisUnit']}/s`;\n                break;\n            case 'PPL':\n                axisName = \"PPL\";\n                units +=  `${this.getXYValueObj()['advancedYAxisUnit']}/s`;\n                break;\n            case 'PPA':\n                axisName = \"PPA\";\n                units +=  `${this.getXYValueObj()['advancedYAxisUnit']}/s²`;\n                break;\n            default:\n                axisName = 'Unknown';\n        }\n    \n        title = axisName + ' (' + units + ')';\n        return title;\n    }),\n    mainPartTitle: Ember.computed(function(){\n        let title = '';\n        let chartMetric = this.get(\"chart_type\");\n        chartMetric = chartMetric.trim();\n        if( chartMetric == \"ppv\"){\n            title = \"Frequency\";\n        }\n        if(chartMetric == \"ppa\"){\n            title = \"Frequency\";\n        }\n        if(chartMetric == \"ppl\"){\n            title = \"Log(Frequency)\";\n        }\n        return title;\n    }),\n    x1AxisTitle: Ember.computed(function(){\n        let title = '';\n        let chartMetric = this.get(\"chart_type\");\n        chartMetric = chartMetric.trim();\n        if( chartMetric == \"ppv\"){\n            title = this.get(\"mainPartTitle\") +  \" (Hz)\";\n        }\n        if(chartMetric == \"ppa\"){\n            title = this.get(\"mainPartTitle\") +  \" (Hz)\";\n        }\n        if(chartMetric == \"ppl\"){\n            title = this.get(\"mainPartTitle\") +  \" (Log Base 10 (Hz))\";\n        }\n        return title;\n    }),\n    didInsertElement: function() {\n        const _this = this;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-frequency-line-chart-svg');    \n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = [yAxisLegend];\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = _this.get(\"y1AxisTitle\");\n            let x_axisName = _this.get(\"x1AxisTitle\");\n            let type = _this.get(\"mainPartTitle\");\n\n            //let zoomChart = nv.models.lineChartWithFocusAPI(false)\n            let zoomChart = nv.models.scatterChart()\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .x(function(d) { \n                    return +d.x; \n                })\n                .y(function(d) { \n                    return +d.y; \n                })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(false)\n                .showDistY(false)\n                .showLegend(true)\n                .noData('No usable data')\n                \n            ;\n\n            //zoomChart.legend.margin({bottom: 500});\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n                zoomChart.xAxis\n                    .axisLabel(x_axisName)\n                    .axisLabelDistance(20)\n                    .tickPadding(30)\n                    .showMaxMin(false)\n                    .tickFormat(d3.format(\"2\"));\n\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n\n                zoomChart.xAxis.tickFormat(d3.format('.02f'));\n                zoomChart.yAxis.tickFormat(d3.format('.02f'))\n                        \n                zoomChart.forceY([0]);\n\n                zoomChart.yScale(d3.scale.linear());\n                \n                zoomChart.xScale(d3.scale.linear());\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(10)\n                ;\n\n                //zoomChart.yAxis.tickFormat(d3.format(\"1\"));\n\n                //Forcing Y Axis values and tick values for clean looking log graph\n                // zoomChart.forceY([0.5, 2000]); //Make sure y axis starts at 1 not 0\n                // zoomChart.yAxis.tickValues([1, 5, 10, 50, 100, 500, 1000, 2000, 5000]); //Continue pattern for more ticks\n                // zoomChart.forceX([0.5, 100]); //Make sure y axis starts at 1 not 0\n                // zoomChart.xAxis.tickValues([0.5, 1, 2, 5, 10, 20, 50, 100, 1000]); //Continue pattern for more ticks\n\n                zoomChart.tooltip.contentGenerator(function (obj) { \n                    let toolTipText = \"\";\n                    toolTipText = '<div style=\\'margin: 5px 5px 5px 5px;\\'>';\n                    toolTipText += '</div>';\n                    let timestampFormatter = d3.time.format('%m/%e/%y %H:%M:%S.%L');\n                    let newDate = new Date(obj[\"point\"].timestamp);\n                    // console.log(\"formatted newDate: \" + timestampFormatter(newDate))\n                    // let xValue = Number(obj[\"point\"].x).toPrecision(4);\n                    toolTipText += 'Measured At: ' + timestampFormatter(newDate) + '<br />' + obj[\"point\"][\"xGraphIndex\"] + \": \" + obj[\"point\"].x + '<br />' + obj[\"point\"][\"yGraphIndex\"] + ': ' + obj[\"point\"].y;\n\n                    toolTipText += '</div>';\n                    return toolTipText;\n                });\n                // console.log(zoomChartLinesData)\n                zoomChartSVG\n                    .datum(zoomChartLinesData)\n                    .transition()\n                    .call(zoomChart);\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n    },\n    async captureLargeDOM(element, chunkHeight) {\n        const canvas = document.createElement('canvas');\n        const context = canvas.getContext('2d');\n        const totalHeight = element.scrollHeight;\n        const totalWidth = element.scrollWidth;\n        \n        canvas.width = totalWidth;\n        canvas.height = totalHeight;\n    \n        let yOffset = 0;\n    \n        while (yOffset < totalHeight) {\n            console.log(\"Chunking...\");\n            const viewport = element.cloneNode(true);\n            viewport.style.height = `${chunkHeight}px`;\n            viewport.style.overflow = 'hidden';\n            viewport.style.transform = `translateY(-${yOffset}px)`;\n    \n            const chunkCanvas = await html2canvas(viewport);\n            context.drawImage(chunkCanvas, 0, yOffset);\n    \n            yOffset += chunkHeight;\n        }\n    \n        // Convert the final canvas to JPG\n        return new Promise((resolve) => {\n            canvas.toBlob((blob) => {\n                resolve(blob);\n            }, 'image/jpeg');\n        });\n      },\n\n    actions: {\n         downloadScreenshot() {\n            console.log(\"Clicked take screenshot\");\n            try{\n                const element = document.getElementById('GRAPH2');\n                console.log(\"Creating canvass...\");\n                // Capture the screenshot on the main thread\n                const canvas = toJpeg(element, { quality: 0.95 }).then(function (dataUrl) {\n                    var link = document.createElement('a');\n                    link.download = 'my-image-name.jpeg';\n                    link.href = dataUrl;\n                    link.click();\n                  });\n                console.log(\"Done\");\n            }catch(error){\n                console.error('Error capturing screenshot:', error);\n\n            }\n\n        }\n    }\n});\n\n\n\n// let id =  this.get('instrument').get(\"id\");\n// let endDatetodayObjObj = new moment();\n// let formattedEndDateObj = endDatetodayObjObj.format('YYYY-MM-DDTHH:mm');\n\n// let fileName = `${chartMetric ? chartMetric : \"\"}-frequency_graph-${id}-${formattedEndDateObj}`","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    temperaturePoints: [],\n    distXRiseUpAnimationDuration: 500,\n    // chartMetric: Ember.computed(function(){\n    // let chartMetric = this.attrs.getQueryParams('chart_type');\n    //     if(chartMetric == null){\n    //       return 'voltage';\n    //     }\n    //    //console.log(\"chartMetric::: \" + chartMetric);\n    //     return chartMetric;\n    // }),\n    leftAxis: Ember.computed(function(){\n        let leftAxis = this.attrs.getQueryParams('left_axis_field');\n        if(leftAxis == null){\n          leftAxis = 'Voltage';\n        }\n        return leftAxis;\n    }),      \n    rightAxis: Ember.computed(function(){\n        let rightAxis = this.attrs.getQueryParams('right_axis_field');\n        if(rightAxis == null){\n            rightAxis = 'RSSI';\n          }\n          return rightAxis;\n    }),\n\n    GATEWAY_ENUM: Object.freeze({\n        Firmware: 0,\n        Coordinator: 1,\n        Voltage: 2,\n        RSSI: 3,\n        carrier: 4, \n        Readings: 5, \n        Uptime: 6, \n        Reconnection: 7, \n        Uploads: 8, \n        var_1: 9, \n        var_2: 10, \n        var_3: 11,\n        Temperature: 12,        \n    }),\n\n    // zoomTempPoints: Ember.computed(function(){\n    //     // let right = this.get('zoomDataPointsRightAxis');\n    //     let temperaturePoints = [];\n    //     let zoomTempData = this.get(\"zoomTempData\");\n    //     zoomTempData.forEach(function(item, i){\n    //         let linesKyes = Object.keys(item.toJSON());\n    //         var chartData = item.getProperties(linesKyes);\n    //         temperaturePoints.push(chartData.values[0]);\n    //         // let temperaturePoints = this.get('temperaturePoints').push(chartData.values);\n    //     });\n        \n    //     return temperaturePoints; //chartData;\n    // }),\n    zoomDataPointsLeftAxis: Ember.computed(function(){\n        \n        let zoomChartData = this.get(\"zoomChartData\");\n        console.log(\"this.leftAxis\");\n        console.log(this.leftAxis)\n        let leftAxisIndex = this.GATEWAY_ENUM[this.leftAxis]\n        \n        let zoomLeftAxis = zoomChartData.map(function (item, i){\n            return item.values[leftAxisIndex];            \n        });\n        // console.log(JSON.stringify(zoomLeftAxis))\n        return zoomLeftAxis;\n    }),\n    \n    zoomDataPointsRightAxis: Ember.computed(function(){\n        //console.log(\"zoomDataPointsRightAxis::::::::::::::: 8\");\n        let zoomRightAxis = null;\n        if(this.rightAxis != null){\n            let zoomChartData = this.get(\"zoomChartData\");\n            let rightAxisIndex = this.GATEWAY_ENUM[this.rightAxis]        \n            zoomRightAxis = zoomChartData.map(function (item, i){\n                return item.values[rightAxisIndex];            \n            });\n        }\n        ////console.log(\"zoomRightAxis::::::: \" + JSON.stringify(zoomRightAxis));\n        // console.log(JSON.stringify(zoomRightAxis))\n        return zoomRightAxis;\n\n    }),\n\n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n       //console.log(\"zoomDataPoints::::::::::::::: 4 and 6 \" + this.get(\"chartDataValueName\") );\n        let left = this.get('zoomDataPointsLeftAxis');\n        \n        return left;\n    }),\n\n    fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n        let fullRangePoints = null;\n        let itemHolder = {};\n\n        fullRangePoints = this.get('fullRangeChartData');\n        fullRangePoints.map(function (item, i){\n            let linesKyes = Object.keys(item.toJSON());\n            let itemHolder = item.getProperties(linesKyes);\n            return itemHolder;\n        });\n        \n        return fullRangePoints;\n        \n    }),\n\n/*     \n    fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n       //console.log(\"zoomTimePoints::::::::::::::: 9\");    \n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n       //console.log(\"fullRangeTimePoints::::::::::::::: 13\");\n        return item.get('id');\n    }),\n    \n    anchorDistances: Ember.computed('gateway', 'fullRangeChartData', function() {\n        let leftAxis = this.get('leftAxis'); \n       //console.log(\"anchorDistances::::::::::::::: 10   ::\" + leftAxis);\n        return [leftAxis];\n    }),\n\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n       //console.log(\"zoomChartLinesData::::::::::::::: 2\");    \n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n        let tempPoints = this.get('zoomTempPoints');\n            \n        // console.log(\"zoomTempPoints::: \" + JSON.stringify(tempPoints));\n        // console.log(\"zoomTempPoints::: \" + this.get('temperaturePoints'));\n        \n        let anchorDistances = this.get('anchorDistances');\n        let zoomChartLinesData = [];\n\n        var mName = _this.get('chartDataModelName');\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n       //console.log(\"TEMP::: \" + _this.get('chartDataModelName'));\n        let zoomTempPoints = this.get('zoomDataPointsRightAxis');\n        var temp = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                //console.log(\"temp Points::: \" + zoomTempPoints);\n                return [\n                    moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        //console.log(temp);\n        zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        \n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n       //console.log(\"fullRangeChartLinesData::::::::::::::: 11\");    \n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints');\n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        \n        let fullRangeTempPoints = this.get('zoomDataPointsRightAxis');\n        let anchorDistances = this.get('anchorDistances');\n\n        let fullRangeChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                   //console.log(\"fullReang:::::::::::::::::::\" + _this.GATEWAY_ENUM[_this.leftAxis])\n                    ////console.log(\"DataPoint::: \" + dataPoint.values[chartLineIndex]);\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[_this.GATEWAY_ENUM[_this.leftAxis]]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n\n        var temperature = {key: this.get('rightAxis'),\n            type: 'lines',\n            yAxis: 2,\n            values: fullRangeTempPoints.map(function(dataPoint, dataPointIndex) {\n                return [\n                    moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                    dataPoint,\n                ];\n            })\n        };\n        return fullRangeChartLinesData;           \n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n       //console.log(\"chartDataModelName::::::::::::::: 5   \" + this.get('zoomChartData').query.model_name);    \n        //console.log(\"zoomChartData:\" + this.get('zoomChartData').query.model_name);\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n       //console.log(\"yAxisLegend::::::::::::::: 14\");    \n        let chartTitle = 'voltage'\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        //let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n    getTitleAndUnits: function(axis){\n        let axisValues = {\"Voltage\": \"Voltage, V\", \"RSSI\": \"RSSI, dBm\", \"Firmware\": \"Firmware Ver.\", \"Readings\": \"Readings\", \n                            \"Uptime\": 'Uptime - in Seconds.', \"Reconnection\": \"Reconnects\", \"Uploads\": \"Uploads\",\n                            \"Temperature\": \"Temperature,C\", \"var_1\": 9, \"var_2\": 9,  \"var_3\": 10}\n        // console.log(\"getTitleAndUnits::::::::::::::: \" + axisValues[axis]);\n        return axisValues[axis];\n    },\n    didInsertElement: function() {\n        \n       //console.log(\"didInsertElement::::::::::::::: 1\");    \n        const _this = this,\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n        const zoomChartLinesData = _this.get('zoomChartLinesData');\n        const fullRangeChartLinesData = _this.get('fullRangeChartLinesData');\n        \n        let zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg');\n        \n        let fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg');\n        let yAxisLegend = this.get('yAxisLegend');\n        let apiCallsPromises = yAxisLegend;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(false)\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showLegend(true)\n                .showDistX(true)\n                .noData('No usable data');\n\n            zoomChart.showYAxis = true;\n            zoomChart.y2Axis.showYAxis = true;\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        //console.log(\"D:::::::::: \" + d);\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        //console.log(nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d)));\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    })\n                ;\n               \n                let axis1Title = _this.getTitleAndUnits(_this.get('leftAxis'));\n                let axis2Title = _this.getTitleAndUnits(_this.get('rightAxis'));\n                \n                zoomChart.y1Axis\n                    .axisLabel(axis1Title)\n                    .axisLabelDistance(10);\n                \n                zoomChart.y2Axis\n                    .axisLabel(axis2Title)\n                    .axisLabelDistance(10)\n                ;\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                zoomChart.y2Axis.tickFormat(d3.format(\".2f\"));\n                \n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                let legend = zoomChart.legend;\n                if(legend.controls){\n                    legend.controls.forEach(function(d, i) {\n                        d.disabled = false;\n                    });\n                }\n\n                //console.log(\"zoomChart::::\" + zoomChart.legend);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    //console.log(\"BRUSH END::::::::::::::::::::\");\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(false);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n                \n                function selectControls() {\n                    // console.log(\":::::::::::::::::::::: selectControls\");\n                    //zoomChart.chartData.forEach(function(series) { series.disabled = false; });                  \n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n                    tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    tooltipClass = 'other';\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                        \n                }\n\n                //     if (typeof(tooltipContent) === 'object') {\n                //         if (tooltipContent.type === 'Blast') {\n                //             tooltipClass = 'blast';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                //         } else if (tooltipContent.type === 'Seismic') {\n                //             tooltipClass = 'seismic';\n                //             eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                //         } else if (tooltipContent.type === 'BluVibe') {\n                //             tooltipClass = 'bluvibe';\n                //             eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                //         } else if (tooltipContent.type === 'Other') {\n                //             tooltipClass = 'other';\n                //         }\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                //                       '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                //                       eventSize\n                //         ;\n                //     } else {\n                //         tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                //     }\n\n                //     return {\n                //         tooltipClass: tooltipClass,\n                //         tooltipText: tooltipText\n                //     };\n                // }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(\"VibeEventsArray:::\" + vibeEventsArray);\n                    //console.log(distXMouseMove);\n \n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                // d3.select('.nv-y2.nv-axis')\n                // .classed('nv-disabled', false)\n                // .attr('transform', 'translate(0,0)');\n        \n                nv.utils.windowResize(zoomChart.update);\n\n                // zoomChart.dispatch.on('stateChange', function(e) { \n                //     nv.log('New State:', JSON.stringify(e)); \n                // });\n                // zoomChart.state.dispatch.on('change', function(state){\n                //     nv.log('state', JSON.stringify(state));\n                // });\n\n               //console.log(\":::::::::::::::::::::::::::setData called\")\n                // _this.sendAction('setData',zoomChartLinesData);\n                // _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            //.showYAxis(true)\n        ;\n        \n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n        \n    }\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n//import JSONAPISerializer from '@ember-data/serializers/json';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    yAxisUnit:null,\n    init() {\n        this._super(...arguments);\n        const queryParams = new URLSearchParams(window.location.search);\n        const yAxisUnitParam = queryParams.get('advancedYAxisUnit');\n        if(yAxisUnitParam){\n            this.set('yAxisUnit', yAxisUnitParam);\n        }\n    },\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    // vibeEventsChartDistXData: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log('vibeEvents');\n    //     //console.log(events);\n    //     if ( this.get('vibeEvents') ) {\n    //         return [{\n    //             key: 'BluVibe',\n    //             type: 'distX',\n    //             color: '#80bf5c',\n    //             values: this.get('vibeEvents').map(function(event) {\n    //                 return [\n    //                     moment( event.get('id') ).valueOf(),\n    //                     event.get('size') ? (event.get('size') * -20) + 20 : 20\n    //                 ];\n    //             })\n    //         }];\n    //     }\n    //     return false;\n    // }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            let data_set = this.get('blastEvents').map(function(event) {\n                //console.log(event.get('timestamp'));\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n            //console.log(data_set);\n            return data_set;\n        }\n        return false;\n    }),\n\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    zoomTempPoints: Ember.computed('zoomTempData', function () {\n        let zoomTempData = this.get('zoomTempData');\n        let zoomChartData = this.get(\"zoomDataPoints\");\n        // console.log(\"HERE::::::::::::::::::\");  \n        zoomTempData = zoomTempData.map(item => {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = {'timestamp': item.getProperties('id')['id'], 'values':item.getProperties(linesKyes)[linesKyes]} ;\n            return chartData;\n        })\n    \n        // above returns ALL readings from the BluVibe instrument\n        // chartData::: {\"values\":[25]}\n        let filterArray = zoomTempData.filter((elem) => {\n            return zoomChartData.some((ele) => {\n            return ele.timestamp === elem.timestamp;\n            });\n        });\n    \n        filterArray = filterArray.map(function(item){\n            return {'values':item['values']};\n        })\n        return filterArray;\n    }),\n    capitalizeFirstLetter: function(string) {\n        return string.charAt(0).toUpperCase() + string.slice(1);\n    },\n\n    chartMetric: Ember.computed(function(){\n      let chartMetric = this.attrs.getQueryParams('chart_type');\n      if(chartMetric == null || chartMetric.trim() == 'frequency'){\n        return 'Freq ';\n      }\n      return chartMetric.toUpperCase()+ \" \";\n    }),\n    recordsToDisplay: Ember.computed(function(){\n      let recordsToDisplay = this.attrs.getQueryParams('display_records');\n      if(recordsToDisplay == null){\n        return '100';\n      }\n      if(recordsToDisplay == 1){\n        return -1;\n      }\n      return recordsToDisplay;\n    }),\n    chDataPoints: function(chartData, metric){\n        let filteredData = [];\n        filteredData = chartData.map(function(item){\n            let chartData = '';\n            chartData = item[metric];    \n            return chartData;\n        })\n        return filteredData;\n    },\n    \n    zoomDataPoints: Ember.computed('zoomChartData', function () {\n        let chartMetric = this.get('chartMetric');\n        let recordsToDisplay = this.get(\"recordsToDisplay\");\n        // console.log(\"recordsToDisplay::: \" + recordsToDisplay);\n        let zoomChartData = this.get(\"zoomChartData\");\n        let zoomTimePoints = this.get('zoomTimePoints');\n            \n        zoomChartData = zoomChartData.map(function (item, i){\n            let temporaryObject = new Object();\n            \n            // console.log(\"zoomChartData::: \" + JSON.stringify(item) );\n            // console.log(\"\");    \n            \n            temporaryObject['timestamp'] = moment( zoomTimePoints[i] ).valueOf(); //zoomTimePoints[i].getProperties('timestamp')['timestamp'];\n            temporaryObject['Freq 1'] = item.values[2];\n            temporaryObject[\"Freq 2\"] = item.values[9];\n            temporaryObject[\"Freq 3\"] = item.values[16];\n            temporaryObject[\"Freq 4\"] = item.values[23];\n            temporaryObject[\"PPV 1\"] = item.values[4];\n            temporaryObject[\"PPV 2\"] = item.values[11];\n            temporaryObject[\"PPV 3\"] = item.values[18];\n            temporaryObject[\"PPV 4\"] = item.values[25];\n            temporaryObject[\"PPA 1\"] = item.values[5];\n            temporaryObject[\"PPA 2\"] = item.values[12];\n            temporaryObject[\"PPA 3\"] = item.values[19];\n            temporaryObject[\"PPA 4\"] = item.values[26];\n                        \n            //temporaryCounter = (temporaryCounter+ 1000);\n            return temporaryObject;\n        });\n        function swap(items, leftIndex, rightIndex){\n            var temp = items[leftIndex];\n            items[leftIndex] = items[rightIndex];\n            items[rightIndex] = temp;\n        }\n    \n        function partition(items, left, right) {\n            var pivot   = maxValue(items[Math.floor((right + left) / 2)],chartMetric), //middle element\n                i       = left, //left pointer\n                j       = right; //right pointer\n            while (i <= j) {\n                while (maxValue(items[i], chartMetric) < pivot) {\n                    i++;\n                }\n                while (maxValue(items[j], chartMetric) > pivot ){\n                    j--;\n                }\n                if (i <= j) {\n                    swap(items, i, j); //swap two elements\n                    i++;\n                    j--;\n                }\n            }\n            return i;\n        }\n    \n        function quickSort(items, left, right) {\n            var index;\n            if (items.length > 1) {\n                index = partition(items, left, right); //index returned from partition\n                if (left < index - 1) { //more elements on the left side of the pivot\n                    quickSort(items, left, index - 1);\n                }\n                if (index < right) { //more elements on the right side of the pivot\n                    quickSort(items, index, right);\n                }\n            }\n            return items;\n        }\n    \n        function maxValue(_data, chartMetric){\n            var out = 0;\n            out = Math.max(_data[chartMetric + '1'], _data[chartMetric + '2'], _data[chartMetric + '3'], _data[chartMetric + '4']);\n            return out;\n        }\n    \n        zoomChartData = quickSort(zoomChartData, 0, zoomChartData.length - 1);\n        if(recordsToDisplay >0 && recordsToDisplay < zoomChartData.length){\n            //console.log(\"begin::: \" + (zoomChartData.length - (1+parseInt(recordsToDisplay))));\n            //console.log(\"end::: \" + (zoomChartData.length - 1));\n            \n            zoomChartData = zoomChartData.slice( -1 * (recordsToDisplay));\n        }\n        zoomChartData = zoomChartData.sortBy(\"timestamp\");\n        // console.log(\"zoomChartData.length::: \" + zoomChartData.length);\n        //console.log(JSON.stringify(zoomChartData));\n        return zoomChartData;\n    \n        }),\n\n        fullRangeDataPoints_OLD: Ember.computed.map('fullRangeChartData', function(item){\n            let linesKyes = Object.keys(item.toJSON());\n            let items = item.getProperties(linesKyes);\n            //console.log(\"ITEMS:::::::::::::::::\");\n            return items;\n        }),\n\n        fullRangeDataPoints: Ember.computed('fullRangeChartData', function () {\n            let chartMetric = this.get('chartMetric');\n            let recordsToDisplay = this.get(\"recordsToDisplay\");\n            let fullRangeChartData = this.get(\"fullRangeChartData\");\n\n            fullRangeChartData = fullRangeChartData.map(function (item, i){\n                let temporaryObject = new Object();\n                                 \n                temporaryObject['Freq 1'] = item.values[2];\n                temporaryObject[\"Freq 2\"] = item.values[9];\n                temporaryObject[\"Freq 3\"] = item.values[16];\n                temporaryObject[\"Freq 4\"] = item.values[23];\n                temporaryObject[\"PPV 1\"] = item.values[4];\n                temporaryObject[\"PPV 2\"] = item.values[11];\n                temporaryObject[\"PPV 3\"] = item.values[18];\n                temporaryObject[\"PPV 4\"] = item.values[25];\n                temporaryObject[\"PPA 1\"] = item.values[5];\n                temporaryObject[\"PPA 2\"] = item.values[12];\n                temporaryObject[\"PPA 3\"] = item.values[19];\n                temporaryObject[\"PPA 4\"] = item.values[26];\n                            \n                return temporaryObject;\n            });\n            function swap(items, leftIndex, rightIndex){\n                var temp = items[leftIndex];\n                items[leftIndex] = items[rightIndex];\n                items[rightIndex] = temp;\n            }\n        \n            function partition(items, left, right) {\n                var pivot   = maxValue(items[Math.floor((right + left) / 2)],chartMetric), //middle element\n                    i       = left, //left pointer\n                    j       = right; //right pointer\n                while (i <= j) {\n                    while (maxValue(items[i], chartMetric) < pivot) {\n                        i++;\n                    }\n                    while (maxValue(items[j], chartMetric) > pivot ){\n                        j--;\n                    }\n                    if (i <= j) {\n                        swap(items, i, j); //swap two elements\n                        i++;\n                        j--;\n                    }\n                }\n                return i;\n            }\n        \n            function quickSort(items, left, right) {\n                var index;\n                if (items.length > 1) {\n                    index = partition(items, left, right); //index returned from partition\n                    if (left < index - 1) { //more elements on the left side of the pivot\n                        quickSort(items, left, index - 1);\n                    }\n                    if (index < right) { //more elements on the right side of the pivot\n                        quickSort(items, index, right);\n                    }\n                }\n                return items;\n            }\n        \n            function maxValue(_data, chartMetric){\n                var out = 0;\n                out = Math.max(_data[chartMetric + '1'], _data[chartMetric + '2'], _data[chartMetric + '3'], _data[chartMetric + '4']);\n                return out;\n            }\n        \n            fullRangeChartData = quickSort(fullRangeChartData, 0, fullRangeChartData.length - 1);\n            if(recordsToDisplay >0 && recordsToDisplay < fullRangeChartData.length){\n                //console.log(\"begin::: \" + (zoomChartData.length - (1+parseInt(recordsToDisplay))));\n                //console.log(\"end::: \" + (zoomChartData.length - 1));\n        \n                fullRangeChartData = fullRangeChartData.slice( -1 * (recordsToDisplay));\n            }\n            fullRangeChartData = fullRangeChartData.sortBy(\"timestamp\");\n            //console.log(\"zoomChartData.length::: \" + zoomChartData.length);\n            //console.log(JSON.stringify(zoomChartData));\n            return fullRangeChartData;\n        \n            }),\n            \n        \n    \n        //small focus chart data\n        // fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        // let linesKyes = Object.keys(item.toJSON());\n        // let items = item.getProperties(linesKyes);\n        // //console.log(\"ITEMS:::::::::::::::::\");\n        // return items;\n        // }),\n    \n\n        \n        fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n        }),\n    \n    \n        zoomTimePoints: Ember.computed.map('zoomChartData', function (item) {\n        let itemID = item.get('id');\n        //console.log(\"zoomTimePoints ItemID : \" + itemID);\n        return itemID;\n        }),\n    \n        anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function () {\n            return [this.get('chartMetric') + '1'];\n        }\n        ),\n    \n        //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n        zoomChartLinesData: Ember.computed('zoomDataPoints','zoomTimePoints','zoomTempPoints','seismicEventsChartDistXData', 'blastEventsChartDistXData', function () {\n            const _this = this,\n                // seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n                // blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n                //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n                zoomDataPoints = this.get('zoomDataPoints'),\n                zoomTempPoints = this.get('zoomTempPoints'),\n                zoomTimePoints = this.get('zoomTimePoints');\n\n\n            let anchorDistances = this.get('anchorDistances'),\n                zoomChartLinesData = [],\n                zoomChannelData = [],\n                channelChartBarData = [],\n                chartMetric = _this.get(\"chartMetric\"),            \n                chDataPoints = _this.get('chDataPoints');\n                \n            channelChartBarData.push(chDataPoints(zoomDataPoints, chartMetric + \"1\"));\n            channelChartBarData.push(chDataPoints(zoomDataPoints, chartMetric + \"2\"));\n            channelChartBarData.push(chDataPoints(zoomDataPoints, chartMetric + \"3\"));\n            channelChartBarData.push(chDataPoints(zoomDataPoints, chartMetric + \"4\"));\n                \n            let chartDataModelName = _this.get('chartDataModelName');\n            let channelCount = 1;\n            channelChartBarData.forEach(barChartData => {\n                zoomChannelData = anchorDistances.map(function () {\n                    return {\n                    key: chartMetric + channelCount,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: barChartData.map(function (dataPoint, dataPointIndex) {\n                        //console.log(\"dataPoint.frequency01::: \" + JSON.stringify(dataPoint));\n                        let dataPointValue = _this.get('chartMetric') + channelCount;\n                        return [\n                        moment(zoomTimePoints[dataPointIndex]).valueOf(),\n                        dataPoint,\n                        ];\n                    }),\n                    };\n                });\n                zoomChartLinesData.push(zoomChannelData[0]);\n                zoomChannelData = [];\n                channelCount++;\n                });\n            // mix data with events\n            // if (seismicEventsChartDistXData) {\n            //     zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n            // }\n            // if (blastEventsChartDistXData) {\n            //     zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n            // }\n            // if (vibeEventsChartDistXData) {\n            //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n            // }\n\n        return zoomChartLinesData;\n    }),\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this;\n        const fullRangeDataPoints = this.get('fullRangeDataPoints'); \n        const fullRangeTimePoints = this.get('fullRangeTimePoints');\n        let anchorDistances = this.get('anchorDistances'),\n            fullRangeChartLinesData = [],\n            fullRangeChannelData = [],\n            channelChartBarData = [],\n            chDataPoints = _this.get('chDataPoints'),\n            chartMetric = _this.get(\"chartMetric\");\n            \n        channelChartBarData.push(chDataPoints(fullRangeDataPoints, chartMetric + \"1\"));\n        channelChartBarData.push(chDataPoints(fullRangeDataPoints, chartMetric + \"2\"));\n        channelChartBarData.push(chDataPoints(fullRangeDataPoints, chartMetric + \"3\"));\n        channelChartBarData.push(chDataPoints(fullRangeDataPoints, chartMetric + \"4\"));\n        \n        let channelCount = 1;\n        channelChartBarData.forEach(fullChartData => {\n            \n            fullRangeChannelData = anchorDistances.map(function () {\n            return {\n              key: chartMetric + channelCount,\n              // mean: 3,\n              type: 'lines',\n              values: fullChartData.map(function (dataPoint, dataPointIndex) {\n                //console.log(\"dataPoint.frequency01::: \" + JSON.stringify(dataPoint));\n                return [\n                  moment(fullRangeTimePoints[dataPointIndex]).valueOf(),\n                  dataPoint,\n                ];\n              }),\n            };\n          }).sortBy('timestamp');\n          fullRangeChartLinesData.push(fullRangeChannelData[0]);\n          fullRangeChannelData = [];\n          channelCount++;\n        });\n        return fullRangeChartLinesData;\n    }),\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let chartTitle = chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_');\n        let promise = this.get('store').queryRecord('measurement', {title: chartTitle } );\n        return promise;\n    }),\n    y1AxisTitle: Ember.computed(function(){\n        let title = '';\n        let units = '';\n        let axisName = '';\n        let chartMetric = this.get(\"chartMetric\");\n        chartMetric = chartMetric.trim(); \n        \n        if( chartMetric == \"PPV\"){\n          title = \"PPV\";\n        }\n        if(chartMetric == \"PPA\"){\n          title = \"PPA\";\n        }\n        if(chartMetric == \"Freq\"){\n          title = \"Frequency\";\n        }\n        switch (title) {\n          case 'Frequency':\n            axisName = 'Frequency';\n            units = 'Hz';\n            break;\n          case 'PPV':\n            axisName = \"PPV\";\n            units += `${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}/s`;\n            break;\n          case 'PPA':\n            axisName = \"PPA\";\n            units += `${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}/s²`;\n            break;\n          default:\n            axisName = 'Unknown';\n        }\n        title = axisName + \" (\" + units + \")\";\n        return title;\n    }),\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            // vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            \n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend];\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n\n            title = _this.get(\"y1AxisTitle\");\n            \n            let zoomChart = nv.models.lineChartWithFocusAPI(true)\n                .margin({top: 65, right: 90, bottom: 20, left: 80})\n                // .margin({top: 60, right: 90, bottom:20, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data');\n        \n            zoomChart.legend.margin({bottom: 600});\n                        \n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n                let mainHeight = zoomChartSVG.attr(\"height\");\n                let mainMargin = zoomChart.margin();\n                let customTickFunction = _this.get(\"customTickFunction\");\n                zoomChart.xAxis\n                    .tickPadding(10)\n                    .ticks(8)\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        // assumes that the array is in order by timestamp\n                        let first = zoomChartLinesData[0].values[0][0];\n                        let last = zoomChartLinesData[0].values[zoomChartXDomainLength - 1][0];\n                        //console.log(\"zoomChartLinesData::::\" + zoomChartLinesData[0].values[zoomChartXDomainLength - 1])\n                        let tickDate = nv.utils.getDateAutoscaleFormat(first, last);\n                        return tickDate(new Date(d));\n                    })\n                //.rotateLabels(20)\n                \n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10)\n\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(10)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n\n                zoomChart.y1Axis.tickFormat(d3.format(\".2\"));\n                zoomChart.legend.numDecimals(3);\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n                \n                zoomChartSVG\n                    .datum(zoomChartLinesData)\n                    .call(zoomChart);\n                //puts the data into a format that a scatter chart can use. Needs to \n                //be the same as in the frequency graph in this same directory.\n                function getData(points) {\n                    let data = [];\n                    let chartMetric = _this.get('chartMetric');\n                    let channels = [chartMetric + \"1\",chartMetric + \"2\",chartMetric + \"3\",chartMetric + \"4\"]\n                    \n                    for (let i = 0; i < channels.length; i++) {\n                        let valuesOfValues = [];\n                        \n                        for(let j = 0; j< points[i][\"values\"].length; j++){\n                            valuesOfValues.push({x: points[i][\"values\"][j][0], y: points[i][\"values\"][j][1] , size: 5, shape: \"circle\"})                      \n                        }\n    \n                        data.push({\n                            key: points[i].key,\n                            values: valuesOfValues\n                        });\n                    }\n                    return data;\n                }\n                \n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = `<span class=\"event-type\">PPV - ${`${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}/s`}: ` + tooltipContent.ppv + `<br />PPA - ${this.yAxisUnit ? this.yAxisUnit == \"RAW\" ? \"mm\" : this.yAxisUnit : \"mm\"}/s&#178;: ` + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        } \n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { \n                    nv.log('New State:', JSON.stringify(e)); \n                });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n        \n        let graph_type = nv.models.scatter();\n        //there used to be some logic here for determining the graph_type\n        //we don't use it anymore but I didn't want to change it too much as I \n        //was checking in the code.\n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 90, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n            fullRangeChart.xAxis\n            .ticks(8)\n            .tickPadding(10)    \n            .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG\n                .datum(fullRangeChartLinesData)\n                .call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","\n\nexport default Ember.Component.extend({\n    batchSelectedRows:{},\n    isMaxBatch:false,\n    isVisibleCreateNewForm: false,\n    getVisibleReadings:Ember.computed('displacementData', function () {\n        if (this.get('displacementData')){\n            return this.get('displacementData').length\n        }else{\n            return 0;\n        }\n    }),\n    anchorDistances: Ember.computed('instrument', function() {\n        let dist = ['Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration','Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration','Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration','Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration'];\n        return dist;\n    }),\n    getDisplacementValueObject: Ember.computed(function() {\n        let dist = ['Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration','Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration','Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration','Axis', 'Trigger','Frequency','Amplitude','PPV','PPA','Duration'];\n        return dist;\n    }),\n    getDisplacementData: Ember.computed('displacementData', function () {\n        const displacementData = this.get('displacementData');\n        return displacementData;\n    }),\n    //Added for Advanced Filter Feature\n    getXYValueObj:function(){\n        let xyValueObj = {};\n\n        const queryParams = new URLSearchParams(window.location.search);\n\n        const advancedEndDate = queryParams.get('advancedEndDate');\n        const advancedStartDate = queryParams.get('advancedStartDate');\n        const advancedXMax = queryParams.get('advancedXMax');\n        const advancedXMin = queryParams.get('advancedXMin');\n        const advancedYAxisUnit = queryParams.get('advancedYAxisUnit');\n        const advancedYLeftMax = queryParams.get('advancedYLeftMax');\n        const advancedYLeftMin = queryParams.get('advancedYLeftMin');\n\n        xyValueObj[\"advancedEndDate\"]   = advancedEndDate ? advancedEndDate : null;\n        xyValueObj[\"advancedStartDate\"] = advancedStartDate ? advancedStartDate : null;\n        xyValueObj[\"advancedXMax\"]      = advancedXMax ? Number.parseFloat(advancedXMax) : null;\n        xyValueObj[\"advancedXMin\"]      = advancedXMin ? Number.parseFloat(advancedXMin) : null; \n        xyValueObj[\"advancedYAxisUnit\"] = advancedYAxisUnit ? advancedYAxisUnit : null; \n        xyValueObj[\"advancedYLeftMax\"]  = advancedYLeftMax ? Number.parseFloat(advancedYLeftMax) : null;\n        xyValueObj[\"advancedYLeftMin\"]  = advancedYLeftMin ? Number.parseFloat(advancedYLeftMin) : null; \n        return xyValueObj;\n    },\n    \n    maxBatchSwitchObserver: Ember.observer('isMaxBatch', function() {\n        if(this.get('isMaxBatch')){\n            let length = this.get('displacementData').length;\n            let isCheckedRowsValues = {};\n            for(let i = 0; i < length; i ++){\n                isCheckedRowsValues[i] = true;\n\n            }\n            this.set(\"batchSelectedRows\", isCheckedRowsValues);\n        }else{\n            this.set(\"batchSelectedRows\", {});\n        }\n        // console.log(\"observer triggered \" + this.get('isMaxBatch'));\n        // console.log(\"observer triggered batchSelectedRows length \" + this.get('batchSelectedRows').length);\n    }),\n    actions: {\n        toggleAllBatch() {\n            this.set('isMaxBatch',document.getElementById('maxBatchSwitch').checked);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        updateTable(property) {\n            if (property == \"raw\"){\n                this.set(\"linear\", false);\n                this.set(\"calib\", false);\n                this.set(\"depth\", false);\n            } else if (property == \"linear\") {\n                this.set(\"linear\", true);\n                this.set(\"calib\", false);\n                this.set(\"depth\", false);\n            } else if (property == \"calib\") {\n                this.set(\"linear\", false);\n                this.set(\"calib\", true);\n                this.set(\"depth\", false);\n            } else {\n                this.set(\"linear\", false);\n                this.set(\"calib\", false);\n                this.set(\"depth\", true);\n            }\n        },\n    }\n});\n","\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    router: service(),\n    batchSelectedRows:{},\n    isMaxBatch:false,\n    isVisibleCreateNewForm: false,\n    init() {\n        this._super(...arguments);\n    },\n    getVisibleReadings:Ember.computed('instrumentFreqEventData', function () {\n        if (this.get('instrumentFreqEventData')){\n            return this.get('instrumentFreqEventData').length\n        }else{\n            return 0;\n        }\n    }),\n    getTotalReadings:Ember.computed('instrumentFreqEventData', function () {\n        if (this.get('instrumentFreqEventData')){\n            return this.get('instrumentFreqEventData').get(\"meta\").pagination.total\n        }else{\n            return 0;\n        }\n    }),\n    anchorDistances: Ember.computed('instrument', function() {\n        let dist = ['X', 'Y','Z'];\n        return dist;\n    }),\n    getFreqEventData: Ember.computed(\"instrumentFreqEventProfiles\", \"instrumentFreqEventData\", \"globalDatetimeFormat\",function () {\n        const instrumentFreqEventProfiles = this.get('instrumentFreqEventProfiles');\n        const instrumentFreqEventData = this.get('instrumentFreqEventData');\n        const globalDatetimeFormat = this.get('globalDatetimeFormat')[\"value\"];\n        const standardizedFormat = \"YYYY-MM-DD HH:mm:ss.SSS\";\n        let data = [];\n        instrumentFreqEventData.forEach((dataObj, index)=>{\n            let rowObj = {};\n            rowObj[\"id\"] = dataObj[\"id\"];\n            rowObj[\"x\"] = dataObj[\"x\"][\"value\"];\n            rowObj[\"y\"] = dataObj[\"y\"][\"value\"];\n            rowObj[\"z\"] = dataObj[\"z\"][\"value\"];\n            rowObj[\"parent_id\"] = dataObj[\"parent\"]['id'];\n            const parsed = moment(dataObj['parent']['timestamp'], standardizedFormat, true);\n            rowObj['timestamp'] = globalDatetimeFormat ? parsed.format(`${globalDatetimeFormat}.SSS`) : parsed.format(standardizedFormat);\n            data.push(rowObj);\n        }) \n        // console.log(\"instrumentFreqEventProfiles \");\n        // console.log(instrumentFreqEventProfiles);\n        return data;\n    }),\n\n    \n    maxBatchSwitchObserver: Ember.observer('isMaxBatch', function() {\n        if(this.get('isMaxBatch')){\n            let length = this.get('instrumentFreqEventData').length;\n            let isCheckedRowsValues = {};\n            for(let i = 0; i < length; i ++){\n                isCheckedRowsValues[i] = true;\n\n            }\n            this.set(\"batchSelectedRows\", isCheckedRowsValues);\n        }else{\n            this.set(\"batchSelectedRows\", {});\n        }\n        // console.log(\"observer triggered \" + this.get('isMaxBatch'));\n        // console.log(\"observer triggered batchSelectedRows length \" + this.get('batchSelectedRows').length);\n    }),\n    actions: {\n        handleAction(actionCategory, rowDataObj){\n            const instrumentFreqEventProfiles = this.get(\"instrumentFreqEventProfiles\");\n            const instrument = this.get(\"instrument\");\n            switch(actionCategory){\n                case \"eventIDHotClick\":\n                    this.set(\"showLoading\", true);\n                    this.router.transitionTo('frequency-events.frequency-event', instrument.get(\"id\"), rowDataObj[\"parent_id\"], {\n                         queryParams: {\n                            page:-1,\n                            selectedFreqEventDate:rowDataObj[\"timestamp\"],\n                            advancedYAxisUnit:\"RAW\",\n                            analysis_category:\"raw\",\n                        } \n                    });\n                    \n            }\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    isVisibleCreateNewForm: false,\n    anchorDistances: Ember.computed('gateway', function() {\n        return [\"Firmware Version\", \"Voltage\",\"RSSI\",\"Carrier\",\"Readings\",\"Uptime in Seconds\",\"Reconnection Attempts\",\"Uploads\"]\n}),\n\ngetGatewayData: Ember.computed('gateway', 'gatewayData', function() {\n    let fields = [0,2,3,4,5,6,7,8];\n    let items = [];\n    // Perform filtering logic on initial data\n    const filteredData = this.get('gatewayData');\n    if (filteredData) {\n      filteredData.forEach(item => {\n        let values = [];\n        let firmware = item.values[0];\n        let voltage = item.values[2];\n        let rssi = item.values[3];\n        let carrier = item.values[4];\n        let readings = item.values[5];\n        let uptime = item.values[6];\n        let recon = item.values[7];\n        let uploads = item.values[8];\n        let temperature = item.values[item.values.length -2];\n        items.push({ id: item.id, values: {'firm_version':firmware,'voltage':voltage,'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads, 'temperature': temperature}, \n        originalValue: item, save_values:{'firm_version':firmware,'voltage':voltage, 'rssi': rssi, 'carrier': carrier, 'readings':readings,'uptime':uptime,'recon': recon, 'uploads': uploads , 'temperature': temperature} });\n      });\n    }        \n    \n    return items;\n  }),\n\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n          // console.log(\"Update property: \" + propertyValue);\n          this.set(propertyName, propertyValue);\n        }\n    }\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class LeftAxisDropdown extends Component.extend({}) {\n    @service router;\n    @service store;\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    actions = {\n        tGraph(id, modelName, params) {\n            // console.log(\"in LeftAxisDropdown:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\")\n            this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, modelName, params);\n        },\n    }\n}","import Ember from 'ember';\nimport Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class TemporalGatewayRightAxisDropdown extends Component.extend({\n}) {\n    @service router;\n    @service store;\n\n    isAuthenticated = true;\n    selectedVendor= null;\n    selectedModel= null;\n    editing= 0;\n    selectedOption = null;\n    \n    actions = {\n        setSelection(selected) {\n            this.set('selectedOption', selected)\n            // console.log(this.get('selectedOption'))\n        },\n    }\n}","define(\"geotechnical-data-platform-new/components/video-layer\", [\"exports\", \"ember-leaflet/components/video-layer\"], function (_exports, _videoLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _videoLayer.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/components/welcome-page\", [\"exports\", \"ember-welcome-page/components/welcome-page\"], function (_exports, _welcomePage) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _welcomePage.default;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n    \n    isEditing: false,\n    tagName: 'tr',\n    classNameBindings: ['isEditing:active-cell-values-inline-edit', 'isZeroTimestampClass'],\n    isRowDeleteConfirmationDialog: {},\n    rdcd: {},\n    instrumentType: null,\n\n    setRDCD(value) {\n        let rdcd = this.get('isRowDeleteConfirmationDialog');\n        rdcd[value[0]] = value[1];\n        this.set('isRowDeleteConfirmationDialog', rdcd);\n        this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n    },\n\n    valueOver: Ember.computed('instrument',function(self, value) {\n        //console.log(value);\n        return true;\n    }),\n\n    tableRowIndexString: Ember.computed('tableRowIndex', function() {\n        return String(this.get('tableRowIndex'));\n    }),\n\n    displacementValueObjectValues: Ember.computed('displacementValueObject', function() {\n        let obj = this.get('displacementValueObject.values');\n        let instType = this.get('instrumentType').get('title');\n        return Object.assign({}, obj); // convert array to an object, to be able to get it's items by index in handlebars template\n    }),\n\n    temperatureValuesObject: Ember.computed('temperatureValuesModel', function() {\n        return this.get('temperatureValuesModel').objectAt( this.get('tableRowIndex') );\n    }),\n\n    temperatureObjectValue: Ember.computed('temperatureValuesObject', function() {\n        let temporaryTemperature = null;\n        try{\n            temporaryTemperature = this.get('temperatureValuesObject').get('values')[0].toFixed(1);\n        }\n        catch(e){\n            temporaryTemperature = null;\n        }    \n        return temporaryTemperature;\n\n    }),\n\n    actions: {\n        edit() {\n            this.set('isEditing', true);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n            //return this.$().attr({ tabindex: 1 }), this.$().focus(); // brings the view into focus in order to capture keyUps.\n        },\n        save() {\n            let _this = this;\n            // save displacement values\n            let obj = Object.values(this.get('displacementValueObjectValues'));\n\n            let instrumentType = this.instrumentType.get('title');\n\n            if(instrumentType == 'Wire' || instrumentType === 'Tilt' || instrumentType === 'BluVibe' || instrumentType === 'Piezo') {\n                obj.unshift(0);\n            }\n\n            this.get('displacementValueObject').set('values', obj ); //set values property to displacementValueObjectValues converted to array\n            this.get('displacementValueObject').save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                let instType = instrumentType;\n                if (instType == 'Wire' || instType === 'Tilt' || instType === 'BluVibe' || instrumentType === 'Piezo') {\n                    // if displacement-value was successfully saved to DB, then display it\n                    //console.log(results._internalModel._record.get('values'));\n                    let values = results._internalModel._record.get('values');\n                    values.shift();\n                    results._internalModel._record.set('values', values);\n                }\n                // save temperature\n                _this.get('temperatureValuesObject').set('values', [_this.get('temperatureObjectValue')] );\n                _this.get('temperatureValuesObject').save({adapterOptions: _this.get('instrumentId')});\n\n            })\n            .catch(function(reason){\n                console.log(reason);\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n\n\n            // hide form\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        },\n        cancel() {\n            // reset displacementValueObjectValues and temperatureObjectValue to original values\n            //this.set('displacementValueObjectValues', Object.assign({}, this.get('displacementValueObject.values')) );\n            //this.set('temperatureObjectValue', this.get('temperatureValuesObject').get('values')[0]);\n\n            this.set('isEditing', false);\n            //this.$('.has-tooltip-info').tooltip('hide'); //hide any active tooltips\n        },\n        remove(){\n            let _this = this;\n            \n            let instrument_id = this.get('instrumentId');\n            \n            let displacementValueObject = this.get('displacementValueObject'),\n                temperatureValuesObject = this.get('temperatureValuesObject'),\n                displacementValuesModel = this.get('displacementValuesModel'),\n                temperatureValuesModel = this.get('temperatureValuesModel')\n            ;\n            let list = this.get('isRowDeleteConfirmationDialog');\n            let value = list[displacementValueObject.id] ? false : true;\n            this.setRDCD([displacementValueObject.id,value]);\n\n            temperatureValuesObject.deleteRecord();\n            temperatureValuesObject.get('isDeleted');\n            temperatureValuesObject.save({adapterOptions: instrument_id}).then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                temperatureValuesModel.removeObject(temperatureValuesObject);\n            });\n\n            displacementValueObject.deleteRecord();\n            displacementValueObject.get('isDeleted');\n            displacementValueObject.save({adapterOptions: this.get('instrumentId')}).then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                displacementValuesModel.removeObject(displacementValueObject);\n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            let list = this.get('isRowDeleteConfirmationDialog');\n            let value = list[id] ? false : true;\n            this.setRDCD([id,value]);\n            //this.set('isRowDeleteConfirmationDialog', list); //update isVisibleRowDetails variable for each single row\n            //this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n        },\n    },\n    didRender(){\n        //this.$('.has-tooltip-info').tooltip(); //activate tooltips\n        //console.log(this.get('instrumentType').get('title'));\n    },\n    keyDown: function(e) {\n        if (e.keyCode === 27) {\n            this.send('cancel');\n        }\n        if (e.keyCode === 13) {\n            this.send('save', this.get('object'));\n        }\n    }\n});\n\n\n// function escape(myStr) {\n//     return myStr.replace('.', ',');\n// }","import Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\nimport moment from 'moment';\n\nfunction resetNewAlertObject(_this) {\n    let newAlertObject = {\n        'repeatWindow': '',\n        'metric': 'DISP',\n        'direction': 'GT',\n        'value': null,\n        'severity': 'HIGH',\n        'response': 'VP',\n        'target': '',\n        'message': '',\n        'windowType': 'NR',\n        'windowLength': 1,\n        'method': 'IMM',\n        'creator': '',\n        'refAnchor': 'ch0',\n        'inverted': false,\n        'creationDate': null,\n        'timeReference': '',\n    };\n    _this.set('creationTimestamp',null);\n    _this.set('newAlertObject', newAlertObject);\n    //console.log(_this.get('newAlertObject'));\n}\n\nexport default Ember.Component.extend({\n    init() {\n        this._super(...arguments);\n        resetNewAlertObject(this);\n    },\n    //@service session;\n    //@service currentUser;\n    //@service store;\n    store: Ember.inject.service(),\n    session: Ember.inject.service(),\n    newAlertObject: {},\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    installDate: null,\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    createMessage: '',\n\n    isPerm: true,\n    isActive: true,\n    repeats: false,\n    inverted: false,\n    creationTimestamp: null,\n    isAuthenticated: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n    activeChannels: [],\n\n    isRefAnchorDisabled: true,\n    isTimeReferenceDisabled: true,\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n\n    phoneNumber: Ember.computed('newAlertObject.target', function() {\n        let target = this.get('newAlertObject.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    timeReference: Ember.computed(function(){\n    \n        let store = this.get('store');\n        let instrument = store.peekRecord('instrument', this.get('id'));\n        let timeReference = this.get('newAlertObject').timeReference;\n\n        console.log(\"timeReference::: \" + timeReference);\n        \n        if(timeReference != null && timeReference != undefined && timeReference != '') {\n            console.log(\"timeReference already set::: \" + timeReference);\n        }else{\n            if(instrument.zeroTimestamp != null && instrument.zeroTimestamp!= undefined && instrument.zeroTimestamp!= '') {\n                console.log(\"timeReference not set finding instrument zero date::: \" + instrument.zeroTimestamp);\n                // this.get('newAlertObject')\n                timeReference = instrument.zeroTimestamp;\n            }\n            else {\n                timeReference = null;\n            }\n        }\n        // this.set('timeReference', timeReference);\n        console.log(\"returning: timeReference::: \" + timeReference);\n        return timeReference;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    username: computed('',function() {\n        return this.get('session').data.authenticated['user'];\n    }),\n\n    channelCount: computed('id', function() {\n        var id = this.get('id');\n        //console.log(id);\n        var pos = (id.length === 9 ? 5 : 6);\n        var count = id.substring(4,pos);\n        //console.log(count);\n        return count-1;\n    }),\n\n    onMetricChanged: observer('newAlertObject.metric', function() {\n        let metric = this.get('newAlertObject.metric');\n        if(metric === 'TIME') {\n            this.set('newAlertObject.method', 'IMM');\n            this.set('newAlertObject.refAnchor', 'ch0');\n            this.set('newAlertObject.inverted', false);\n        }\n\n        if(metric === 'REL_DISP'){\n            console.log(\"REL_DISP\");\n            this.set(\"isRefAnchorDisabled\", false);\n            this.set(\"isTimeReferenceDisabled\", false);            \n        }\n        \n        if(metric === 'DISP'){\n            console.log(\"DISP\");\n            this.set(\"isRefAnchorDisabled\", true);\n            this.set(\"isTimeReferenceDisabled\", true);\n        }\n    }),\n\n    onMethodChanged: observer('newAlertObject.method', function() {\n        let method = this.get('newAlertObject.method');\n        if(method === 'IMM') {\n            this.set('newAlertObject.windowLength', 1);\n            this.set('newAlertObject.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('newAlertObject.response', function() {\n        let response = this.get('newAlertObject.response');\n        if(response == 'VP') {\n            this.set('newAlertObject.target', '');\n        }\n    }),\n\n    actions: {\n        handleActiveSelectChange(event) {\n            this.activeChannels = [];\n            const selectedOptions = Array.from(event.target.selectedOptions);\n            const selectedValues = selectedOptions.map(option => option.value);\n            this.activeChannels = selectedValues;\n        },\n\n        checkChanged(object) {\n            this.set(object[0],object[1]);\n        },\n        staticChanged() {\n            this.set(\"isPerm\",document.getElementById('newAlertStaticDynamic').checked);\n        },\n        // activeChanged() {\n        //     this.set(\"isActive\",document.getElementById('newAlertEnabled').checked);\n        // },\n        repeatChanged() {\n            this.set(\"repeats\",document.getElementById('newAlertRepeat').checked);\n        },\n        invertChanged() {\n            this.set(\"inverted\",document.getElementById('newAlertInvert').checked);\n        },\n\n        // toggleActive() {\n        //     let big = !this.get(\"activeExpanded\");\n\n        //     if(big) {\n        //         this.set('activeSize',this.get('channelCount'));\n        //         this.set('buttonSymbol', '-');\n        //         this.set('activeLabel','Collapse');\n        //     } else {\n        //         this.set('activeSize',2);\n        //         this.set('buttonSymbol', '+');\n        //         this.set('activeLabel','Expand');\n        //     }\n        //     this.set('activeExpanded', big);\n        // },\n        createAlert(object){\n            let _this = this,\n                store = this.get('store'),\n                newAlertObject = this.get('newAlertObject')\n            ;\n\n            // let selector = this.element.querySelector('[name=\"chan_select\"]');\n\n            // let selected = {};\n\n            // for(const elem of selector.selectedOptions)\n            // {\n            //     selected[elem.value] = true;\n            // };\n\n            this.set('isVisibleError',false);\n            this.set('fieldError',false);\n\n            let error = false;\n\n            let timeReference = this.get('timeReference');\n            const unallowedValues = [null,undefined,''];\n            // since we set timeReference on initialization, if it's null or an empty string, it's because the user changed it\n            if ( unallowedValues.includes(timeReference) ){\n                console.log(\"setting timeReference to null\");\n                newAlertObject.timeReference = null; \n                timeReference = null; \n            }\n            else {\n                console.log(\"Formatting time reference::: \" + timeReference);\n                // newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n                newAlertObject.timeReference = timeReference\n                console.log(\"Formatting time reference::: \" + newAlertObject.timeReference);               \n            }\n            \n            if(!error) {\n                newAlertObject.isTriggered = false;\n                newAlertObject.isHandled = false;\n                newAlertObject.initTriggerStamp = null;\n                newAlertObject.handleStamp = null;\n                Ember.set(newAlertObject, 'creationDate', moment().format('YYYY-MM-DD HH:mm:ss'));\n                //newAlertObject.creationDate = _this.get('creationTimestamp');\n                newAlertObject.creator = this.username;\n                newAlertObject.isPerm = _this.get('isPerm');\n                newAlertObject.isActive = _this.get('isActive');\n                newAlertObject.repeats = _this.get('repeats');\n                newAlertObject.inverted = _this.get('inverted');\n                newAlertObject.instrument = store.peekRecord('instrument', this.get('id'));\n\n                if (newAlertObject.instrument !== null)\n                {\n                    let newAlert = null;\n\n                    if(!error) {\n                        try {\n                            newAlert = store.createRecord('alert', newAlertObject);\n                        } catch (err) {\n                            this.set('isVisibleError',true);\n                        }\n                    }\n\n                    if(!error) {\n\n                        let val = false;\n            \n                        let alertObjectValue = this.get('newAlertObject.value');\n\n                        let respType = this.get('newAlertObject.response');\n                        let addType=\"\";\n\n                        //Check if there are empty fields\n                        let value = this.get('newAlertObject.value');\n                        let cb = this.get('newAlertObject.creator');\n                        let wl = this.get('newAlertObject.windowLength');\n                        let target = this.get('newAlertObject.target');\n                        let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n                        /*\n                        console.log(value);\n                        console.log(cb);\n                        console.log(wl);\n                        console.log(sel);\n                        */\n\n                        this.setError('isVisibleError',false);\n                        this.setError('emptyBoldError',false);\n                        this.setError('noActChError',false);\n                        this.setError('nonNumericValueError',false);\n                        this.setError('wLError',false);\n                        this.setError('wLNegError',false);\n                        this.setError('targetError',false);\n                        this.setError('phoneNumError', false);\n                        this.setError('authError', false);\n\n\n                        // console.log(document.getElementById(\"newAlertObjectTarget\"));\n                       \n                        //If bolded values arn't entered\n                        if ((val.length == 0) || (cb.length == 0) || (wl.length == 0) || (value == null || value.length == 0)) {\n                            this.setError('isVisibleError',true);\n                            this.setError('emptyBoldError',true);\n                            //_this.set('createMessage', \"Please ensure all bolded entries are completed\");\n                        \n                        //If no channels are selected\n                        } else if ((sel == -1) && (this.get('newAlertObject.metric') != 'TIME')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('noActChError',true);\n                            //_this.set('createMessage', \"Please ensure you've selected at least one active channel\");\n\n                        //If the value is a non numeric\n                        }else if (isNaN(alertObjectValue)){\n                            this.setError('isVisibleError',true);\n                            this.setError('nonNumericValueError',true);\n                            // _this.set('createMessage', \"Please enter a valid numeric for the value\");\n\n                        //If a negative or 0 is entered for window length\n                        } else if ((this.get('newAlertObject.method') != 'IMM') && (wl <= 1)  && (this.get('newAlertObject.windowType') != 'LT')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLError',true);\n                            //_this.set('createMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n                        } else if (wl < 1) {\n                            this.setError('isVisibleError',true);\n                            this.setError('wLNegError',true);\n                            //_this.set('createMessage', \"Please enter a window length of greater than or equal to 1\");\n            \n                        } else if (respType=='TRIG') {\n                            document.getElementById(\"newAlertObjectTarget\").value = \"\";\n                            //_this.set('createMessage', \"Alert via Alarm will be available in future update\");            \n                    \n\n                        } else if((typeof target === 'undefined' || target === \"\") && (respType != 'VP')) {\n                            \n                            if (respType == 'EMAIL') {\n                                addType = 'email address';\n                            } else if (respType == 'SMS') {    \n                                addType = 'phone number';\n                            } else if (respType == 'TRIG') {\n                                addType = 'ip address';\n                            }\n                            \n                            this.setError('isVisibleError',true);\n                            this.setError('targetError',true);                \n                            //_this.set('createMessage', \"Please enter a target \" + addType);\n\n                        } else if ((!(target.includes(\"@\")))&&(respType=='SMS')) {\n                            this.setError('isVisibleError',true);\n                            this.setError('phoneNumError',true);\n                            //_this.set('createMessage', \"Please ensure you've added a carrier to the phone number\");\n                        \n                        } else { \n                            newAlert.save().then(function(results){\n                                val = true;\n                                // hide create new item form\n                                let newAnchorObject = null;\n                                let newAnchor = null;\n                                // console.log(error)\n                                // Loop through the selected values\n                                console.log(_this.activeChannels)\n                                _this.activeChannels.forEach(value => {\n                                    // console.log(error)\n                                    newAnchorObject = {};\n                                    newAnchorObject.alert = results;\n                                    newAnchorObject.selectedCh = value;\n\n                                    newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                    newAnchor.save().catch(function(reason) {\n                                        if (reason.errors[0].status == 403) {\n                                            _this.setError('isVisibleError',true);\n                                            _this.setError('authError',true);\n                                        }\n                                    });\n                                });\n                                // for(const elem of selector.selectedOptions) {\n                                //     // console.log(error)\n                                //     newAnchorObject = {};\n                                //     newAnchorObject.alert = results;\n                                //     newAnchorObject.selectedCh = elem.value;\n\n                                //     newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                                //     newAnchor.save();\n                                // }\n         \n        \n                                if(results.id != null) {\n                                    _this.get('submit')(results.id);\n                                } else {\n                                    this.setError('isVisibleError',true);\n                                    error = true;\n                                }\n                                //_this.set('isVisibleCreateNewForm', false);\n                            }).catch(function(reason) {\n                                if (reason.errors[0].status == 403) {\n                                    _this.setError('isVisibleError',true);\n                                    _this.setError('authError',true);\n                                }\n                                \n                            });\n                            //console.log(val);\n                            //if (!val){\n                            //    _this.set('createMessage', \"Please ensure all bolded values are entered\");\n                            //}\n                        }\n                    } \n                }\n            }\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n        // setPhoneNumber() {\n        //     console.log(\"alert.target:\" + this.get('alert.target'));\n        //     // this.set('alert.target', this.get('carrier'));\n        //     this.toggleProperty('showModal');\n        // },\n\n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n    }\n});","import Component from '@ember/component';\nimport Ember from 'ember';\nimport { computed, observer } from \"@ember/object\";\n\nfunction resetNewInstrumentObject(_this) {\n    _this.set('newInstrumentObject', {});\n    _this.set('zeroTimestamp', null);\n    _this.set('installDate', null);\n    _this.set('strokeLength', 0);\n}\n\n\nexport default class CreatePackInstrument extends Component.extend({\n    //@service session;\n    //@service currentUser;\n\n    modelList: computed('selectedVendor', function() {\n        let modelList = this.get('vwModels');\n        //console.log('test');\n        let shortModelList = [];\n\n        modelList.toArray().forEach(element => {\n            if (element.get('vwvendor').id === this.get('selectedVendor')) {\n                shortModelList.push(element);\n            }\n        });\n\n        return shortModelList;\n    }),\n\n    getModelById(modelId) {\n        let modelList = this.get('modelList');\n        return modelList.find(model => model.get('id') === modelId);\n    },\n    is4500HH: computed('selectedModel', function() {\n        let selectedModel = this.get('selectedModel');\n        let model = this.getModelById(selectedModel);\n\n        if (model != null){\n            return model.modelName === '4500-HH';\n        } else {\n            return false;        \n        }\n    }),\n    isTypeGeoPt: computed('selectedModel', function() {\n        let selectedVendor = this.get('selectedVendor');\n        let selectedModel = this.get('selectedModel');\n\n        if (selectedModel != \"\" && selectedModel != null)\n            if (selectedVendor == 2)\n                return true;\n \n        return false;\n    }),\n    isTypeRocPws: computed('selectedModel', function() {\n        let selectedVendor = this.get('selectedVendor');\n        let selectedModel = this.get('selectedModel');\n\n        if (selectedModel != \"\" && selectedModel != null)\n            if (selectedVendor == 1)\n                return true;\n        \n        return false;\n    }),\n\n    vwProperties: [],\n\n    authError:false,\n    isAuthenticated:true,\n    newInstrumentObject:{},\n    headAt:'HAC',\n    zeroTimestamp:null,\n    installDate:null,\n    selectedVendor:null,\n    selectedModel:null,\n    calcCoef1:null,\n    calcCoef2:null,\n    calcCoef3:null,\n    calcCoef4:null,\n    calcCoef5:null,\n   \n    project: null,\n    level: null,\n\n    \n    actions: {\n\n        \n        setProject(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(value) {\n            const selectedId = value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        setVendor(vendorID){\n            this.set('selectedVendor', vendorID);\n            this.set('selectedModel', null);\n            this.send('setModel', null);\n        },\n\n        setModel(modelID){\n            this.set('selectedModel', modelID);\n        },\n        setValue(prop, val){\n            //console.log('setting' + prop + val);\n            this.set(prop,val);\n        },\n        createInstrument(object){\n\n            let _this = this,\n            store = this.get('store'),\n            newInstrumentObject = this.get('newInstrumentObject');\n\n            this.setError('isVisibleError',false);\n            this.setError('duplicateError',false);\n            this.setError('fieldError',false);\n\n            let error = false;\n\n            newInstrumentObject.id = this.get('id');\n\n            newInstrumentObject.instrumentType = store.peekRecord('instrument-type', this.get('typeID'));\n            newInstrumentObject.headAt = store.peekRecord('head-at', this.get('headAt'));\n            newInstrumentObject.active = true;\n\n            if(typeof newInstrumentObject.id === 'undefined' || newInstrumentObject.id === \"\") {\n                error = true;\n                this.setError('fieldError',true);\n                this.setError('isVisibleError',true);\n            }\n\n            if (this.get('zeroTimestamp') != null) {\n                newInstrumentObject.zeroTimestamp = moment(this.get('zeroTimestamp'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n\n            if (this.get('installDate') != null) {\n                newInstrumentObject.installDate = moment(this.get('installDate'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            }\n            console.log(\"level::::: \" + this.level);\n            newInstrumentObject.project = this.get('project');\n            newInstrumentObject.level = this.get('level');\n\n            // console.log(Ember.get(this, 'duplicateError'));\n\n            let newInstrument = null;\n            let dup = false;\n            if(!error) {\n                try {\n                    newInstrument = store.createRecord('instrument', newInstrumentObject);\n                } catch (err) {\n                    this.setError('isVisibleError',true);\n                    //console.log(this.get('prevDup'));\n                    if(err.message.includes('has already been used')) {\n                        //console.log('duplicate');\n                        this.setError('duplicateError',true);\n                        \n                        error = true;\n                        dup = true;\n                    }\n                    // console.log(err.message);\n                }\n            }\n            \n            this.setError('authError', false);\n\n\n            if (!error) {                \n                newInstrument.save().then(function(results){\n\n                    let model = _this.get('vwModels').findBy('id', _this.get('selectedModel'));\n\n                    if(newInstrumentObject.instrumentType.id === '12') {\n                        if(results.id != null) {\n                            let anchorCount = parseInt(newInstrumentObject.id.substring(4,newInstrumentObject.id.length > 9 ? 6 : 5)) - 1;\n                            for(var ctr = 0; ctr <= anchorCount; ctr++) {\n                                store.createRecord('anchor', {number: ctr, distance: ctr, instrument: results}).save();\n                            }\n                            \n                            _this.createVwProperties(results);\n                            \n                            // create vwProperty records\n                            _this.vwProperties.forEach((vwPropertyData, index) => {\n\n                                // console.log(\"vwPropertyData.port: \" + vwPropertyData.port);\n                                let vwp = store.createRecord('vwproperty', {port: vwPropertyData.port, instrument: vwPropertyData.instrument});\n                                vwp.save().then(propertyResults => {\n                                // console.log(\"property saved: Port: \" + propertyResults.port);\n                                }).catch(function(reason) {\n                                    console.log(\"property save failed: \" + reason);\n                                });\n                            });\n                        }\n                    }\n\n                    if(results.id != null) {\n                        _this.get('submit')(results.id);\n                    } else {\n                        this.setError('isVisibleError',true);\n                        error = true;\n                    }\n                }).catch(function(reason) {\n                    \n                    _this.setError('isVisibleError',true);\n                    _this.setError('authError',true);\n                });\n            }\n        }\n    },\n    createVwProperties(instrument) {\n        this.set('vwProperties', []);\n        let channelsNum = 0;\n        channelsNum = parseInt(instrument.get(\"channelsNum\") / 2);\n        console.log(\"channelsNum:::::::::::: \" + channelsNum)\n        for (let channel = 1; channel <= channelsNum; channel++) {\n            let vwProperty = {\n                port: channel,\n                instrument: instrument\n            };\n            this.vwProperties.push(vwProperty);\n        }\n    }\n\n}){\n    init() {\n        super.init(...arguments);\n        resetNewInstrumentObject(this);\n    }\n\n}","import Ember from 'ember';\nimport moment from 'moment';\nimport getOwner from \"ember-owner/get\";\n\nfunction resetNewRawDataValueObject(_this) {\n    let displacementValueObjectValues = _this.get('displacementValueObjectValues');\n\n    // reset variables to defaults\n    _this.set('newTimestampValue', moment().format(_this.get('dateFormat')));\n    _this.set('temperatureObjectValue', 0);\n    Object.keys(displacementValueObjectValues).forEach(function(key,index) {\n        displacementValueObjectValues[key] = 0;\n    });\n}\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    router: Ember.inject.service(),\n    isVisibleCreateNewForm: true,\n    dateFormat: 'YYYY-MM-DD HH:mm:ss',\n    dateTimePicker: null, // dateTimePicker object\n    temperatureObjectValue: 0,\n    newTimestampValue: null,\n    // newTimestampValue: Ember.computed('dateFormat', function() {\n    //     return moment().format(this.get('dateFormat'));\n    // }),\n\n    newDisplacementValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    newTemperatureValuesObject: Ember.computed('newTimestampValue', function() {\n        return {\n            id: this.get('newTimestampValue')\n        };\n    }),\n\n    // look for isVisibleCreateNewForm variable change and reset newDisplacementValuesObject object if create new form was called twice\n    handleIsVisibleCreateNewFormChange: Ember.observer('isVisibleCreateNewForm', function(){\n        if ( this.get('isVisibleCreateNewForm') ) {\n            resetNewRawDataValueObject(this);\n        }\n    }),\n\n    displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i < this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    // displacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n    //     let displacementValueObjectValues = [];\n    //     for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n    //         displacementValueObjectValues[i] = 0;\n    //     }\n    //     return displacementValueObjectValues;\n    // }),\n\n    newDisplacementValueObjectValues: Ember.computed('instrumentAnchors', function() {\n        let displacementValueObjectValues = [];\n        for (let i = 0; i <= this.get('instrumentAnchors').length - 1; i++) {\n            displacementValueObjectValues[i] = 0;\n        }\n        return displacementValueObjectValues;\n    }),\n\n    actions: {\n        saveNew(){\n            let _this = this,\n                store = this.get('store'),\n                newDisplacementValuesObject = this.get('newDisplacementValuesObject'),\n                newTemperatureValuesObject = this.get('newTemperatureValuesObject'),\n                displacementValues = this.get('displacementValues'),\n                temperatureValues = this.get('temperatureValues')\n            ;\n\n            newTemperatureValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newTemperatureValuesObject.values = [this.get('temperatureObjectValue')];\n\n            const newTemperatureValues = store.createRecord('temperature-value', newTemperatureValuesObject);\n            // save new displacement-value to DB\n            const savedTemperatureValuesObject = newTemperatureValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                //_this.set('isVisibleCreateNewForm', false);\n\n                // if displacement-value was successfully saved to DB, then display it\n                //temperatureValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n            });\n\n            newDisplacementValuesObject.id = moment(this.get('newTimestampValue'),'YYYY MM DD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss');\n            newDisplacementValuesObject.values = Object.values(this.get('newDisplacementValueObjectValues'));\n            \n            newDisplacementValuesObject.values.unshift(\"0\");\n\n            const newDisplacementValues = store.createRecord('displacement-value', newDisplacementValuesObject);\n            // save new displacement-value to DB\n            const savedDisplacementValuesObject = newDisplacementValues.save({adapterOptions: this.get('instrumentId')}).then(function(results){\n                // hide create new item form\n                _this.set('isVisibleReadingCreated', true);\n                _this.set('isVisibleCreateNewForm', false);\n                // if displacement-value was successfully saved to DB, then display it\n                //results._internalModel._data.values.shift();\n                //displacementValues.unshiftObject(results._internalModel); // https://github.com/emberjs/data/issues/3313\n                const currentRouteName = _this.get(\"router.currentRouteName\");\n                const currentRouteInstance = getOwner(_this).lookup(`route:${currentRouteName}`);\n                currentRouteInstance.refresh();\n                \n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.setProp('permissionError', true);\n                }\n            });\n        },\n        cancelNew(object){\n            // hide create new item form\n            this.set('isVisibleCreateNewForm', false);\n            // reset all variables\n            resetNewRawDataValueObject(this);\n        }\n    },\n    didRender() {\n        let _this = this;\n        // let dateTimePicker = this.$(\".datetimepicker-input\").datetimepicker({\n        //     format: _this.get('dateFormat'),\n        // }).on('dp.change', function(e) {\n        //     if (e.date) {\n        //         _this.set(e.currentTarget.id, e.date.format(_this.get('dateFormat')));\n        //     } else {\n        //         _this.set(e.currentTarget.id, null);\n        //     }\n        // });\n        // this.set('dateTimePicker', dateTimePicker);\n\n    },\n    willDestroyElement() {\n        if (this.get('dateTimePicker')) {\n            this.get('dateTimePicker').datetimepicker(\"destroy\");\n        }\n\n    },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\nimport { computed, observer } from \"@ember/object\";\n//import alertAnchor from '../models/alert-anchor';\nimport $ from 'jquery';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../../utils/api-config';\n\nexport default Ember.Component.extend({\n\n    async init() {\n        \n        this._super(...arguments);\n\n        this.set(\"loading\", true);\n        let initialAnchors = await this.preLoadActiveChannels();\n        this.set(\"referenceAnchors\", initialAnchors);\n        this.set(\"loading\", false);\n\n    },  \n    store: Ember.inject.service(),\n    ajax: Ember.inject.service(),\n    tr: null,\n    instID:\"\",\n    activeExpanded: false,\n    buttonSymbol: '+',\n    activeLabel: 'Expand',\n    saveMessage: '',\n    updatedAnchors: null,\n    anchors: null,\n    initTriggerStamp: '',\n    //anchEmpty: true,\n\n    isVisibleError: false,\n    emptyBoldError: false,\n    noActChError: false,\n    nonNumericValueError: false,\n    wLError: false,\n    wLNegError: false,\n    targetError: false,\n    phoneNumError: false,\n    authError: false,\n\n    editing: 0,\n    isShowingModal: false,\n    showModal: false,\n    phoneNumber: '',\n    carrier: '',\n\n    isValidPhoneNumber: function(phoneNumber) {\n        const regex = /^(\\+\\d{1,4}[-\\s]?|)\\d{1,4}[-\\s]?\\(?\\d{1,3}?\\)?[-\\s]?\\d{1,4}[-\\s]?\\d{1,4}([-]\\d{1,5})?$/;\n        return regex.test(phoneNumber);\n    },\n      \n\n    phoneNumber: Ember.computed('alert.target', function() {\n        let target = this.get('alert.target');\n        const atIndex = target.indexOf('@');\n        if (atIndex < 1) {\n            return target;\n        }\n        console.log(\"phoneNumber:::: \" + target.substring(0, atIndex));\n        return target.substring(0, atIndex);          \n    }),\n\n    handleAlertObjectChange: observer('tr', function() {\n        console.log('Object Changed!');\n    }),\n\n        onTimeReferenceChanged: observer('timeReference', function() {\n        let timeReference = this.get('timeReference');\n        this.set('alert.timeReference', timeReference);\n        \n    }),\n\n    onCarrierChanged: observer('carrier', function() {\n        let carrier = this.get('carrier');\n        console.log('carrier changed' + carrier);\n        this.set('carrier', carrier);\n    }),\n\n    onMetricChanged: observer('alert.metric', function() {\n        let metric = this.get('alert.metric');\n        if(metric === 'TIME') {\n            this.set('alert.method', 'IMM');\n            this.set('alert.refAnchor', 'ch0');\n            this.set('alert.inverted', false);\n            this.send('updateSelectedAnchors',document.getElementById(\"chan_select\"));\n        }\n    }),\n\n    onMethodChanged: observer('alert.method', function() {\n        let method = this.get('alert.method');\n        if(method === 'IMM') {\n            this.set('alert.windowLength', 1);\n            this.set('alert.windowType', 'NR');\n        }\n    }),\n\n    onResponseChanged: observer('alert.response', function() {\n        let response = this.get('alert.response');\n        if(response == 'VP') {\n            this.set('alert.target', '');\n        }\n    }),\n\n    preLoadActiveChannels: async function (){\n        // console.log(\"called preLoadActiveChannels\")\n        let anchors = await this.store.findRecord('alert',this.get('alert').get('id'), { reload: true }).then(async function(alertObj) {\n\n            let channels = [];\n            let anchors = alertObj.get(\"anchors\");\n            anchors.forEach( (anchor) => {\n                channels.push(anchor.get('selectedCh'))\n              });\n\n            return anchors;\n        });\n\n        let isSelected = {};\n    \n        anchors.forEach(element => {\n\n            isSelected[element.selectedCh] = true;\n            // console.log(\"anchor2 : \" + element.selectedCh);\n        });\n        \n        // console.log(\"isSelect \");\n        // console.log(isSelected);\n        return isSelected;\n    },\n    channelCount: Ember.computed('instID', function() {\n        //console.log(this.get('alert').get('refAnchor'));\n        let instrument = this.get('alert').instrument;\n        let instID = this.get('instID');\n\n        if(instID===\"\") {\n            instID = instrument.get('id');\n        }\n        let pos = instID.length === 9 ? 5 : 6;\n        let numChans = parseInt(instID.substring(4,pos));\n        //console.log(numChans);\n        return numChans-1;\n    }),\n\n    activeSize: Ember.computed(function() {\n        return this.get('channelCount') < 8? this.get('channelCount'): 7;\n    }),\n\n    creationDateText: Ember.computed('instID', function() {\n        let date = this.get('alert').creationDate;\n        return moment(date);\n    }),\n\n    triggeredTimeText: Ember.computed('initTriggerStamp', function() {\n        let date = this.get('alert').initTriggerStamp;\n        return moment(date);\n    }),\n\n    triggerTestAlert:function(id){\n        let url = getApiBaseUrl() + \"/alert-test-trigger/\" + id + \"/\";\n        console.log(\"Called TestTriggerAlert, the id is \" + id)\n        $.ajax({\n            method: \"POST\",\n            url: url,\n            headers: {\n                Authorization: 'Bearer ' + localStorage.token  \n            },\n        });\n          \n    },\n\n    // success(post) {\n    //     console.log(\"success\");\n    //     //console.log(post);\n    //     //console.log(this);\n    //     //this.set('saving',false);\n    //     //this.set('saved',true);\n    //     //this.set('saveFailed',false);\n    // },\n    // failure(reason) {\n    //     console.log(\"failure\");\n    //     //console.log(reason);\n    //     //this.set('saving',false);\n    //     //this.set('saved',false);\n    //     //this.set('saveFailed',true);\n    //     //console.log('help?');\n    // },\n    actions: {\n\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n\n        updateSelectedAnchors(thing) {\n            let update = null;\n            if (thing instanceof Event)\n                update = $(thing.target).val();\n            else\n                update = $(thing).val();\n            let dict = {};\n            update.forEach(function(obj) {\n                dict[obj] = true;\n                return dict;\n            });\n\n            this.set('updatedAnchors', dict);\n        },\n        saveAlert() {\n            this.set(\"edited\", false);\n            const _this = this;\n            const store = this.get('store');\n            let tr = _this.get('alert');\n\n            //get target value\n            let alertObjectTarget = this.get('attrs.alert.value.target');\n            \n            //get response type \n            let respType = this.get('attrs.alert.value.response');\n            \n            //get value\n            let alertObjectValue = this.get('attrs.alert.value.value');\n\n            //notarget is used to see if no target is selected when one should be\n            let noTarget = false;\n            let addType = \"\";\n\n            //convert the response type to a human friendly string\n            if((typeof alertObjectTarget === 'undefined' || alertObjectTarget === \"\") && (respType != 'VP')) {\n                noTarget = true;\n                \n                if (respType == 'EMAIL') {\n                    addType = 'email address';\n                } else if (respType == 'SMS') {    \n                    addType = 'phone number';\n                } else if (respType == 'TRIG') {\n                    addType = 'ip address';\n                }\n            }\n\n            //Check active channels\n            let updatedAnchors = this.get('updatedAnchors');\n            // console.log(updatedAnchors);\n            if ((updatedAnchors != null)) {\n                let anchors = this.get('referenceAnchors');\n\n                let changes = new Map();\n                \n                //remove old values\n                for(var key in anchors) {\n                    if (!updatedAnchors.hasOwnProperty(key)) {\n                        changes.set(key, false);\n                    }\n                }\n\n                //add new values\n                for(var key in updatedAnchors) {\n                    if (!anchors.hasOwnProperty(key)) {\n                        changes.set(key, true);\n                    }\n                }\n\n                let anchorsFinal = tr.get('anchors');\n                let newAnchorObject = null;\n\n                for (const [key, value] of changes.entries()) {\n                    if(value) {\n                        newAnchorObject = {};\n                        newAnchorObject.alert = tr;\n                        newAnchorObject.selectedCh = key;\n\n                        let newAnchor = store.createRecord('alert-anchor', newAnchorObject);\n                        newAnchor.save();\n                    } else {\n                        anchorsFinal.forEach(element => {\n                            if(element.get('selectedCh') === key) {\n                                element.destroyRecord();\n                            }\n                        });\n                    }\n                }\n\n                let result = store.findRecord('alert-anchor',tr.id).then(function(post) {\n                    anchorsFinal = post.get('anchors');\n                });\n\n                this.set('updatedAnchors', null);\n                this.set('anchors', anchorsFinal);\n            }\n            \n\n            //Check if there are empty fields\n            let val = this.get('attrs.alert.value.value');\n            let cb = this.get('attrs.alert.value.creator');\n            let wl = this.get('attrs.alert.value.windowLength');\n            let sel = document.getElementById(\"chan_select\").selectedIndex;\n\n            //get response type \n            //let respType = this.get('attrs.alert.value.response');\n\n            //get target value\n            //let alertObjectTarget = this.get('attrs.alert.value.target')\n\n            /*\n            console.log(val);\n            console.log((val == \"\" && val != 0));\n            console.log(val.length == 0);\n            console.log(val != 0);\n            console.log(val != '0');\n            */\n            //console.log(cb);\n            //console.log(wl);\n            //console.log(((respType=='SMS') && (alertObjectTarget.match(/^[0-9]+$/) == null)));\n            //console.log((alertObjectTarget.match(/^[0-9]+$/) == null));\n\n            this.setError('isVisibleError',false);\n            this.setError('emptyBoldError',false);\n            this.setError('noActChError',false);\n            this.setError('nonNumericValueError',false);\n            this.setError('wLError',false);\n            this.setError('wLNegError',false);\n            this.setError('targetError',false);\n            this.setError('phoneNumError', false);\n            this.setError('authError', false);\n\n\n            //If bolded values arn't entered\n            if ((val.length == 0) || (cb.length == 0) || (wl.length == 0)) {\n                this.setError('isVisibleError',true);\n                this.setError('emptyBoldError',true);\n                //_this.set('saveMessage', \"Please ensure you've enterred all bolded fields\");\n\n\n            //If no channels are selected\n            } else if ((sel == -1) && (this.get('attrs.alert.value.metric') != 'TIME')) {\n                this.setError('isVisibleError',true);\n                this.setError('noActChError',true);\n                //_this.set('saveMessage', \"Please ensure you've selected at least one active channel\");\n\n            //If the value is a non numeric\n            }else if (isNaN(alertObjectValue)){\n                this.setError('isVisibleError',true);\n                this.setError('nonNumericValueError',true);\n                //_this.set('saveMessage', \"Please enter a valid numeric for the value\");\n\n            //If a negative or 0 is entered for window length\n            } else if ((this.get('attrs.alert.value.method') != 'IMM') && (wl <= 1) && (this.get('attrs.alert.value.windowType') != 'LT')) {\n                this.setError('isVisibleError',true);\n                this.setError('wLError',true);\n                //_this.set('saveMessage', \"Please enter a window length larger than 1 if method is not immediate\");\n\n            } else if (wl < 1) {\n                this.setError('isVisibleError',true);\n                this.setError('wLNegError',true);\n                //_this.set('saveMessage', \"Please enter a window length of greater than or equal to 1\");\n                \n            } else if (respType=='TRIG') {\n                document.getElementById(\"alertObjectTarget\").value = \"\";\n                //_this.set('saveMessage', \"Alert via Alarm will be available in future update\");\n\n            } else if (noTarget) {\n                this.setError('isVisibleError',true);\n                this.setError('targetError',true);\n                //_this.set('saveMessage', \"Please enter a target \" + addType);\n\n            } else if (!(alertObjectTarget.includes(\"@\")) && (respType=='SMS')) {\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                //_this.set('saveMessage', \"Please ensure you've added a carrier to the phone number\");\n\n\n            //If target is correctly filled and the above condition did not happen\n            } else if (!noTarget){\n\n                let big = !this.get(\"activeExpanded\");\n                //console.log(big)\n\n                tr.save()\n                    .then(function(value){\n                        _this.broken=false\n                        _this.set('saveMessage', \"SAVED\");\n                        _this.get('saved')();\n                    })\n                    .catch(function(reason) {\n\n                        if (reason && reason.errors && reason.errors[0].status == 403) {\n                            _this.setError('isVisibleError',true);\n                            _this.setError('authError',true);\n                        } else {\n                            // console.log(reason);\n                            _this.set('saveMessage', \"SAVED\");\n                            _this.get('saved')(); \n                        }\n                    });\n            }\n            \n        },\n        staticChanged() {\n            let tr = this.get('alert');\n            tr.isPerm = document.getElementById('alertStaticDynamic').checked;\n            this.set('alert',tr);\n        },\n        activeChanged() {\n            let tr = this.get('alert');\n            tr.isActive = document.getElementById('alertEnabled').checked;\n            this.set('alert',tr);\n        },\n        // repeatChanged() {\n        //     let tr = this.get('alert');\n        //     tr.repeats = document.getElementById('alertRepeat').checked;\n        //     this.set('alert',tr);\n        // },\n        // invertChanged() {\n        //     let tr = this.get('alert');\n        //     tr.inverted = document.getElementById('alertInvert').checked;\n        //     this.set('alert',tr);\n        // },\n        toggleActive() {\n            let big = !this.get(\"activeExpanded\");\n\n            if(big) {\n                this.set('activeSize',this.get('channelCount'));\n                this.set('buttonSymbol', '-');\n                this.set('activeLabel','Collapse');\n            } else {\n                this.set('activeSize',2);\n                this.set('buttonSymbol', '+');\n                this.set('activeLabel','Expand');\n            }\n            this.set('activeExpanded', big);\n        },\n\n        triggerTest() {\n            let tr = this.get('alert');\n            tr.isTriggered = true;\n\n            let theDate = new Date();\n\n            let dateString = theDate.getFullYear() + \"-\" + (theDate.getMonth()+1) + \"-\" + theDate.getDate() + \" \" + theDate.getHours() + \":\" + theDate.getMinutes() + \":\" + theDate.getSeconds();\n\n            //console.log(dateString);\n            tr.initTriggerStamp = dateString;\n            this.set('initTriggerStamp', dateString);\n            this.set('alert',tr);\n            tr.save();\n \n            this.triggerTestAlert(tr.id);\n        },\n        clearAlert() {\n            let tr = this.get('alert');\n            tr.isTriggered = false;\n            tr.isHandled = false;\n            tr.initTriggerStamp = null;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        resetHandle() {\n            let tr = this.get('alert');\n            tr.isHandled = false;\n            tr.handleStamp = null;\n            this.set('alert',tr);\n            tr.save();\n        },\n        toggleModal() {\n            if(this.isValidPhoneNumber(this.phoneNumber)) {                \n                this.setError('isVisibleError',false);\n                this.setError('phoneNumError',false);\n                console.log(\"toggleModal::::\" + this.get('showModal'));\n                // this.toggleProperty('isShowingModal');\n                this.toggleProperty('showModal');\n                console.log(\"toggleModal:\" + this.get('showModal'));\n                return true\n            } else {\n                alert(\"Invalid phone number!  Please enter a valid phone number, then select a carrier.\");\n                this.setError('isVisibleError',true);\n                this.setError('phoneNumError',true);\n                return false;\n            }\n        },\n\n        \n        handleSelection(selectedValue) {\n            console.log(\"handleSelection:::: \" + selectedValue);\n            this.set('alert.target', selectedValue);\n        }\n\n    }\n});\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\n\nexport default class EditInstrumentPortDropDown extends Component.extend({\n    editing: 0,\n    selectedVendor: null,\n    selectedModel: null,\n    //numberOfPorts: 1,\n\n    // ports: Ember.computed('instrument', function() {\n    //     console.log(\"ChannelsNum::: \");\n    //     let channelsNum = this.get('instrument').channelsNum;\n    //     console.log(\"ChannelsNum::: \" + channelsNum);\n    //     channelsNum = parseInt(channelsNum/2);\n    //     let numberOfPorts = [];\n    //     for(let channel = 1 ; channel <= channelsNum; channel++){\n    //         numberOfPorts.push({\"channel\": channel});\n    //     }\n    //     console.log(JSON.stringify(numberOfPorts));\n    //     return numberOfPorts;\n    // }),\n    \n    selectedVendorID: Ember.computed('instrument', function() {\n        try {\n            let vendor = this.get('instrument').get('vwproperty').toArray()[0].get('vwmodel').get('vwvendor');\n            this.set('selectedVendor', vendor.id);\n            \n            return vendor.id;\n        } catch (ex) {}\n        return 0;\n    }),\n\n    selectedModelID: Ember.computed('instrument', function() {\n        //console.log('test');\n        try {\n            let model = this.get('instrument').get('vwproperty').toArray()[0].get('vwmodel');\n            //console.log(model.get('id'));\n            this.set('selectedModel', model.get('id'));\n\n            \n            return model.get('id');\n        } catch (ex) {}\n        return 0;\n    }),\n\n    modelList: Ember.computed('selectedVendor', 'instrument', function() {\n        let modelList = this.get('vwModels');\n        \n        let shortModelList = [];\n\n        modelList.toArray().forEach(element => {\n            if (element.get('vwvendor').id === this.get('selectedVendor')) {\n                shortModelList.push(element);\n            }\n        });\n\n        return shortModelList;\n    }),\n\n    vendorName: Ember.computed('selectedModel', function() {\n        try {\n            let vendor = this.get('instrument').get('vwproperty').toArray()[0].get('vwmodel').get('vwvendor');\n            return vendor.vendorName;\n        } catch (ex) {}\n        return \"\"\n    })\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    _this = this;\n\n//     actions = {\n//         viewData(id) {\n//             this.get('router').transitionTo('raw-data', id);\n//             //this.viewData(id);\n//         },\n//         tGraph(id) {\n//             this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n//             //this.tGraph(id, 'displacement-values');\n//         },\n//         fGraph(id) {\n//             this.get('router').transitionTo('frequency-graphs.frequency-graph', id, 'displacement-values');\n//             //this.sGraph(id, 'displacement-values');\n//         },\n//         setVendor(vendorID) {\n//             let vendors = this.get('vwVendors');\n//             for(let i = 0; i < vendors.length; i++) {\n//                 console.log(vendors[i].id);\n//                 console.log(vendors[i].vendorName);\n//                 console.log(vendors[i].id);\n                \n//             }                    \n//             console.log('setVendor: ' + this.get('vwVendors'));\n//             this.set('selectedVendor', vendorID);\n//             this.set('selectedModel', null);\n//             this.send('setModel', null);\n//         },\n//         setPort(portID) {\n//             //console.log('setPort');\n//             let inst = this.get('instrument');\n//             this.get('router').transitionTo('edit-instrument', inst, 'instrument');\n//         },\n//         setModel(modelID) {\n//             console.log('setModel');\n//             this.set('selectedModel', modelID);\n//             let inst = this.get('instrument');\n//             let prop = inst.get('vwproperty').toArray()[0];\n//             let model = this.get('vwModels').findBy('id', modelID);\n\n//             if (typeof model === \"undefined\") {\n//                 model = null;\n//             }\n\n//             if(prop.get('serial') == null) {\n//                 prop.set('serial', \"\");\n//             }\n\n//             prop.set('vwmodel', model);\n\n//             prop.save();\n//         },\n//         editField() {\n//             this.set('editing', this.get('editing') + 1);\n//         },\n//         stopEditField() {\n//             this.set('editing', this.get('editing') - 1);\n//         },\n//         saveInstrument(){\n//             const _this = this;\n//             // console.log(\"test\");\n//             if (this.get('editing') > 0) {\n//                 var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n//                 if (t) {\n//                     window.location.href = \"/instruments\";    \n//                 }\n//             } else {\n//                 window.location.href = \"/instruments\";\n//             }            \n//         }\n    // }\n}","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport vwmodel from '../../models/vwmodel';\n\nexport default class EditInstrument extends Component.extend({\n\n    didReceiveAttrs() {\n        this._super(...arguments);\n        // Now you can proceed with the rest of your logic\n        let inst = this.instrument;\n    },\n\n    init() {\n        this._super(...arguments);\n\n        let inst = this.instrument;\n        this.vwProperties = [];\n        \n        if( (inst.get(\"vwproperty\") === null && inst.get(\"vwproperty\") != 'undefined') || inst.get(\"vwproperty\").length === 0 ){\n            console.log(\"vwproperty is null\");\n            // there should always be one property at least.  That there is not means that this instrument existed prior to \n            // the automatic generation of vwproperty records.  So we need to create one.\n            console.log(\"edit-instrument/wire: Creating vwproperty\");\n            this.createVwProperties(inst);\n        } \n        if (inst.vwproperty != undefined && inst.vwproperty.length > 0) {\n            let properties = inst.vwproperty.toArray();\n            properties.forEach((prop, index) => {\n                if( prop.get(\"vwmodel\") != null && prop.get(\"vwmodel\") != undefined){\n                    prop.vendor = prop.get(\"vwmodel\").get(\"vwvendor\");\n                    prop.modelTypes = this.modelList(prop.get(\"vwmodel\").get(\"vwvendor\").get(\"id\"));\n                }\n                if(prop.get(\"instrument\").id === inst.id){\n                    this.vwProperties.push(prop);\n                }\n                \n            });\n        } else {\n            console.log('Not an Error: edit-instrument/wire: inst.vwProperty is undefined');\n        }\n        // console.log(JSON.stringify(this.vwProperties, null, 2));\n\n    },\n\n    getModel(vwProperty) \n    {\n        let model = vwProperty.get('vwmodel');\n        return model;\n    },\n    \n\n    editing: 0,\n    selectedVendor: null,\n    selectedModel: null,\n    selectedProperty: null,\n    modelList: null,\n    vwProperties: [],\n    project: null,\n    level: null,\n\n    selectedProperty: Ember.computed('vwproperty', function() {\n        let inst = this.get('instrument');\n        let prop = inst.get('vwproperty').toArray()[0];\n        let port = 1\n        if(prop != null && prop != undefined){\n            port = prop.get('port');\n        }\n        console.log(\"port::: \" + port);\n        return port;\n    }),\n\n    // ports: Ember.computed('instrument', function() {\n    //     let channelsNum = this.get('instrument').channelsNum;\n    //     channelsNum = parseInt(channelsNum/2);\n    //     let numberOfPorts = [];\n    //     for(let channel = 1 ; channel <= channelsNum; channel++){\n    //         numberOfPorts.push({\"channel\": channel});\n    //     }\n    //     console.log(JSON.stringify(numberOfPorts));\n    //     return numberOfPorts;\n    // }),    \n\n    selectedVendorID: Ember.computed('instrument', function() {\n        try {\n            let vendor = this.get('instrument').get('vwproperty').toArray()[0].get('vwmodel').get('vwvendor');\n            this.set('selectedVendor', vendor.id);\n            \n            return vendor.id;\n        } catch (ex) {}\n        return 0;\n    }),\n\n    selectedModelID: Ember.computed('instrument', function() {\n        //console.log('test');\n        try {\n            let model = this.get('instrument').get('vwproperty').toArray()[0].get('vwmodel');\n            //console.log(model.get('id'));\n            this.set('selectedModel', model.get('id'));\n            return model.get('id');\n        } catch (ex) {}\n        return 0;\n    }),\n\n    modelList: function(vendorId) {\n        let modelList = this.get('vwModels');\n        \n        let shortModelList = [];\n\n        modelList.toArray().forEach(element => {\n            if (element.get('vwvendor').id === vendorId) {\n                shortModelList.push(element);\n            }\n        });\n\n        return shortModelList;\n    },\n\n    vendorName: Ember.computed('selectedModel', function() {\n        try {\n            let vendor = this.get('instrument').get('vwproperty').toArray()[0].get('vwmodel').get('vwvendor');\n            console.log(vendor.vendorName);\n            return vendor.vendorName;\n        } catch (ex) {}\n        return \"\"\n    })\n}) {\n    @service router;\n    @service store;\n    //@service session;\n    //@service currentUser;\n    isAuthenticated = true;\n    _this = this;\n    \n    createVwProperties(instrument) {\n        this.vwProperties = [];\n        console.log(\"instrument: \" + instrument);\n        let channelsNum = 0;\n        channelsNum = parseInt(instrument.get(\"channelsNum\") / 2);\n\n        for (let channel = 1; channel <= channelsNum; channel++) {\n            // let vwProperty = {\n            //     port: channel,\n            //     instrument: instrument\n            // };\n            // this.vwProperties.push(vwProperty);\n    \n            // console.log(\"vwPropertyData.port: \" + vwPropertyData.port);\n            let vwp = this.store.createRecord('vwproperty', {\n                    port: channel, \n                    instrument: instrument,\n                    vwmodel: null,\n                    serial: \"\"\n                });\n            vwp.save().then(propertyResults => {\n                this.vwProperties.push(propertyResults);\n                // console.log(\"property saved: Port: \" + propertyResults.port);\n            }).catch(function(reason) {\n                console.log(\"property save failed: \" + reason);\n            });\n\n        \n        }\n        \n    }\n\n    actions = {\n        \n        setProject(event) {\n            const selectedId = event.target.value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.projectLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('project', foundObject);\n            }\n        },\n        \n        setLevel(event) {\n            \n            const selectedId = event.target.value;\n          \n            // Assume levelLookupList is the array of lookup objects\n            const foundObject = this.levelLookupList.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n          \n            if (foundObject) {\n              // Do something with foundObject\n              this.set('level', foundObject);\n            }\n        },\n\n        willDestroyElement() {\n            super.willDestroyElement(...arguments);\n            this.args.vwProperties = [];\n        },\n        selectProperty(value){\n            let inst = this.get('instrument');\n            let prop = inst.get('vwproperty').toArray()[0];\n            console.log(\"prop::: \" + prop.get('port'));\n            let model = this.get('vwModels').findBy('id', this.get('selectedModel'));\n            let vendor = this.get('vwVendors').findBy('id', this.get('selectedVendor'));\n            let serial = this.get('serial');\n        },\n        viewData(id) {\n            let endDateObj = new moment();\n            let startDateObj = moment(endDateObj).subtract(7, 'days').format('YYYY-MM-DDTHH:mm');\n            let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n            let baseUnit = this.get(\"instrument\").get(\"instrumentType\").get(\"base_unit\");\n            this.get('router').transitionTo('raw-data', id, { queryParams: { \"advancedStartDate\": startDateObj, \"advancedEndDate\": formattedEndDateObj, \"advancedYAxisUnit\": baseUnit}});\n            //this.viewData(id);\n        },\n        tGraph(id) {\n            this.get('router').transitionTo('temporal-graphs.temporal-graph', id, 'displacement-values');\n            //this.tGraph(id, 'displacement-values');\n        },\n        fGraph(id) {\n            this.get('router').transitionTo('frequency-graphs.frequency-graph', id, 'displacement-values');\n            //this.sGraph(id, 'displacement-values');\n        },\n        // setVendor(vwProperty, value) {\n        //     getProperty\n        //     console.log('setVendor: ' + vendorID);\n        //     this.set('selectedVendor', vendorID);\n        //     this.set('selectedModel', null);\n        //     this.send('setModel', null);\n        // },\n\n        setVendor(vwProperty, value) {\n            // Finding the index of vwProperty in the vwProperties array\n            let index = this.vwProperties.indexOf(vwProperty);\n            let vendorId = value.target.value;\n            let vendor = this.get('vwVendors').findBy('id', vendorId);\n\n            \n            // Setting the selectedVendor and selectedModel on the component\n            vwProperty.vendor = vendor;//getVendor(value.target.value);\n            // this.set('selectedModel', null);\n            vwProperty.modelTypes = this.modelList(vendorId);\n            console.log(vwProperty.modelTypes);\n            // Calling another action to set the model\n            \n            // If vwProperty is found in the array, update it\n            if (index !== -1) {\n                Ember.set(this.vwProperties, index, vwProperty);\n            }\n        },\n\n        setModel(vwProperty, modelID) {\n            console.log('setModel');\n            let index = this.vwProperties.indexOf(vwProperty);\n            this.set('selectedModel', modelID);\n            \n            if(modelID.target.value !== null){    \n                let inst = this.get('instrument');\n                let model = this.get('vwModels').findBy('id', modelID.target.value);\n                        \n                console.log(\"model::: \" + model);\n                if (typeof model === \"undefined\") {\n                    model = null;\n                }\n                else {\n                    console.log(\"model::: \" + model);\n                    this.set('model', model);\n                }\n                vwProperty.vwmodel = model;\n                if(vwProperty.serial == null) {\n                    vwProperty.serial = \"\";\n                } else {\n                    vwProperty.serial = vwProperty.serial;\n                }\n                // If vwProperty is found in the array, update it\n                if (index !== -1) {\n                    Ember.set(this.vwProperties, index, vwProperty);\n                }\n\n                try{\n                    vwProperty.save();\n                } catch (ex) {\n                    console.log(ex);\n                }\n            }\n        },\n        // setModel(vwProperty, modelID) {\n        //     console.log('setModel');\n        //     this.set('selectedModel', modelID);\n            \n        //     if(modelID !== null){    \n        //         let inst = this.get('instrument');\n        //         let prop = inst.get('vwproperty').toArray()[0];\n        //         let model = this.get('vwModels').findBy('id', modelID);\n                        \n        //         console.log(\"model::: \" + model);\n        //         if (typeof model === \"undefined\") {\n        //             model = null;\n        //         }\n        //         else {\n        //             console.log(\"model::: \" + model);\n        //             this.set('model', model);\n        //         }\n        //         if(prop == null || prop == undefined){\n        //             prop = this.get('store').createRecord('vwproperty', {\n        //                 instrument: inst,\n        //                 port: 1,\n        //                 serial: \"\",\n        //                 vwmodel: model\n        //             });\n        //             prop.save();\n        //         }else {\n        //             prop.set('vwmodel', model);\n        //             if(prop.get('serial') == null) {\n        //                 prop.set('serial', \"\");\n        //             }            \n        //             prop.save();\n        //         }\n        //     }\n        // },\n        editField() {\n            this.set('editing', this.get('editing') + 1);\n        },\n        stopEditField() {\n            this.set('editing', this.get('editing') - 1);\n        },\n        saveInstrument(){\n            const _this = this;\n            // console.log(\"test\");\n            if (this.get('editing') > 0) {\n                var t = confirm(\"Some changes have not been saved!\\r\\nTo save changes, click cancel then\\r\\nclick the checkbox next to each open field.\\r\\nOtherwise click ok to continue.\");\n                if (t) {\n                    window.location.href = \"/instruments\";    \n                }\n            } else {\n                window.location.href = \"/instruments\";\n            }            \n        }\n    }\n}\n\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n  gVariableUnit2:\"digit\",\n  kVariableUnit2:\"°C\",\n  gPressureUnit:\"\",\n  kPressureUnit:\"\",\n  store: Ember.inject.service(),\n  router: Ember.inject.service(),\n  init() {\n      this._super(...arguments);\n      let vwProperty = this.get(\"port\");\n      console.log(`current vw property`);\n      console.log(vwProperty)\n\n      //WARNING. YES SERIAL PROPERTY IS MASKED AS THE UNIT FOR PRESSURE. IT IS NOT A TYPO\n      let initUnit = vwProperty.get(\"serial\");\n      console.log(`current serial`);\n      console.log(initUnit);\n      if(initUnit != null){\n        Ember.run.next(() => {\n          let dropdown = document.getElementById(`pressureUnitDropdown${vwProperty.get(\"port\")}`);\n          if (dropdown) {\n            dropdown.value = initUnit;\n          }\n        });\n        this.buildAndUpdateGUnit(initUnit);\n        this.buildAndUpdateKUnit(initUnit);\n      }\n      \n\n  },\n  getPressureUnit: Ember.computed('model.modelName', function() {\n      console.log(this.get(\"port\"));\n      return this.pressureUnit;\n  }),\n  getGPressureUnit: Ember.computed('model.modelName', function() {\n      return this.pressureUnit;\n  }),\n  buildAndUpdateGUnit:function(newUnit){\n    let newU = newUnit + \"/\" + this.get(\"gVariableUnit2\")\n    this.set(\"gPressureUnit\" , newU);\n  },\n  buildAndUpdateKUnit:function(newUnit){\n    let newU = newUnit + \"/\" + this.get(\"kVariableUnit2\")\n    this.set(\"kPressureUnit\" , newU);\n  },\n  didInsertElement() {\n    this._super(...arguments);\n    // Object.keys(this).forEach(key => {\n    //     // console.log(key, this.get(key));\n    // });\n  },\n  actions: {\n    handlePressureUnitChange(event){\n        let newValue = event.target.value;\n        this.buildAndUpdateGUnit(newValue);\n        this.buildAndUpdateKUnit(newValue);\n        let correspondingVWProperty = this.get(\"port\");\n        if(correspondingVWProperty != null){\n          correspondingVWProperty.set(\"serial\", newValue);\n          correspondingVWProperty.save()\n          .then(() => {\n            console.log(\"vw property successfully updated\")\n          });\n        }\n        console.log(\"Select pressure unit is:\" + newValue)\n    }\n  },\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n    store: Ember.inject.service(),\n    chartId: 'spatial-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    progressAnimationDuration: 100, //set 50, was 700\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 50, //set 25, was 500\n\n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: this.get('blastEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -15) + 15 : 15\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    blastEventsArray: Ember.computed('blastEvents', function() {\n        if ( this.get('blastEvents') ) {\n            return this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes')\n                };\n            }).sortBy('timestamp');\n        }\n        return false;\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    zoomDataPoints: Ember.computed.map('zoomChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            var modelName = this.get('chartDataModelName');\n\n            if (modelName === 'strain-values') { \n                chartData.values.unshift(chartData.values[0]);\n            }\n                        \n            return chartData;\n        } catch (error) {\n            return [];\n        }\n    }),\n\n    //TODO: Try/Catch is a temporary fix, if there isn't enough data, or its not valid, Frequency dropdown will act strangely\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        try {\n            let linesKyes = Object.keys(item.toJSON());\n            return item.getProperties(linesKyes);            \n        } catch (error) {\n            return [];\n        }\n    }),\n\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n\n    anchorDistances: Ember.computed('instrument', 'zoomChartData', function() {\n        let dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            anchors = this.get('instrument').get('anchors')\n        ;\n        let anchorDistances = anchors.map(function(anchor){\n            return anchor.get('distance');\n        });\n\n        var modelName = this.get('chartDataModelName');\n        if (anchorDistances.length > dataValuesCount && modelName === 'strain-values') {\n            anchorDistances.splice(0, 1);\n        }\n        return anchorDistances;\n    }),\n\n    // calculate mid distances between anchors for strain values\n    anchorMidDistances: Ember.computed('anchorDistances', function() {\n        let anchorDistances = Ember.copy(this.get('anchorDistances')),\n            dataValuesCount = this.get('zoomChartData').get('firstObject').toJSON().values.length,\n            midDistances = []\n        ;\n\n        var type = this.get('instrument').get('instrumentType').get('title');\n\n        anchorDistances.unshift(0);\n\n        for (let i = 0; i <= anchorDistances.length - 2; i++) {\n            let mid = (anchorDistances[i] + anchorDistances[i + 1]) / 2;\n            midDistances.push( +mid.toFixed(2) );\n        }\n\n        return midDistances;\n    }),\n\n    anchorColors: d3.scale.category10().range(),\n\n    anchorDistancesChartReferencePoints: Ember.computed('chartDataModelName', 'instrument', 'anchorDistances', 'anchorMidDistances', function() {\n        let anchorDistances = this.get('anchorDistances');\n        var modelName = this.get('chartDataModelName');\n        var anchorMidDistances = this.get('anchorMidDistances');\n\n        //console.log(this.get('instrument').get('instrumentTypeID'));\n\n        if(modelName === 'strain-values' || modelName === 'strain-rate-values') {\n            return anchorMidDistances.map(function(anchorDistance){\n                return {\n                    key: anchorDistance,\n                    type: 'referencePoints',\n                    values: [\n                        anchorDistance\n                    ]\n                };\n            });\n                \n        }\n\n        return anchorDistances.map(function(anchorDistance){\n            return {\n                key: anchorDistance,\n                type: 'referencePoints',\n                values: [\n                    anchorDistance\n                ]\n            };\n        });\n    }),\n\n    inlineHoverValuesSideOffset: Ember.computed('chartDataModelName', function() {\n        var modelName = this.get('chartDataModelName');\n\n        if (modelName === 'strain-values') {\n            return 28;\n        }\n        return 0;\n    }),\n\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n        const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTimePoints = this.get('zoomTimePoints'),\n            anchorDistances = this.get('anchorDistances'),\n            anchorDistancesChartReferencePoints = this.get('anchorDistancesChartReferencePoints')\n        ;\n        let zoomChartLinesData = [];\n\n        var modelName = this.get('chartDataModelName');\n\n        zoomChartLinesData = zoomDataPoints.map(function(chartLine, chartLineIndex){\n            return {\n                key: chartLineIndex,\n                // mean: 3,\n                type: 'lines',\n                timestamp: zoomTimePoints[chartLineIndex],\n                values: chartLine.values.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        anchorDistances[dataPointIndex],\n                        dataPoint\n                    ];\n                })\n            };\n        });\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        if (anchorDistancesChartReferencePoints) {\n            zoomChartLinesData = zoomChartLinesData.concat(anchorDistancesChartReferencePoints);\n        }\n\n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        var modelName = this.get('chartDataModelName');\n        var type = this.get('instrument').get('instrumentType').get('title');        \n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    numLines: Ember.computed('zoomTimePoints', function() {\n        return this.get('zoomTimePoints').length;\n    }),\n\n    lineDrawDelay: Ember.computed('numLines', function() {\n        return (13000 / (this.get('numLines') + 1)) ^ (1 / 20);\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').query('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n    didInsertElement: function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            inlineHoverValuesSideOffset = _this.get('inlineHoverValuesSideOffset'),\n            progressAnimationDuration = _this.get('progressAnimationDuration'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = this.get('blastEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-spatial-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = [yAxisLegend]\n        ;\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all(apiCallsPromises).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend.get('firstObject');\n\n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let axisName = '';\n                let units = chartData.get('units');\n                switch(yAxisLegend.get('title')) {\n                    case 'displacement':\n                        axisName = chartData.get('temporalDisplacementName');\n                        break;\n                    case 'velocity':\n                        axisName = chartData.get('temporalVelocityName');\n                        units += \"/day\";\n                        break;\n                    case 'acceleration':\n                        axisName = chartData.get('temporalAccelerationName');\n                        units += \"/day²\";\n                        break;\n                    case 'strain':\n                        axisName = chartData.get('temporalStrainName');\n                        units = \"%\";\n                        break;\n                    case 'strain_rate':\n                        axisName = chartData.get('temporalStrainRateName');\n                        units = \"%/day\";\n                        break;\n                    default:\n                        axisName = \"Unknown\";\n                }\n                \n                title = axisName + \" (\" + units + \")\";\n            }\n\n            let zoomChart = nv.models.lineChartProgressAnimationAPI()\n                .margin({top: 55, right: 10, bottom: 85, left: 60})\n                .useInteractiveGuideline(false)\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .distXAxisScale(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .showLegend(true)\n                .progressAnimationDuration(progressAnimationDuration)\n                .showXAxis(true)\n                .noData('No usable data')\n                ;\n\n\n            let length = 0;\n            try {\n                length = _this.instrument.get('instrumentLength');\n                let type = _this.instrument.get('instrumentType');\n                if (type === 'dRebar') {\n                    length = length * 1000;\n                }\n                \n            } catch (ex) {\n\n            }\n            \n            if(length !== null && length === 0) {\n                length = 0;\n            }\n\n            zoomChart.forceX([0, length]);\n/*             if (yAxisLegend.get('title') != 'bending_strain' && yAxisLegend.get('title') != 'axial_strain') {\n                \n            }\n */\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .tickFormat(d3.format(\".2f\"))\n                    // .tickFormat(function(d) {\n                    //     let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                    //     return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    // })\n                    ;\n                zoomChart.yAxis\n                    .axisLabel(title)\n                    .tickFormat(d3.format(\".2f\"));\n\n                zoomChart.distXAxis\n                    .tickPadding(40)\n                    .showMaxMin(false)\n                    // .ticks(5)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(45)\n                    .isDistXTooltip(isDistXTooltip)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2);\n\n                //zoomChart.legend.inlineHoverValuesSideOffset(inlineHoverValuesSideOffset);\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log('test');\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n\n                    if (!seismicEventsArray.length || !blastEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (!activeTooltipContent) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                return zoomChart;\n            });\n\n            // declare fullRangeChart because later in zoom chart we need axis from fullRangeChart for events axis on zoomChart\n            let fullRangeChart = nv.models.focus(nv.models.line())\n               .margin({top: 10, right: 10, bottom: 30, left: 60})\n                .x(function(d) { return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .syncBrushing(false)\n                .independentBrushing(true)\n                .showXAxis(true)\n                .showYAxis(false)\n                ;\n\n\n            nv.addGraph(function() {\n\n                fullRangeChart.xAxis\n                    .showMaxMin(false)\n                    .tickFormat(function(d) {\n                        if (fullRangeChartLinesData.length > 0) {\n                            let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } else {\n                            return [0, 0];\n                        }\n                    });\n\n                fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n                fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n                fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                 });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(fullRangeChart.update);\n\n                // set zoom based on query params if set\n                let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n                let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n                if (startTimestamp && endTimestamp) {\n                    fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n                }\n\n                return fullRangeChart;\n            });\n\n        });\n\n    }\n\n});\n","import Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({\n\n    store: Ember.inject.service(),\n    modelName: null,\n    \n    init() {\n        this._super(...arguments);\n        this.loadModelName(); // Call the action during initialization\n        this.updateCalibColLabel(this.get(\"port\"));\n    },\n    loadModelName: function() {\n        return;\n        // Get the instrument's first vwproperty id\n        // let vwPropertyId = await this.get('instrument.vwproperty.firstObject.id');\n    \n        // Use Ember's store to find the vwproperty by its ID, then access its vwmodel's modelName\n        // this.store.findRecord('vwproperty', vwPropertyId).then((vwproperty) => {\n        //   this.set('modelName', vwproperty.get('vwmodel.modelName'));\n        // });\n\n    },\n    \n    filterEventsByAttributes(events, instrumentAttributes, eventAttributes) {\n        return events.filter(event => {\n            \n            for (let i = 0; i < instrumentAttributes.length; i++) {\n                let instrumentAttr = instrumentAttributes[i];\n                let eventAttr = eventAttributes[i];\n\n                if (instrumentAttr) {\n                    let eventAttrValue = event.get(eventAttr);\n                    if (eventAttrValue && eventAttrValue.get(\"id\") !== instrumentAttr.get(\"id\")) {\n                        return false; // If the specific event attribute does not match the instrument's\n                    }\n                }\n            }\n            return true; // If all checks pass\n        });\n    },\n    \n    calibColLabel: \"-\",\n    chartId: 'temporal-chart',\n    startTimestamp: null,\n    endTimestamp: null,\n    isDistXTooltip: true,\n    distXRiseUpAnimationDuration: 500,\n    \n    seismicEventsChartDistXData: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return [{\n                key: 'Seismic',\n                type: 'distX',\n                color: '#429CBA',\n                values: this.get('seismicEvents').map(function(event) {\n                    return [\n                        moment( event.get('timestamp') ).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n\n    \n    // Usage within your original computed property function:\n    blastEventsChartDistXData: Ember.computed('blastEvents', function() {\n        // console.log(\"blasting::::::::::::::::::::::::::::\");\n        let instrument = this.get(\"instrument\");\n        let blastEvents = this.get('blastEvents');\n\n        // Filtering\n        let instrumentAttributes = [instrument.get('level'), instrument.get('project')];\n        let eventAttributes = ['level', 'project']; \n        blastEvents = this.filterEventsByAttributes(blastEvents, instrumentAttributes, eventAttributes);\n        if(this.blastEvents){\n            return [{\n                key: 'Blast',\n                type: 'distX',\n                color: '#D14240',\n                values: blastEvents.map(function(event) {\n                    return [\n                        moment(event.get('timestamp')).valueOf(),\n                        event.get('size') ? (event.get('size') * -20) + 20 : 20\n                    ];\n                })\n            }];\n        }\n        return false;\n    }),\n    \n    seismicEventsArray: Ember.computed('seismicEvents', function() {\n        if ( this.get('seismicEvents') ) {\n            return this.get('seismicEvents').map(function(event) {\n                return {\n                    type: 'Seismic',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    // timestamp: moment( event.get('timestamp') ).valueOf(),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    momentMagnitude: event.get('momentMagnitude'),\n                    location: event.get('location')\n                };\n            }).sortBy('time');\n        }\n        return false;\n    }),\n\n    async getLevelId(instrument) {\n        try {\n\n            let instrumentLevelId = await instrument.get('level').get('content').id;\n            if (instrumentLevelId) {\n                return instrumentLevelId; \n            }\n            return null;\n        } catch (error) {\n            return null;\n        }\n    },\n    \n    async getProjectId(instrument) {\n        try {\n            let instrumentProject = await instrument.get('project').get('content').id;\n            if (instrumentProject) {\n                return instrumentProject;\n            }\n            return null;\n        } catch (error) {\n            return null;\n        }\n    },    \n    async fetchValueFromStore(id) {\n        if (!id) {\n            return \"Not Set\";\n        }\n        try {\n            let record = await this.store.findRecord('lookup', id);\n            return record.get('value');\n        } catch (error) {\n            console.error(`Error fetching record with id ${id}: returning Not Set`);\n            return \"Not Set\";\n        }\n    },\n    \n    blastEventsArray: Ember.computed('blastEvents', async function() {\n        if ( this.get('blastEvents') ) {\n                        \n            let instrument = this.get('instrument');\n            let instrumentLevelId = await this.getLevelId(instrument);\n            let instrumentProjectId = await this.getProjectId(instrument);\n\n            let levelValue = await this.fetchValueFromStore(instrumentLevelId);\n            let projectValue = await this.fetchValueFromStore(instrumentProjectId);\n\n            let data_set = this.get('blastEvents').map(function(event) {\n                return {\n                    type: 'Blast',\n                    time: event.get('timestamp'),\n                    timestamp: moment( event.get('timestamp') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n                    eventSize: event.get('size') ? (event.get('size') * -15) + 15 : 15,\n                    tonnes: event.get('tonnes'),\n                    location: event.get('location'),\n                    project: projectValue,\n                    level: levelValue,\n                    \n                };\n            }).sortBy('time');\n            // console.log(JSON.stringify(data_set));\n            return data_set;\n        }\n        return false;\n    }),\n    // vibeEventsArray: Ember.computed('vibeEvents', function() {\n    //     var events = this.get('vibeEvents');\n    //     //console.log(events);\n    //     if ( events ) {\n    //         return events.map(function(event) {\n    //             return {\n    //                 type: 'BluVibe',\n    //                 time: event.get('id'),\n    //                 timestamp: moment( event.get('id') ).format(\"DD MMM, YYYY HH:mm:ss\"),\n    //                 ppa: event.get('ppa'),\n    //                 ppv: event.get('ppv'),\n    //                 freq: event.get('frequency')\n    //             };\n    //         }).sortBy('time');\n    //     }\n    //     return false;\n    // }),\n\n    // zoomTempPoints: Ember.computed('zoomTempData', function(){\n    //     let \n    //     let linesKyes = Object.keys(item.toJSON());\n\n    //     var chartData = item.getProperties(linesKyes);\n    //     console.log(\"ChartData: \" + chartData);\n    //     return chartData;\n    // }),\n    zoomTempPoints: Ember.computed('zoomTempData', function() {\n        // console.log(\"CURRENT_PORT::::::::::::::::::: \" + this.currentPort);\n        let chartDataResult = null;\n\n        let zoomTempData = this.get('zoomTempData');\n        chartDataResult = zoomTempData.map(function(item){\n            if (item.toJSON) {\n                let linesKeys = Object.keys(item.toJSON());\n                let chartData = item.getProperties(linesKeys);\n                // console.log(\"ChartData: \" + chartData);\n                return chartData;\n            }\n        });\n\n        // if(this.currentPort === 1){\n        //     let zoomTempData = this.get('zoomTempData');\n        //     chartDataResult = zoomTempData.map(function(item){\n        //         if (item.toJSON) {\n        //             let linesKeys = Object.keys(item.toJSON());\n        //             let chartData = item.getProperties(linesKeys);\n        //             console.log(\"ChartData: \" + chartData);\n        //             return chartData;\n        //         }\n        //     });\n        // } else {\n        //     let zoomTempData = this.get('zoomChartData');\n            \n        //     chartDataResult = zoomTempData.map((item) => {\n        //         console.log(\"CURRENT_PORT::::::::::::::::::: \" + this.currentPort);\n        //         if (item.toJSON) {\n        //             let linesKeys = Object.keys(item.toJSON());\n        //             let chartData = item.getProperties(linesKeys);\n        //             // console.log(\"ChartData: \" + chartData);\n        //             return chartData;\n        //         }\n        //     });\n        // }\n        return chartDataResult;\n    }),\n    currentPort: Ember.computed('instrument', function() {\n        let port = this.attrs.getQueryParams('port');\n        return port;\n    }),\n    zoomDataPoints: Ember.computed('zoomChartData', function() {\n        let zoomData = this.get('zoomChartData');\n        let chartDataResult = null;\n        var modelName = this.get('chartDataModelName');\n            \n        chartDataResult = zoomData.map(function(item){\n            \n            let linesKyes = Object.keys(item.toJSON());\n            var chartData = item.getProperties(linesKyes);\n\n            if (modelName === 'strain-values' || modelName === 'strain-rate-values') { \n                chartData.values.push(0);\n            }\n            // console.log(chartData);\n            return chartData;\n        });\n        return chartDataResult;\n    }),\n    fullRangeDataPoints: Ember.computed.map('fullRangeChartData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }), \n/*     fullRangeTempDataPoints: Ember.computed.map('fullRangeTempData', function(item){\n        let linesKyes = Object.keys(item.toJSON());\n\n        return item.getProperties(linesKyes);\n    }),\n */\n    zoomTimePoints: Ember.computed.map('zoomChartData', function(item){\n        return item.get('id');\n    }),\n    fullRangeTimePoints: Ember.computed.map('fullRangeChartData', function(item){\n        return item.get('id');\n    }),\n    anchorDistances: Ember.computed('instrument', 'fullRangeChartData', function() {\n        return ['F'];\n        // let instType = this.instrument.get('instrumentType').get('title');\n        // let chartData = this.get('fullRangeChartData');\n        // let dataValuesCount;\n        // try {\n        //     dataValuesCount = chartData.get('firstObject').toJSON().values.length;\n        // } catch (error) {\n        //     dataValuesCount = 0;\n        // }\n        // let anchors = this.get('instrument').get('anchors');\n        \n        // let anchorDistances = anchors.map(function(anchor){\n        //     return anchor.get('distance');\n        // });\n\n        // //anchorDistances.push('T'); //TODO: add temperature\n\n        // //IF chart is Strain-Values chart\n        // var modelName = this.get('chartDataModelName');\n\n        // return anchorDistances;\n    }),\n    //zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', 'vibeEventsChartDistXData', function() {\n    zoomChartLinesData: Ember.computed('zoomDataPoints', 'zoomTimePoints', 'zoomTempPoints', 'seismicEventsChartDistXData', 'blastEventsChartDistXData', function() {\n            const _this = this,\n            seismicEventsChartDistXData = this.get('seismicEventsChartDistXData'),\n            blastEventsChartDistXData = this.get('blastEventsChartDistXData'),\n            //vibeEventsChartDistXData = this.get('vibeEventsChartDistXData'),\n            zoomDataPoints = this.get('zoomDataPoints'),\n            zoomTempPoints = this.get('zoomTempPoints'),\n            zoomTimePoints = this.get('zoomTimePoints')\n        ;\n\n\n        // console.log(zoomTempPoints);\n        //console.log(vibeEventsChartDistXData);\n\n        let anchorDistances = this.get('anchorDistances'),\n            zoomChartLinesData = []\n        ;\n\n        // an exception for temperature sensor in dExto\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            zoomChartLinesData = anchorDistances.map(function(chartLineName, chartLineIndex){\n                return {\n                    key: chartLineName,\n                    // mean: 3,\n                    type: 'lines',\n                    yAxis: 1,\n                    values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                        return [\n                            moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                            dataPoint.values[chartLineIndex]\n                        ];\n                    })\n                };\n            });\n        } else {\n            zoomChartLinesData = [{\n                key: 'T. ℃',\n                // mean: 3,\n                type: 'lines',\n                yAxis: 1,\n                values: zoomDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0]\n                    ];\n                })\n            }];\n        }\n\n        //console.log(zoomDataPoints.length);\n        //console.log(zoomTempPoints.length);\n\n        if (_this.get('chartDataModelName') !== 'temperature-values') {\n            if (_this.get('chartDataModelName') !== 'displacement-values'){\n                while(zoomTempPoints.length > zoomDataPoints.length) {\n                    zoomTempPoints.pop();\n                    zoomTempPoints.shift();\n                }\n            }\n            var temp = {key: 'T',\n                type: 'lines',\n                yAxis: 2,\n                values: zoomTempPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( zoomTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[0],\n                    ];\n                })\n            };\n            //console.log(temp);\n            zoomChartLinesData.push(temp); //#TODO: Add Temp Points\n            //console.log(zoomChartLinesData);\n        }\n\n        // mix data with events\n        if (seismicEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(seismicEventsChartDistXData);\n        }\n        if (blastEventsChartDistXData) {\n            zoomChartLinesData = zoomChartLinesData.concat(blastEventsChartDistXData);\n        }\n        // if (vibeEventsChartDistXData) {\n        //     zoomChartLinesData = zoomChartLinesData.concat(vibeEventsChartDistXData);\n        // }\n        \n        return zoomChartLinesData;\n    }),\n\n    fullRangeChartLinesData: Ember.computed('fullRangeDataPoints', 'fullRangeTimePoints', function() {\n        const _this = this,\n            fullRangeDataPoints = this.get('fullRangeDataPoints'),\n            fullRangeTimePoints = this.get('fullRangeTimePoints')\n        ;\n\n        let anchorDistances = this.get('anchorDistances');\n\n        return anchorDistances.map(function(chartLineName, chartLineIndex){\n            return {\n                key: chartLineName,\n                // mean: 3,\n                type: 'lines',\n                values: fullRangeDataPoints.map(function(dataPoint, dataPointIndex) {\n                    return [\n                        moment( fullRangeTimePoints[dataPointIndex] ).valueOf(),\n                        dataPoint.values[chartLineIndex]\n                    ];\n                })\n            };\n        }).sortBy('timestamp');\n    }),\n\n    chartDataModelName: Ember.computed('zoomChartData', function() {\n        return this.get('zoomChartData').query.model_name;\n    }),\n    yAxisLegend: Ember.computed('chartDataModelName', function() {\n        let chartDataModelName = this.get('chartDataModelName');\n        let promise = this.get('store').queryRecord('measurement', {title: chartDataModelName.substr(0, chartDataModelName.lastIndexOf('-')).replace('-','_') });\n        return promise;\n    }),\n\n\n    modelNames: Ember.computed(function() {\n        let vwmodelName= \"\";\n        this.store.query('vwproperty',{}).then((vwproperties) => {\n            if(vwproperties && vwproperties.length > 0){\n                vwproperties.forEach(vwproperty=>{\n                    try {\n                        if(vwproperty.get('instrument')){\n                            vwmodelName = vwproperty.get(\"vwmodel\").get(\"modelName\");\n                            console.log('vwmodel::::::' + vwmodelName);\n                        }\n                    } catch {\n                        console.log(\"instrument dont exist\")\n                    }\n                })\n            }\n          });\n        return vwmodelName;\n    }),\n    \n    updateCalibColLabel: function(currentPort){\n        let vwPropertyArr = this.get(\"instrument.vwproperty\");\n        this.set(\"calibColLabel\", currentPort)\n        if(currentPort == null){\n            this.set(\"calibColLabel\", \"Presssure (-)\");\n        }\n        else{\n            vwPropertyArr.forEach(vwProp =>{\n                if (currentPort == vwProp.get(\"port\")){\n                    this.set(\"calibColLabel\", `Pressure (${vwProp.get(\"serial\")})`);\n                }\n            })\n        }\n\n    },\n    didInsertElement: async function() {\n        const _this = this,\n            zoomChartLinesData = _this.get('zoomChartLinesData'),\n            fullRangeChartLinesData = _this.get('fullRangeChartLinesData'),\n            isDistXTooltip = _this.get('isDistXTooltip'),\n            distXRiseUpAnimationDuration = _this.get('distXRiseUpAnimationDuration')\n        ;\n\n        let seismicEventsArray = this.get('seismicEventsArray'),\n            blastEventsArray = await this.get('blastEventsArray'),\n            // vibeEventsArray = this.get('vibeEventsArray'),\n            zoomChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-svg'),\n            fullRangeChartSVG = d3.select('#' + _this.get('chartId') + ' svg.nvd3-temporal-line-chart-focus-svg'),\n            yAxisLegend = this.get('yAxisLegend'),\n            apiCallsPromises = yAxisLegend\n        ;\n\n        //console.log(vibeEventsArray);\n\n        // draw zoomChart only after yAxis label is fetched\n        Ember.RSVP.Promise.all([apiCallsPromises]).then(function(results){\n            //code _this must be executed only after all of the promises in apiCallsPromises is resolved\n            //console.log(\"rendering graph...\");\n            let title = \"\";\n            if (yAxisLegend) {\n                yAxisLegend = yAxisLegend;\n                \n                //get pretty chart name if chart has multiple parts to it\n                let type = _this.instrument.get('instrumentTypeID').toString();\n                let chartData = _this.get('chartData');\n                chartData.forEach(function(item) {\n                    if(item.id === type) {\n                        chartData = item;\n                        return;\n                    }\n                });\n\n                let instType = _this.instrument.get('instrumentType').get('title');\n                let axisName = '';\n                let units = chartData.get('units');\n                title = yAxisLegend.get('title');\n                axisName = _this.get(\"calibColLabel\");\n                if (_this.get('linear') == true){\n                    title = ['LU/digits'];\n                } else if (_this.get('calib') == true){\n                    // console.log(\"axisname::::\" + axisName);\n                    title = [axisName];\n                } else if (_this.get('depth') == true){\n                    title = ['mm-Water'];\n                } else {\n                    title = ['Frequency (Hz)'];\n                }\n                    \n            }\n\n            function usesPoints(chartName) {\n                //console.log(chartName);\n                switch(chartName) {\n                    case 'event-ppv':\n                    case 'event-ppa':\n                        return true;\n                }\n                return false;\n            }\n            //console.log(zoomChartLinesData);\n            let zoomChart = nv.models.lineChartWithFocusAPI(usesPoints(_this.get('chartDataModelName')))\n                .margin({top: 55, right: 90, bottom: 60, left: 80})\n                .useInteractiveGuideline(true)\n                .x(function(d) { \n                    return d[0]; })\n                .y(function(d) { return d[1]; })\n                .color(d3.scale.category10().range())\n                .duration(300)\n                .showDistX(true)\n                .noData('No usable data')\n            ;\n\n            zoomChart.legend.margin({bottom: 500});\n            \n            //console.log(title);\n\n            // Wrapping in nv.addGraph allows for '0 timeout render', stores rendered charts in nv.graphs,\n            // and may do more in the future... it's NOT required\n            nv.addGraph(function() {\n\n                zoomChart.xAxis\n                    .ticks(5)\n                    .tickPadding(40)\n                    .showMaxMin(true)\n                    .tickFormat(function(d) {\n                        let zoomChartXDomainLength = zoomChartLinesData[0].values.length;\n                        return nv.utils.getDateAutoscaleFormat (zoomChartLinesData[0].values[0][0], zoomChartLinesData[0].values[zoomChartXDomainLength-1][0])(new Date(d));\n                    });\n                \n                zoomChart.y1Axis\n                    .axisLabel(title)\n                    .axisLabelDistance(10);\n\n                zoomChart.y2Axis\n                    .axisLabel('Temperature (°C)')\n                    .axisLabelDistance(10);\n                    \n                zoomChart.distX\n                    .margin({top: 3, right: 0, bottom: 0, left: 0})\n                    .size(30)\n                    .distXTooltipBottomOffset(5)\n                    .isDistXTooltip(isDistXTooltip)\n                    .isFixedDistXTooltip(false)\n                    .distXRiseUpAnimationDuration(distXRiseUpAnimationDuration)\n                    .distXRiseUpAnimationDelay(false)\n                    .lineWidth(2)\n                ;\n\n                if (_this.instrument.get('instrumentType').get('title') === 'Tilt') {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".3f\"));\n                    zoomChart.legend.numDecimals(3);\n                } else {\n                    zoomChart.y1Axis.tickFormat(d3.format(\".2f\"));\n                }\n                zoomChart.y2Axis.tickFormat(d3.format(\".1f\"));\n\n                zoomChartSVG.datum(zoomChartLinesData).call(zoomChart);\n\n                zoomChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                    _this.set('startTimestamp', brushExtent[0]);\n                    _this.set('endTimestamp', brushExtent[1]);\n                    let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                    let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                    zoomChart.tooltip.hidden(true);\n\n                    // update query params via updateProperties action it the controller\n                    _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n                 });\n\n                zoomChart.dispatch.on('brush', function (brushExtent) {\n                    if (brushExtent.extent[0] > 0) {\n                        // chart.focus.dispatch.onBrushCall(brushExtent.extent);\n                        fullRangeChart.dispatch.onBrushCall(brushExtent.extent);\n                    }\n                });\n\n                function selectControls() {\n                    zoomChart.chartData.forEach(function(series) { series.disabled = false; });\n                }\n\n                function updateDistXTooltip(tooltipContent) {\n\n                    if (typeof tooltipContent === 'undefined') {\n                        return false;\n                    }\n\n                    let tooltipText = '',\n                        tooltipClass = '',\n                        eventSize = null\n                    ;\n\n                    if (typeof(tooltipContent) === 'object') {\n                        if (tooltipContent.type === 'Blast') {\n                            tooltipClass = 'blast';\n                            eventSize = '<span class=\"event-type\">Project: ' + tooltipContent.project + '<br />Level: ' + tooltipContent.level + '<br />Location: ' + tooltipContent.location + '<br />Tonnes: ' + tooltipContent.tonnes + '</span>';\n                        } else if (tooltipContent.type === 'Seismic') {\n                            tooltipClass = 'seismic';\n                            eventSize = '<span class=\"event-type\">Location: ' + tooltipContent.location + '<br />Moment-magnitude: ' + tooltipContent.momentMagnitude + '</span>';\n                        } else if (tooltipContent.type === 'BluVibe') {\n                            tooltipClass = 'bluvibe';\n                            eventSize = '<span class=\"event-type\">PPV - mm/s: ' + tooltipContent.ppv + '<br />PPA - mm/s&#178;: ' + tooltipContent.ppa + '<br />Frequency - Hz: ' + tooltipContent.freq + '</span>';\n                        } else if (tooltipContent.type === 'Other') {\n                            tooltipClass = 'other';\n                        }\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>' +\n                                      '<span class=\"event-type\">Type: ' + tooltipContent.type + '</span>' +\n                                      eventSize\n                        ;\n                    } else {\n                        tooltipText = '<span class=\"time\">' + tooltipContent.timestamp + '</span>';\n                    }\n\n                    return {\n                        tooltipClass: tooltipClass,\n                        tooltipText: tooltipText\n                    };\n                }\n\n                zoomChart.distX.dispatch.on('distXMouseMove', function (distXMouseMove) {\n                    //console.log(blastEventsArray);\n                    //console.log(vibeEventsArray);\n                    //console.log(distXMouseMove);\n/* \n                    if ( vibeEventsArray.length && distXMouseMove.distX2 > -1 ) {\n                        //console.log('mouseMove');\n                        //console.log(vibeEventsArray);\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(vibeEventsArray[distXMouseMove.distX2]) );\n                    } */\n\n                    if ( seismicEventsArray.length && distXMouseMove.distX0 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(seismicEventsArray[distXMouseMove.distX0]) );\n                    }\n                    if ( blastEventsArray.length && distXMouseMove.distX1 > -1 ) {\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(blastEventsArray[distXMouseMove.distX1]) );\n                    }\n                    if (!seismicEventsArray.length || !blastEventsArray.length){//} || !vibeEventsArray.length) {\n                        let distXIndex = distXMouseMove.distX0;\n                        let data_set = 0;\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX1;\n                            data_set = 1;\n                        }\n                        if (distXIndex === -1) {\n                            distXIndex = distXMouseMove.distX2;\n                            data_set = 2;\n                        }\n\n                        let activeTooltipContent = seismicEventsArray[distXIndex];\n                        if (data_set===1) {\n                            activeTooltipContent = blastEventsArray[distXIndex];\n                        }\n                        if (data_set===2) {\n                            //activeTooltipContent = vibeEventsArray[distXIndex];\n                        }\n                        zoomChart.distX.dispatch.onDistXTooltipShowCall( updateDistXTooltip(activeTooltipContent) );\n                    }\n                });\n\n                //TODO: Figure out a good way to do this automatically\n                nv.utils.windowResize(zoomChart.update);\n\n                zoomChart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });\n                zoomChart.state.dispatch.on('change', function(state){\n                    nv.log('state', JSON.stringify(state));\n                });\n\n                //console.log('nvd3 data: ', zoomChartLinesData);\n                _this.sendAction('setData',zoomChartLinesData);\n                _this.sendAction('setChart',zoomChart);\n\n                return zoomChart;\n            });\n        });\n\n\n        function usesPoints(chartName) {\n            //console.log(chartName);\n            switch(chartName) {\n                case 'event-ppv':\n                case 'event-ppa':\n                    return true;\n            }\n            return false;\n        }\n\n        let graph_type = null;\n        if (usesPoints(_this.get('chartDataModelName'))) {\n            graph_type = nv.models.scatter();\n        } else {\n            graph_type = nv.models.line();\n        }\n        \n        let fullRangeChart = nv.models.focus(graph_type)\n            .margin({top: 10, right: 10, bottom: 30, left: 80})\n            .x(function(d) { return d[0]; })\n            .y(function(d) { return d[1]; })\n            .color(d3.scale.category10().range())\n            .syncBrushing(false)\n            .independentBrushing(true)\n            .showXAxis(true)\n            .showYAxis(false)\n        ;\n\n        nv.addGraph(function() {\n\n            fullRangeChart.xAxis\n                .showMaxMin(false)\n                .tickFormat(function(d) {\n                    //console.log(\"beep\");\n                    if (fullRangeChartLinesData.length > 0) {\n                        let fullRangeChartXDomainLength = fullRangeChartLinesData[0].values.length;\n                        try {\n                            return nv.utils.getDateAutoscaleFormat (fullRangeChartLinesData[0].values[0][0], fullRangeChartLinesData[0].values[fullRangeChartXDomainLength-1][0])(new Date(d));\n                        } catch (ex) {\n                            return [0, 0];\n                        }\n                    } else {\n                        return [0, 0];\n                    }\n                });\n\n\n            fullRangeChart.yAxis.tickFormat(d3.format(\".2f\"));\n\n            fullRangeChartSVG.datum(fullRangeChartLinesData).call(fullRangeChart);\n\n\n            fullRangeChart.dispatch.on('onBrushEnd', function (brushExtent) {\n                _this.set('startTimestamp', brushExtent[0]);\n                _this.set('endTimestamp', brushExtent[1]);\n                let startTimestamp = moment(_this.get('startTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n                let endTimestamp = moment(_this.get('endTimestamp'), \"x\").format(\"YYYY-MM-DD HH:mm:ss.SSS\");\n\n                // update query params via updateProperties action it the controller\n                _this.attrs.updateProperties(['start_timestamp', 'end_timestamp'], [startTimestamp, endTimestamp]);\n             });\n\n            fullRangeChart.dispatch.on('brush', function (brushExtent) {\n                if (brushExtent.extent[0] > 0) {\n                    // zoomChart.dispatch.onBrushCall(brushExtent.extent);\n                }\n             });\n\n            //TODO: Figure out a good way to do this automatically\n            nv.utils.windowResize(fullRangeChart.update);\n\n            // set zoom based on query params if set\n            let startTimestamp = moment(_this.attrs.getQueryParams('start_timestamp')).valueOf();\n            let endTimestamp = moment(_this.attrs.getQueryParams('end_timestamp')).valueOf();\n            if (startTimestamp && endTimestamp) {\n                fullRangeChart.dispatch.onBrushCall([startTimestamp, endTimestamp]);\n            }\n\n            return fullRangeChart;\n        });\n    }\n});\n","import Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\nimport { computed } from '@ember/object';\nimport { sort } from '@ember/object/computed';\n\nexport default class DropdownComponent extends Component {\n    @service store;\n    @service queryParams; // Inject the queryParams service\n\n\n    @tracked instrument;\n    // port = 1;\n    constructor() {\n        super(...arguments);\n        this.loadInstrument();\n    }\n\n    @sort('instrument.vwproperty', 'portSorting') sortedProperties;\n  \n    portSorting = ['port:asc'];\n\n    // I need the instrument.vwProperty to get the ports.\n    async loadInstrument() {\n        this.instrument = await this.store.findRecord('instrument', this.args.instrumentId);\n    }\n}\n","import Component from '@ember/component';\nimport { inject as service } from \"@ember/service\";\nimport { computed, set } from '@ember/object';\n\nexport default Ember.Component.extend({\n    calibColLabel: \"-\",\n    init() {\n        this._super(...arguments);\n        this.updateCalibColLabel(this.get(\"port\"));\n        \n\n    },\n    isVisibleCreateNewForm: false,\n    store: Ember.inject.service(),\n    trueAnchorDistances: computed('instrument', 'linear', 'calib', 'depth', function() {\n        const channelsNum = this.get(\"instrument.channelsNum\");\n        const iterations = Math.floor(channelsNum / 2)*2;\n        const linear = this.get('linear');\n        const calib = this.get('calib');\n        const depth = this.get('depth');\n    \n        let trueAnchorDistances = [];\n        this.set('isWire', true);\n    \n        for (let i = 1; i <= iterations; i++) {\n            if (i % 2 === 0) {\n                if (linear) {\n                    trueAnchorDistances.push('LU/digits');\n                } else if (calib) {\n                    trueAnchorDistances.push('Pressure (kPa)');\n                } else if (depth) {\n                    trueAnchorDistances.push('Depth (mm-Water)');\n                } else {\n                    trueAnchorDistances.push('Freq.(Hz)');\n                }\n            } else {\n                trueAnchorDistances.push('Temperature (°C)');\n            }\n        }\n        console.log(\"trueAnchorDistances: \" + trueAnchorDistances)\n        return trueAnchorDistances;\n    }),\n    modelNames: Ember.computed(function() {\n        let vwmodelName= \"\";\n        this.store.query('vwproperty',{}).then((vwproperties) => {\n            if(vwproperties && vwproperties.length > 0){\n                vwproperties.forEach(vwproperty=>{\n                    try {\n                        if(vwproperty.get('instrument')){\n                            vwmodelName = vwproperty.get(\"vwmodel\").get(\"modelName\");\n                            console.log('vwmodel::::::' + vwmodelName);\n                        }\n                    } catch {\n                        console.log(\"instrument dont exist\")\n                    }\n                })\n            }\n          });\n        return vwmodelName;\n    }),\n    portObserver: Ember.observer('port', function() {\n        let activePort = this.get('port');\n        this.updateCalibColLabel(this.get(\"port\"))\n    }),\n    updateCalibColLabel: function(currentPort){\n        \n        this.set(\"calibColLabel\", currentPort)\n        if(currentPort == null){\n            this.set(\"calibColLabel\", \"Presssure (-)\");\n        }\n        else{\n            this.get(\"instrument.vwproperty\").forEach(vwProp =>{\n                if (currentPort == vwProp.get(\"port\")){\n                    this.set(\"calibColLabel\", `Pressure (${vwProp.get(\"serial\")})`);\n                }\n            })\n        }\n\n    },\n    anchorDistances: Ember.computed(\"port\",'instrument','linear','calib', 'depth', function() {\n        // console.log('port_number: ' + this.get('port_number') );\n        // if (this.get('linear') == true)\n        //     return ['LU/digits']\n        // if (this.get('calib') == true)\n        //     return ['Pressure (kPa)']\n        // if (this.get('depth') == true)\n        //     return ['Depth (mm-Water)']\n        // return ['Frequency (Hz)'];\n        // console.log(\"HERE::::::::::::::::::::\")\n        let channelsNum = this.get(\"instrument\").channelsNum;\n        let anchorDistances = []\n        this.set('isWire', true)\n        /////////////\n        let calibColLabel = this.get(\"calibColLabel\");\n        console.log(\"calibColLabel:::::::::::\" + calibColLabel);\n        /////////////\n\n        if (channelsNum >= 2){\n            console.log(\"channelsNum: \" + channelsNum);\n\n\n            if (this.get('linear') == true){\n                anchorDistances.push('LU/digits');\n                return anchorDistances;\n            }\n            if (this.get('calib') == true){\n                console.log(\"channelsNum: \" + channelsNum);\n                anchorDistances.push(calibColLabel);\n                return anchorDistances;\n            }\n            if (this.get('depth') == true){\n                anchorDistances.push('Depth (mm-Water)');\n                return anchorDistances;\n            }\n\n            anchorDistances.push('Freq.(Hz)');\n            return anchorDistances;\n        } \n        else {\n            let linear = this.get('linear') == true;\n            let calib = this.get('calib') == true;\n            let depth = this.get('depth') == true;\n\n            for(let channel = 1 ; channel < channelsNum; channel++){\n                if(channel % 2 == 1){\n                      \n                    if (linear){\n                        anchorDistances.push('LU/digits');\n                        continue;\n                    }\n                    if (calib){\n                        anchorDistances.push(calibColLabel);\n                        continue;\n                    }\n                    if (depth){\n                        anchorDistances.push('Depth (mm-Water)');\n                        continue;\n                    }            \n                    if(!linear && !calib && !depth){\n                        anchorDistances.push('Freq.(Hz)');\n                    }\n                } else {\n                    anchorDistances.push('Temperature (°C)');\n                }        \n            }\n        }\n\n        return anchorDistances;\n\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Component.extend({\n});\n","// import Component from '@ember/component';\n// import { inject as service } from \"@ember/service\";\n\n// export default class TemporalChartDropdown extends Component {\n//     //@service session;\n//     //@service currentUser;\n//     isAuthenticated = true;\n//     selected = \"Displacement\";\n// }\n\nimport Ember from 'ember';\nimport moment from 'moment';\n\nexport default Ember.Component.extend({ \n});","import Component from '@glimmer/component';\nimport { inject as service } from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\n\nexport default class DropdownComponent extends Component {\n    @service store;\n    @service queryParams; // Inject the queryParams service\n\n    @tracked instrument;\n    // port = 1;\n    constructor() {\n        super(...arguments);\n        this.loadInstrument();\n    }\n\n    // I need the instrument.vwProperty to get the ports.\n    async loadInstrument() {\n        this.instrument = await this.store.findRecord('instrument', this.args.instrumentId);\n    }\n}\n","define(\"geotechnical-data-platform-new/components/wms-tile-layer\", [\"exports\", \"ember-leaflet/components/wms-tile-layer\"], function (_exports, _wmsTileLayer) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _wmsTileLayer.default;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n            label: \"Alerts\",\n            path: 'alerts'\n        },\n        \n    ],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n    }\n\n});\n","// app/controllers/application.js\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\nimport { action } from \"@ember/object\";\n \nexport default class ApplicationController extends Controller {\n  @service session;\n\n  @action\n  invalidateSession() {\n    // console.log(\"LOGOUT!\");\n    localStorage.clear();\n    this.session.invalidate();\n  }\n}\n","import Ember from 'ember';\nimport { on } from '@ember/object/evented';\n\nexport default Ember.Controller.extend({\n    _my_init: on('init', function() {\n        Ember.run.scheduleOnce('afterRender', this, function() {\n            //this.send('updateNav',this.get('model').licence.content[0]._data);\n        });\n    }),\n    queryParams: ['page', 'page_size', 'ordering', 'search'],\n    page_size: 20,\n    eventsMeta: null,\n    ordering: null,\n    search: null,\n    isVisibleRowDetails: {},\n    isRowDeleteConfirmationDialog: {},\n    isVisibleCreateNewForm: false,\n    permissionError: false,\n    project: null,\n    level: null,\n\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n            label: \"Blast Events\",\n            path: 'blast-events'\n        },\n        \n    ],\n\n    actions: {\n        // updateNav(licence) {\n        //     let modules = licence.modules;\n        //     if(licence.isValid) {\n        //         if(licence.withinLimit) {\n        //             if(!modules.temporal) {\n        //                 document.getElementById(\"temp-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"temp-link\").style.display = \"block\";\n        //             }\n        //             if(!modules.spatial) {\n        //                 document.getElementById(\"spat-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"spat-link\").style.display = \"block\";\n        //             }\n        //             if(!modules.frequency) {\n        //                 document.getElementById(\"freq-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"freq-link\").style.display = \"block\";\n        //             }\n        //             if(!modules.alerts) {\n        //                 document.getElementById(\"alert-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"alert-link\").style.display = \"block\";\n        //             }        \n        //             document.getElementById(\"licence-error-instruments\").style.display = \"none\";\n        //         } else {\n        //             document.getElementById(\"licence-error-instruments\").style.display = \"block\";\n        //         }\n        //         document.getElementById(\"licence-error-expired\").style.display = \"none\";\n        //     } else {\n        //         document.getElementById(\"add-new\").style.display = \"none\";\n        //         document.getElementById(\"licence-error-expired\").style.display = \"block\";\n        //     }\n        //     document.getElementById(\"licence-error-module\").style.display = \"none\";\n        // },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        vewRowDetails(id){\n            let curVal = this.get('isVisibleRowDetails')[id] ? false : true;\n            Ember.set(this.get('isVisibleRowDetails'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        remove(model, object){\n            let _this = this;\n            object.deleteRecord();\n            object.get('isDeleted');\n            object.save().then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                model.removeObject(object);\n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.send('updateProperty', 'permissionError', true);\n                }\n            });\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        setProject(object, event) {\n            const selectedId = event.target.value;;\n            \n            // Assume projectLookupList is the array of lookup objects\n            let foundObjects = this.get(\"model.projectLookupList\")\n            let foundObject = foundObjects.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n            // console.log(\"Found Object:: \" + foundObject)\n\n            if (foundObject) {\n              // Do something with foundObject\n              console.log(\"saving project\")\n              object.set(\"project\", foundObject)\n              object.save();\n            }\n        },\n        \n        setLevel(object, event) {\n            const selectedId = event.target.value;;\n            \n            // Assume levelLookupList is the array of lookup objects\n            let foundObjects = this.get(\"model.levelLookupList\")\n            let foundObject = foundObjects.find((lookup) => {\n              return lookup.id === selectedId;\n            });\n            // console.log(\"Found Object:: \" + foundObject)\n\n            if (foundObject) {\n              // Do something with foundObject\n              console.log(\"saving level\")\n              object.set(\"level\", foundObject)\n              object.save();\n            //   this.set('project', foundObject);\n            }\n        },\n\n    }\n});\n","import Ember from 'ember';\nimport { computed, observer } from '@ember/object';\n\nexport default Ember.Controller.extend({\n    store: Ember.inject.service(),\n    instType: \"\",\n    id: \"\",\n    gwType: \"\",\n    gwId: \"\",\n    isVisibleError: false,\n    duplicateError: false,\n    typeError: false,\n    fieldError: false,\n    instruments:[],\n    searchedValue : \"\",\n    loading:false,\n    _my_init: async function() {\n        this.set(\"loading\", true);\n        let newInstr = await this.store.query('instrument', {small: 'false', exclude: 15}).then(function(instruments){\n            return instruments.map((instr)=>{\n                return {\n                    title: instr.get('id'),\n                    value: instr.get('id'),\n                    type: instr.get('instrumentTypeID'),\n                };\n            })\n          });\n        this.set(\"loading\", false);\n        this.set(\"instruments\", newInstr)\n    }.on('init'),\n    allInstruments: Ember.computed.filter('model.instruments', function(instrument) {\n        return true;\n    }),\n\n    // instruments: Ember.computed.map('allInstruments', function(instrument) {\n    //     return {\n    //         title: instrument.get('id'),\n    //         value: instrument.get('id'),\n    //         type: instrument.get('instrumentTypeID'),\n    //     };\n    // }),\n\n    instrumentChanged: observer('inst_id', function() {\n        this.set('instType', this.get('model').instrument.instrumentTypeID);\n        this.set('id',this.get('inst_id'));\n    }),\n\n    instrumentChanged: observer('inst_id', function() {\n        let model = this.get(\"model\");\n        let instrument = model.instrument\n    \n        if(instrument !=null ){\n            this.set('instType', instrument.instrumentTypeID);\n            this.set('id',instrument.id);\n        }\n    }),\n\n    // for gateway alerts:\n    allGateways: Ember.computed.filter('model.instruments', function(instrument) {\n        return true;\n    }),\n\n    gateways: Ember.computed.map('allGateways', function(gateway) {\n        return {\n            title: gateway.get('id'),\n            value: gateway.get('id'),\n            type: gateway.get('gatewayTypeID'),\n        };\n    }),\n\n    gatewayChanged: observer('gwId', function() {\n        this.set('gwType', this.get('model').gateway.gatewayTypeID);\n        this.set('gwId',this.get('gw_id'));\n    }),\n\n    gatewayChanged: observer('gw_id', function() {\n        let model = this.get(\"model\");\n        let gateway = model.instrument\n    \n        if(gateway !=null ){\n            this.set('gwType', gateway.gatewayTypeID);\n            this.set('gwId',gateway.id);\n        }\n    }),\n\n    \n\n\n    breadCrumbs: computed({\n        get() {\n            let obj = [\n                {\n                    label: \"Dashboard\",\n                    path: 'index'\n                },\n                {\n                    label: \"Alerts\",\n                    path: 'alerts'\n                },\n                {\n                    label: 'Create Alert',\n                    path: 'create-alert',\n                }\n            ]\n        \n            return obj;\n        }\n    }),\n    actions: {\n        submit(id) {\n            if (id != null) {\n                this.transitionToRoute('edit-alert', id);\n            } else {\n                this.transitionToRoute('alerts');\n            }\n        },\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n        setValue(property,value) {\n            Ember.set(this, property, value)\n        },\n        setID(inst){\n            console.log(inst);\n            //this.set(\"inst_id\", inst.value);\n            this.set(\"instType\", inst.type);\n            this.set(\"id\", inst.value);\n        },\n        // setID(gw){\n        //     console.log(gw);\n        //     //this.set(\"gw_id\", gw.value);\n        //     this.set(\"gwType\", gw.type);\n        //     this.set(\"id\", gw.value);\n        // },\n\n    }\n});\n","import Ember from 'ember';\nimport Controller from '@ember/controller';\nimport { computed, observer } from '@ember/object';\nimport { inject as service } from \"@ember/service\";\n\nexport default Ember.Controller.extend({\n    gwType: \"\",\n    id: \"\",\n    \n    isVisibleError: false,\n    duplicateError: false,\n    typeError: false,\n    fieldError: false,\n\n    allGateways: Ember.computed.filter('model.gateways', function(gateway) {\n        return true;\n    }),\n    gateways: Ember.computed.map('allGateways', function(gateway) {\n        return {\n            title: gateway.get('id'),\n            value: gateway.get('id'),\n            type: gateway.get('gatewayTypeID'),\n        };\n    }),\n\n    gatewayChanged: observer('gw_id', function() {\n        this.set('gwType', this.get('model').gateway.gatewayTypeID);\n        this.set('id',this.get('gw_id'));\n    }),\n\n    gatewayChanged: observer('gw_id', function() {\n        let model = this.get(\"model\");\n        let gateway = model.gateway\n    \n        if(gateway !=null ){\n            this.set('gwType', gateway.gatewayTypeID);\n            this.set('id',gateway.id);\n        }\n    }),\n\n    breadCrumbs: computed({\n        get() {\n            let obj = [\n                {\n                    label: \"Dashboard\",\n                    path: 'index'\n                },\n                {\n                    label: \"Alerts\",\n                    path: 'alerts'\n                },\n                {\n                    label: 'Create Alert',\n                    path: 'create-gateway-alert',\n                }\n            ]\n        \n            return obj;\n        }\n    }),\n    actions: {\n        submit(id) {\n            if (id != null) {\n                this.transitionToRoute('edit-gateway-alert', id);\n            } else {\n                this.transitionToRoute('alerts');\n            }\n        },\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n        setValue(property,value) {\n            Ember.set(this, property, value)\n        },\n        setID(gw){\n            //console.log(gw);\n            //this.set(\"gw_id\", gw.value);\n            this.set(\"gwType\", gw.type);\n            this.set(\"id\", gw.value);\n        },\n    }\n});\n","import Controller from '@ember/controller';\nimport { computed } from '@ember/object';\nimport { inject as service } from \"@ember/service\";\n\nexport default class CreateGatewayController extends Controller {\n    @service store;\n    gatewayType = 0;\n    isVisibleError = false;\n    duplicateError = false;\n    typeError = false;\n    fieldError = false;\n\n    breadCrumbs = [\n        {\n            label: \"Dashboard\",\n            path: \"index\"\n        },\n        {\n            label: \"Gateways\",\n            path: 'gateway'\n        },\n        {\n            label: 'Create Gateway',\n            path: 'create-gateway',\n        }\n    ];\n\n    actions = {\n        choseForm(value) {\n            console.log(`setting gatewayTypes: ${value}`)\n            Ember.set(this, 'gatewayTypes', value);\n        },\n        submit(id) {\n            if (id != null) {\n                this.transitionToRoute('edit-gateway', id);\n            } else {\n                this.transitionToRoute('gateway');\n            }\n        },\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n    };\n}\n\n","import Controller from '@ember/controller';\nimport EmberObject, { computed } from '@ember/object';\nimport { inject as service } from \"@ember/service\";\nimport { tracked } from '@glimmer/tracking';\n\nexport default class CreateInstrumentController extends Controller {\n    @service store;\n    @tracked vendors = [];\n\n    instType = 0;\n    isVisibleError = false;\n    duplicateError = false;\n    typeError = false;\n    fieldError = false;\n\n    breadCrumbs = [\n        {\n            label: \"Dashboard\",\n            path: \"index\"\n        },\n        {\n            label: \"Instruments\",\n            path: 'instruments'\n        },\n        {\n            label: 'Create Instrument',\n            path: 'create-instrument',\n        }\n    ];\n\n    sortTypesByTitle(typesArray) {\n        return typesArray.sort((a, b) => {\n            if (a.title < b.title) return -1;\n            if (a.title > b.title) return 1;\n            return 0;\n        });\n    };\n\n    @computed('model')\n    get getInstrumentTypes() {\n        let types = this.model.instrumentTypes;\n        let newTypesArr = [];\n        types.forEach(element => {\n            if(element.id != \"3\"){ \n                newTypesArr.push(element)\n            };\n        });\n        newTypesArr = this.sortTypesByTitle(newTypesArr);\n        return newTypesArr;\n    }\n    \n    actions = {\n        choseForm(value) {\n            Ember.set(this, 'instType', value);\n            this.store.query('vendor', { instrument_type: value })\n                .then((vendors) => {\n                    // Do something with the fetched vendors\n                    this.vendors = vendors;\n            });\n  \n        },\n        submit(id) {\n            if (id != null) {\n                this.transitionToRoute('edit-instrument', id);\n            } else {\n                this.transitionToRoute('instruments');\n            }\n        },\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n    };\n}\n\n// export default Ember.Controller.extend({\n//     instType: 0,\n//     id: \"\",\n//     store: Ember.inject.service(),\n    \n//     isVisibleError: false,\n//     duplicateError: false,\n//     typeError: false,\n//     fieldError: false,\n\n//     breadCrumbs: computed({\n//         get() {\n//             let obj = [\n//                 {\n//                     label: \"Instruments\",\n//                     path: 'instruments'\n//                 },\n//                 {\n//                     label: 'Create Instrument',\n//                     path: 'create-instrument',\n//                 }\n//             ]\n        \n//             return obj;\n//         }\n//     }),\n//     actions: {\n//         choseForm(value) {\n//             Ember.set(this, 'instType', value);\n//         },\n//         submit(id) {\n//             if (id != null) {\n//                 this.transitionToRoute('edit-instrument', id);\n//             } else {\n//                 this.transitionToRoute('instruments');\n//             }\n//         },\n//         setError(error,value) {\n//             Ember.set(this, error, value);\n//         }\n//     }\n// });\n","import Controller from '@ember/controller';\nimport { computed } from '@ember/object';\nimport { inject as service } from \"@ember/service\";\nimport { tracked } from '@glimmer/tracking';\n\nfunction resetNewLookupObject(_this) {\n    //console.log('reset');\n    _this.set('newLookupObject', {});\n    _this.set('name', \"\");\n    _this.set('type', \"\");\n    _this.set('value', \"\");\n}\n\nexport default class CreateInstrumentController extends Controller {\n\n\n    init() {\n        super.init(...arguments);\n        resetNewLookupObject(this);\n    }\n\n    @service store;\n    @tracked vendors = [];\n\n    lookupType = 0;\n    isVisibleError = false;\n    duplicateError = false;\n    typeError = false;\n    fieldError = false;\n    type = \"\";\n    breadCrumbs = [\n        {\n            label: \"Dashboard\",\n            path: \"index\"\n        },\n        {\n            label: \"Lookups\",\n            path: 'list-lookups'\n        },\n        {\n            label: 'Create Lookup',\n            path: 'create-lookup',\n        }\n    ];\n\n    actions = {\n        choseType(value) {\n            Ember.set(this, 'lookupType', value);\n        },\n        submit(id) {\n            if (id != null) {\n                this.transitionToRoute('edit-lookup', id);\n            } else {\n                this.transitionToRoute('list-lookups');\n            }\n        },\n\n        createLookup(object){\n\n            let _this = this;\n            let store = this.get('store');\n            let newLookupObject = this.get('newLookupObject');\n\n            newLookupObject.name = this.get('name');\n            newLookupObject.type = this.get('lookupType');\n            newLookupObject.value = this.get('value');\n            \n\n            if (! newLookupObject.name || !newLookupObject.type || !newLookupObject.value) {\n                alert(\"All fields are required\");\n                return;\n            }\n            console.log(\"newLookupObject::::::::::: \" + JSON.stringify(newLookupObject));\n            \n            let newLookup = null;\n            let dup = false;\n            \n            try {\n                newLookup = store.createRecord('lookup', newLookupObject);\n            } catch (err) {\n                this.setError('isVisibleError',true);\n                console.log(\"Error::::: \");\n                console.log(err.message);\n            }\n        \n            \n            // this.setError('authError', false);\n\n            // if (!error) {\n                \n            newLookup.save().then(function(results){\n                // console.log(dup);\n                if(results.id != null) {\n                    _this.get('submit')(results.id);\n                } else {\n                    this.setError('isVisibleError',true);\n                    error = true;\n                }\n            }).catch(function(reason) {             \n                console.log(\"REASON: \" + reason);  \n                // _this.setError('isVisibleError',true);\n                // _this.setError('authError',true);\n            }); \n            \n        },\n\n    };\n}\n\n","import Controller from '@ember/controller';\nimport { computed, observer } from '@ember/object';\n\nexport default Ember.Controller.extend({\n    breadCrumbs: computed('model',{\n        get() {\n            let alert = this.get('model').alert;\n            \n            let obj = [\n                {\n                    label: \"Dashboard\",\n                    path: 'index'\n                },    \n            {\n                label: \"Alerts\",\n            }];\n            \n            if (alert != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Alerts\",\n                        path: 'alerts'\n                    },\n                    {\n                        label: alert.get('id'),\n                        path: 'edit-alert',\n                        model: alert.get('id'),\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    instrumentTypeName: computed('', function() {\n        // console.log(this.get('model').alert.instrument.get('instrumentType').title);\n        this.set('instType', this.get('model').alert.instrument.get('instrumentType'));\n        this.set('id',this.get('alert_id'));\n        return 'test';\n    }),\n    actions: {\n        saved() {\n            this.transitionToRoute('alerts');\n        },\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n    },\n})\n","import Controller from '@ember/controller';\nimport { computed, observer } from '@ember/object';\n\nexport default Ember.Controller.extend({\n    breadCrumbs: computed('model',{\n        get() {\n            let alert = this.get('model').alert;\n            \n            let obj = [\n                {\n                    label: \"Dashboard\",\n                    path: 'index'\n                },    \n            {\n                label: \"Alerts\",\n            }];\n            \n            if (alert != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Alerts\",\n                        path: 'alerts'\n                    },\n                    {\n                        label: alert.get('id'),\n                        path: 'edit-gateway-alert',\n                        model: alert.get('id'),\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    gatewayTypeName: computed('', function() {\n        // console.log(this.get('model').alert.instrument.get('instrumentType').title);\n        this.set('gwType', this.get('model').alert.instrument.get('gwType'));\n        this.set('id',this.get('alert_id'));\n        return 'test';\n    }),\n    actions: {\n        saved() {\n            this.transitionToRoute('alerts');\n        },\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n    },\n})\n","import Controller from '@ember/controller';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Controller.extend({\n    session: service(),\n    queryParams: ['parentGateway'],\n\n    init() {\n        this._super(...arguments);\n        // Check if there's a parentGateway in the query params\n        const queryParamParentGateway = this.parentGateway;\n        if (queryParamParentGateway) {\n            // If so, save it to localStorage\n            window.localStorage.setItem('parentGateway', queryParamParentGateway);\n        } else {\n            // If not, try to load it from localStorage\n            const storedParentGateway = window.localStorage.getItem('parentGateway');\n            if (storedParentGateway) {\n                // If found, set it to the controller's property\n                this.set('parentGateway', storedParentGateway);\n            }\n        }\n    },\n    parentGateway: computed({\n        get() {\n            return this._parentGateway;\n        },\n        set(key, value) {\n            // Save to localStorage whenever it's updated\n            window.localStorage.setItem('parentGateway', value);\n            this._parentGateway = value;\n            return value;\n        }\n    }),\n    \n    breadCrumbs: computed('model',{\n        get() {\n        let gateway = this.get('model').gateway;\n        \n        let obj = [{\n            label: \"Gateway\",\n        }];\n\n            if (gateway != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Gateway\",\n                        path: 'gateway'\n                    },\n                    {\n                        label: gateway.get('id'),\n                        path: 'edit-gateway',\n                        model: gateway.get('id'),\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    \n    gatewayTypeLabel: Ember.computed('model.gateway.gatewayType', function() {\n        // console.log(\"Model:\")\n        let modelTemp = this.get('model')\n\n        // console.log('model: ')\n        // console.log(this.parentGateway)\n\n        let gatewayType = this.get('model.gateway.gatewayType');\n        // console.log(\"gatewayType::: \" + gatewayType.title);\n        if(gatewayType == null){\n            return \"Gateway\";\n        }\n        if( gatewayType.title == 'Blu900' ) {\n            return \"Node\";\n        }\n        return 'Gateway';\n    }),\n\n    hasGraphs: computed('', {\n        get() {\n            if (this.getPerms() != undefined){\n                return ('graphing' in this.getPerms() && this.getPerms()['graphing'] == true);\n            }\n        }\n    }),\n    hasAlerts: computed('', {\n        get() {\n            if (this.getPerms() != undefined){\n                return ('alerts' in this.getPerms() && this.getPerms()['alerts'] == true);\n            }\n        }\n    }),\n    getPerms: function() {\n        let perms = null;\n        try{\n            perms = this.session.data.authenticated.modules;\n        } catch {}\n        return perms;\n    },\n    actions: {\n        viewData(id) {\n            this.transitionToRoute('raw-gateway-data', id);\n        },\n        tGraph(id, chart) {\n            this.transitionToRoute('temporal-gateway-graphs.temporal-gateway-graph', id, { queryParams: { \"chart\":chart, \"start_timestamp\": null, \"end_timestamp\": null }});\n        },\n        saveToLocalStorage() {\n          // 'this.parentGateway' is the value you want to store\n          window.localStorage.setItem('parentGateway', this.parentGateway);\n        },   \n        loadFromLocalStorage() {\n            let parentGateway = window.localStorage.getItem('parentGateway');\n            if (parentGateway) {\n              this.set('parentGateway', parentGateway);\n            }\n        }\n    }\n});\n","import Controller from '@ember/controller';\nimport { computed } from '@ember/object';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Controller.extend({\n    session: service(),\n    breadCrumbs: computed('model',{\n        get() {\n            let instrument = this.get('model').instrument;\n            \n            let obj = [{\n                label: \"Instruments\",\n            }];\n            \n            if (instrument != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.get('id'),\n                        path: 'edit-instrument',\n                        model: instrument.get('id'),\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    hasGraphs: computed('', {\n        get() {\n            if (this.getPerms() != undefined){\n                return ('graphing' in this.getPerms() && this.getPerms()['graphing'] == true);\n            }\n        }\n    }),\n    hasAlerts: computed('', {\n        get() {\n            if (this.getPerms() != undefined){\n                return ('alerts' in this.getPerms() && this.getPerms()['alerts'] == true);\n            }\n        }\n    }),\n    getPerms: function() {\n        let perms = null;\n        try{\n            perms = this.session.data.authenticated.modules;\n        } catch {}\n        return perms;\n    },\n    ports: Ember.computed('instrument', function() {\n        let channelsNum = null;\n        try{\n            channelsNum = this.get('model').instrument.channelsNum;\n            channelsNum = parseInt(channelsNum/2);\n        } catch (ex) {\n            channelsNum = 1;\n\n        }\n        \n        let numberOfPorts = [];\n        for(let channel = 1 ; channel <= channelsNum; channel++){\n            numberOfPorts.push({\"channel\": channel, \"title\": \"Port: \" + channel, route:\"edit-instrument\"});\n        }\n        console.log(JSON.stringify(numberOfPorts));\n        //this.ports = numberOfPorts;\n        return numberOfPorts;\n    }),    \n\n    actions: {\n        selectProperty(value){\n            let inst = this.get('model').instrument;\n            let prop = inst.get('vwproperty').toArray()[0];\n            console.log(\"prop::: \" + prop.get('port'));\n            let model = this.get('vwModels').findBy('id', this.get('selectedModel'));\n            let vendor = this.get('vwVendors').findBy('id', this.get('selectedVendor'));\n            let serial = this.get('serial');\n        },\n\n        viewData(id) {\n            this.transitionToRoute('raw-data', id);\n        },\n        tGraph(id, chart) {\n            this.transitionToRoute('temporal-graphs.temporal-graph', id, chart);\n        },\n        sGraph(id, chart) {\n            this.transitionToRoute('spatial-graphs.spatial-graph', id, chart);\n        },\n        fGraph(id, chart) {\n            this.transitionToRoute('frequency-graphs.frequency-graph', id, chart);\n        },\n    }\n});\n","import Controller from '@ember/controller';\nimport { computed, observer } from '@ember/object';\n\nexport default Ember.Controller.extend({\n    breadCrumbs: computed('model',{\n        get() {\n            let alert = this.get('model').alert;\n            \n            let obj = [\n                {\n                    label: \"Dashboard\",\n                    path: 'index'\n                },    \n            {\n                label: \"Alerts\",\n            }];\n            \n            if (alert != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Alerts\",\n                        path: 'alerts'\n                    },\n                    {\n                        label: alert.get('id'),\n                        path: 'edit-alert',\n                        model: alert.get('id'),\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    instrumentTypeName: computed('', function() {\n        // console.log(this.get('model').alert.instrument.get('instrumentType').title);\n        this.set('instType', this.get('model').alert.instrument.get('instrumentType'));\n        this.set('id',this.get('alert_id'));\n        return 'test';\n    }),\n    actions: {\n        saved() {\n            this.transitionToRoute('alerts');\n        },\n        setError(error,value) {\n            Ember.set(this, error, value);\n        },\n    },\n})\n","import Controller from '@ember/controller';\nimport { action } from \"@ember/object\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default class ForgotPasswordController extends Controller {\n\n  @tracked isSentResetRequest = false;\n  @tracked errorMessage;\n  @service api;\n  @service session;\n\n  @tracked loading = false;\n  @tracked email = \"\";\n\n  @action\n  async resetPassword(){\n    try{\n      this.loading = true;\n      let response =  await this.api.fetch(`${getApiBaseUrl()}/api/auth/password-reset/`, {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application/json\" },\n        body: JSON.stringify({ email: this.email })\n      });\n      await response.json();\n      this.isSentResetRequest = true;\n      this.loading = false;\n\n    }\n    catch (err){\n      console.log(\"reset password err\");\n      console.log(err)\n      this.errorMessage = \"Something went wrong. Please try again later.\";\n      this.loading = false;\n\n    }\n    return;\n\n  }\n\n  @action\n  updateInfo(type, e) {\n    console.log(\"type:\" + type)\n    console.log(e.target.value)\n    switch(type){\n      case \"email\":\n        this.email = e.target.value;\n        return;\n    }\n  }\n}\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport { buildDeleteWarningBoard, buildFrequencyEventsOverviewBoard, buildFrequencyEventsEditBoard} from '../helpers/frequency-events-library';\nimport { time } from 'echarts';\n\nexport default Ember.Component.extend({\n    router: service(),\n    session: service(),\n    isRowDeleteConfirmationDialog: {},\n    showLoading: false,\n    init(){\n        this._super(...arguments);\n        this.router.on('routeDidChange', this.handleRouteChange.bind(this));\n    },\n\n    handleRouteChange(transition) {\n        if (transition.to.name === 'frequency-events') {\n            this.set('showLoading', false);\n        }\n    },\n    isShowConfig:{\n        isShowPopupNotification:false,\n    }, \n    licenceIsValid: Ember.computed('',function() {\n        let valid = false;\n        try {\n            valid = this.session.data.authenticated.isValid;\n        } catch {}\n        return valid;\n    }),\n    getVisibleReadings:Ember.computed('bluvibeV2Profiles', function () {\n        if (this.get('bluvibeV2Profiles')){\n            return this.get(\"bluvibeV2Profiles\").length\n        }else{\n            return 0;\n        }\n    }),\n    getTotalReadings:Ember.computed('bluvibeV2Profiles', function () {\n        if (this.get('bluvibeV2Profiles')){\n            return this.get('bluvibeV2Profiles').get(\"meta\").pagination.total\n        }else{\n            return 0;\n        }\n    }),\n    breadCrumbs: Ember.computed(\"instrument\", {\n        get() {\n            let instrument = this.get('instrument');\n            \n            let obj = null\n            if (instrument != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.id,\n                        path: 'edit-instrument',\n                        model: instrument.id,\n                    },\n                    {\n                        label: \"Frequency Events\",\n                        path: 'frequency-events',\n                        model: instrument.id,\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n\n    displayData: Ember.computed('instrumentId', function() {\n        if (this.instrumentId !== null) {\n            return true;\n        } else {\n            return false;\n        }\n    }),\n    getbluvibev2ProfileList:Ember.computed(\"bluvibeV2Profiles\", function(){\n        let list = this.get(\"bluvibeV2Profiles\");\n        return list;\n\n    }),\n    actions: {\n        closeNotificationPopup(){\n            const notificationPopupContentBody = document.getElementById('notificationPopupContentBody');\n            notificationPopupContentBody.innerHTML=\"\";\n            this.set('isShowConfig.isShowPopupNotification', false);\n        },\n        async actionsHotKey(key, profile_obj){\n            switch(key){\n                case \"overview\":\n                    buildFrequencyEventsOverviewBoard(this,profile_obj);\n                    return;\n                case \"analytics\":\n                    this.set(\"showLoading\", true);\n                    this.get(\"router\").transitionTo('frequency-events.frequency-event', profile_obj.parent.id, profile_obj.id);\n                    return;   \n                case \"data\":\n\n                    let endDateObj = new moment();\n                    let startDateObj = moment(endDateObj).subtract(1, 'days').format('YYYY-MM-DDTHH:mm');\n                    let formattedEndDateObj = endDateObj.format('YYYY-MM-DDTHH:mm');\n                    this.get('router').transitionTo('raw-frequency-events-data', profile_obj.parent.id, {\n                        queryParams: {\n                            \"advancedStartDate\": startDateObj, \n                            \"advancedEndDate\": formattedEndDateObj,\n                            profile_id:profile_obj.id,\n                            advancedYAxisUnit:\"mm\",\n                            analysis_category:\"raw\",\n                        }\n                    });\n                    return;                 \n                case \"edit\":\n                    buildFrequencyEventsEditBoard(this,profile_obj);\n                    return;\n                case \"delete\":\n                    buildDeleteWarningBoard(this,profile_obj)\n                    return;\n                    \n            }\n        }\n    }\n\n})","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Controller.extend({\n    router: service(),\n    session: service(),\n    init(){\n        this._super(...arguments);\n    },\n    actions: {\n    }\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\nimport { buildRedWarningNotificationBoard, sendGETRequest} from '../../helpers/frequency-event-library';\n\nexport default Ember.Controller.extend({\n    router: service(),\n    session: service(),\n    showLoading: true,\n    integrationMethod:\"trapazoidal\",\n    selectedFreqEventTabKey:\"raw\",\n    selectedFreqEventSubTabKey:\"raw_xyz_axis_focus\",\n    selectedFreqEventSubSubTabKey:null,\n    advancedYAxisUnit:\"RAW\",\n    raw: false,\n    tabs:[],\n    isShowConfig:{\n        isShowPopupNotification:false,\n    }, \n    init(){\n        this._super(...arguments);\n\n    },\n    initializeGraphDataFromTabKeys:async function(key){\n        try{\n            // console.log(`initializeGraphDataFromTabKeys: ${key}`)\n            let profiles = this.get(\"bluvibeV2ModelProfiles\");\n            let profileObj = profiles.objectAt(0);\n            const endPoint = \"blu-vibe-v2-data-model2s/\";\n            let timestamp = profileObj[\"timestamp\"];\n            let profileID = profileObj[\"id\"];\n            let instrID = profileObj[\"parent\"][\"id\"];\n            let method = \"trapazoid\";\n            let analysisCategory = \"raw\";\n            this.set('showLoading', true);\n\n            switch(key){\n                case \"raw_xyz_axis_focus\":\n                    analysisCategory='raw';\n                    this.set(\"advancedYAxisUnit\", \"RAW\");\n                    sendGETRequest(endPoint, {\n                        instrument_id: instrID,\n                        selectedFreqEventDate: timestamp,\n                        profile_id: profileID,\n                        method: method,\n                        analysis_category: analysisCategory,\n                        advancedYAxisUnit: this.get(\"advancedYAxisUnit\"),\n                        run_analysis: \"true\"\n                    })\n                    .then(response1 => {\n                            this.set('showLoading', false);\n                            this.set(\"bluvibeV2ModelData\", response1.data);\n                    })\n                    .catch(error => {\n                        console.error(\"Request failed:\", error);\n                        this.set('showLoading', false);\n                    });\n                    break;\n                case \"sub_acceleration_linear_regression\":\n                    analysisCategory='linear_regression_acceleration';\n                    this.set(\"advancedYAxisUnit\", \"mm\");\n                    sendGETRequest(endPoint, {\n                        instrument_id: instrID,\n                        selectedFreqEventDate: timestamp,\n                        profile_id: profileID,\n                        method: method,\n                        analysis_category: analysisCategory,\n                        advancedYAxisUnit: this.get(\"advancedYAxisUnit\")\n                    })\n                    .then(response => {\n                        \n                        this.set('showLoading', false);\n                        this.set(\"bluvibeV2ModelData\", response.data);\n                        \n                    })\n                    .catch(error => {\n                        console.error(\"Request failed:\", error);\n                        this.set('showLoading', false);\n                    });\n                    break;\n                case \"sub_acceleration_fft\":\n                    analysisCategory='fft_acceleration';\n                    this.set(\"advancedYAxisUnit\", \"mm\");\n                    sendGETRequest(endPoint, {\n                        instrument_id: instrID,\n                        selectedFreqEventDate: timestamp,\n                        profile_id: profileID,\n                        method: method,\n                        analysis_category: analysisCategory,\n                        advancedYAxisUnit: this.get(\"advancedYAxisUnit\")\n                    })\n                    .then(response => {\n                        \n                        this.set('showLoading', false);\n                        this.set(\"bluvibeV2ModelData\", response.data);\n                    })\n                    .catch(error => {\n                        console.error(\"Request failed:\", error);\n                        this.set('showLoading', false);\n                    });\n                    break;\n                case \"sub_velocity_linear_regression\":\n                    analysisCategory='linear_regression_velocity';\n                    this.set(\"advancedYAxisUnit\", \"mm\");\n                    sendGETRequest(endPoint, {\n                        instrument_id: instrID,\n                        selectedFreqEventDate: timestamp,\n                        profile_id: profileID,\n                        method: method,\n                        analysis_category: analysisCategory,\n                        advancedYAxisUnit: this.get(\"advancedYAxisUnit\")\n                    })\n                    .then(response => {\n                        \n                        this.set(\"bluvibeV2ModelData\", response.data);\n                        this.set('showLoading', false);\n                    })\n                    .catch(error => {\n                        console.error(\"Request failed:\", error);\n                        this.set('showLoading', false);\n                    });\n                    break;\n                case \"sub_velocity_fft\":\n                    analysisCategory='fft_velocity';\n                    this.set(\"advancedYAxisUnit\", \"mm\");\n                    sendGETRequest(endPoint, {\n                        instrument_id: instrID,\n                        selectedFreqEventDate: timestamp,\n                        profile_id: profileID,\n                        method: method,\n                        analysis_category: analysisCategory,\n                        advancedYAxisUnit: this.get(\"advancedYAxisUnit\")\n                    })\n                    .then(response => {\n                        \n                        this.set('showLoading', false);\n                        this.set(\"bluvibeV2ModelData\", response.data);\n                    })\n                    .catch(error => {\n                        console.error(\"Request failed:\", error);\n                        this.set('showLoading', false);\n                    });\n                    break;\n                case \"sub_displacement_linear_regression\":\n                    analysisCategory='linear_regression_displacement';\n                    this.set(\"advancedYAxisUnit\", \"mm\");\n                    sendGETRequest(endPoint, {\n                        instrument_id: instrID,\n                        selectedFreqEventDate: timestamp,\n                        profile_id: profileID,\n                        method: method,\n                        analysis_category: analysisCategory,\n                        advancedYAxisUnit: this.get(\"advancedYAxisUnit\")\n                    })\n                    .then(response1 => {\n                        sendGETRequest(endPoint, {\n                            instrument_id: instrID,\n                            selectedFreqEventDate: timestamp,\n                            profile_id: profileID,\n                            method: method,\n                            analysis_category: \"linear_regression_acceleration_pitch_roll\",\n                            advancedYAxisUnit: this.get(\"advancedYAxisUnit\")\n                        })\n                        .then(response2 => {\n                            \n                            // console.log(\"response1\");\n                            // console.log(response1.data[0]);\n                            // console.log(\"response2\");\n                            // console.log(response2.data[0]);\n                            this.set('showLoading', false);\n                            this.set(\"bluvibeV2ModelData\", response1.data);\n                            this.set(\"bluvibeV2ModelPitchRollData\", response2.data);\n                        })\n                        .catch(error => {\n                            console.error(\"Request failed:\", error);\n                            this.set('showLoading', false);\n                        });\n                    })\n                    .catch(error => {\n                        console.error(\"Request failed:\", error);\n                        this.set('showLoading', false);\n                    });\n                    break;\n                case \"sub_displacement_fft\":\n                    analysisCategory='fft_displacement';\n                    this.set(\"advancedYAxisUnit\", \"mm\");\n                    sendGETRequest(endPoint, {\n                        instrument_id: instrID,\n                        selectedFreqEventDate: timestamp,\n                        profile_id: profileID,\n                        method: method,\n                        analysis_category: analysisCategory,\n                        advancedYAxisUnit: this.get(\"advancedYAxisUnit\")\n                    })\n                    .then(response => {\n                        \n                        this.set('showLoading', false);\n                        this.set(\"bluvibeV2ModelData\", response.data);\n                    })\n                    .catch(error => {\n                        console.error(\"Request failed:\", error);\n                        this.set('showLoading', false);\n                    });\n                    break;\n                default:\n                    // this.set('showLoading', false);\n                    this.set(\"advancedYAxisUnit\", \"RAW\");\n                    Ember.run.next(this, function () {\n                        this.set('showLoading', false); // triggers observer again\n                    });\n                    break;\n                \n            };\n        }catch(err){\n            console.log(`Error in initializeGraphDataFromTabKeys: ${err.message}`);\n            console.log(err.stack);\n        }\n    },\n    updateRedWarning: Ember.computed(\"bluvibeV2ModelProfiles\",function(){\n        let profiles = this.get(\"bluvibeV2ModelProfiles\");\n        let profileObj = profiles.objectAt(0);\n        //Check for Clipping Data, immediately trigger red warning\n        if(profileObj[\"analytics\"].hasOwnProperty(`clippingData`) && profileObj[\"analytics\"][\"clippingData\"].length > 0)\n            return true;\n        //For Future: Check for .... Data, immediately trigger red warning\n        return false;\n\n\n    }),\n    subTabObserver: Ember.observer('selectedFreqEventSubTabKey', async function () {\n        const subTab = this.get(\"selectedFreqEventSubTabKey\");\n        // console.log(`subTabObserver: ${subTab}`);\n        await this.initializeGraphDataFromTabKeys(subTab)\n    }),\n    loadProfiles: Ember.observer(\"bluvibeV2ModelProfiles\", async function() {\n        //For First Render once all requests are done\n        //Get First Graph Data \n        const tab = this.get(\"selectedFreqEventTabKey\");\n        const subTab = this.get(\"selectedFreqEventSubTabKey\");\n        await this.initializeGraphDataFromTabKeys(subTab);\n    }),\n    breadCrumbs: Ember.computed(\"instrument\", {\n        get() {\n            let instrument = this.get('instrument');\n            let obj = null\n            // console.log(\"chart::: \"  + chart)\n            if (instrument != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.id,\n                        path: 'edit-instrument',\n                        model: instrument.id,\n                    },\n                    {\n                        label: \"Frequency Events\",\n                        path: 'frequency-events',\n                        model: instrument.id,\n                    },\n                    {\n                        label: `Frequency Event ${this.get(\"profileId\")}`,\n                        path: 'frequency-events.frequency-event',\n                        model: instrument.id,\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    getProfileID: Ember.computed('bluvibeV2ModelProfiles', function() {\n        let bluvibeV2ModelProfiles = this.get(\"bluvibeV2ModelProfiles\");\n        if(bluvibeV2ModelProfiles.length == 1){\n            return bluvibeV2ModelProfiles.objectAt(0).get(\"id\");\n        }else{\n            return \"\";\n        }\n    }),\n    displayData: Ember.computed('instrumentId', function() {\n        if (this.instrumentId !== null) {\n            return true;\n        } else {\n            return false;\n        }\n    }),\n    buildTabsInstrTypeDependent: Ember.computed('instrument', function() {\n        let instrument = this.get(\"instrument\");\n        let instrumentType = this.get(\"instrumentType\");\n        switch (instrumentType){\n            case \"BluVibe\":\n                this.set(\"tabs\", [\n                    {id: \"raw\", label: \"RAW Data\"},\n                    {id: \"linear_regresssion_not_detrended\", label: \"RAW Linear Regression\"},,\n                    {id: \"linear_regression_detrended\", label: \"Linear Regression Detrended\"},\n                ])\n        }\n    }),\n\n    actions: {\n        closeNotificationPopup(){\n            const notificationPopupContentBody = document.getElementById('notificationPopupContentBody');\n            notificationPopupContentBody.innerHTML=\"\";\n            this.set('isShowConfig.isShowPopupNotification', false);\n        },\n        redWarningNotification(){\n            console.log(\"triggered red warning buttons\");\n            let profiles = this.get(\"bluvibeV2ModelProfiles\");\n            let profileObj = profiles.objectAt(0);\n            buildRedWarningNotificationBoard(this, profileObj)\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        getQueryParams(variable) {\n            return this.get(variable);\n        },\n        toggleProperty(property) {\n            if ( this.get(property) === null ) {\n                this.set(property, true);\n            } else if(this.get(property) === false ) {\n                this.set(property, true);\n            } else {\n                this.set(property, false);\n            }\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    xyRangeObj:{},\n    router: Ember.inject.service(),\n    instrumentId: null,\n    instrumentType: null,\n    instrumentTypeId: null,\n    name: null,\n    location: null,\n    level: null,\n    borehole: null,\n    project: null,\n    modelName: null,\n    activeInstrumentMeta: null,\n    frequencyGraphController: Ember.inject.controller(\"frequency-graphs/frequency-graph\"),\n    //eventType: null,\n    //blastType: null,\n    //seismicType: null,\n    chartDataValueName: null,\n    frequency: null,\n    chartData: null,\n    chart: null,\n    chartDataPoints: null,\n    adjust_scales: false,\n    auto_scale: true,\n    x_min: null,\n    x_max: null,\n    x_min_old: null,\n    x_max_old: null,\n    x_min_auto: null,\n    x_max_auto: null,\n    y_min: null,\n    y_max: null,\n    y_min_old: null,\n    y_max_old: null,\n    y_min_auto: null,\n    y_max_auto: null,\n    auto_scale_2: true,\n    y_min_2: null,\n    y_max_2: null,\n    y_min_old_2: null,\n    y_max_old_2: null,\n    y_min_auto_2: null,\n    y_max_auto_2: null,\n    lastClick: null,\n    instrumentAnchors: {},\n    instrumentAnchorsSorting: ['number'],\n    chart_type: null,\n    log_frequency: false,\n    display_records: null,\n\n    breadCrumbs: Ember.computed(\"instrumentId\", {\n        get() {\n            let chart = this.get('chartDataValueName');\n            let mName = this.get('modelName');\n            let instID = this.get('instrumentId');\n            let instrument = this.get('content').instrument;\n            let chart_type = this.get('chart_type');\n            if(chart_type != null) {\n                chart = chart_type.toUpperCase();\n            }\n            \n            let obj = null\n            // console.log(\"chart::: \"  + chart)\n            if (instrument != null && instID == null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.query,\n                        path: 'edit-instrument',\n                        model: instrument.query,\n                    }\n                ]\n            }\n\n            if (instID != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instID,\n                        path: 'edit-instrument',\n                        model: instID,\n                    },\n                    {\n                        label: chart + \" vs. Frequency\"  + \" Graph\",\n                        path: \"frequency-graphs.frequency-graph\",\n                        model: instID,\n                        model: mName\n                    },\n                ];\n            }\n            return obj;\n        }\n    }),\n\n    chartChanged: Ember.observer('chart', function() {\n        // console.log(\"chartChanged triggered!!\")\n        //Adapter for advanced filter\n        let xyRangeValues={}; \n        var chart = this.get('chart');\n        var yDomain = chart.yAxis.scale().domain();\n        var xDomain = chart.xAxis.scale().domain();\n        this.set('x_min_auto',xDomain[0].toFixed(2));\n        this.set('x_max_auto',xDomain[1].toFixed(2));\n        this.set('x_min',xDomain[0].toFixed(2));\n        this.set('x_max',xDomain[1].toFixed(2));\n        this.set('x_min_old',null);\n        this.set('x_max_old',null);\n\n        this.set('y_min_auto',yDomain[0].toFixed(2));\n        this.set('y_max_auto',yDomain[1].toFixed(2));\n        this.set('y_min',yDomain[0].toFixed(2));\n        this.set('y_max',yDomain[1].toFixed(2));\n        this.set('y_min_old',null);\n        this.set('y_max_old',null);\n        /*         \n        var domain = chart.y2Axis.scale().domain();\n        this.set('y_min_auto_2',domain[0].toFixed(1));\n        this.set('y_max_auto_2',domain[1].toFixed(1));\n        this.set('y_min_2',domain[0].toFixed(1));\n        this.set('y_max_2',domain[1].toFixed(1));\n        this.set('y_min_old_2',null);\n        this.set('y_max_old_2',null);\n        */    \n    }),\n\n    xValueChanged: Ember.observer('x_min','x_max', function() {\n        var chart = this.get('chart');\n        chart.xDomain([this.get('x_min'),this.get('x_max')]);\n        try{\n            chart.update();\n        }\n        catch(error){\n            console.error(\"There is a timing issue with the valueChanged observer. This tends to fix itself afterloading.\");\n            console.error(error)\n        }\n    }),\n    valueChanged: Ember.observer('y_min','y_max', function() {\n        var chart = this.get('chart');\n        //var points = this.get('chartDataPoints');\n        //console.log(\"custom axis\");\n        chart.yDomain([this.get('y_min'),this.get('y_max')]);\n        //chart.yScale(10);\n        try{\n            chart.update();\n        }\n        catch(error){\n            console.error(\"There is a timing issue with the valueChanged observer. This tends to fix itself afterloading.\");\n            console.error(error)\n        }\n    }),\n\n    autoScaleChanged: Ember.observer('auto_scale', function() {\n        if (this.auto_scale) {\n            this.set('y_min_old', this.y_min);\n            this.set('y_max_old', this.y_max);\n            this.set('y_min',this.get('y_min_auto'));\n            this.set('y_max',this.get('y_max_auto'));\n            this.set('x_min_old', this.x_min);\n            this.set('x_max_old', this.x_max);\n            this.set('x_min',this.get('x_min_auto'));\n            this.set('x_max',this.get('x_max_auto'));\n        } else {\n            if (this.get('y_min_old') != null) {\n                this.set('y_min', this.y_min_old);\n                this.set('y_max',this.y_max_old);    \n            }\n            if (this.get('x_min_old') != null) {\n                this.set('x_min', this.x_min_old);\n                this.set('x_max',this.x_max_old);    \n            }\n        }\n    }),\n\n/*     valueChanged2: Ember.observer('y_min_2','y_max_2', function() {\n        var chart = this.get('chart');\n        //var points = this.get('chartDataPoints');\n        //console.log(\"custom axis\");\n        chart.yDomain2([this.get('y_min_2'),this.get('y_max_2')]);\n        //chart.yScale(10);\n        chart.update();\n    }),\n\n    autoScaleChanged2: Ember.observer('auto_scale_2', function() {\n        if (this.auto_scale_2) {\n            this.set('y_min_old_2', this.y_min_2);\n            this.set('y_max_old_2', this.y_max_2);\n            this.set('y_min_2',this.get('y_min_auto_2'));\n            this.set('y_max_2',this.get('y_max_auto_2'));\n        } else {\n            if (this.get('y_min_old_2') != null) {\n                this.set('y_min_2', this.y_min_old_2);\n                this.set('y_max_2',this.y_max_old_2);    \n            }\n        }\n    }),\n */\n    // isThermo: Ember.computed('instrumentType', function() {\n    //     //console.log(this.instrumentType);\n    //     if (this.instrumentType === 'Thermostring') {\n    //         return true;\n    //     }\n    //     return false;\n    // }),\n    // isWire: Ember.computed('instrumentType', function() {\n    //     //console.log(this.instrumentType);\n    //     return (this.instrumentType === 'Wire');\n    // }),\n\n    getInstrumentObject: function() {\n        return this.get(\"instruments\");\n    },\n    displayData: Ember.computed('instrumentId', function() {\n        if (this.instrumentId !== null) {\n            return true;\n        } else {\n            return false;\n        }\n    }),\n\n    details: Ember.computed('name', 'project', 'location', 'level', 'borehole', 'instrumentId', function() {\n        var detailString = \"\";\n        let projectId = this.get('project'); // Assuming project has an 'id' field\n        let projectName = this.get('project.name'); // Assuming project has a 'name' field\n        \n        let levelId = this.get('level.id'); // Assuming level has an 'id' field\n        let levelName = this.get('level.name'); // Assuming level has a 'name' field\n        let badCodes = ['null', 'undefined', ''];\n        \n        if (this.instrumentId !== null) {\n            if (!badCodes.includes(projectName) && projectName != null && projectName != undefined) {\n                // console.log(\"::::::::::::in projectId\")\n                detailString += projectName + ' / ';\n            }\n            \n            if ( !badCodes.includes(this.get('location')) ) {\n                // console.log(\"::::::::::::in location\")\n                detailString += this.get('location') + ' / ';\n            }\n            \n            if (!badCodes.includes(levelName) && levelName != null && levelName != undefined) {\n                // console.log(\"::::::::::::in levelId\")\n                detailString += levelName + ' / ';\n            }\n            \n            if (!badCodes.includes(this.get('borehole')) ) {\n                // console.log(\"::::::::::::in borehole\")\n                detailString += this.get('borehole') + ' / ';\n            }\n                \n            if (detailString !== \"\" && detailString != 'Details:  /') {\n                detailString = detailString.substr(0, detailString.length - 3);\n            }\n        }\n        // console.log(\"::::::::::::Detail String: \" + detailString)\n        return detailString;\n    }),\n\n    bluVibe: Ember.computed('instrumentType', function() {\n        if(this.instrumentType==='BluVibe') {\n            return true;\n        }\n        return false;\n    }),\n    //--------------------------------------\n\n    instrumentAnchorsSorted: Ember.computed.sort('instrumentAnchors', 'instrumentAnchorsSorting'),\n    refHeadPosition: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['ref-head-position'];\n    }),\n    rawData: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['raw'];\n    }),\n    timeRef: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['zeroed'];\n    }),\n    flipSigns: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['flip-signs'];\n    }),\n    allInstruments: Ember.computed.filter('model.instruments', function(instrument) {\n        //return true;\n        if (instrument.get('anchorCount') > 0) {\n            return true;\n        }\n    }),\n    instruments: Ember.computed.map('allInstruments', function(instrument) {\n        return {\n            title: instrument.get('id'),\n            value: instrument.get('id')\n        };\n    }),\n    // needed for filtered select list to be able to set active instrument on page reload\n    initialInstrumentSelection: Ember.computed('instruments', 'instrumentId', function () {\n\n        var id = this.get('instrumentId');\n        \n        if(id != null) {\n            writeCookie('instrumentId', id, 0.02);\n        }\n\n        return this.get('instruments').findBy('title', this.get('instrumentId'));\n    }),\n    actions: {\n\n        updateNav(licence) {\n            let modules = licence.modules;\n            if(licence.isValid) {\n                if(licence.withinLimit) {\n                    if(!modules.temporal) {\n                        document.getElementById(\"temp-link\").style.display = \"none\";\n                        document.getElementById(\"licence-error-module\").style.display = \"block\";\n                    } else {\n                        document.getElementById(\"temp-link\").style.display = \"block\";\n                    }\n                    if(!modules.spatial) {\n                        document.getElementById(\"spat-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"spat-link\").style.display = \"block\";\n                    }\n                    if(!modules.frequency) {\n                        document.getElementById(\"freq-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"freq-link\").style.display = \"block\";\n                    }\n                    if(!modules.alerts) {\n                        document.getElementById(\"alert-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"alert-link\").style.display = \"block\";\n                    }\n        \n                    document.getElementById(\"licence-error-instruments\").style.display = \"none\";\n                } else {\n                    document.getElementById(\"licence-error-instruments\").style.display = \"block\";\n                }    \n                document.getElementById(\"licence-error-expired\").style.display = \"none\";\n            } else {\n                document.getElementById(\"licence-error-expired\").style.display = \"block\";\n            }\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        toggleProperty(property) {\n            this.get('frequencyGraphController').send('toggleProperty', property);\n        },\n        toggleLocalProperty(property) {\n            if ( this.get(property) === null ) {\n                this.set(property, true);\n            } else if(this.get(property) === false ) {\n                this.set(property, true);\n            } else {\n                this.set(property, null);\n            }\n        },\n        onUpdateTransitionTo(selection) {\n            // console.log(\"selection: \" + selection.value)\n            if (this.get('modelName') == null || this.get('modelName') == '') {\n                this.set('modelName', 'displacement-values');\n            }\n            this.RouterService.transitionTo('frequency-graphs.frequency-graph', selection.value, this.get('modelName'));\n        },\n        setChart(chart) {\n            this.set('chart',chart);\n        },\n        setData(data) {\n            this.set('chartDataPoints', data);\n        },\n        selectTemps() {\n            let lastClick = this.get('lastClick');\n            if (lastClick === null || lastClick !== \"temp\") {\n                let chart = this.get('chart');\n                let points = this.get('chartDataPoints');\n                if (chart !== null) {\n                    for (let ctr = 0; ctr < points.length - 2; ctr++) {\n                        if (ctr % 2 === 0) {\n                            if (!points[ctr + 1].disabled) {\n                                points[ctr].disabled = false;\n                                points[ctr].userDisabled = false;\n                            }\n                        } else {\n                            points[ctr].disabled = true;\n                            points[ctr].userDisabled = true;\n                        }\n                    }\n                    chart.update();\n                }\n                this.set('lastClick', 'temp');\n            }\n        },\n        selectReadings() {\n            let lastClick = this.get('lastClick');\n            if (lastClick === null || lastClick !== \"vals\") {\n                let chart = this.get('chart');\n                let points = this.get('chartDataPoints');\n                if (chart !== null) {\n                    for (let ctr = points.length - 2; ctr >= 0; ctr--) {\n                        if (ctr % 2 === 0) {\n                            points[ctr].disabled = true;\n                            points[ctr].userDisabled = true;\n                        } else {\n                            if (!points[ctr - 1].disabled) {\n                                points[ctr].disabled = false;\n                                points[ctr].userDisabled = false;\n                            }\n                        }\n                    }\n                    chart.update();\n                }\n                this.set('lastClick', 'vals');\n            }\n        }\n    },\n    activate: function() {\n        var id = this.get('instrumentId');\n        var inst = null;\n\n        if(id == null) {\n            id = readCookie('instrumentId');\n            if(id !== \"\") {\n                Ember.run.scheduleOnce('afterRender', this, function() {\n                    //console.log(\"running re-load\");\n                    this.RouterService.transitionTo('frequency-graphs.frequency-graph', id, this.get('modelName'));\n                    });\n            }\n        } else {\n            writeCookie('instrumentId', id, 1);\n        }\n    }\n});\n\nfunction writeCookie(name,value,days) {\n    var date, expires;\n    if (days) {\n        date = new Date();\n        date.setTime(date.getTime()+(days*24*60*60*1000));\n        expires = \"; expires=\" + date.toGMTString();\n            }else{\n        expires = \"\";\n    }\n    document.cookie = name + \"=\" + value + expires + \"; path=/\";\n}\n\nfunction readCookie(name) {\n    var i, c, ca, nameEQ = name + \"=\";\n    ca = document.cookie.split(';');\n    for(i=0;i < ca.length;i++) {\n        c = ca[i];\n        while (c.charAt(0)===' ') {\n            c = c.substring(1,c.length);\n        }\n        if (c.indexOf(nameEQ) === 0) {\n            return c.substring(nameEQ.length,c.length);\n        }\n    }\n    return '';\n}\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    queryParams: [\n        'start_timestamp',\n        'end_timestamp',\n        'num_points_requested',\n        'ref_head_position',\n        'ref_anchor',\n        'zeroed',\n        'flip_signs',\n        'event_type',\n        'blast_type',\n        'seismic_type',\n        'frequency',\n        'chart_type',\n        'display_records',\n        'raw',\n    ],\n    start_timestamp: null,\n    end_timestamp: null,\n    num_points_requested: 300,\n    ref_head_position: \"\",\n    ref_anchor: \"0\",\n    zeroed: true,\n    modelName: null,\n    flip_signs: null,\n    //event_type: null,\n    //blast_type: null,\n    //seismic_type: null,\n    frequency: null,\n    chart: null,\n    chart_type: 'frequency',\n    display_records: 1,\n    raw: false,\n    actions: {\n        setData(data) {\n            this.send('setDataR',data);\n        },\n        setChart(chart) {\n            this.send('setChartR',chart);\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        getQueryParams(variable) {\n            return this.get(variable);\n        },\n        toggleProperty(property) {\n            if ( this.get(property) === null ) {\n                this.set(property, true);\n            } else if(this.get(property) === false ) {\n                this.set(property, true);\n            } else {\n                this.set(property, false);\n            }\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n        label: \"Gateway\",\n        path: 'gateway'\n    }],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        refreshRoute() {\n            // Trigger the action in the route\n            this.send('refreshModel');\n        },\n        \n    }\n});\n","import Ember from 'ember';\nimport { on } from '@ember/object/evented';\n\nexport default Ember.Controller.extend({\n    _my_init: on('init', function() {\n        Ember.run.scheduleOnce('afterRender', this, function() {\n            //console.log(this.get('model'));\n        });\n    }),\n    store: Ember.inject.service(),\n    queryParams: ['page', 'page_size', 'ordering', 'search', 'searchTgt'],\n    page_size: 20,\n    instrumentsMeta: null,\n    ordering: null,\n    search: null,\n    searchTgt: null,\n    page: 1,\n    lat: 40.574706,\n    lng: -112.178131,\n    zoom: 12,\n    mapBounds: Ember.computed(function() {\n        return [[40.574706, -112.178131],[40.492465, -112.099509]];\n    }),\n    actions: {\n        sortByA(property) {\n            this.set('ordering', \"a:\" + property);\n        },\n        sortByI(property) {\n            this.set('ordering', \"i:\" + property);\n        },\n        sortByG(property) {\n            this.set('ordering', \"g:\" + property);\n            // console.log(\"Property::: \" + property)\n        },\n    }\n})\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n        label: \"Instruments\",\n        path: 'instruments'\n    }],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n    }\n});\n","import Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\nimport { action } from \"@ember/object\";\nimport { tracked } from \"@glimmer/tracking\";\n\nexport default class KeysController extends Controller{\n    isRowDeleteConfirmationDialog = {};\n\n    @action\n    updateActive(theModel) {\n        let valid = {};\n        let active = {};\n        let ctr = 0;\n        let tooltip = {};\n\n        theModel.licenceKeys.forEach(function(theItem){\n            valid[theItem.id] = theItem.isValidKey;\n            let count = theItem.numInst;\n            let modules = theItem.modules;\n            tooltip[theItem.id] = \"\";\n            active[theItem.id] = false;\n            //console.log(modules);\n            for (var key in modules) {\n                var type = typeof modules[key];\n                if(type === \"boolean\") {\n                    if(modules[key]) {\n                        active[theItem.id] = true;\n                        tooltip[theItem.id] += capitalizeFirstLetter(key) + \"\\n\";\n                    }\n                } else {\n                    for (var key2 in modules[key]) {\n                        if(modules[key][key2]) {\n                            active[theItem.id] = true;\n                            tooltip[theItem.id] += capitalizeFirstLetter(key2) + \" \" + capitalizeFirstLetter(key) + \"\\n\";\n                        }\n                    }\n                }\n            }\n        });\n        this.set('activeKeys',valid);\n        this.set('activeModules',active);\n        this.set('tooltip',tooltip);\n    }\n\n    @action\n    remove(model, object) {\n        let _this = this;\n        let _store = this.get('store');\n        object.deleteRecord();\n\n        object.save().then(function(){                    \n            object.unloadRecord();\n        }).catch(function(reason){\n            let status = reason.errors[0].status;\n\n            if (status == 403) {\n                errBox.hidden = false;\n            };\n        });        \n    }\n\n    @action\n    toggleRowDeleteConfirmationDialog(id) {\n        let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n        Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row    \n    }\n}\n\nfunction capitalizeFirstLetter(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n}\n","import Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\nimport { action } from \"@ember/object\";\nimport { tracked } from \"@glimmer/tracking\";\n\n\nexport default class ListLookupController extends Controller{\n\n    @service router;  \n    @service session;\n\n\n    isRowDeleteConfirmationDialog = {};\n    lookups = [];    \n    classNameBindings = ['editingId:active-cell-values-inline-edit'];\n    // isEditing = false;\n    rdcd = {}\n    \n    editingId = null;\n\n\n    @action\n    startEditing(lookupId, lookup) {\n        console.log(\"startEditing: editingId: \" + lookupId);\n        this.set('editingId',lookupId);\n    }\n    \n    @action\n    stopEditing(lookupId) {\n        console.log(\"stopEditing: editingId: \" + lookupId);\n        this.set('editingId',null);\n    }\n        \n\n    licenceIsValid = Ember.computed('',function() {\n        let valid = false;\n        try {\n            valid = this.session.data.authenticated.isValid;\n        } catch {}\n        return valid;\n    });\n    \n    setRDCD(value) {\n        let rdcd = this.get('isRowDeleteConfirmationDialog');\n        rdcd[value[0]] = value[1];\n        console.log(this.rdcd);\n\n        this.set('isRowDeleteConfirmationDialog', rdcd);\n        this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n    };\n\n    @action\n    createLookup() {\n        console.log(\"create lookup\");\n        this.router.transitionTo('create-lookup');  // Directly use service\n    }\n    \n    @action\n    updateActive(model) {    \n        model.lookups.forEach(function(item){\n            console.log(\"Item: \" + JSON.stringify(item));\n        });\n    }\n\n    @action\n    toggleRowDeleteConfirmationDialog(id){\n        let list = this.get('isRowDeleteConfirmationDialog');\n        let value = list[id] ? false : true;\n        this.setRDCD([id,value]);\n        //this.set('isRowDeleteConfirmationDialog', list); //update isVisibleRowDetails variable for each single row\n        //this.notifyPropertyChange('isRowDeleteConfirmationDialog');\n    }\n    \n    @action \n    save(lookupId, lookup){\n        let _this = this;\n        let _store = this.get('store');\n        lookup.save().then(function(){\n            console.log(\"Saved\")\n            _this.set('editingId', null);\n        }).catch(function(reason){\n            _this.set('editingId', null);\n            let status = reason.errors[0].status;\n            console.log(\"status: \" + status);\n            if (status == 403){\n                errBox.hidden = false;\n            }\n        });\n    }\n\n    @action\n    remove(object) {\n        console.log(\"removing record:\")\n        let _this = this;\n        let _store = this.get('store');\n        object.deleteRecord();\n\n        object.save().then(function(){                    \n            object.unloadRecord();\n        }).catch(function(reason){\n            let status = reason.errors[0].status;\n            console.log(\"status: \" + status);\n            if (status == 403) {\n                errBox.hidden = false;\n            };\n        });        \n    }\n}\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n        label: \"Log Viewer\",\n        path: 'log-viewer'\n    }],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        refreshRoute() {\n            // Trigger the action in the route\n            this.send('refreshModel');\n        },\n    }\n});\n","import Controller from '@ember/controller';\nimport { action } from \"@ember/object\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default class LoginController extends Controller {\n  @tracked errorMessage;\n  @tracked identification;\n  @tracked password;\n  @tracked loading = false;\n  @tracked showResendVerification = false;\n  @service api;\n  @service session;\n  @service router;\n\n  @action\n  registerNewAccount() {\n    let url = this.router.urlFor('register');\n    window.open(url, '_blank');\n  }\n\n  @action\n  forgotPassword() {\n    let url = this.router.urlFor('forgot-password');\n    window.open(url, '_blank');\n  }\n \n  @action\n  async authenticateWithProvider(providerName) {\n    this.errorMessage = \"\";\n\n    try {\n      if (providerName === 'login') {\n        // await this.session.authenticate('authenticator:basic-auth', providerName, {\"username\":this.identification, \"password\":this.password});\n        await this.session.authenticate(\"authenticator:jwt\", {\n          username: this.identification,\n          password: this.password,\n        });\n      } else if (providerName === 'azure-ad-oauth2') {\n        await this.session.authenticate(\"authenticator:oauth-jwt\", {\n          provider: \"azure-ad-oauth2\"\n        });\n      }\n\n      if (this.session.isAuthenticated) {\n        this.loading = true;\n        this.session.handleAuthentication();\n      }\n\n    } catch (error) {\n        const msg = error.message || 'An unknown error occurred';\n        this.errorMessage = msg;\n\n        // 👇 Detect exactly the backend message\n        if (msg.includes(\"not verified\")) {\n          this.showResendVerification = true;\n        } else {\n          this.showResendVerification = false;\n        }\n    }\n  }\n\n  @action\n  async resendVerification() {\n    this.loading = true;\n    this.errorMessage = \"\";\n    if (!this.identification) {\n      alert(\"Enter your username or email first.\");\n      return;\n    }\n\n    let payload = { email: this.identification };\n\n    let response = await this.api.fetch(`${getApiBaseUrl()}/api/auth/resend-verification/`, {\n      method: \"POST\",\n      headers: { \"Content-Type\": \"application/json\" },\n      body: JSON.stringify(payload)\n    });\n\n    let data = await response.json();\n\n    alert(data.message || \"If the account exists, a verification email has been resent.\");\n    this.errorMessage = \"\";\n    this.loading = false;\n    this.showResendVerification = false;\n  }\n\n  @action\n  updateIdentification(e) {\n    this.identification = e.target.value;\n  }\n\n  @action\n  updatePassword(e) {\n    this.password = e.target.value;\n  }\n}\n","\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n  session: service(), \n  currentTab:\"HOME\",\n  init() {\n      this._super(...arguments);\n  },\n\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n        label: \"Packs Validation Analytics\",\n        path: 'packs-validation-analytics'\n    }],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        refreshRoute() {\n            // Trigger the action in the route\n            this.send('refreshModel');\n        },\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n        label: \"Packs Validation\",\n        path: 'packs-validation'\n    }],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        refreshRoute() {\n            // Trigger the action in the route\n            this.send('refreshModel');\n        },\n    }\n});\n","import Controller from '@ember/controller';\nimport { tracked } from '@glimmer/tracking';\nimport { inject as service } from '@ember/service';\n\nexport default class ApplicationController extends Controller {\n  @tracked tasks = [];\n  @service api;\n  addTask(taskName) {\n    this.tasks.pushObject({\n      name: taskName,\n      percentage: 0\n    });\n  }\n\n  updateTask(taskName, percentage) {\n    let task = this.tasks.findBy('name', taskName);\n    if (task) {\n      task.percentage = percentage;\n    }\n  }\n\n  removeTask(taskName) {\n    let task = this.tasks.findBy('name', taskName);\n    if (task) {\n      this.tasks.removeObject(task);\n    }\n  }\n\n  async updateTaskStatus(taskId) {\n    let response = await this.api.fetch(`/api/task-status/${taskId}`);\n    let { percentage, status } = await response.json();\n    \n    // Assuming you have a method to update the task percentage\n    this.updateTask(taskId, percentage);\n    \n    if (status !== 'completed') {\n      // If the task is not completed, poll again after a delay\n      setTimeout(() => this.updateTaskStatus(taskId), 2000);\n    }\n  }\n\n\n}\n\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    isVisibleExportDataForm: false,\n    isVisibleImportDataForm: false,\n    displacementValuesMeta: null,\n    permissionError: false,\n    linear: false,\n    calib: false,\n    depth: false,\n    port_number:1,\n    port:1,\n    \n    breadCrumbs: Ember.computed('model', {\n        get() {\n            let instrument = this.get('model').instrument;\n            \n            let obj = null\n\n            if (instrument != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.id,\n                        path: 'edit-instrument',\n                        model: instrument.id,\n                    },\n                    {\n                        label: \"Raw Data\",\n                        path: 'raw-data',\n                        model: instrument.id,\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    hasPorts: Ember.computed('instrument', function() {\n        let channelsNum = this.get('model').instrument.channelsNum;\n        channelsNum = parseInt(channelsNum/2);\n        let hasPorts = false;\n        if(channelsNum > 1){\n            hasPorts = true;\n        } else {\n            hasPorts = false;\n        }\n        return hasPorts;\n    }),\n    ports: Ember.computed('instrument', function() {\n        let channelsNum = this.get('model').instrument.channelsNum;\n        channelsNum = parseInt(channelsNum/2);\n        let numberOfPorts = [];\n        for(let channel = 1 ; channel <= channelsNum; channel++){\n            numberOfPorts.push({\"channel\": channel});\n        }\n        // console.log(JSON.stringify(numberOfPorts));\n        return numberOfPorts;\n    }),    \n    linearData: Ember.computed('displacementValuesMeta', function() {\n        let linear = this.get('displacementValuesMeta')['linear'];\n        return linear;\n    }),\n    calibData: Ember.computed('displacementValuesMeta', function() {\n        let calib = this.get('displacementValuesMeta')['calib'];\n        return calib;\n    }),\n    depthData: Ember.computed('displacementValuesMeta', function() {\n        let depth = this.get('displacementValuesMeta')['depth'];\n        return depth;\n    }),\n    isWire: Ember.computed('model', function(instrument) {\n        let prop = this.get('model').instrument.get('instrumentType');\n        return prop.get(\"title\") === 'Wire';\n    }),\n    actions: {\n\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        toggleDataType(property) {\n            if (property == \"raw\"){\n                this.set(\"linear\", false);\n                this.set(\"calib\", false);\n                this.set(\"depth\", false);\n            } else if (property == \"linear\") {\n                this.set(\"linear\", true);\n                this.set(\"calib\", false);\n                this.set(\"depth\", false);\n            } else if (property == \"calib\") {\n                this.set(\"linear\", false);\n                this.set(\"calib\", true);\n                this.set(\"depth\", false);\n            } else {\n                this.set(\"linear\", false);\n                this.set(\"calib\", false);\n                this.set(\"depth\", true);\n            }\n        },\n        toggleProperty(property) {\n            // console.log(property);\n            // console.log(this.get(property));\n            if ( !this.get(property) ) {\n                this.set(property, true);\n            } else {\n                this.set(property, false);\n            }\n            //console.log(this.get(property));\n        }\n    }\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Controller.extend({\n    router: service(),\n    session: service(),\n    isVisibleExportDataForm: false,\n    isVisibleImportDataForm: false,\n    permissionError: false,\n    showLoading:false,\n    init(){\n        this._super(...arguments);\n        this.router.on('routeDidChange', this.handleRouteChange.bind(this));\n    },\n\n    handleRouteChange(transition) {\n        if (transition.to.name === 'raw-frequency-events-data') {\n            this.set('showLoading', false);\n        }\n    },\n\n    breadCrumbs: Ember.computed('model', {\n        get() {\n            let instrument = this.get('model').instrument;\n            \n            let obj = null\n\n            if (instrument != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.id,\n                        path: 'edit-instrument',\n                        model: instrument.id,\n                    },\n                    {\n                        label: \"Raw Frequency Events Data\",\n                        path: 'raw-frequency-events-data',\n                        model: instrument.id,\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    actions: {\n\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        toggleProperty(property) {\n            // console.log(property);\n            // console.log(this.get(property));\n            if ( !this.get(property) ) {\n                this.set(property, true);\n            } else {\n                this.set(property, false);\n            }\n            //console.log(this.get(property));\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    queryParams: ['raw_parent_gateway'],\n\n    isVisibleExportDataForm: false,\n    isVisibleImportDataForm: false,\n    gatewayValuesMeta: null,\n    permissionError: false,\n    linear: false,\n    calib: false,\n    depth: false,\n    raw_parent_gateway: null,\n\n    breadCrumbs: Ember.computed('model', {\n        get() {\n            console.log(\"::::::::::::::::\")\n            let gateway = this.get('model').gateway;\n\n            let obj = null\n\n            if (gateway != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Gateway\",\n                        path: 'gateway'\n                    },\n                    {\n                        label: gateway.id,\n                        path: 'edit-gateway',\n                        model: gateway.id,\n                    },\n                    {\n                        label: \"Raw Data\",\n                        path: 'raw-gateway-data',\n                        model: gateway.id,\n                    }\n                ]\n            }\n            return obj;\n        }\n    }),\n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        toggleProperty(property) {\n            // console.log(property);\n            // console.log(this.get(property));\n            if ( !this.get(property) ) {\n                this.set(property, true);\n            } else {\n                this.set(property, false);\n            }\n            //console.log(this.get(property));\n        }\n    }\n});\n","import Controller from '@ember/controller';\nimport { action } from \"@ember/object\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default class RegisterController extends Controller {\n\n  @tracked isSuccessful = false;\n  @tracked errorMessage;\n  @tracked identification;\n  @tracked password = '';\n  @tracked passwordStrength = 0;   // 0–4\n  @service session;\n  @service api;\n  @tracked loading = false;\n\n  @tracked isValidUsername = false;\n  usernameTips = \"150 characters or fewer. Letters, digits and @/./+/-/_ only\";\n\n  @tracked isValidEmail = false;\n  emailTips = \"Invalid email structure\";\n\n  @tracked firstName = \"\";\n  @tracked lastName = \"\";\n  @tracked email = \"\";\n  @tracked emailsSent = \"\";\n  @tracked username = \"\";\n\n  @action\n  async resendVerification() {\n    this.loading = true;\n    if (!this.email) {\n      this.errorMessage = \"Enter your email first.\";\n      return;\n    }\n\n    let url = getApiBaseUrl() + \"/api/auth/resend-verification/\";\n\n    try {\n      let response = await this.api.fetch(url, {\n        method: \"POST\",\n        headers: {\"Content-Type\": \"application/json\"},\n        body: JSON.stringify({ email: this.email })\n      });\n\n      let data = await response.json();\n\n      if (!response.ok) {\n        alert(data.error);\n        this.errorMessage = data.error || \"Unable to resend email.\";\n        this.loading = false;\n        return;\n      }\n      else{\n        this.errorMessage = \"\";\n        alert(data.message);\n        this.loading = false;\n        return;\n      }\n\n    } catch (err) {\n      this.errorMessage = \"Network error. Try again later.\";\n    }\n  }\n\n\n  @action\n  async submitRegistration(event) {\n    this.loading = true;\n    this.errorMessage = null;\n\n    try {\n      let url = getApiBaseUrl() + \"/api/auth/register/\";\n      console.log(\"url:\" + url)\n      let response = await this.api.fetch(url, {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n        },\n        body: JSON.stringify({\n          username: this.username,\n          email: this.email,\n          first_name: this.firstName,\n          last_name: this.lastName,\n          password: this.password,\n        }),\n      });\n\n      let data = await response.json();\n      if (!response.ok) {\n        alert(data.error);\n        this.errorMessage = data.error || \"Registration failed.\";\n        this.loading = false;\n        return;\n      }\n      else{\n        this.isSuccessful = true;\n          this.errorMessage = \"\";\n          alert(data.message);\n          this.loading = false;\n          this.updateEmailsSent(data[\"emails_sent\"])\n          return;\n      }\n    } catch (err) {\n      this.errorMessage = \"Network error. Please try again.\";\n    }\n    this.loading = false;\n  }\n\n  @action\n  updateUsername(event) {\n    if (this.validateUsername(event.target.value)){\n      this.username = event.target.value;\n      this.set(\"isValidUsername\", false);\n    }\n    else{\n      this.set(\"isValidUsername\", true);\n    }\n  }\n  validateUsername(inputUsername){\n    if (!inputUsername) {\n      return false;\n    }\n\n    // Length check\n    if (inputUsername.length > 150) {\n      return false;\n    }\n\n    // Character check (Django-compatible)\n    const usernameRegex = /^[\\w.@+-]+$/;\n\n    return usernameRegex.test(inputUsername);\n\n  }\n\n  @action\n  updateEmail(event) {\n    if (this.validateEmail(event.target.value)){\n      this.email = event.target.value;\n      this.set(\"isValidEmail\", false);\n    }\n    else{\n      this.set(\"isValidEmail\", true);\n    }\n  }\n  validateEmail(email){\n    if (!email) {\n      return false;\n    }\n\n    if (email.length > 254) {\n      return false;\n    }\n\n    const emailRegex =\n      /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}$/;\n\n    return emailRegex.test(email);\n\n  }\n\n  @action\n  updatePassword(event) {\n    this.password = event.target.value;\n    this.calculateStrength();\n  }\n\n  calculateStrength() {\n    let score = 0;\n    const pw = this.password;\n\n    // RULES:\n\n    // Rule 1: At least 10 chars\n    if (pw.length >= 15) score++;\n\n    // Rule 2: Contains uppercase\n    if (/[A-Z]/.test(pw)) score++;\n\n    // Rule 3: Contains number\n    if (/[0-9]/.test(pw)) score++;\n\n    // Rule 4: Contains lowercase (new rule to make 4 scales possible)\n    if (/[a-z]/.test(pw)) score++;\n\n    // Rule 5: Contains special characters\n    if (/[^A-Za-z0-9]/.test(pw)) score++;\n\n    this.passwordStrength = score;\n  }\n\n  updateEmailsSent(emailsSentArr) {\n    let result=\"\";\n    emailsSentArr.forEach(element => {\n      result += element + \"\\n\";\n    });\n    this.set(\"emailsSent\", result);\n  }\n\n  get passwordStrengthText() {\n    switch (this.passwordStrength) {\n      case 0: return \"Very Weak\";\n      case 1: return \"Weak\";\n      case 2: return \"Medium\";\n      case 3: return \"Strong\";\n      case 4: return \"Very Strong\";\n    }\n  }\n\n  get passwordStrengthBarStyle() {\n    // Convert 0–4 → 0%–100%\n    let width = (this.passwordStrength / 4) * 100;\n\n    let color = \"#ff3333\";        // red\n    if (this.passwordStrength === 1) color = \"#ff6600\"; // orange\n    if (this.passwordStrength === 2) color = \"#ffcc00\"; // yellow\n    if (this.passwordStrength === 3) color = \"#66cc33\"; // green\n    if (this.passwordStrength === 4) color = \"#009900\"; // dark green\n\n    return `width:${width}%; background:${color}; height:100%; transition: width 0.3s;`;\n  }\n  get barWidth() {\n    return `${(this.passwordStrength / 4) * 100}%`;\n  }\n\n  get barColor() {\n    let c = [\"#ff3333\", \"#ff6600\", \"#ffcc00\", \"#66cc33\", \"#009900\"];\n    return c[this.passwordStrength];\n  }\n\n\n  @action\n  updateInfo(type, e) {\n    switch(type){\n      case \"firstname\":\n        this.firstName = e.target.value;\n        return;\n      case \"lastname\":\n        this.lastName = e.target.value;\n        return;\n      case \"email\":\n        this.email = e.target.value;\n        return;\n      case \"username\":\n        this.username = e.target.value;\n        return;\n      case \"password\":\n        this.password = e.target.value;\n        return;\n    }\n  }\n}\n","import Controller from \"@ember/controller\";\nimport { tracked } from \"@glimmer/tracking\";\nimport { action } from \"@ember/object\";\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { inject as service } from '@ember/service';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\nexport default class ResetPasswordController extends Controller {\n  @tracked password = \"\";\n  @tracked passwordConfirm = \"\";\n  @tracked errorMessage = \"\";\n  @tracked success = false;\n  @service api;\n  @action\n  updateField(field, event) {\n    this[field] = event.target.value;\n  }\n\n  @action\n  async submit() {\n    this.errorMessage = \"\";\n\n    if (this.password !== this.passwordConfirm) {\n      this.errorMessage = \"Passwords do not match.\";\n      return;\n    }\n\n    const token = this.model.token;\n\n    const response = await this.api.fetch(\n      `${getApiBaseUrl()}/api/auth/password-reset/confirm/`,\n      {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application/json\" },\n        body: JSON.stringify({ token, password: this.password })\n      }\n    );\n\n    const data = await response.json();\n\n    if (!response.ok) {\n      this.errorMessage = data.error || \"Something went wrong.\";\n      return;\n    }\n\n    this.success = true;\n  }\n}\n","import Ember from 'ember';\nimport { on } from '@ember/object/evented';\n\nexport default Ember.Controller.extend({\n\n    _my_init: on('init', function() {\n        Ember.run.scheduleOnce('afterRender', this, function() {\n            //this.send('updateNav',this.get('model').licence.content[0]._data);\n        });\n    }),\n    queryParams: ['page', 'page_size', 'ordering', 'search'],\n    page_size: 20,\n    eventsMeta: null,\n    ordering: null,\n    search: null,\n    isVisibleImportDataForm: null,\n    isVisibleRowDetails: {},\n    isRowDeleteConfirmationDialog: {},\n    isVisibleCreateNewForm: false,\n    permissionError: false,\n    \n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n            label: \"Seismic Events\",\n            path: 'seismic-events'\n        },\n        \n    ],\n    \n    actions: {\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        vewRowDetails(id){\n            let curVal = this.get('isVisibleRowDetails')[id] ? false : true;\n            Ember.set(this.get('isVisibleRowDetails'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        toggleProperty(property) {\n            //console.log('toggle property: ' + property);\n            if ( !this.get(property) ) {\n                this.set(property, true);\n            } else {\n                this.set(property, null);\n            }\n        },\n        remove(model, object){\n            let _this = this\n            object.deleteRecord();\n            object.get('isDeleted');\n            object.save().then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                model.removeObject(object);\n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.send('updateProperty','permissionError', true);\n                }\n            });\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        }\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n        label: \"Sensor Calibration Analytics\",\n        path: 'sensor-calibration-analytics'\n    }],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        refreshRoute() {\n            // Trigger the action in the route\n            this.send('refreshModel');\n        },\n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    page_size: 20,\n    page: 1,\n    search: null,\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n        label: \"Sensor Calibration\",\n        path: 'sensor-calibration'\n    }],\n    actions: {\n        sortBy(property) {\n            this.set('ordering', property);\n        },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        refreshRoute() {\n            // Trigger the action in the route\n            this.send('refreshModel');\n        },\n    }\n});\n","import Ember from 'ember';\nimport { inject as service } from '@ember/service';\n\nexport default Ember.Component.extend({\n    session: service(), \n    currentTab:\"GENERAL\",\n\n    loading: false,\n    router: Ember.inject.service(),\n    authorized: Ember.computed('',function() {\n        let settings = this.get('model');\n        let auth = false;\n        settings.forEach(element => {\n            if (element['title'] == \"GOOGLE_API\") {\n                //console.log(element['value']);\n                if (element['value'] == 1) {\n                    //console.log('true');\n                    auth = true;\n                }\n            }\n        });\n        return auth;\n    }),\n    datetimeFormatArray: [\n        {\n            id: 'YYYY-MM-DD HH:mm:ss',\n            title: 'YYYY-MM-DD HH:mm:ss (ISO 8601)'\n        },\n        {\n            id: 'YYYY-DD-MM HH:mm:ss',\n            title: 'YYYY-DD-MM HH:mm:ss'\n        },\n        {\n            id: 'MM-DD-YYYY HH:mm:ss',\n            title: 'MM-DD-YYYY HH:mm:ss (USA)'\n        },\n        {\n            id: 'DD-MM-YYYY HH:mm:ss',\n            title: 'DD-MM-YYYY HH:mm:ss'\n        },\n        {\n            id: 'YYYY/MM/DD HH:mm:ss',\n            title: 'MM/DD/YYYY HH:mm:ss'\n        },\n        {\n            id: 'YYYY/DD/MM HH:mm:ss',\n            title: 'YYYY/DD/MM HH:mm:ss'\n        },\n        {\n            id: 'MM/DD/YYYY HH:mm:ss',\n            title: 'MM/DD/YYYY HH:mm:ss'\n        },\n        {\n            id: 'DD/MM/YYYY HH:mm:ss',\n            title: 'DD/MM/YYYY HH:mm:ss'\n        },\n    ],\n    timeZones: [\n        {\n            id: 'Africa/Abidjan',\n            title: 'Africa/Abidjan'\n        },\n        {\n            id: 'Africa/Accra',\n            title: 'Africa/Accra'\n        },\n        {\n            id: 'Africa/Addis_Ababa',\n            title: 'Africa/Addis_Ababa'\n        },\n        {\n            id: 'Africa/Algiers',\n            title: 'Africa/Algiers'\n        },\n        {\n            id: 'Africa/Asmara',\n            title: 'Africa/Asmara'\n        },\n        {\n            id: 'Africa/Asmera',\n            title: 'Africa/Asmera'\n        },\n        {\n            id: 'Africa/Bamako',\n            title: 'Africa/Bamako'\n        },\n        {\n            id: 'Africa/Bangui',\n            title: 'Africa/Bangui'\n        },\n        {\n            id: 'Africa/Banjul',\n            title: 'Africa/Banjul'\n        },\n        {\n            id: 'Africa/Bissau',\n            title: 'Africa/Bissau'\n        },\n        {\n            id: 'Africa/Blantyre',\n            title: 'Africa/Blantyre'\n        },\n        {\n            id: 'Africa/Brazzaville',\n            title: 'Africa/Brazzaville'\n        },\n        {\n            id: 'Africa/Bujumbura',\n            title: 'Africa/Bujumbura'\n        },\n        {\n            id: 'Africa/Cairo',\n            title: 'Africa/Cairo'\n        },\n        {\n            id: 'Africa/Casablanca',\n            title: 'Africa/Casablanca'\n        },\n        {\n            id: 'Africa/Ceuta',\n            title: 'Africa/Ceuta'\n        },\n        {\n            id: 'Africa/Conakry',\n            title: 'Africa/Conakry'\n        },\n        {\n            id: 'Africa/Dakar',\n            title: 'Africa/Dakar'\n        },\n        {\n            id: 'Africa/Dar_es_Salaam',\n            title: 'Africa/Dar_es_Salaam'\n        },\n        {\n            id: 'Africa/Djibouti',\n            title: 'Africa/Djibouti'\n        },\n        {\n            id: 'Africa/Douala',\n            title: 'Africa/Douala'\n        },\n        {\n            id: 'Africa/El_Aaiun',\n            title: 'Africa/El_Aaiun'\n        },\n        {\n            id: 'Africa/Freetown',\n            title: 'Africa/Freetown'\n        },\n        {\n            id: 'Africa/Gaborone',\n            title: 'Africa/Gaborone'\n        },\n        {\n            id: 'Africa/Harare',\n            title: 'Africa/Harare'\n        },\n        {\n            id: 'Africa/Johannesburg',\n            title: 'Africa/Johannesburg'\n        },\n        {\n            id: 'Africa/Juba',\n            title: 'Africa/Juba'\n        },\n        {\n            id: 'Africa/Kampala',\n            title: 'Africa/Kampala'\n        },\n        {\n            id: 'Africa/Khartoum',\n            title: 'Africa/Khartoum'\n        },\n        {\n            id: 'Africa/Kigali',\n            title: 'Africa/Kigali'\n        },\n        {\n            id: 'Africa/Kinshasa',\n            title: 'Africa/Kinshasa'\n        },\n        {\n            id: 'Africa/Lagos',\n            title: 'Africa/Lagos'\n        },\n        {\n            id: 'Africa/Libreville',\n            title: 'Africa/Libreville'\n        },\n        {\n            id: 'Africa/Lome',\n            title: 'Africa/Lome'\n        },\n        {\n            id: 'Africa/Luanda',\n            title: 'Africa/Luanda'\n        },\n        {\n            id: 'Africa/Lubumbashi',\n            title: 'Africa/Lubumbashi'\n        },\n        {\n            id: 'Africa/Lusaka',\n            title: 'Africa/Lusaka'\n        },\n        {\n            id: 'Africa/Malabo',\n            title: 'Africa/Malabo'\n        },\n        {\n            id: 'Africa/Maputo',\n            title: 'Africa/Maputo'\n        },\n        {\n            id: 'Africa/Maseru',\n            title: 'Africa/Maseru'\n        },\n        {\n            id: 'Africa/Mbabane',\n            title: 'Africa/Mbabane'\n        },\n        {\n            id: 'Africa/Mogadishu',\n            title: 'Africa/Mogadishu'\n        },\n        {\n            id: 'Africa/Monrovia',\n            title: 'Africa/Monrovia'\n        },\n        {\n            id: 'Africa/Nairobi',\n            title: 'Africa/Nairobi'\n        },\n        {\n            id: 'Africa/Ndjamena',\n            title: 'Africa/Ndjamena'\n        },\n        {\n            id: 'Africa/Niamey',\n            title: 'Africa/Niamey'\n        },\n        {\n            id: 'Africa/Nouakchott',\n            title: 'Africa/Nouakchott'\n        },\n        {\n            id: 'Africa/Ouagadougou',\n            title: 'Africa/Ouagadougou'\n        },\n        {\n            id: 'Africa/Porto-Novo',\n            title: 'Africa/Porto-Novo'\n        },\n        {\n            id: 'Africa/Sao_Tome',\n            title: 'Africa/Sao_Tome'\n        },\n        {\n            id: 'Africa/Timbuktu',\n            title: 'Africa/Timbuktu'\n        },\n        {\n            id: 'Africa/Tripoli',\n            title: 'Africa/Tripoli'\n        },\n        {\n            id: 'Africa/Tunis',\n            title: 'Africa/Tunis'\n        },\n        {\n            id: 'Africa/Windhoek',\n            title: 'Africa/Windhoek'\n        },\n        {\n            id: 'America/Adak',\n            title: 'America/Adak'\n        },\n        {\n            id: 'America/Anchorage',\n            title: 'America/Anchorage'\n        },\n        {\n            id: 'America/Anguilla',\n            title: 'America/Anguilla'\n        },\n        {\n            id: 'America/Antigua',\n            title: 'America/Antigua'\n        },\n        {\n            id: 'America/Araguaina',\n            title: 'America/Araguaina'\n        },\n        {\n            id: 'America/Argentina/Buenos_Aires',\n            title: 'America/Argentina/Buenos_Aires'\n        },\n        {\n            id: 'America/Argentina/Catamarca',\n            title: 'America/Argentina/Catamarca'\n        },\n        {\n            id: 'America/Argentina/ComodRivadavia',\n            title: 'America/Argentina/ComodRivadavia'\n        },\n        {\n            id: 'America/Argentina/Cordoba',\n            title: 'America/Argentina/Cordoba'\n        },\n        {\n            id: 'America/Argentina/Jujuy',\n            title: 'America/Argentina/Jujuy'\n        },\n        {\n            id: 'America/Argentina/La_Rioja',\n            title: 'America/Argentina/La_Rioja'\n        },\n        {\n            id: 'America/Argentina/Mendoza',\n            title: 'America/Argentina/Mendoza'\n        },\n        {\n            id: 'America/Argentina/Rio_Gallegos',\n            title: 'America/Argentina/Rio_Gallegos'\n        },\n        {\n            id: 'America/Argentina/Salta',\n            title: 'America/Argentina/Salta'\n        },\n        {\n            id: 'America/Argentina/San_Juan',\n            title: 'America/Argentina/San_Juan'\n        },\n        {\n            id: 'America/Argentina/San_Luis',\n            title: 'America/Argentina/San_Luis'\n        },\n        {\n            id: 'America/Argentina/Tucuman',\n            title: 'America/Argentina/Tucuman'\n        },\n        {\n            id: 'America/Argentina/Ushuaia',\n            title: 'America/Argentina/Ushuaia'\n        },\n        {\n            id: 'America/Aruba',\n            title: 'America/Aruba'\n        },\n        {\n            id: 'America/Asuncion',\n            title: 'America/Asuncion'\n        },\n        {\n            id: 'America/Atikokan',\n            title: 'America/Atikokan'\n        },\n        {\n            id: 'America/Atka',\n            title: 'America/Atka'\n        },\n        {\n            id: 'America/Bahia',\n            title: 'America/Bahia'\n        },\n        {\n            id: 'America/Bahia_Banderas',\n            title: 'America/Bahia_Banderas'\n        },\n        {\n            id: 'America/Barbados',\n            title: 'America/Barbados'\n        },\n        {\n            id: 'America/Belem',\n            title: 'America/Belem'\n        },\n        {\n            id: 'America/Belize',\n            title: 'America/Belize'\n        },\n        {\n            id: 'America/Blanc-Sablon',\n            title: 'America/Blanc-Sablon'\n        },\n        {\n            id: 'America/Boa_Vista',\n            title: 'America/Boa_Vista'\n        },\n        {\n            id: 'America/Bogota',\n            title: 'America/Bogota'\n        },\n        {\n            id: 'America/Boise',\n            title: 'America/Boise'\n        },\n        {\n            id: 'America/Buenos_Aires',\n            title: 'America/Buenos_Aires'\n        },\n        {\n            id: 'America/Cambridge_Bay',\n            title: 'America/Cambridge_Bay'\n        },\n        {\n            id: 'America/Campo_Grande',\n            title: 'America/Campo_Grande'\n        },\n        {\n            id: 'America/Cancun',\n            title: 'America/Cancun'\n        },\n        {\n            id: 'America/Caracas',\n            title: 'America/Caracas'\n        },\n        {\n            id: 'America/Catamarca',\n            title: 'America/Catamarca'\n        },\n        {\n            id: 'America/Cayenne',\n            title: 'America/Cayenne'\n        },\n        {\n            id: 'America/Cayman',\n            title: 'America/Cayman'\n        },\n        {\n            id: 'America/Chicago',\n            title: 'America/Chicago'\n        },\n        {\n            id: 'America/Chihuahua',\n            title: 'America/Chihuahua'\n        },\n        {\n            id: 'America/Coral_Harbour',\n            title: 'America/Coral_Harbour'\n        },\n        {\n            id: 'America/Cordoba',\n            title: 'America/Cordoba'\n        },\n        {\n            id: 'America/Costa_Rica',\n            title: 'America/Costa_Rica'\n        },\n        {\n            id: 'America/Creston',\n            title: 'America/Creston'\n        },\n        {\n            id: 'America/Cuiaba',\n            title: 'America/Cuiaba'\n        },\n        {\n            id: 'America/Curacao',\n            title: 'America/Curacao'\n        },\n        {\n            id: 'America/Danmarkshavn',\n            title: 'America/Danmarkshavn'\n        },\n        {\n            id: 'America/Dawson',\n            title: 'America/Dawson'\n        },\n        {\n            id: 'America/Dawson_Creek',\n            title: 'America/Dawson_Creek'\n        },\n        {\n            id: 'America/Denver',\n            title: 'America/Denver'\n        },\n        {\n            id: 'America/Detroit',\n            title: 'America/Detroit'\n        },\n        {\n            id: 'America/Dominica',\n            title: 'America/Dominica'\n        },\n        {\n            id: 'America/Edmonton',\n            title: 'America/Edmonton'\n        },\n        {\n            id: 'America/Eirunepe',\n            title: 'America/Eirunepe'\n        },\n        {\n            id: 'America/El_Salvador',\n            title: 'America/El_Salvador'\n        },\n        {\n            id: 'America/Ensenada',\n            title: 'America/Ensenada'\n        },\n        {\n            id: 'America/Fort_Nelson',\n            title: 'America/Fort_Nelson'\n        },\n        {\n            id: 'America/Fort_Wayne',\n            title: 'America/Fort_Wayne'\n        },\n        {\n            id: 'America/Fortaleza',\n            title: 'America/Fortaleza'\n        },\n        {\n            id: 'America/Glace_Bay',\n            title: 'America/Glace_Bay'\n        },\n        {\n            id: 'America/Godthab',\n            title: 'America/Godthab'\n        },\n        {\n            id: 'America/Goose_Bay',\n            title: 'America/Goose_Bay'\n        },\n        {\n            id: 'America/Grand_Turk',\n            title: 'America/Grand_Turk'\n        },\n        {\n            id: 'America/Grenada',\n            title: 'America/Grenada'\n        },\n        {\n            id: 'America/Guadeloupe',\n            title: 'America/Guadeloupe'\n        },\n        {\n            id: 'America/Guatemala',\n            title: 'America/Guatemala'\n        },\n        {\n            id: 'America/Guayaquil',\n            title: 'America/Guayaquil'\n        },\n        {\n            id: 'America/Guyana',\n            title: 'America/Guyana'\n        },\n        {\n            id: 'America/Halifax',\n            title: 'America/Halifax'\n        },\n        {\n            id: 'America/Havana',\n            title: 'America/Havana'\n        },\n        {\n            id: 'America/Hermosillo',\n            title: 'America/Hermosillo'\n        },\n        {\n            id: 'America/Indiana/Indianapolis',\n            title: 'America/Indiana/Indianapolis'\n        },\n        {\n            id: 'America/Indiana/Knox',\n            title: 'America/Indiana/Knox'\n        },\n        {\n            id: 'America/Indiana/Marengo',\n            title: 'America/Indiana/Marengo'\n        },\n        {\n            id: 'America/Indiana/Petersburg',\n            title: 'America/Indiana/Petersburg'\n        },\n        {\n            id: 'America/Indiana/Tell_City',\n            title: 'America/Indiana/Tell_City'\n        },\n        {\n            id: 'America/Indiana/Vevay',\n            title: 'America/Indiana/Vevay'\n        },\n        {\n            id: 'America/Indiana/Vincennes',\n            title: 'America/Indiana/Vincennes'\n        },\n        {\n            id: 'America/Indiana/Winamac',\n            title: 'America/Indiana/Winamac'\n        },\n        {\n            id: 'America/Indianapolis',\n            title: 'America/Indianapolis'\n        },\n        {\n            id: 'America/Inuvik',\n            title: 'America/Inuvik'\n        },\n        {\n            id: 'America/Iqaluit',\n            title: 'America/Iqaluit'\n        },\n        {\n            id: 'America/Jamaica',\n            title: 'America/Jamaica'\n        },\n        {\n            id: 'America/Jujuy',\n            title: 'America/Jujuy'\n        },\n        {\n            id: 'America/Juneau',\n            title: 'America/Juneau'\n        },\n        {\n            id: 'America/Kentucky/Louisville',\n            title: 'America/Kentucky/Louisville'\n        },\n        {\n            id: 'America/Kentucky/Monticello',\n            title: 'America/Kentucky/Monticello'\n        },\n        {\n            id: 'America/Knox_IN',\n            title: 'America/Knox_IN'\n        },\n        {\n            id: 'America/Kralendijk',\n            title: 'America/Kralendijk'\n        },\n        {\n            id: 'America/La_Paz',\n            title: 'America/La_Paz'\n        },\n        {\n            id: 'America/Lima',\n            title: 'America/Lima'\n        },\n        {\n            id: 'America/Los_Angeles',\n            title: 'America/Los_Angeles'\n        },\n        {\n            id: 'America/Louisville',\n            title: 'America/Louisville'\n        },\n        {\n            id: 'America/Lower_Princes',\n            title: 'America/Lower_Princes'\n        },\n        {\n            id: 'America/Maceio',\n            title: 'America/Maceio'\n        },\n        {\n            id: 'America/Managua',\n            title: 'America/Managua'\n        },\n        {\n            id: 'America/Manaus',\n            title: 'America/Manaus'\n        },\n        {\n            id: 'America/Marigot',\n            title: 'America/Marigot'\n        },\n        {\n            id: 'America/Martinique',\n            title: 'America/Martinique'\n        },\n        {\n            id: 'America/Matamoros',\n            title: 'America/Matamoros'\n        },\n        {\n            id: 'America/Mazatlan',\n            title: 'America/Mazatlan'\n        },\n        {\n            id: 'America/Mendoza',\n            title: 'America/Mendoza'\n        },\n        {\n            id: 'America/Menominee',\n            title: 'America/Menominee'\n        },\n        {\n            id: 'America/Merida',\n            title: 'America/Merida'\n        },\n        {\n            id: 'America/Metlakatla',\n            title: 'America/Metlakatla'\n        },\n        {\n            id: 'America/Mexico_City',\n            title: 'America/Mexico_City'\n        },\n        {\n            id: 'America/Miquelon',\n            title: 'America/Miquelon'\n        },\n        {\n            id: 'America/Moncton',\n            title: 'America/Moncton'\n        },\n        {\n            id: 'America/Monterrey',\n            title: 'America/Monterrey'\n        },\n        {\n            id: 'America/Montevideo',\n            title: 'America/Montevideo'\n        },\n        {\n            id: 'America/Montreal',\n            title: 'America/Montreal'\n        },\n        {\n            id: 'America/Montserrat',\n            title: 'America/Montserrat'\n        },\n        {\n            id: 'America/Nassau',\n            title: 'America/Nassau'\n        },\n        {\n            id: 'America/New_York',\n            title: 'America/New_York'\n        },\n        {\n            id: 'America/Nipigon',\n            title: 'America/Nipigon'\n        },\n        {\n            id: 'America/Nome',\n            title: 'America/Nome'\n        },\n        {\n            id: 'America/Noronha',\n            title: 'America/Noronha'\n        },\n        {\n            id: 'America/North_Dakota/Beulah',\n            title: 'America/North_Dakota/Beulah'\n        },\n        {\n            id: 'America/North_Dakota/Center',\n            title: 'America/North_Dakota/Center'\n        },\n        {\n            id: 'America/North_Dakota/New_Salem',\n            title: 'America/North_Dakota/New_Salem'\n        },\n        {\n            id: 'America/Ojinaga',\n            title: 'America/Ojinaga'\n        },\n        {\n            id: 'America/Panama',\n            title: 'America/Panama'\n        },\n        {\n            id: 'America/Pangnirtung',\n            title: 'America/Pangnirtung'\n        },\n        {\n            id: 'America/Paramaribo',\n            title: 'America/Paramaribo'\n        },\n        {\n            id: 'America/Phoenix',\n            title: 'America/Phoenix'\n        },\n        {\n            id: 'America/Port-au-Prince',\n            title: 'America/Port-au-Prince'\n        },\n        {\n            id: 'America/Port_of_Spain',\n            title: 'America/Port_of_Spain'\n        },\n        {\n            id: 'America/Porto_Acre',\n            title: 'America/Porto_Acre'\n        },\n        {\n            id: 'America/Porto_Velho',\n            title: 'America/Porto_Velho'\n        },\n        {\n            id: 'America/Puerto_Rico',\n            title: 'America/Puerto_Rico'\n        },\n        {\n            id: 'America/Punta_Arenas',\n            title: 'America/Punta_Arenas'\n        },\n        {\n            id: 'America/Rainy_River',\n            title: 'America/Rainy_River'\n        },\n        {\n            id: 'America/Rankin_Inlet',\n            title: 'America/Rankin_Inlet'\n        },\n        {\n            id: 'America/Recife',\n            title: 'America/Recife'\n        },\n        {\n            id: 'America/Regina',\n            title: 'America/Regina'\n        },\n        {\n            id: 'America/Resolute',\n            title: 'America/Resolute'\n        },\n        {\n            id: 'America/Rio_Branco',\n            title: 'America/Rio_Branco'\n        },\n        {\n            id: 'America/Rosario',\n            title: 'America/Rosario'\n        },\n        {\n            id: 'America/Santa_Isabel',\n            title: 'America/Santa_Isabel'\n        },\n        {\n            id: 'America/Santarem',\n            title: 'America/Santarem'\n        },\n        {\n            id: 'America/Santiago',\n            title: 'America/Santiago'\n        },\n        {\n            id: 'America/Santo_Domingo',\n            title: 'America/Santo_Domingo'\n        },\n        {\n            id: 'America/Sao_Paulo',\n            title: 'America/Sao_Paulo'\n        },\n        {\n            id: 'America/Scoresbysund',\n            title: 'America/Scoresbysund'\n        },\n        {\n            id: 'America/Shiprock',\n            title: 'America/Shiprock'\n        },\n        {\n            id: 'America/Sitka',\n            title: 'America/Sitka'\n        },\n        {\n            id: 'America/St_Barthelemy',\n            title: 'America/St_Barthelemy'\n        },\n        {\n            id: 'America/St_Johns',\n            title: 'America/St_Johns'\n        },\n        {\n            id: 'America/St_Kitts',\n            title: 'America/St_Kitts'\n        },\n        {\n            id: 'America/St_Lucia',\n            title: 'America/St_Lucia'\n        },\n        {\n            id: 'America/St_Thomas',\n            title: 'America/St_Thomas'\n        },\n        {\n            id: 'America/St_Vincent',\n            title: 'America/St_Vincent'\n        },\n        {\n            id: 'America/Swift_Current',\n            title: 'America/Swift_Current'\n        },\n        {\n            id: 'America/Tegucigalpa',\n            title: 'America/Tegucigalpa'\n        },\n        {\n            id: 'America/Thule',\n            title: 'America/Thule'\n        },\n        {\n            id: 'America/Thunder_Bay',\n            title: 'America/Thunder_Bay'\n        },\n        {\n            id: 'America/Tijuana',\n            title: 'America/Tijuana'\n        },\n        {\n            id: 'America/Toronto',\n            title: 'America/Toronto'\n        },\n        {\n            id: 'America/Tortola',\n            title: 'America/Tortola'\n        },\n        {\n            id: 'America/Vancouver',\n            title: 'America/Vancouver'\n        },\n        {\n            id: 'America/Virgin',\n            title: 'America/Virgin'\n        },\n        {\n            id: 'America/Whitehorse',\n            title: 'America/Whitehorse'\n        },\n        {\n            id: 'America/Winnipeg',\n            title: 'America/Winnipeg'\n        },\n        {\n            id: 'America/Yakutat',\n            title: 'America/Yakutat'\n        },\n        {\n            id: 'America/Yellowknife',\n            title: 'America/Yellowknife'\n        },\n        {\n            id: 'Antarctica/Casey',\n            title: 'Antarctica/Casey'\n        },\n        {\n            id: 'Antarctica/Davis',\n            title: 'Antarctica/Davis'\n        },\n        {\n            id: 'Antarctica/DumontDUrville',\n            title: 'Antarctica/DumontDUrville'\n        },\n        {\n            id: 'Antarctica/Macquarie',\n            title: 'Antarctica/Macquarie'\n        },\n        {\n            id: 'Antarctica/Mawson',\n            title: 'Antarctica/Mawson'\n        },\n        {\n            id: 'Antarctica/McMurdo',\n            title: 'Antarctica/McMurdo'\n        },\n        {\n            id: 'Antarctica/Palmer',\n            title: 'Antarctica/Palmer'\n        },\n        {\n            id: 'Antarctica/Rothera',\n            title: 'Antarctica/Rothera'\n        },\n        {\n            id: 'Antarctica/South_Pole',\n            title: 'Antarctica/South_Pole'\n        },\n        {\n            id: 'Antarctica/Syowa',\n            title: 'Antarctica/Syowa'\n        },\n        {\n            id: 'Antarctica/Troll',\n            title: 'Antarctica/Troll'\n        },\n        {\n            id: 'Antarctica/Vostok',\n            title: 'Antarctica/Vostok'\n        },\n        {\n            id: 'Arctic/Longyearbyen',\n            title: 'Arctic/Longyearbyen'\n        },\n        {\n            id: 'Asia/Aden',\n            title: 'Asia/Aden'\n        },\n        {\n            id: 'Asia/Almaty',\n            title: 'Asia/Almaty'\n        },\n        {\n            id: 'Asia/Amman',\n            title: 'Asia/Amman'\n        },\n        {\n            id: 'Asia/Anadyr',\n            title: 'Asia/Anadyr'\n        },\n        {\n            id: 'Asia/Aqtau',\n            title: 'Asia/Aqtau'\n        },\n        {\n            id: 'Asia/Aqtobe',\n            title: 'Asia/Aqtobe'\n        },\n        {\n            id: 'Asia/Ashgabat',\n            title: 'Asia/Ashgabat'\n        },\n        {\n            id: 'Asia/Ashkhabad',\n            title: 'Asia/Ashkhabad'\n        },\n        {\n            id: 'Asia/Atyrau',\n            title: 'Asia/Atyrau'\n        },\n        {\n            id: 'Asia/Baghdad',\n            title: 'Asia/Baghdad'\n        },\n        {\n            id: 'Asia/Bahrain',\n            title: 'Asia/Bahrain'\n        },\n        {\n            id: 'Asia/Baku',\n            title: 'Asia/Baku'\n        },\n        {\n            id: 'Asia/Bangkok',\n            title: 'Asia/Bangkok'\n        },\n        {\n            id: 'Asia/Barnaul',\n            title: 'Asia/Barnaul'\n        },\n        {\n            id: 'Asia/Beirut',\n            title: 'Asia/Beirut'\n        },\n        {\n            id: 'Asia/Bishkek',\n            title: 'Asia/Bishkek'\n        },\n        {\n            id: 'Asia/Brunei',\n            title: 'Asia/Brunei'\n        },\n        {\n            id: 'Asia/Calcutta',\n            title: 'Asia/Calcutta'\n        },\n        {\n            id: 'Asia/Chita',\n            title: 'Asia/Chita'\n        },\n        {\n            id: 'Asia/Choibalsan',\n            title: 'Asia/Choibalsan'\n        },\n        {\n            id: 'Asia/Chongqing',\n            title: 'Asia/Chongqing'\n        },\n        {\n            id: 'Asia/Chungking',\n            title: 'Asia/Chungking'\n        },\n        {\n            id: 'Asia/Colombo',\n            title: 'Asia/Colombo'\n        },\n        {\n            id: 'Asia/Dacca',\n            title: 'Asia/Dacca'\n        },\n        {\n            id: 'Asia/Damascus',\n            title: 'Asia/Damascus'\n        },\n        {\n            id: 'Asia/Dhaka',\n            title: 'Asia/Dhaka'\n        },\n        {\n            id: 'Asia/Dili',\n            title: 'Asia/Dili'\n        },\n        {\n            id: 'Asia/Dubai',\n            title: 'Asia/Dubai'\n        },\n        {\n            id: 'Asia/Dushanbe',\n            title: 'Asia/Dushanbe'\n        },\n        {\n            id: 'Asia/Famagusta',\n            title: 'Asia/Famagusta'\n        },\n        {\n            id: 'Asia/Gaza',\n            title: 'Asia/Gaza'\n        },\n        {\n            id: 'Asia/Harbin',\n            title: 'Asia/Harbin'\n        },\n        {\n            id: 'Asia/Hebron',\n            title: 'Asia/Hebron'\n        },\n        {\n            id: 'Asia/Ho_Chi_Minh',\n            title: 'Asia/Ho_Chi_Minh'\n        },\n        {\n            id: 'Asia/Hong_Kong',\n            title: 'Asia/Hong_Kong'\n        },\n        {\n            id: 'Asia/Hovd',\n            title: 'Asia/Hovd'\n        },\n        {\n            id: 'Asia/Irkutsk',\n            title: 'Asia/Irkutsk'\n        },\n        {\n            id: 'Asia/Istanbul',\n            title: 'Asia/Istanbul'\n        },\n        {\n            id: 'Asia/Jakarta',\n            title: 'Asia/Jakarta'\n        },\n        {\n            id: 'Asia/Jayapura',\n            title: 'Asia/Jayapura'\n        },\n        {\n            id: 'Asia/Jerusalem',\n            title: 'Asia/Jerusalem'\n        },\n        {\n            id: 'Asia/Kabul',\n            title: 'Asia/Kabul'\n        },\n        {\n            id: 'Asia/Kamchatka',\n            title: 'Asia/Kamchatka'\n        },\n        {\n            id: 'Asia/Karachi',\n            title: 'Asia/Karachi'\n        },\n        {\n            id: 'Asia/Kashgar',\n            title: 'Asia/Kashgar'\n        },\n        {\n            id: 'Asia/Kathmandu',\n            title: 'Asia/Kathmandu'\n        },\n        {\n            id: 'Asia/Katmandu',\n            title: 'Asia/Katmandu'\n        },\n        {\n            id: 'Asia/Khandyga',\n            title: 'Asia/Khandyga'\n        },\n        {\n            id: 'Asia/Kolkata',\n            title: 'Asia/Kolkata'\n        },\n        {\n            id: 'Asia/Krasnoyarsk',\n            title: 'Asia/Krasnoyarsk'\n        },\n        {\n            id: 'Asia/Kuala_Lumpur',\n            title: 'Asia/Kuala_Lumpur'\n        },\n        {\n            id: 'Asia/Kuching',\n            title: 'Asia/Kuching'\n        },\n        {\n            id: 'Asia/Kuwait',\n            title: 'Asia/Kuwait'\n        },\n        {\n            id: 'Asia/Macao',\n            title: 'Asia/Macao'\n        },\n        {\n            id: 'Asia/Macau',\n            title: 'Asia/Macau'\n        },\n        {\n            id: 'Asia/Magadan',\n            title: 'Asia/Magadan'\n        },\n        {\n            id: 'Asia/Makassar',\n            title: 'Asia/Makassar'\n        },\n        {\n            id: 'Asia/Manila',\n            title: 'Asia/Manila'\n        },\n        {\n            id: 'Asia/Muscat',\n            title: 'Asia/Muscat'\n        },\n        {\n            id: 'Asia/Nicosia',\n            title: 'Asia/Nicosia'\n        },\n        {\n            id: 'Asia/Novokuznetsk',\n            title: 'Asia/Novokuznetsk'\n        },\n        {\n            id: 'Asia/Novosibirsk',\n            title: 'Asia/Novosibirsk'\n        },\n        {\n            id: 'Asia/Omsk',\n            title: 'Asia/Omsk'\n        },\n        {\n            id: 'Asia/Oral',\n            title: 'Asia/Oral'\n        },\n        {\n            id: 'Asia/Phnom_Penh',\n            title: 'Asia/Phnom_Penh'\n        },\n        {\n            id: 'Asia/Pontianak',\n            title: 'Asia/Pontianak'\n        },\n        {\n            id: 'Asia/Pyongyang',\n            title: 'Asia/Pyongyang'\n        },\n        {\n            id: 'Asia/Qatar',\n            title: 'Asia/Qatar'\n        },\n        {\n            id: 'Asia/Qyzylorda',\n            title: 'Asia/Qyzylorda'\n        },\n        {\n            id: 'Asia/Rangoon',\n            title: 'Asia/Rangoon'\n        },\n        {\n            id: 'Asia/Riyadh',\n            title: 'Asia/Riyadh'\n        },\n        {\n            id: 'Asia/Saigon',\n            title: 'Asia/Saigon'\n        },\n        {\n            id: 'Asia/Sakhalin',\n            title: 'Asia/Sakhalin'\n        },\n        {\n            id: 'Asia/Samarkand',\n            title: 'Asia/Samarkand'\n        },\n        {\n            id: 'Asia/Seoul',\n            title: 'Asia/Seoul'\n        },\n        {\n            id: 'Asia/Shanghai',\n            title: 'Asia/Shanghai'\n        },\n        {\n            id: 'Asia/Singapore',\n            title: 'Asia/Singapore'\n        },\n        {\n            id: 'Asia/Srednekolymsk',\n            title: 'Asia/Srednekolymsk'\n        },\n        {\n            id: 'Asia/Taipei',\n            title: 'Asia/Taipei'\n        },\n        {\n            id: 'Asia/Tashkent',\n            title: 'Asia/Tashkent'\n        },\n        {\n            id: 'Asia/Tbilisi',\n            title: 'Asia/Tbilisi'\n        },\n        {\n            id: 'Asia/Tehran',\n            title: 'Asia/Tehran'\n        },\n        {\n            id: 'Asia/Tel_Aviv',\n            title: 'Asia/Tel_Aviv'\n        },\n        {\n            id: 'Asia/Thimbu',\n            title: 'Asia/Thimbu'\n        },\n        {\n            id: 'Asia/Thimphu',\n            title: 'Asia/Thimphu'\n        },\n        {\n            id: 'Asia/Tokyo',\n            title: 'Asia/Tokyo'\n        },\n        {\n            id: 'Asia/Tomsk',\n            title: 'Asia/Tomsk'\n        },\n        {\n            id: 'Asia/Ujung_Pandang',\n            title: 'Asia/Ujung_Pandang'\n        },\n        {\n            id: 'Asia/Ulaanbaatar',\n            title: 'Asia/Ulaanbaatar'\n        },\n        {\n            id: 'Asia/Ulan_Bator',\n            title: 'Asia/Ulan_Bator'\n        },\n        {\n            id: 'Asia/Urumqi',\n            title: 'Asia/Urumqi'\n        },\n        {\n            id: 'Asia/Ust-Nera',\n            title: 'Asia/Ust-Nera'\n        },\n        {\n            id: 'Asia/Vientiane',\n            title: 'Asia/Vientiane'\n        },\n        {\n            id: 'Asia/Vladivostok',\n            title: 'Asia/Vladivostok'\n        },\n        {\n            id: 'Asia/Yakutsk',\n            title: 'Asia/Yakutsk'\n        },\n        {\n            id: 'Asia/Yangon',\n            title: 'Asia/Yangon'\n        },\n        {\n            id: 'Asia/Yekaterinburg',\n            title: 'Asia/Yekaterinburg'\n        },\n        {\n            id: 'Asia/Yerevan',\n            title: 'Asia/Yerevan'\n        },\n        {\n            id: 'Atlantic/Azores',\n            title: 'Atlantic/Azores'\n        },\n        {\n            id: 'Atlantic/Bermuda',\n            title: 'Atlantic/Bermuda'\n        },\n        {\n            id: 'Atlantic/Canary',\n            title: 'Atlantic/Canary'\n        },\n        {\n            id: 'Atlantic/Cape_Verde',\n            title: 'Atlantic/Cape_Verde'\n        },\n        {\n            id: 'Atlantic/Faeroe',\n            title: 'Atlantic/Faeroe'\n        },\n        {\n            id: 'Atlantic/Faroe',\n            title: 'Atlantic/Faroe'\n        },\n        {\n            id: 'Atlantic/Jan_Mayen',\n            title: 'Atlantic/Jan_Mayen'\n        },\n        {\n            id: 'Atlantic/Madeira',\n            title: 'Atlantic/Madeira'\n        },\n        {\n            id: 'Atlantic/Reykjavik',\n            title: 'Atlantic/Reykjavik'\n        },\n        {\n            id: 'Atlantic/South_Georgia',\n            title: 'Atlantic/South_Georgia'\n        },\n        {\n            id: 'Atlantic/St_Helena',\n            title: 'Atlantic/St_Helena'\n        },\n        {\n            id: 'Atlantic/Stanley',\n            title: 'Atlantic/Stanley'\n        },\n        {\n            id: 'Australia/ACT',\n            title: 'Australia/ACT'\n        },\n        {\n            id: 'Australia/Adelaide',\n            title: 'Australia/Adelaide'\n        },\n        {\n            id: 'Australia/Brisbane',\n            title: 'Australia/Brisbane'\n        },\n        {\n            id: 'Australia/Broken_Hill',\n            title: 'Australia/Broken_Hill'\n        },\n        {\n            id: 'Australia/Canberra',\n            title: 'Australia/Canberra'\n        },\n        {\n            id: 'Australia/Currie',\n            title: 'Australia/Currie'\n        },\n        {\n            id: 'Australia/Darwin',\n            title: 'Australia/Darwin'\n        },\n        {\n            id: 'Australia/Eucla',\n            title: 'Australia/Eucla'\n        },\n        {\n            id: 'Australia/Hobart',\n            title: 'Australia/Hobart'\n        },\n        {\n            id: 'Australia/LHI',\n            title: 'Australia/LHI'\n        },\n        {\n            id: 'Australia/Lindeman',\n            title: 'Australia/Lindeman'\n        },\n        {\n            id: 'Australia/Lord_Howe',\n            title: 'Australia/Lord_Howe'\n        },\n        {\n            id: 'Australia/Melbourne',\n            title: 'Australia/Melbourne'\n        },\n        {\n            id: 'Australia/NSW',\n            title: 'Australia/NSW'\n        },\n        {\n            id: 'Australia/North',\n            title: 'Australia/North'\n        },\n        {\n            id: 'Australia/Perth',\n            title: 'Australia/Perth'\n        },\n        {\n            id: 'Australia/Queensland',\n            title: 'Australia/Queensland'\n        },\n        {\n            id: 'Australia/South',\n            title: 'Australia/South'\n        },\n        {\n            id: 'Australia/Sydney',\n            title: 'Australia/Sydney'\n        },\n        {\n            id: 'Australia/Tasmania',\n            title: 'Australia/Tasmania'\n        },\n        {\n            id: 'Australia/Victoria',\n            title: 'Australia/Victoria'\n        },\n        {\n            id: 'Australia/West',\n            title: 'Australia/West'\n        },\n        {\n            id: 'Australia/Yancowinna',\n            title: 'Australia/Yancowinna'\n        },\n        {\n            id: 'Brazil/Acre',\n            title: 'Brazil/Acre'\n        },\n        {\n            id: 'Brazil/DeNoronha',\n            title: 'Brazil/DeNoronha'\n        },\n        {\n            id: 'Brazil/East',\n            title: 'Brazil/East'\n        },\n        {\n            id: 'Brazil/West',\n            title: 'Brazil/West'\n        },\n        {\n            id: 'CET',\n            title: 'CET'\n        },\n        {\n            id: 'CST6CDT',\n            title: 'CST6CDT'\n        },\n        {\n            id: 'Canada/Atlantic',\n            title: 'Canada/Atlantic'\n        },\n        {\n            id: 'Canada/Central',\n            title: 'Canada/Central'\n        },\n        {\n            id: 'Canada/East-Saskatchewan',\n            title: 'Canada/East-Saskatchewan'\n        },\n        {\n            id: 'Canada/Eastern',\n            title: 'Canada/Eastern'\n        },\n        {\n            id: 'Canada/Mountain',\n            title: 'Canada/Mountain'\n        },\n        {\n            id: 'Canada/Newfoundland',\n            title: 'Canada/Newfoundland'\n        },\n        {\n            id: 'Canada/Pacific',\n            title: 'Canada/Pacific'\n        },\n        {\n            id: 'Canada/Saskatchewan',\n            title: 'Canada/Saskatchewan'\n        },\n        {\n            id: 'Canada/Yukon',\n            title: 'Canada/Yukon'\n        },\n        {\n            id: 'Chile/Continental',\n            title: 'Chile/Continental'\n        },\n        {\n            id: 'Chile/EasterIsland',\n            title: 'Chile/EasterIsland'\n        },\n        {\n            id: 'Cuba',\n            title: 'Cuba'\n        },\n        {\n            id: 'EET',\n            title: 'EET'\n        },\n        {\n            id: 'EST',\n            title: 'EST'\n        },\n        {\n            id: 'EST5EDT',\n            title: 'EST5EDT'\n        },\n        {\n            id: 'Egypt',\n            title: 'Egypt'\n        },\n        {\n            id: 'Eire',\n            title: 'Eire'\n        },\n        {\n            id: 'Etc/GMT',\n            title: 'Etc/GMT'\n        },\n        {\n            id: 'Etc/GMT+0',\n            title: 'Etc/GMT+0'\n        },\n        {\n            id: 'Etc/GMT+1',\n            title: 'Etc/GMT+1'\n        },\n        {\n            id: 'Etc/GMT+10',\n            title: 'Etc/GMT+10'\n        },\n        {\n            id: 'Etc/GMT+11',\n            title: 'Etc/GMT+11'\n        },\n        {\n            id: 'Etc/GMT+12',\n            title: 'Etc/GMT+12'\n        },\n        {\n            id: 'Etc/GMT+2',\n            title: 'Etc/GMT+2'\n        },\n        {\n            id: 'Etc/GMT+3',\n            title: 'Etc/GMT+3'\n        },\n        {\n            id: 'Etc/GMT+4',\n            title: 'Etc/GMT+4'\n        },\n        {\n            id: 'Etc/GMT+5',\n            title: 'Etc/GMT+5'\n        },\n        {\n            id: 'Etc/GMT+6',\n            title: 'Etc/GMT+6'\n        },\n        {\n            id: 'Etc/GMT+7',\n            title: 'Etc/GMT+7'\n        },\n        {\n            id: 'Etc/GMT+8',\n            title: 'Etc/GMT+8'\n        },\n        {\n            id: 'Etc/GMT+9',\n            title: 'Etc/GMT+9'\n        },\n        {\n            id: 'Etc/GMT-0',\n            title: 'Etc/GMT-0'\n        },\n        {\n            id: 'Etc/GMT-1',\n            title: 'Etc/GMT-1'\n        },\n        {\n            id: 'Etc/GMT-10',\n            title: 'Etc/GMT-10'\n        },\n        {\n            id: 'Etc/GMT-11',\n            title: 'Etc/GMT-11'\n        },\n        {\n            id: 'Etc/GMT-12',\n            title: 'Etc/GMT-12'\n        },\n        {\n            id: 'Etc/GMT-13',\n            title: 'Etc/GMT-13'\n        },\n        {\n            id: 'Etc/GMT-14',\n            title: 'Etc/GMT-14'\n        },\n        {\n            id: 'Etc/GMT-2',\n            title: 'Etc/GMT-2'\n        },\n        {\n            id: 'Etc/GMT-3',\n            title: 'Etc/GMT-3'\n        },\n        {\n            id: 'Etc/GMT-4',\n            title: 'Etc/GMT-4'\n        },\n        {\n            id: 'Etc/GMT-5',\n            title: 'Etc/GMT-5'\n        },\n        {\n            id: 'Etc/GMT-6',\n            title: 'Etc/GMT-6'\n        },\n        {\n            id: 'Etc/GMT-7',\n            title: 'Etc/GMT-7'\n        },\n        {\n            id: 'Etc/GMT-8',\n            title: 'Etc/GMT-8'\n        },\n        {\n            id: 'Etc/GMT-9',\n            title: 'Etc/GMT-9'\n        },\n        {\n            id: 'Etc/GMT0',\n            title: 'Etc/GMT0'\n        },\n        {\n            id: 'Etc/Greenwich',\n            title: 'Etc/Greenwich'\n        },\n        {\n            id: 'Etc/UCT',\n            title: 'Etc/UCT'\n        },\n        {\n            id: 'Etc/UTC',\n            title: 'Etc/UTC'\n        },\n        {\n            id: 'Etc/Universal',\n            title: 'Etc/Universal'\n        },\n        {\n            id: 'Etc/Zulu',\n            title: 'Etc/Zulu'\n        },\n        {\n            id: 'Europe/Amsterdam',\n            title: 'Europe/Amsterdam'\n        },\n        {\n            id: 'Europe/Andorra',\n            title: 'Europe/Andorra'\n        },\n        {\n            id: 'Europe/Astrakhan',\n            title: 'Europe/Astrakhan'\n        },\n        {\n            id: 'Europe/Athens',\n            title: 'Europe/Athens'\n        },\n        {\n            id: 'Europe/Belfast',\n            title: 'Europe/Belfast'\n        },\n        {\n            id: 'Europe/Belgrade',\n            title: 'Europe/Belgrade'\n        },\n        {\n            id: 'Europe/Berlin',\n            title: 'Europe/Berlin'\n        },\n        {\n            id: 'Europe/Bratislava',\n            title: 'Europe/Bratislava'\n        },\n        {\n            id: 'Europe/Brussels',\n            title: 'Europe/Brussels'\n        },\n        {\n            id: 'Europe/Bucharest',\n            title: 'Europe/Bucharest'\n        },\n        {\n            id: 'Europe/Budapest',\n            title: 'Europe/Budapest'\n        },\n        {\n            id: 'Europe/Busingen',\n            title: 'Europe/Busingen'\n        },\n        {\n            id: 'Europe/Chisinau',\n            title: 'Europe/Chisinau'\n        },\n        {\n            id: 'Europe/Copenhagen',\n            title: 'Europe/Copenhagen'\n        },\n        {\n            id: 'Europe/Dublin',\n            title: 'Europe/Dublin'\n        },\n        {\n            id: 'Europe/Gibraltar',\n            title: 'Europe/Gibraltar'\n        },\n        {\n            id: 'Europe/Guernsey',\n            title: 'Europe/Guernsey'\n        },\n        {\n            id: 'Europe/Helsinki',\n            title: 'Europe/Helsinki'\n        },\n        {\n            id: 'Europe/Isle_of_Man',\n            title: 'Europe/Isle_of_Man'\n        },\n        {\n            id: 'Europe/Istanbul',\n            title: 'Europe/Istanbul'\n        },\n        {\n            id: 'Europe/Jersey',\n            title: 'Europe/Jersey'\n        },\n        {\n            id: 'Europe/Kaliningrad',\n            title: 'Europe/Kaliningrad'\n        },\n        {\n            id: 'Europe/Kiev',\n            title: 'Europe/Kiev'\n        },\n        {\n            id: 'Europe/Kirov',\n            title: 'Europe/Kirov'\n        },\n        {\n            id: 'Europe/Lisbon',\n            title: 'Europe/Lisbon'\n        },\n        {\n            id: 'Europe/Ljubljana',\n            title: 'Europe/Ljubljana'\n        },\n        {\n            id: 'Europe/London',\n            title: 'Europe/London'\n        },\n        {\n            id: 'Europe/Luxembourg',\n            title: 'Europe/Luxembourg'\n        },\n        {\n            id: 'Europe/Madrid',\n            title: 'Europe/Madrid'\n        },\n        {\n            id: 'Europe/Malta',\n            title: 'Europe/Malta'\n        },\n        {\n            id: 'Europe/Mariehamn',\n            title: 'Europe/Mariehamn'\n        },\n        {\n            id: 'Europe/Minsk',\n            title: 'Europe/Minsk'\n        },\n        {\n            id: 'Europe/Monaco',\n            title: 'Europe/Monaco'\n        },\n        {\n            id: 'Europe/Moscow',\n            title: 'Europe/Moscow'\n        },\n        {\n            id: 'Europe/Nicosia',\n            title: 'Europe/Nicosia'\n        },\n        {\n            id: 'Europe/Oslo',\n            title: 'Europe/Oslo'\n        },\n        {\n            id: 'Europe/Paris',\n            title: 'Europe/Paris'\n        },\n        {\n            id: 'Europe/Podgorica',\n            title: 'Europe/Podgorica'\n        },\n        {\n            id: 'Europe/Prague',\n            title: 'Europe/Prague'\n        },\n        {\n            id: 'Europe/Riga',\n            title: 'Europe/Riga'\n        },\n        {\n            id: 'Europe/Rome',\n            title: 'Europe/Rome'\n        },\n        {\n            id: 'Europe/Samara',\n            title: 'Europe/Samara'\n        },\n        {\n            id: 'Europe/San_Marino',\n            title: 'Europe/San_Marino'\n        },\n        {\n            id: 'Europe/Sarajevo',\n            title: 'Europe/Sarajevo'\n        },\n        {\n            id: 'Europe/Saratov',\n            title: 'Europe/Saratov'\n        },\n        {\n            id: 'Europe/Simferopol',\n            title: 'Europe/Simferopol'\n        },\n        {\n            id: 'Europe/Skopje',\n            title: 'Europe/Skopje'\n        },\n        {\n            id: 'Europe/Sofia',\n            title: 'Europe/Sofia'\n        },\n        {\n            id: 'Europe/Stockholm',\n            title: 'Europe/Stockholm'\n        },\n        {\n            id: 'Europe/Tallinn',\n            title: 'Europe/Tallinn'\n        },\n        {\n            id: 'Europe/Tirane',\n            title: 'Europe/Tirane'\n        },\n        {\n            id: 'Europe/Tiraspol',\n            title: 'Europe/Tiraspol'\n        },\n        {\n            id: 'Europe/Ulyanovsk',\n            title: 'Europe/Ulyanovsk'\n        },\n        {\n            id: 'Europe/Uzhgorod',\n            title: 'Europe/Uzhgorod'\n        },\n        {\n            id: 'Europe/Vaduz',\n            title: 'Europe/Vaduz'\n        },\n        {\n            id: 'Europe/Vatican',\n            title: 'Europe/Vatican'\n        },\n        {\n            id: 'Europe/Vienna',\n            title: 'Europe/Vienna'\n        },\n        {\n            id: 'Europe/Vilnius',\n            title: 'Europe/Vilnius'\n        },\n        {\n            id: 'Europe/Volgograd',\n            title: 'Europe/Volgograd'\n        },\n        {\n            id: 'Europe/Warsaw',\n            title: 'Europe/Warsaw'\n        },\n        {\n            id: 'Europe/Zagreb',\n            title: 'Europe/Zagreb'\n        },\n        {\n            id: 'Europe/Zaporozhye',\n            title: 'Europe/Zaporozhye'\n        },\n        {\n            id: 'Europe/Zurich',\n            title: 'Europe/Zurich'\n        },\n        {\n            id: 'GB',\n            title: 'GB'\n        },\n        {\n            id: 'GB-Eire',\n            title: 'GB-Eire'\n        },\n        {\n            id: 'GMT',\n            title: 'GMT'\n        },\n        {\n            id: 'GMT+0',\n            title: 'GMT+0'\n        },\n        {\n            id: 'GMT-0',\n            title: 'GMT-0'\n        },\n        {\n            id: 'GMT0',\n            title: 'GMT0'\n        },\n        {\n            id: 'Greenwich',\n            title: 'Greenwich'\n        },\n        {\n            id: 'HST',\n            title: 'HST'\n        },\n        {\n            id: 'Hongkong',\n            title: 'Hongkong'\n        },\n        {\n            id: 'Iceland',\n            title: 'Iceland'\n        },\n        {\n            id: 'Indian/Antananarivo',\n            title: 'Indian/Antananarivo'\n        },\n        {\n            id: 'Indian/Chagos',\n            title: 'Indian/Chagos'\n        },\n        {\n            id: 'Indian/Christmas',\n            title: 'Indian/Christmas'\n        },\n        {\n            id: 'Indian/Cocos',\n            title: 'Indian/Cocos'\n        },\n        {\n            id: 'Indian/Comoro',\n            title: 'Indian/Comoro'\n        },\n        {\n            id: 'Indian/Kerguelen',\n            title: 'Indian/Kerguelen'\n        },\n        {\n            id: 'Indian/Mahe',\n            title: 'Indian/Mahe'\n        },\n        {\n            id: 'Indian/Maldives',\n            title: 'Indian/Maldives'\n        },\n        {\n            id: 'Indian/Mauritius',\n            title: 'Indian/Mauritius'\n        },\n        {\n            id: 'Indian/Mayotte',\n            title: 'Indian/Mayotte'\n        },\n        {\n            id: 'Indian/Reunion',\n            title: 'Indian/Reunion'\n        },\n        {\n            id: 'Iran',\n            title: 'Iran'\n        },\n        {\n            id: 'Israel',\n            title: 'Israel'\n        },\n        {\n            id: 'Jamaica',\n            title: 'Jamaica'\n        },\n        {\n            id: 'Japan',\n            title: 'Japan'\n        },\n        {\n            id: 'Kwajalein',\n            title: 'Kwajalein'\n        },\n        {\n            id: 'Libya',\n            title: 'Libya'\n        },\n        {\n            id: 'MET',\n            title: 'MET'\n        },\n        {\n            id: 'MST',\n            title: 'MST'\n        },\n        {\n            id: 'MST7MDT',\n            title: 'MST7MDT'\n        },\n        {\n            id: 'Mexico/BajaNorte',\n            title: 'Mexico/BajaNorte'\n        },\n        {\n            id: 'Mexico/BajaSur',\n            title: 'Mexico/BajaSur'\n        },\n        {\n            id: 'Mexico/General',\n            title: 'Mexico/General'\n        },\n        {\n            id: 'NZ',\n            title: 'NZ'\n        },\n        {\n            id: 'NZ-CHAT',\n            title: 'NZ-CHAT'\n        },\n        {\n            id: 'Navajo',\n            title: 'Navajo'\n        },\n        {\n            id: 'PRC',\n            title: 'PRC'\n        },\n        {\n            id: 'PST8PDT',\n            title: 'PST8PDT'\n        },\n        {\n            id: 'Pacific/Apia',\n            title: 'Pacific/Apia'\n        },\n        {\n            id: 'Pacific/Auckland',\n            title: 'Pacific/Auckland'\n        },\n        {\n            id: 'Pacific/Bougainville',\n            title: 'Pacific/Bougainville'\n        },\n        {\n            id: 'Pacific/Chatham',\n            title: 'Pacific/Chatham'\n        },\n        {\n            id: 'Pacific/Chuuk',\n            title: 'Pacific/Chuuk'\n        },\n        {\n            id: 'Pacific/Easter',\n            title: 'Pacific/Easter'\n        },\n        {\n            id: 'Pacific/Efate',\n            title: 'Pacific/Efate'\n        },\n        {\n            id: 'Pacific/Enderbury',\n            title: 'Pacific/Enderbury'\n        },\n        {\n            id: 'Pacific/Fakaofo',\n            title: 'Pacific/Fakaofo'\n        },\n        {\n            id: 'Pacific/Fiji',\n            title: 'Pacific/Fiji'\n        },\n        {\n            id: 'Pacific/Funafuti',\n            title: 'Pacific/Funafuti'\n        },\n        {\n            id: 'Pacific/Galapagos',\n            title: 'Pacific/Galapagos'\n        },\n        {\n            id: 'Pacific/Gambier',\n            title: 'Pacific/Gambier'\n        },\n        {\n            id: 'Pacific/Guadalcanal',\n            title: 'Pacific/Guadalcanal'\n        },\n        {\n            id: 'Pacific/Guam',\n            title: 'Pacific/Guam'\n        },\n        {\n            id: 'Pacific/Honolulu',\n            title: 'Pacific/Honolulu'\n        },\n        {\n            id: 'Pacific/Johnston',\n            title: 'Pacific/Johnston'\n        },\n        {\n            id: 'Pacific/Kiritimati',\n            title: 'Pacific/Kiritimati'\n        },\n        {\n            id: 'Pacific/Kosrae',\n            title: 'Pacific/Kosrae'\n        },\n        {\n            id: 'Pacific/Kwajalein',\n            title: 'Pacific/Kwajalein'\n        },\n        {\n            id: 'Pacific/Majuro',\n            title: 'Pacific/Majuro'\n        },\n        {\n            id: 'Pacific/Marquesas',\n            title: 'Pacific/Marquesas'\n        },\n        {\n            id: 'Pacific/Midway',\n            title: 'Pacific/Midway'\n        },\n        {\n            id: 'Pacific/Nauru',\n            title: 'Pacific/Nauru'\n        },\n        {\n            id: 'Pacific/Niue',\n            title: 'Pacific/Niue'\n        },\n        {\n            id: 'Pacific/Norfolk',\n            title: 'Pacific/Norfolk'\n        },\n        {\n            id: 'Pacific/Noumea',\n            title: 'Pacific/Noumea'\n        },\n        {\n            id: 'Pacific/Pago_Pago',\n            title: 'Pacific/Pago_Pago'\n        },\n        {\n            id: 'Pacific/Palau',\n            title: 'Pacific/Palau'\n        },\n        {\n            id: 'Pacific/Pitcairn',\n            title: 'Pacific/Pitcairn'\n        },\n        {\n            id: 'Pacific/Pohnpei',\n            title: 'Pacific/Pohnpei'\n        },\n        {\n            id: 'Pacific/Ponape',\n            title: 'Pacific/Ponape'\n        },\n        {\n            id: 'Pacific/Port_Moresby',\n            title: 'Pacific/Port_Moresby'\n        },\n        {\n            id: 'Pacific/Rarotonga',\n            title: 'Pacific/Rarotonga'\n        },\n        {\n            id: 'Pacific/Saipan',\n            title: 'Pacific/Saipan'\n        },\n        {\n            id: 'Pacific/Samoa',\n            title: 'Pacific/Samoa'\n        },\n        {\n            id: 'Pacific/Tahiti',\n            title: 'Pacific/Tahiti'\n        },\n        {\n            id: 'Pacific/Tarawa',\n            title: 'Pacific/Tarawa'\n        },\n        {\n            id: 'Pacific/Tongatapu',\n            title: 'Pacific/Tongatapu'\n        },\n        {\n            id: 'Pacific/Truk',\n            title: 'Pacific/Truk'\n        },\n        {\n            id: 'Pacific/Wake',\n            title: 'Pacific/Wake'\n        },\n        {\n            id: 'Pacific/Wallis',\n            title: 'Pacific/Wallis'\n        },\n        {\n            id: 'Pacific/Yap',\n            title: 'Pacific/Yap'\n        },\n        {\n            id: 'Poland',\n            title: 'Poland'\n        },\n        {\n            id: 'Portugal',\n            title: 'Portugal'\n        },\n        {\n            id: 'ROC',\n            title: 'ROC'\n        },\n        {\n            id: 'ROK',\n            title: 'ROK'\n        },\n        {\n            id: 'Singapore',\n            title: 'Singapore'\n        },\n        {\n            id: 'Turkey',\n            title: 'Turkey'\n        },\n        {\n            id: 'UCT',\n            title: 'UCT'\n        },\n        {\n            id: 'US/Alaska',\n            title: 'US/Alaska'\n        },\n        {\n            id: 'US/Aleutian',\n            title: 'US/Aleutian'\n        },\n        {\n            id: 'US/Arizona',\n            title: 'US/Arizona'\n        },\n        {\n            id: 'US/Central',\n            title: 'US/Central'\n        },\n        {\n            id: 'US/East-Indiana',\n            title: 'US/East-Indiana'\n        },\n        {\n            id: 'US/Eastern',\n            title: 'US/Eastern'\n        },\n        {\n            id: 'US/Hawaii',\n            title: 'US/Hawaii'\n        },\n        {\n            id: 'US/Indiana-Starke',\n            title: 'US/Indiana-Starke'\n        },\n        {\n            id: 'US/Michigan',\n            title: 'US/Michigan'\n        },\n        {\n            id: 'US/Mountain',\n            title: 'US/Mountain'\n        },\n        {\n            id: 'US/Pacific',\n            title: 'US/Pacific'\n        },\n        {\n            id: 'US/Pacific-New',\n            title: 'US/Pacific-New'\n        },\n        {\n            id: 'US/Samoa',\n            title: 'US/Samoa'\n        },\n        {\n            id: 'UTC',\n            title: 'UTC'\n        },\n        {\n            id: 'Universal',\n            title: 'Universal'\n        },\n        {\n            id: 'W-SU',\n            title: 'W-SU'\n        },\n        {\n            id: 'WET',\n            title: 'WET'\n        },\n        {\n            id: 'Zulu',\n            title: 'Zulu'\n        }\n    ],\n    resetLoading: function(){\n        this.set(\"loading\", false);\n    },\n    actions: {\n        onClickLog(){\n            this.set('loading', true);\n            this.router.transitionTo(\"log-viewer\");\n            // this.set('loading', false);\n        }\n    },\n    activate: function() {\n        console.log(\"activated!!!\");    \n    }\n});\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    _my_init: function() {\n        Ember.run.scheduleOnce('afterRender', this, function() {\n            //this.send('updateNav',this.get('model').licence.content[0]._data);\n        });\n    }.on('init'),\n    instrumentId: null,\n    instrumentType: null,\n    instrumentTypeId: null,\n    name: null,\n    location: null,\n    level: null,\n    project: null,\n    borehole: null,\n    modelName: '',\n    activeInstrumentMeta: null,\n    spatialGraphController: Ember.inject.controller(\"spatial-graphs/spatial-graph\"),\n    eventType: null,\n    blastType: null,\n    seismicType: null,\n    chartDataValueName: null,\n    chartData: null,\n    instrumentAnchors: {},\n    instrumentAnchorsSorting: ['number'],\n    vendor: null,\n    breadCrumbs: Ember.computed(\"instrumentId\", {\n        get() {\n            let chart = this.get('chartDataValueName');\n            let mName = this.get('modelName');\n            let instID = this.get('instrumentId');\n            let instrument = this.get('content').instrument;\n            \n            let obj = null\n\n            if (instrument != null && instID == null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.query,\n                        path: 'edit-instrument',\n                        model: instrument.query,\n                    }\n                ]\n            }\n            if (instID != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instID,\n                        path: 'edit-instrument',\n                        model: instID,\n                    },\n                    {\n                        label: \"Spatial \" + chart + \" Graph\",\n                        path: \"spatial-graphs.spatial-graph\",\n                        model: instID,\n                        model: mName\n                    },\n                ];\n            }\n            return obj;\n        }\n    }),\n    vendor: Ember.computed('instrumentId', function() {\n        let id = this.get('instrumentId');\n        let vendor = null;\n        if (id !== null) {\n            vendor = this.store.peekRecord('instrument', id).get('vendor');\n        }\n        return vendor;\n    }),\n\n    isThermo: Ember.computed('instrumentType', function() {\n        //console.log(this.instrumentType);\n        if (this.instrumentType === 'Thermostring') {\n            return true;\n        }\n        return false;\n    }),\n    isRebar: Ember.computed('instrumentType', function() {\n        if (this.instrumentType === 'dRebarv2') {\n            return true;\n        }\n        return false;\n    }),\n    \n    displayData: Ember.computed('instrumentId', function() {\n        if (this.instrumentId !== null) {\n            return true;\n        } else {\n            return false;\n        }\n    }),\n\n    details: Ember.computed('name', 'project', 'location', 'level', 'borehole', 'instrumentId', function() {\n        var detailString = \"\";\n        let projectId = this.get('project'); // Assuming project has an 'id' field\n        let projectName = this.get('project.name'); // Assuming project has a 'name' field\n        \n        let levelId = this.get('level.id'); // Assuming level has an 'id' field\n        let levelName = this.get('level.name'); // Assuming level has a 'name' field\n        let badCodes = ['null', 'undefined', ''];\n        \n        if (this.instrumentId !== null) {\n            if (!badCodes.includes(projectName) && projectName != null && projectName != undefined) {\n                // console.log(\"::::::::::::in projectId\")\n                detailString += projectName + ' / ';\n            }\n            \n            if ( !badCodes.includes(this.get('location')) ) {\n                // console.log(\"::::::::::::in location\")\n                detailString += this.get('location') + ' / ';\n            }\n            \n            if (!badCodes.includes(levelName) && levelName != null && levelName != undefined) {\n                // console.log(\"::::::::::::in levelId\")\n                detailString += levelName + ' / ';\n            }\n            \n            if (!badCodes.includes(this.get('borehole')) ) {\n                // console.log(\"::::::::::::in borehole\")\n                detailString += this.get('borehole') + ' / ';\n            }\n                \n            if (detailString !== \"\" && detailString != 'Details:  /') {\n                detailString = detailString.substr(0, detailString.length - 3);\n            }\n        }\n        return detailString;\n    }),\n\n    isAdictMDT: Ember.computed('instrumentType', function() {\n\n        if(this.instrumentType.toLowerCase() === 'adict' && this.vendor.vendorType.includes('MDT')) {\n            return true;\n        }\n        return false;\n    }),            \n    instrumentAnchorsSorted: Ember.computed.sort('instrumentAnchors', 'instrumentAnchorsSorting'),\n\n    instrumentAnchorsForAdictMDT: Ember.computed('instrumentAnchors', function() {\n        let instrumentAnchors = this.instrumentAnchorsSorted;\n        \n        // Check if there are anchors to remove\n        if (instrumentAnchors.length > 0) {\n            instrumentAnchors.pop(); // Remove the last anchor\n        }\n        return instrumentAnchors;\n    }),\n\n    allInstruments: Ember.computed.filter('model.instruments', function(instrument) {\n        if (instrument.get('anchorCount') > 0) {\n            return true;\n        }\n    }),\n    refHeadPosition: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['ref-head-position'];\n    }),\n    timeRef: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['zeroed'];\n    }),\n    flipSigns: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['flip-signs'];\n    }),\n    instruments: Ember.computed.map('allInstruments', function(instrument) {\n        return {\n            title: instrument.get('id'),\n            value: instrument.get('id')\n        };\n    }),\n    frequencySelect: '10',\n    groupTime: false,\n    groupWindow: true,\n    // needed for filtered select list to be able to set active instrument on page reload\n    initialInstrumentSelection: Ember.computed('instruments', 'instrumentId', function () {\n\n        var id = this.get('instrumentId');\n        \n        if(id !== null) {\n            writeCookie('instrumentId', id, 0.02);\n        }\n        \n        return this.get('instruments').findBy('title', this.get('instrumentId'));\n    }),\n    actions: {\n        updateNav(licence) {\n            let modules = licence.modules;\n            if(licence.isValid) {\n                if(licence.withinLimit) {\n                    if(!modules.temporal) {\n                        document.getElementById(\"temp-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"temp-link\").style.display = \"block\";\n                    }\n                    if(!modules.spatial) {\n                        document.getElementById(\"licence-error-module\").style.display = \"block\";\n                        document.getElementById(\"spat-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"spat-link\").style.display = \"block\";\n                    }\n                    if(!modules.frequency) {\n                        document.getElementById(\"freq-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"freq-link\").style.display = \"block\";\n                    }    \n                    if(!modules.alerts) {\n                        document.getElementById(\"alert-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"alert-link\").style.display = \"block\";\n                    }\n                    document.getElementById(\"licence-error-instruments\").style.display = \"none\";\n                } else {\n                    document.getElementById(\"licence-error-instruments\").style.display = \"block\";\n                }\n                document.getElementById(\"licence-error-expired\").style.display = \"none\";\n            } else {\n                document.getElementById(\"licence-error-expired\").style.display = \"block\";\n            }\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        toggleProperty(property) {\n            this.get('spatialGraphController').send('toggleProperty', property);\n        },\n        updateActivefrequency(query) {\n            if (query.frequency) {\n                this.set('frequencySelect', query.frequency.capitalize());\n            } else if (query.frequency_num) {\n                this.set('frequencySelect', query.frequency_num);\n            } else if (query.events_only) {\n                this.set('frequencySelect', 'Events only');\n            }\n        },\n        updateGroupMode(query) {\n            if (query.group_window==='true') {\n                var freq = this.get('frequencySelect');\n                this.set('groupWindow', true);\n                this.set('groupTime', false);\n            } else if (query.group_time==='true') {\n                var freq = this.get('frequencySelect');\n                this.set('groupWindow', false);\n                this.set('groupTime', true);\n            } else {\n                this.set('groupTime', false);\n                this.set('groupWindow', true);\n                //this.set('frequencySelect', 10);\n            }\n        },\n        onUpdateTransitionTo(selection) {\n            if (this.get('modelName') === null) {\n                this.set('modelName', 'displacement-values');\n            }\n\n            let typeID = selection.value.substr(selection.value.length === 9 ? 5 : 6, 1);\n            let modelName = this.get('modelName');\n            // dRebarv2?\n            let isRebarGraph = (modelName === 'axial-strain-values' || modelName === 'bending-strain-values' || modelName === 'axial-displacement-values');\n            if (typeID === \"3\" || typeID === \"17\") { //isrebar\n                if (!isRebarGraph && modelName !== 'load-values') {\n                    this.set('modelName', 'axial-displacement-values');\n                }\n            } else {\n                // dRebarv2?\n                if (isRebarGraph) {\n                    this.set('modelName', 'displacement-values');\n                }\n            }\n            this.RouterService.transitionTo('spatial-graphs.spatial-graph', selection.value, this.get('modelName'));\n        }\n    },\n    setChart(chart) {\n        this.set('chart',chart);\n    },\n    setData(data) {\n        this.set('chartDataPoints', data);\n    },\n    activate: function() {\n        //static var blah = \"\";\n        var id = this.get('instrumentId');\n        var inst = null;\n\n        //console.log(blah);\n\n        //console.log(\"before cookies: \" + id);\n        if(id === null) {\n            id = readCookie('instrumentId');\n            //inst = this.get('instruments').findBy('title', id);\n            //window.location.href = \"/spatial-graph/\" + id + \"/displacement-values\";\n\n            //console.log(\"after cookies: \" + id);\n            if(id !== \"\") {\n                Ember.run.scheduleOnce('afterRender', this, function() {\n                    //console.log(\"running re-load\");\n                    this.RouterService.transitionTo('spatial-graphs.spatial-graph', id, this.get('modelName'));\n                    });        \n            }\n\n        } else {\n            writeCookie('instrumentId', id, 1);\n        }\n    }\n});\n\nfunction writeCookie(name,value,days) {\n    var date, expires;\n    if (days) {\n        date = new Date();\n        date.setTime(date.getTime()+(days*24*60*60*1000));\n        expires = \"; expires=\" + date.toGMTString();\n            }else{\n        expires = \"\";\n    }\n    document.cookie = name + \"=\" + value + expires + \"; path=/\";\n}\n\nfunction readCookie(name) {\n    var i, c, ca, nameEQ = name + \"=\";\n    ca = document.cookie.split(';');\n    for(i=0;i < ca.length;i++) {\n        c = ca[i];\n        while (c.charAt(0)===' ') {\n            c = c.substring(1,c.length);\n        }\n        if (c.indexOf(nameEQ) === 0) {\n            return c.substring(nameEQ.length,c.length);\n        }\n    }\n    return '';\n}\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    queryParams: [\n        'start_timestamp',\n        'end_timestamp',\n        'num_points_requested',\n        'ref_head_position',\n        'ref_anchor',\n        'zeroed',\n        'flip_signs',\n        'event_type',\n        'blast_type',\n        'seismic_type',\n        'frequency',\n        'frequency_num',\n        'events_only',\n        'group_time',\n        'group_window',\n        'side'\n    ],\n    start_timestamp: null,\n    end_timestamp: null,\n    num_points_requested: 20,\n    ref_head_position: \"\",\n    ref_anchor: \"0\",\n    zeroed: true,\n    modelName: null,\n    flip_signs: null,\n    event_type: null,\n    blast_type: null,\n    seismic_type: null,\n    frequency: null,\n    frequency_num: 10,\n    events_only: null,\n    group_time: null,\n    group_window: null,\n    side:\"A\",\n    actions: {\n        setData(data) {\n            this.send('setDataR',data);\n        },\n        setChart(chart) {\n            this.send('setChartR',chart);\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        getQueryParams(variable) {\n            return this.get(variable);\n        },\n        toggleProperty(property) {\n            if ( this.get(property) === null ) {\n                this.set(property, true);\n            } else if(this.get(property) === false ) {\n                this.set(property, true);\n            }  else {\n                this.set(property, false);\n            }\n        }\n    }\n});\n","import Ember from 'ember';\nimport { capitalize } from '@ember/string';\n\nexport default Ember.Controller.extend({\n    queryParams: ['parentGateway'],\n    _my_init: function() {\n        Ember.run.scheduleOnce('afterRender', this, function() {\n            //this.send('updateNav',this.get('model').licence.content[0]._data);\n        });\n    }.on('init'),\n    gatewayId: null,\n    gatewayType: null,\n    gatewayTypeId: null,\n    name: null,\n    location: null,\n    level: null,\n    project: null,\n    modelName: '',\n    activeGatewayMeta: null,\n    temporalGatewayGraphController: Ember.inject.controller(\"temporal-gateway-graphs/temporal-gateway-graph\"),\n    chartDataValueName: null,\n    chartData: null,\n    chart: null,\n    chartDataPoints: null,\n    adjust_scales: false,\n    auto_scale: true,\n    y_min: null,\n    y_max: null,\n    y_min_old: null,\n    y_max_old: null,\n    y_min_auto: null,\n    y_max_auto: null,\n    auto_scale_2: true,\n    y_min_2: null,\n    y_max_2: null,\n    y_min_old_2: null,\n    y_max_old_2: null,\n    y_min_auto_2: null,\n    y_max_auto_2: null,\n    lastClick: null,\n    gatewayAnchors: {},\n    gatewayAnchorsSorting: ['number'],\n    depthChecked: '',\n    chart_type: null,\n    display_records: null,\n    left_axis_field: null,\n    right_axis_field: null,\n    port: null,\n    chart_parent_gateway: null,\n    parentGateway: null,\n\n    rawChecked: Ember.computed('depthChecked', function() {\n        if (this.get('depthChecked') == '')\n            return 'Checked'\n        else\n            return ''\n    }),\n\n    breadCrumbs: Ember.computed(\"gatewayId\", {\n        get() {\n            let badCodes = ['null', 'undefined', ''];\n            let chart = this.get('chartDataValueName');\n            let mName = this.get('modelName');\n            let gateway = this.get('content').gateway;\n            let gatewayID = gateway.id;\n            let parentGateway = this.get('chart_parent_gateway');\n            // if parentGateway is valid\n            if( !badCodes.includes(this.get('parentGateway')) )\n                parentGateway = this.get('parentGateway');\n            \n            // console.log(\"parentGateway::: \" + parentGateway);\n            let obj = null\n            \n            //chart = this.get('chart_type');\n\n            if (gateway != null && gatewayID == null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Gateway\",\n                        path: 'gateway'\n                    },\n                    {\n                        label: gateway.query,\n                        path: 'edit-gateway',\n                        model: gateway.query,\n                    }\n                ]\n            }\n\n            if (gatewayID != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Gateways\",\n                        path: 'gateway'\n                    },\n                    {\n                        label: gatewayID,\n                        path: 'edit-gateway',\n                        model: gatewayID,\n                        queryParams: {\n                            parentGateway: this.parentGateway // Include the parentGateway in the queryParams\n                        }\n                    },\n                    {\n                        label: \"Temporal \" + chart + \" Graph\",\n                        path: \"temporal-gateway-graphs.temporal-gateway-graph\",\n                        // model: gatewayID,\n                        model: mName == ''? \"voltage-values\": mName,\n                    },\n                ];\n            }\n            return obj;\n        }\n    }),\n\n    chartChanged: Ember.observer('chart', function() {\n        var chart = this.get('chart');\n        var domain = chart.y1Axis.scale().domain();\n        this.set('y_min',toFixed(domain[0],2));\n        this.set('y_max',toFixed(domain[1],2));\n        this.set('y_min_old',null);\n        this.set('y_max_old',null);\n        var domain = chart.y2Axis.scale().domain();\n        this.set('y_min_2',toFixed(domain[0],2));\n        this.set('y_max_2',toFixed(domain[1],2));\n        this.set('y_min_old_2',null);\n        this.set('y_max_old_2',null);\n        this.send('disableTemp');\n        this.set('auto_scale',true);\n        this.set('auto_scale_2',true);\n    }),\n    valueChanged: Ember.observer('y_min','y_max', function() {\n        var chart = this.get('chart');\n        if (!this.auto_scale) {\n            chart.yDomain1([this.get('y_min'),this.get('y_max')]);\n        }\n        chart.update();\n    }),\n\n    autoScaleChanged: Ember.observer('auto_scale', function() {\n        // console.log(\"autoScaleChanged::: \" + this.get('auto_scale'));\n\n        var chart = this.get('chart');\n        if (this.auto_scale) {\n            this.set('y_min_old', this.y_min);\n            this.set('y_max_old', this.y_max);\n\n            chart.yDomain1(null,null);\n            chart.update();\n\n            var domain = chart.y1Axis.scale().domain();\n            this.set('y_min',toFixed(domain[0],2));\n            this.set('y_max',toFixed(domain[1],2));\n                //chart.yScale = this.get('test');\n        } else {\n            if (this.get('y_min_old') !== null) {\n                this.set('y_min', this.y_min_old);\n                this.set('y_max',this.y_max_old);\n            }\n            chart.yDomain1([this.get('y_min'),this.get('y_max')]);\n            chart.update();\n        }\n    }),\n\n    valueChanged2: Ember.observer('y_min_2','y_max_2', function() {\n        var chart = this.get('chart');\n        if (!this.auto_scale_2) {\n            chart.yDomain2([this.get('y_min_2'),this.get('y_max_2')]);\n            chart.update();\n        }\n    }),\n    autoScaleChanged2: Ember.observer('auto_scale_2', function() {\n        var chart = this.get('chart');\n        if (this.auto_scale_2) {\n            this.set('y_min_old_2', this.y_min_2);\n            this.set('y_max_old_2', this.y_max_2);\n\n            chart.yDomain2(null,null);\n            chart.update();\n\n            var domain = chart.y2Axis.scale().domain();\n            this.set('y_min_2',toFixed(domain[0],2));\n            this.set('y_max_2',toFixed(domain[1],2));\n        } else {\n            if (this.get('y_min_old_2') !== null) {\n                this.set('y_min_2', this.y_min_old_2);\n                this.set('y_max_2', this.y_max_old_2);\n            }\n            chart.yDomain2([this.get('y_min_2'),this.get('y_max_2')]);\n            chart.update();\n        }\n    }),\n\n    window_value: Ember.computed('window', function() {\n        if (this.window === '60') {\n            return '1 Hour';\n        }\n        if (this.window === '480') {\n            return '8 Hours';\n        }\n        if (this.window === '1440') {\n            return '24 Hours';\n        }\n    }),\n\n    displayData: Ember.computed('gatewayId', function() {\n        if (this.gatewayId !== null) {\n            return true;\n        } else {\n            return false;\n        }\n    }),\n\n    details: Ember.computed('name', 'project', 'location', 'level', 'gatewayId', function() {\n        var detailString = \"\";\n        if (this.gatewayId !== null) {\n            if (this.project !== null && this.project !== \"\") {\n                detailString += this.project + ' / '; }\n            if (this.location !== null && this.location !== \"\") {\n                detailString += this.location + ' / '; }\n            if (this.level !== null && this.level !== \"\") {\n                detailString += this.level + ' / '; }\n            if (detailString !== \"\") {\n                detailString = detailString.substring(0,detailString.length - 3);\n            }\n        }\n        return detailString;\n    }),\n\n    temperatureIsValid: Ember.computed('gatewayType', function() {\n        return false;\n    }),\n\n    gatewayAnchorsSorted: Ember.computed.sort('gatewayAnchors', 'gatewayAnchorsSorting'),\n    depthData: Ember.computed('gatewayValuesMeta', function() {\n        let depth = this.get('gatewayValuesMeta')['depth'];\n        return depth;\n    }),\n    timeRef: Ember.computed('activeGatewayMeta', function () {\n        return this.get('activeGatewayMeta')['zeroed'];\n    }),\n    allGateway: Ember.computed.filter('model.gateway', function(gateway) {\n        if (gateway.get('anchorCount') > 0) {\n            return true;\n        }\n    }),\n    gateway: Ember.computed.map('allGateway', function(gateway) {\n        return {\n            title: gateway.get('id'),\n            value: gateway.get('id')\n        };\n    }),\n\n    initialGatewaySelection: Ember.computed('gateway', 'gatewayId', function () {\n\n        var id = this.get('gatewayId');\n\n        if(id !== null) {\n            writeCookie('gatewayId', id, 0.02);\n        }\n\n        return this.get('gateway').findBy('title', this.get('gatewayId'));\n    }),\n    actions: {\n        selectAxis(gatewayId, modelName){\n           //console.log(\"Select Axis::: \")\n           //console.log(\"Select Axis::: \"+ this.get('right_axis_field'));\n           //console.log(\"Select Axis::: \"+ this.get('left_axis_field'));\n           //console.log(\"Select Axis::: \"+ gatewayId);\n           //console.log(\"Select Axis::: \"+ modelName);           \n            //this.get('router').transitionTo('temporal-gateway-graphs.temporal-gateway-graph', id, 'voltage-values');\n\n            // code to save or sendAction\n            // e.g. let selectedOption = this.get('selectedOption')\n            // this.sendAction('submit', selectedOption)\n        },\n        setDepth(value) {\n            this.set('depthChecked', value == true ? 'Checked' : '');\n        },\n        updateNav(licence) {\n            // this.get('temporalGraphController').send('setController', this);\n            let modules = licence.modules;\n            if(licence.isValid) {\n                if(licence.withinLimit) {\n                    if(!modules.temporal) {\n                        document.getElementById(\"temp-link\").style.display = \"none\";\n                        document.getElementById(\"licence-error-module\").style.display = \"block\";\n                    } else {\n                        document.getElementById(\"temp-link\").style.display = \"block\";\n                    }\n                    if(!modules.spatial) {\n                        document.getElementById(\"spat-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"spat-link\").style.display = \"block\";\n                    }\n                    if(!modules.frequency) {\n                        document.getElementById(\"freq-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"freq-link\").style.display = \"block\";\n                    }\n                    if(!modules.alerts) {\n                        document.getElementById(\"alert-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"alert-link\").style.display = \"block\";\n                    }\n\n                    document.getElementById(\"licence-error-instruments\").style.display = \"none\";\n                } else {\n                    document.getElementById(\"licence-error-instruments\").style.display = \"block\";\n                }\n                document.getElementById(\"licence-error-expired\").style.display = \"none\";\n            } else {\n                document.getElementById(\"licence-error-expired\").style.display = \"block\";\n            }\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        toggleDataType(property) {\n            this.get('temporalGraphController').send('toggleDataType', property);\n        },\n        toggleProperty(property) {\n            this.get('temporalGraphController').send('toggleProperty', property);\n        },\n        toggleLocalProperty(property) {\n            let propValue = false;\n            if ( this.get(property) === null ) {\n                propValue = true;\n            } else if(this.get(property) === false ) {\n                propValue = true;\n            }\n            this.set(property, propValue);\n        },\n        updateLocalProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        onUpdateTransitionTo(selection) {\n           //console.log(\"temporalcontroller: selection: \" + selection.value)\n            if (this.get('modelName') === null || this.get('modelName') == '') {\n                \n                this.set('modelName', 'gateway-value');\n            }\n\n            this.tra('temporal-gateway-graphs.temporal-gateway-graph', selection.value, this.get('modelName'));\n        },        \n        setChart(chart) {\n            this.set('chart',chart);\n        },\n        setData(data) {\n            this.set('chartDataPoints', data);\n        },\n        disableTemp() {\n            let chart = this.get('chart');\n            let points = this.get('chartDataPoints');\n            if (chart !== null) {\n                points.forEach(function(element) {\n                    if (element.yAxis === 2) {\n                        element.disabled = true;\n                        element.userDisabled = true;\n                        //chart.update();\n                    }\n                });\n            }\n        },\n        saveImage() {\n            //console.log(\"SAVE SCREEN\");\n            html2canvas(document.querySelector(\"#capture\"), { allowTaint: true, foreignObjectRendering: true,\n                onrendered: function (canvas) {\n                    let downloadLink = document.createElement('a');\n                    downloadLink.setAttribute('download', 'CanvasAsImage.png');\n                    canvas.toBlob(function(blob) {\n                        let url = URL.createObjectURL(blob);\n                        downloadLink.setAttribute('href', url);\n                        downloadLink.click();\n                      });\n                }\n            });\n        },\n        selectTemps() {\n            let lastClick = this.get('lastClick');\n            if (lastClick === null || lastClick !== \"temp\") {\n                let chart = this.get('chart');\n                let points = this.get('chartDataPoints');\n                if (chart !== null) {\n                    for (let ctr = 0; ctr < points.length - 2; ctr++) {\n                        if (ctr % 2 === 0) {\n                            if (!points[ctr + 1].disabled) {\n                                points[ctr].disabled = false;\n                                points[ctr].userDisabled = false;\n                            }\n                        } else {\n                            points[ctr].disabled = true;\n                            points[ctr].userDisabled = true;\n                        }\n                    }\n                    chart.update();\n                }\n                this.set('lastClick', 'temp');\n            }\n        },\n        selectReadings() {\n            let lastClick = this.get('lastClick');\n            if (lastClick === null || lastClick !== \"vals\") {\n                let chart = this.get('chart');\n                let points = this.get('chartDataPoints');\n                if (chart !== null) {\n                    for (let ctr = points.length - 2; ctr >= 0; ctr--) {\n                        if (ctr % 2 === 0) {\n                            points[ctr].disabled = true;\n                            points[ctr].userDisabled = true;\n                        } else {\n                            if (!points[ctr - 1].disabled) {\n                                points[ctr].disabled = false;\n                                points[ctr].userDisabled = false;\n                            }\n                        }\n                    }\n                    chart.update();\n                }\n                this.set('lastClick', 'vals');\n            }\n        }\n    },\n    activate: function() {\n        var id = this.get('gatewayId');\n\n        if(id === null) {\n            id = readCookie('gatewayId');\n            if(id !== \"\") {\n                Ember.run.scheduleOnce('afterRender', this, function() {\n                    //console.log(\"running re-load\");\n                    this.transitionToRoute('temporal-gateway-graphs.temporal-gateway-graph', id, this.get('modelName'));\n                    });\n            }\n        } else {\n            writeCookie('gatewayId', id, 1);\n        }\n    }\n});\n\nfunction toFixed(value, numDecimals) {\n    var roundVal = Math.pow(10, numDecimals);\n    var answer = 0;\n    if (value > 0) {\n        answer = Math.ceil(value * roundVal) / roundVal;\n    } else {\n        answer = Math.floor(value * roundVal) / roundVal;\n    }\n    return answer;\n}\n\nfunction writeCookie(name,value,days) {\n    var date, expires;\n    if (days) {\n        date = new Date();\n        date.setTime(date.getTime()+(days*24*60*60*1000));\n        expires = \"; expires=\" + date.toGMTString();\n            }else{\n        expires = \"\";\n    }\n    document.cookie = name + \"=\" + value + expires + \"; path=/\";\n}\n\nfunction readCookie(name) {\n    var i, c, ca, nameEQ = name + \"=\";\n    ca = document.cookie.split(';');\n    for(i=0;i < ca.length;i++) {\n        c = ca[i];\n        while (c.charAt(0)===' ') {\n            c = c.substring(1,c.length);\n        }\n        if (c.indexOf(nameEQ) === 0) {\n            return c.substring(nameEQ.length,c.length);\n        }\n    }\n    return '';\n}\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    queryParams: [\n        'start_timestamp',\n        'end_timestamp',\n        'num_points_requested',\n        'ref_anchor',\n        'zeroed',\n        'depth',\n        'window',\n        'chart_type',\n        'display_records',\n        'right_axis_field',\n        'left_axis_field',\n        'port',\n        'chart_parent_gateway',\n    \n    ],\n    start_timestamp: null,\n    end_timestamp: null,\n    num_points_requested: 300,\n    ref_anchor: \"0\",\n    zeroed: true,\n    depth: false,\n    modelName: null,\n    window: 480,\n    chart: null,\n    chart_type: null,\n    display_records: 100,\n    right_axis_field: null,\n    left_axis_field: null,\n    port:1,\n    chart_parent_gateway:null,\n    \n    temporalGraphsController: Ember.inject.controller(\"temporal-gateway-graphs\"),\n    \n    depthObserver: Ember.observer('depth', function() {\n        this.get('temporalGraphsController').send('setDepth', this.get('depth'));\n    }),\n\n    actions: {\n        toggleDataType(property) {\n            if (property == \"raw\"){\n               this.set(\"depth\", false);\n            } else {\n               this.set(\"depth\", true);\n            }\n        },\n        setData(data) {\n            this.send('setDataR',data);\n        },\n        setChart(chart) {\n            this.send('setChartR',chart);\n        },\n        updateWindow(window) {\n            this.set('window', window);\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        getQueryParams(variable) {\n            return this.get(variable);\n        },\n        toggleProperty(property) {\n            let propValue = false;\n            if ( this.get(property) === null ) {\n                propValue = true;\n            } else if(this.get(property) === false ) {\n                propValue = true;\n            }\n            this.set(property, propValue);\n        }\n    }\n});\n","import Ember from 'ember';\n// import html2canvas from 'html2canvas';\nimport { inject as service } from '@ember/service';\nimport compareAnchors from '../helpers/compare-anchors';\n\nexport default Ember.Controller.extend({\n\n    willDestroy() {\n        // Call the super implementation to make sure the hook is called in parent classes\n        this._super(...arguments);\n        // console.log(\"willDestroy:::::::::::::::::\");\n        let activeInstrumentMeta = this.get('activeInstrumentMeta');\n        if (activeInstrumentMeta) {\n            Ember.set(activeInstrumentMeta, 'flip-signs', false);\n        }\n    },\n    init() {\n        this._super(...arguments);\n        // this.defaultAnchorNumber = this.instrumentAnchorsSorted[0] && this.instrumentAnchorsSorted[0].number;\n    },\n    _my_init: function() {\n    }.on('init'),\n    instrumentId: null,\n    instrumentType: null,\n    instrumentTypeId: null,\n    name: null,\n    location: null,\n    level: null,\n    borehole: null,\n    project: null,\n    modelName: '',\n    activeInstrumentMeta: null,\n    temporalGraphController: Ember.inject.controller(\"temporal-graphs/temporal-graph\"),\n    eventType: null,\n    blastType: null,\n    seismicType: null,\n    chartDataValueName: null,\n    chartData: null,\n    frequency: null,\n    tiltMode: null,\n    chart: null,\n    chartDataPoints: null,\n    adjust_scales: false,\n    zeroed: true,\n    auto_scale: true,\n    y_min: null,\n    y_max: null,\n    y_min_old: null,\n    y_max_old: null,\n    y_min_auto: null,\n    y_max_auto: null,\n    auto_scale_2: true,\n    y_min_2: null,\n    y_max_2: null,\n    y_min_old_2: null,\n    y_max_old_2: null,\n    y_min_auto_2: null,\n    y_max_auto_2: null,\n    lastClick: null,\n    instrumentAnchors: {},\n    instrumentAnchorsSorting: ['number'],\n    test: null,\n    zeroed: true,\n    linearChecked: '',\n    calibChecked: 'Checked',\n    depthChecked: '',\n    tiltZUp: 0,\n    chart_type: null,\n    display_records: null,\n    previousAnchor: 0,\n    router: Ember.inject.service(),\n    vendor: null,\n    port:1,\n    selectedAnchor:0,\n    shouldRerender: false,\n\n    instrument: Ember.computed(function() {\n        \n        let instrument = this.content.instrument;\n\n        if (instrument !== null) {\n            return instrument;\n        }\n        return null;\n    }),\n    getAnchor: Ember.computed('previousAnchor', function() {\n        // console.log(\"previousAnchor::: \" + this.get(\"previousAnchor\"));\n        return this.get(\"previousAnchor\");\n    }),\n\n    instrumentType: Ember.computed(function() {\n        let instrument = this.get('instrument');\n        let instrumentType = instrument.instrumentType;\n        let instrumentTypeTitle = instrumentType.title;\n        return instrumentTypeTitle;\n    }),\n    \n    getInstrumentTypeToLower() {    \n        return this.get('instrumentType').toLowerCase();\n    },\n\n    isDPPC: Ember.computed('instrumentId', function() {\n        let instrumentType = this.getInstrumentTypeToLower();\n        let isDPPC = false;\n        if (instrumentType != null && instrumentType != 'undefined' && instrumentType === 'dppc') {\n            isDPPC = true;\n        }\n        // console.log(\"isDPPC::: \" + isDPPC);\n        // console.log(\"PORT:::::::::: \" + this.get('port'));\n        return isDPPC;\n    }),\n\n    rawChecked: Ember.computed('linearChecked', 'calibChecked', 'depthChecked', function() {\n        if (this.get('linearChecked') == '' && this.get('calibChecked') == '' && this.get('depthChecked') == '')\n            return 'Checked'\n        else\n            return ''\n    }),\n    vendor: Ember.computed('instrumentId', function() {\n        \n        let id = this.get('instrumentId');\n        let vendor = null;\n        if (id !== null) {\n            vendor = this.store.peekRecord('instrument', id).get('vendor');\n        }\n        return vendor;\n    }),\n    breadCrumbs: Ember.computed(\"instrumentId\", {\n        get() {\n            let chart = this.get('chartDataValueName');\n            let mName = this.get('modelName');\n            // console.log(\"mName::: \" + mName + \"\");\n            let instID = this.get('instrumentId');\n            let instrument = this.get('content').instrument;\n            let obj = null\n\n            if (instrument != null && instID == null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instrument.query,\n                        path: 'edit-instrument',\n                        model: instrument.query,\n                    }\n                ]\n            }\n\n            if (instID != null) {\n                obj = [\n                    {\n                        label: \"Dashboard\",\n                        path: 'index'\n                    },\n                    {\n                        label: \"Instruments\",\n                        path: 'instruments'\n                    },\n                    {\n                        label: instID,\n                        path: 'edit-instrument',\n                        model: instID,\n                    },\n                    {\n                        label: \"Temporal \" + chart + \" Graph\",\n                        path: \"temporal-graphs.temporal-graph\",\n                        model: instID,\n                        model: mName\n                    },\n                ];\n            }\n            return obj;\n        }\n    }),\n    chartChanged: Ember.observer('chart', function() {\n        var chart = this.get('chart');\n        var domain = chart.y1Axis.scale().domain();\n        this.set('y_min',toFixed(domain[0],2));\n        this.set('y_max',toFixed(domain[1],2));\n        this.set('y_min_old',null);\n        this.set('y_max_old',null);\n        var domain = chart.y2Axis.scale().domain();\n        this.set('y_min_2',toFixed(domain[0],2));\n        this.set('y_max_2',toFixed(domain[1],2));\n        this.set('y_min_old_2',null);\n        this.set('y_max_old_2',null);\n        this.send('disableTemp');\n        this.set('auto_scale',true);\n        this.set('auto_scale_2',true);\n    }),\n    valueChanged: Ember.observer('y_min','y_max', function() {\n        var chart = this.get('chart');\n        if (!this.auto_scale) {\n            chart.yDomain1([this.get('y_min'),this.get('y_max')]);\n        }\n        chart.update();\n    }),\n    // valueChanged: Ember.observer('y_min','y_max', function() {\n    //     if (! this.get(\"bluVibeEvent\")){\n    //         var chart = this.get('chart');\n    //         if (!this.auto_scale) {\n    //             chart.yDomain1([this.get('y_min'),this.get('y_max')]);\n    //         }\n    //         chart.update();\n    //     }\n    // }),\n\n    autoScaleChanged: Ember.observer('auto_scale', function() {\n        // console.log(\"autoScaleChanged::: \" + this.get('auto_scale'));\n        var chart = this.get('chart');\n        if (this.auto_scale) {\n            this.set('y_min_old', this.y_min);\n            this.set('y_max_old', this.y_max);\n\n            chart.yDomain1(null,null);\n            chart.update();\n\n            var domain = chart.y1Axis.scale().domain();\n            this.set('y_min',toFixed(domain[0],2));\n            this.set('y_max',toFixed(domain[1],2));\n                //chart.yScale = this.get('test');\n        } else {\n            if (this.get('y_min_old') !== null) {\n                this.set('y_min', this.y_min_old);\n                this.set('y_max',this.y_max_old);    \n            }\n            chart.yDomain1([this.get('y_min'),this.get('y_max')]);\n            chart.update();\n        }\n    }),\n\n    valueChanged2: Ember.observer('y_min_2','y_max_2', function() {\n        var chart = this.get('chart');\n        if (!this.auto_scale_2) {\n            chart.yDomain2([this.get('y_min_2'),this.get('y_max_2')]);\n            chart.update();\n        }\n    }),\n\n    autoScaleChanged2: Ember.observer('auto_scale_2', function() {\n        var chart = this.get('chart');\n        if (this.auto_scale_2) {\n            this.set('y_min_old_2', this.y_min_2);\n            this.set('y_max_old_2', this.y_max_2);\n\n            chart.yDomain2(null,null);\n            chart.update();\n\n            var domain = chart.y2Axis.scale().domain();\n            this.set('y_min_2',toFixed(domain[0],2));\n            this.set('y_max_2',toFixed(domain[1],2));\n        } else {\n            if (this.get('y_min_old_2') !== null) {\n                this.set('y_min_2', this.y_min_old_2);\n                this.set('y_max_2', this.y_max_old_2);    \n            }\n            chart.yDomain2([this.get('y_min_2'),this.get('y_max_2')]);\n            chart.update();\n        }\n    }),\n\n    isVelocityGraph: Ember.computed('modelName', function() {\n        if (this.modelName === 'velocity-values' || this.modelName === 'acceleration-values')\n            return true;\n        return false;\n    }),\n\n    bluVibeEvent: Ember.computed('eventType', function() {\n        //console.log(this.eventType);\n        if(this.eventType === null || this.eventType === 'bluvibe') {\n            if(this.chart_type === null){\n                this.chart_type = 'frequency';\n            }\n            return true;\n        }\n        return false;\n    }),\n    // bluVibeEvent: Ember.computed('eventType', function() {\n    //     if(this.eventType === null || this.eventType === 'bluvibe') {\n    //         if(this.chart_type === null){\n    //             this.chart_type = 'frequency';\n    //         }\n    //         return true;\n    //     }\n    //     return false;\n    // }),\n\n    window_value: Ember.computed('window', function() {\n        if (this.window === '60') {\n            return '1 Hour';\n        }\n        if (this.window === '480') {\n            return '8 Hours';\n        }\n        if (this.window === '1440') {\n            return '24 Hours';\n        }\n    }),\n\n    typeSelect: Ember.computed('instrumentType', function() {\n        //console.log(this.instrumentType);\n        switch(this.instrumentType) {\n            case 'dExto':\n                return 'pack';\n                break;\n            default:\n                return 'pack';\n        }\n        // if (this.instrumentType === 'Thermostring') {\n        //     return true;\n        // }\n        // return false;\n    }),\n    isThermo: Ember.computed('instrumentType', function() {\n        //console.log(this.instrumentType);\n        if (this.instrumentType === 'Thermostring') {\n            return true;\n        }\n        return false;\n    }),\n    isPiezo: Ember.computed('instrumentType', function() {\n        // console.log(\"instrumentType :::::::::::::::::::::::::::::::: \" + this.instrumentType);\n        if (this.instrumentType === 'Piezo') {\n            return true;\n        }\n        return false;\n    }),\n    isWire: Ember.computed('instrumentType', function() {\n        //console.log(this.instrumentType);\n        return (this.instrumentType === 'Wire');\n    }),\n\n    displayData: Ember.computed('instrumentId', function() {\n        if (this.instrumentId !== null) {\n            return true;\n        } else {\n            return false;\n        }\n    }),\n\n    details: Ember.computed('name', 'project', 'location', 'level', 'borehole', 'instrumentId', function() {\n        var detailString = \"\";\n        let projectId = this.get('project'); // Assuming project has an 'id' field\n        let projectName = this.get('project.name'); // Assuming project has a 'name' field\n        \n        let levelId = this.get('level.id'); // Assuming level has an 'id' field\n        let levelName = this.get('level.name'); // Assuming level has a 'name' field\n        let badCodes = ['null', 'undefined', ''];\n        \n        if (this.instrumentId !== null) {\n            if (!badCodes.includes(projectName) && projectName != null && projectName != undefined) {\n                // console.log(\"::::::::::::in projectId\")\n                detailString += projectName + ' / ';\n            }\n            \n            if ( !badCodes.includes(this.get('location')) ) {\n                // console.log(\"::::::::::::in location\")\n                detailString += this.get('location') + ' / ';\n            }\n            \n            if (!badCodes.includes(levelName) && levelName != null && levelName != undefined) {\n                // console.log(\"::::::::::::in levelId\")\n                detailString += levelName + ' / ';\n            }\n            \n            if (!badCodes.includes(this.get('borehole')) ) {\n                // console.log(\"::::::::::::in borehole\")\n                detailString += this.get('borehole') + ' / ';\n            }\n                \n            if (detailString !== \"\" && detailString != 'Details:  /') {\n                detailString = detailString.substr(0, detailString.length - 3);\n            }\n        }\n        return detailString;\n    }),\n    \n    //--------------------------------------\n    displacementIsValid: Ember.computed('instrumentType', function() {\n        //console.log(this.get('instrumentType'));\n        if (this.instrumentType==='BluVibe') {\n            return false;\n        }\n        return true;\n    }),\n    axialDisplacementIsValid: Ember.computed('instrumentType', function() {\n        // dRebarv2?\n        //console.log(this.instrumentType);\n        return this.instrumentType === 'dRebar';\n    }),\n    velocityIsValid: Ember.computed('chartData', function() {\n        if (this.chartData !== null) {\n            if (this.chartData.temporalVelocityName !== null) {\n                return true;\n            }\n        }\n        return false;\n    }),\n    accelerationIsValid: Ember.computed('chartData', function() {\n        if (this.chartData !== null) {\n            if (this.chartData.temporalAccelerationName !== null) {\n                return true;\n            }\n        }\n        return false;\n    }),\n    strainIsValid: Ember.computed('chartData', function() {\n        if (this.chartData !== null) {\n            if (this.chartData.temporalStrainName !== null) {\n                return true;\n            }\n        }\n        return false;\n    }),\n    strainRateIsValid: Ember.computed('chartData', function() {\n        if (this.chartData !== null) {\n            if (this.chartData.temporalStrainRateName !== null) {\n                return true;\n            }\n        }\n        return false;\n    }),\n    axialIsValid:  Ember.computed('instrumentType', function() {\n        // dRebarv2?\n        if(this.instrumentType === 'dRebar') {\n            return true;\n        }\n        return false;\n\n    }),\n    bendingIsValid: Ember.computed('instrumentType', function() {\n        // dRebarv2?\n        if(this.instrumentType === 'dRebar') {\n            return true;\n        }\n        return false;\n\n    }),\n    loadIsValid: Ember.computed('chartData', function() {\n        if (this.chartData !== null) {\n            if (this.chartData.temporalLoadName !== null) {\n                return true;\n            }\n        }\n        return false;\n    }),\n    temperatureIsValid: Ember.computed('instrumentType', function() {\n        if(this.instrumentType === 'Thermostring' || this.instrumentType === 'BluVibe') {\n            return false;\n        }\n        return true;\n    }),\n    bluVibe: Ember.computed('instrumentType', function() {\n        if(this.instrumentType === 'BluVibe') {\n            return true;\n        }\n        return false;\n    }),\n    isAdictMDT: Ember.computed('instrumentType', function() {\n        try{\n            if(this.instrumentType.toLowerCase() === 'adict' && this.vendor.vendorType.includes('MDT')) {\n                return true;\n            }    \n        } catch (e) {\n            console.log(e);\n            console.log(\"Vendor Not Set: isAcictMDT in termporal-graphs.js controller\");\n        }\n        return false;\n    }),            \n\n    instSelectedAnchor: Ember.computed('instrument.selectedAnchor', function() {\n        let selectedAnchor = this.get('instrument.selectedAnchor');\n        // console.log(\"selected anchor::: \" + selectedAnchor);\n        this.set('selectedAnchor', selectedAnchor);\n        return selectedAnchor;\n    }),\n\n    instrumentAnchorsSorted: Ember.computed.sort('instrumentAnchors', 'instrumentAnchorsSorting'),\n\n    instrumentAnchorsForAdictMDT: Ember.computed('instrumentAnchors', function() {\n        let instrumentAnchors = this.get(\"instrumentAnchorsSorted\");\n        let instrument = this.get('instrument');\n        // console.log(\"instrumentAnchorsForAdictMDT::: \" + instrument.id);        \n        // Check if there are anchors to remove\n        if (instrumentAnchors.length > 0) {\n            instrumentAnchors.pop(); // Remove the last anchor\n        }\n        return instrumentAnchors;\n    }),\n    \n    refHeadPosition: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['ref-head-position'];\n    }),\n    linearData: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['linear'];\n    }),\n    calibData: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['calib'];\n    }),\n    depthData: Ember.computed('displacementValuesMeta', function() {\n        let depth = this.get('displacementValuesMeta')['depth'];\n        return depth;\n    }),\n    timeRef: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['zeroed'];\n    }),\n    flipSigns: Ember.computed('activeInstrumentMeta', function () {\n        return this.get('activeInstrumentMeta')['flip-signs'];\n    }),\n    \n    allInstruments: Ember.computed.filter('model.instruments', function(instrument) {\n        //return true;\n        if (instrument.get('anchorCount') > 0) {\n            return true;\n        }\n    }),\n    instruments: Ember.computed.map('allInstruments', function(instrument) {\n        return {\n            title: instrument.get('id'),\n            value: instrument.get('id')\n        };\n    }),\n    // vibes: Ember.computed.map('model.vibes', function(vibe) {\n    //     return {\n    //         title: vibe.get('id'),\n    //         value: vibe.get('id')\n    //     };\n    // }),\n    // vibeSelection: Ember.computed('vibeId', 'vibes', function() {\n    //     var id = this.get('vibeId');\n    //     return this.get('vibes').findBy('id', id);\n    // }),\n    // needed for filtered select list to be able to set active instrument on page reload\n    initialInstrumentSelection: Ember.computed('instruments', 'instrumentId', function () {\n\n        var id = this.get('instrumentId');\n        \n        if(id !== null) {\n            writeCookie('instrumentId', id, 0.02);\n        }\n\n        return this.get('instruments').findBy('title', this.get('instrumentId'));\n    }),\n    randomValue: null, // Initialize to null or any default value\n    actions: {\n        setRandomValue() {\n            const randomValue = Math.floor(Math.random() * 7); // Generate a random number between 0 and 6\n            console.log(\"randomValue: \" + randomValue);\n            this.set('randomValue', randomValue);\n            this.set('selectedAnchor', randomValue);\n        },   \n        updatePort(newPortValue) {\n            // Get the current value of 'port'\n            const currentPortValue = this.get('port');\n      \n            // Set the new value of 'port'\n            this.set('port', newPortValue);\n      \n            // Optionally, you can refresh the URL to reflect the updated query parameter\n            this.send('refresh');\n        },\n\n        resetZoom: function(instrumentId, modelName, start_timestamp, end_timestamp) {\n            this.router.transitionTo('temporal-graphs.temporal-graph', this.instrumentId, this.modelName, { queryParams: { start_timestamp: null, end_timestamp: null } });\n            \n            // this.router.transitionTo('temporal-graphs.temporal-graph', instrumentId, modelName, (start_timestamp=null, end_timestamp=null));\n        // this.RouterService.transitionTo('temporal-graphs.temporal-graph', id, this.get('modelName'));\n        },\n\n        handleAnchorSelection(selectedAnchor, event ) {\n            let instrument = this.get('instrument');\n            this.set('selectedAnchor', selectedAnchor);\n            \n            // console.log(\"selectedAnchor: \" + selectedAnchor);\n            instrument.selectedAnchor = selectedAnchor;\n            instrument.save();\n            \n            let previousAnchor = this.get(\"previousAnchor\");\n            // console.log(\"selectedAnchor: \" + selectedAnchor);\n            // console.log(\"previousAnchor: \" + previousAnchor);\n            if( selectedAnchor != null && selectedAnchor != '0' ) {\n                // Update the ref_anchor value if needed\n                // console.log(\"selectedAnchor: \" + selectedAnchor);\n                // console.log(\"Flipping Signs::::::::::: true\" );\n                \n                this.set('flipSigns', true);\n                this.flipSigns = true;\n            } else {\n                // console.log(\"Flipping Signs::::::::::: false\" );\n                this.set('flipSigns', false);\n                this.flipSigns = false;\n            }\n\n            this.set(\"previousAnchor\", selectedAnchor);        \n        },\n        \n        setDepth(value) {\n            this.set('depthChecked', value == true ? 'Checked' : '');\n        },\n        setLinear(value) {\n            this.set('linearChecked', value == true ? 'Checked' : '');\n        },\n        setCalib(value) {\n            this.set('calibChecked', value == true ? 'Checked' : '');\n        },\n        updateNav(licence) {\n            // this.get('temporalGraphController').send('setController', this);\n            let modules = licence.modules;\n            if(licence.isValid) {\n                if(licence.withinLimit) {\n                    if(!modules.temporal) {\n                        document.getElementById(\"temp-link\").style.display = \"none\";\n                        document.getElementById(\"licence-error-module\").style.display = \"block\";\n                    } else {\n                        document.getElementById(\"temp-link\").style.display = \"block\";\n                    }\n                    if(!modules.spatial) {\n                        document.getElementById(\"spat-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"spat-link\").style.display = \"block\";\n                    }\n                    if(!modules.frequency) {\n                        document.getElementById(\"freq-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"freq-link\").style.display = \"block\";\n                    }\n                    if(!modules.alerts) {\n                        document.getElementById(\"alert-link\").style.display = \"none\";\n                    } else {\n                        document.getElementById(\"alert-link\").style.display = \"block\";\n                    }\n        \n                    document.getElementById(\"licence-error-instruments\").style.display = \"none\";\n                } else {\n                    document.getElementById(\"licence-error-instruments\").style.display = \"block\";\n                }    \n                document.getElementById(\"licence-error-expired\").style.display = \"none\";\n            } else {\n                document.getElementById(\"licence-error-expired\").style.display = \"block\";\n            }\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        toggleDataType(property) {\n            this.get('temporalGraphController').send('toggleDataType', property);\n        },\n        toggleProperty(property) {\n            this.get('temporalGraphController').send('toggleProperty', property);\n            this[property] = !this[property];\n        },\n        toggleZeroedGraph(){\n            this.router.transitionTo('temporal-graphs.temporal-graph', this.instrumentId, this.modelName, { queryParams: { zeroed: this.zeroed } });\n        },\n        toggleLocalProperty(property) {\n            console.log(\"Clicked adjust scales\")\n            let propValue = false;\n            if ( this.get(property) === null ) {\n                propValue = true;\n            } else if(this.get(property) === false ) {\n                propValue = true; \n            }\n            this.set(property, propValue);\n        },\n\n        updateLocalProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        onUpdateTransitionTo(selection) {\n            // console.log(\"temporalcontroller: selection: \" + selection.value)\n            if (this.get('modelName') === null || this.get('modelName') == '') {\n                this.set('modelName', 'displacement-values');\n            }\n            this.RouterService.transitionTo('temporal-graphs.temporal-graph', selection.value, this.get('modelName'));\n        },\n        onUpdateTransitionToVibe(selection) {\n            //console.log(this.get('queryParams'));\n            this.get('temporalGraphController').send('updateVibe', selection.value);\n        },\n        setChart(chart) {\n            this.set('chart',chart);\n        },\n        setData(data) {\n            this.set('chartDataPoints', data);\n        },\n        disableTemp() {\n            let chart = this.get('chart');\n            let points = this.get('chartDataPoints');\n            if (chart !== null) {\n                points.forEach(function(element) {\n                    if (element.yAxis === 2) {\n                        element.disabled = true;\n                        element.userDisabled = true;\n                        //chart.update();\n                    }\n                });\n            }\n        },\n        saveImage() {\n            html2canvas(document.querySelector(\"#capture\"), { \n                allowTaint: true, \n                foreignObjectRendering: true\n            }).then(canvas => {\n                let downloadLink = document.createElement('a');\n                downloadLink.setAttribute('download', 'CanvasAsImage.png');\n                canvas.toBlob(function(blob) {\n                    let url = URL.createObjectURL(blob);\n                    downloadLink.setAttribute('href', url);\n                    downloadLink.click();\n                });\n            });\n        },\n        selectTemps() {\n            let lastClick = this.get('lastClick');\n            if (lastClick === null || lastClick !== \"temp\") {\n                let chart = this.get('chart');\n                let points = this.get('chartDataPoints');\n                if (chart !== null) {\n                    for (let ctr = 0; ctr < points.length - 2; ctr++) {\n                        if (ctr % 2 === 0) {\n                            if (!points[ctr + 1].disabled) {\n                                points[ctr].disabled = false;\n                                points[ctr].userDisabled = false;\n                            }\n                        } else {\n                            points[ctr].disabled = true;\n                            points[ctr].userDisabled = true;\n                        }\n                    }\n                    chart.update();\n                }\n                this.set('lastClick', 'temp');\n            }\n        },\n        selectReadings() {\n            let lastClick = this.get('lastClick');\n            if (lastClick === null || lastClick !== \"vals\") {\n                let chart = this.get('chart');\n                let points = this.get('chartDataPoints');\n                if (chart !== null) {\n                    for (let ctr = points.length - 2; ctr >= 0; ctr--) {\n                        if (ctr % 2 === 0) {\n                            points[ctr].disabled = true;\n                            points[ctr].userDisabled = true;\n                        } else {\n                            if (!points[ctr - 1].disabled) {\n                                points[ctr].disabled = false;\n                                points[ctr].userDisabled = false;\n                            }\n                        }\n                    }\n                    chart.update();\n                }\n                this.set('lastClick', 'vals');\n            }\n        }\n    },\n    activate: function() {\n        var id = this.get('instrumentId');\n        var inst = null;\n\n        if(id === null) {\n            id = readCookie('instrumentId');\n            if(id !== \"\") {\n                Ember.run.scheduleOnce('afterRender', this, function() {\n                    //console.log(\"running re-load\");\n                    this.RouterService.transitionTo('temporal-graphs.temporal-graph', id, this.get('modelName'));\n                    });\n            }\n        } else {\n            writeCookie('instrumentId', id, 1);\n        }\n    }\n});\n\nfunction toFixed(value, numDecimals) {\n    var roundVal = Math.pow(10, numDecimals);\n    var answer = 0;\n    if (value > 0) {\n        answer = Math.ceil(value * roundVal) / roundVal;\n    } else {\n        answer = Math.floor(value * roundVal) / roundVal;\n    }\n    return answer;\n}\n\nfunction writeCookie(name,value,days) {\n    var date, expires;\n    if (days) {\n        date = new Date();\n        date.setTime(date.getTime()+(days*24*60*60*1000));\n        expires = \"; expires=\" + date.toGMTString();\n            }else{\n        expires = \"\";\n    }\n    document.cookie = name + \"=\" + value + expires + \"; path=/\";\n}\n\nfunction readCookie(name) {\n    var i, c, ca, nameEQ = name + \"=\";\n    ca = document.cookie.split(';');\n    for(i=0;i < ca.length;i++) {\n        c = ca[i];\n        while (c.charAt(0)===' ') {\n            c = c.substring(1,c.length);\n        }\n        if (c.indexOf(nameEQ) === 0) {\n            return c.substring(nameEQ.length,c.length);\n        }\n    }\n    return '';\n}\n","import Ember from 'ember';\n\nexport default Ember.Controller.extend({\n    queryParams: [\n        'start_timestamp',\n        'end_timestamp',\n        'num_points_requested',\n        'ref_head_position',\n        'ref_anchor',\n        'zeroed',\n        'linear',\n        'calib',\n        'depth',\n        'flip_signs',\n        'event_type',\n        'blast_type',\n        'window',\n        'seismic_type',\n        'frequency',\n        'chart_type',\n        \"display_records\",\n        \"port\",\n        \"selectedAnchor\",\n    ],\n    start_timestamp: null,\n    end_timestamp: null,\n    num_points_requested: 300,\n    ref_head_position: \"\",\n    ref_anchor: \"0\",\n    zeroed: true,\n    linear: false,\n    calib: true,\n    depth: false,\n    modelName: null,\n    flip_signs: null,\n    event_type: null,\n    blast_type: null,\n    tiltMode: null,\n    window: 480,\n    seismic_type: null,\n    frequency: null,\n    chart: null,\n    chart_type: null,\n    display_records: 100,\n    port:1,\n    selectedAnchor: 0,\n\n    temporalGraphsController: Ember.inject.controller(\"temporal-graphs\"),\n\n    linearObserver: Ember.observer('linear', function() {\n        this.get('temporalGraphsController').send('setLinear', this.get('linear'));\n    }), \n\n    calibObserver: Ember.observer('calib', function() {\n        this.get('temporalGraphsController').send('setCalib', this.get('calib'));\n    }),\n\n    depthObserver: Ember.observer('depth', function() {\n        this.get('temporalGraphsController').send('setDepth', this.get('depth'));\n    }),\n\n    actions: {\n        toggleDataType(property) {\n            // console.log(\"PROPERTY::::::::::::::::::: \" + property);\n            if (property == \"raw\"){\n                this.set(\"linear\", false);\n                this.set(\"calib\", false);\n                this.set(\"depth\", false);\n            } else if (property == \"linear\") {\n                this.set(\"linear\", true);\n                this.set(\"calib\", false);\n                this.set(\"depth\", false);\n            } else if (property == \"calib\") {\n                this.set(\"linear\", false);\n                this.set(\"calib\", true);\n                this.set(\"depth\", false);\n            } else {\n                this.set(\"linear\", false);\n                this.set(\"calib\", false);\n                this.set(\"depth\", true);                \n            }\n        },\n        setData(data) {\n            this.send('setDataR',data);\n        },\n        setChart(chart) {\n            this.send('setChartR',chart);\n        },\n        updateVibe(vibeID) {\n            //this.set('vibe_id', vibeID);\n        },\n        updateWindow(window) {\n            this.set('window', window);\n        },\n        updateProperties(propertyNames = [], propertyValues = []) {\n            const _this = this;\n            if (propertyNames.length > 0 && propertyValues.length > 0 && propertyNames.length === propertyValues.length) {\n                propertyNames.forEach( function(propertyName, i) {\n                    _this.set(propertyName, propertyValues[i]);\n                });\n            }\n        },\n        getQueryParams(variable) {\n            return this.get(variable);\n        },\n        toggleProperty(property) {\n            let propValue = false;\n            if ( this.get(property) === null ) {\n                propValue = true;\n            } else if(this.get(property) === false ) {\n                propValue = true; \n            }\n            this.set(property, propValue);\n        },\n        queryParamsDidChange(changes, from, to) {\n            if('selectedAnchor' in changes){\n                this.selectedAnchor = changes.selectedAnchor;\n            }\n          }\n        \n\n    }\n});\n","import Ember from 'ember';\nimport { on } from '@ember/object/evented';\n\nexport default Ember.Controller.extend({\n    _my_init: on('init', function() {\n        Ember.run.scheduleOnce('afterRender', this, function() {\n            //this.send('updateNav',this.get('model').licence.content[0]._data);\n        });\n    }),\n    headerTitles: Ember.computed('instrument', function() {\n        let titles = ['Channel', 'Trigger','Frequency','Aplitude','PPV','PPA','Duration','Channel', 'Trigger','Frequency','Aplitude','PPV','PPA','Duration','Channel', 'Trigger','Frequency','Aplitude','PPV','PPA','Duration','Channel', 'Trigger','Frequency','Aplitude','PPV','PPA','Duration'];\n        return titles;\n    }),\n    queryParams: ['page', 'page_size', 'ordering', 'search'],\n    page_size: 20,\n    eventsMeta: null,\n    ordering: null,\n    search: null,\n    isVisibleRowDetails: {},\n    isRowDeleteConfirmationDialog: {},\n    isVisibleCreateNewForm: false,\n    permissionError: false,\n\n    breadCrumbs: [\n        {\n            label: \"Dashboard\",\n            path: 'index'\n        },\n        {\n            label: \"Vibration Events\",\n            path: 'vibration-events'\n        },\n        \n    ],\n\n    actions: {\n        // updateNav(licence) {\n        //     let modules = licence.modules;\n        //     if(licence.isValid) {\n        //         if(licence.withinLimit) {\n        //             if(!modules.temporal) {\n        //                 document.getElementById(\"temp-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"temp-link\").style.display = \"block\";\n        //             }\n        //             if(!modules.spatial) {\n        //                 document.getElementById(\"spat-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"spat-link\").style.display = \"block\";\n        //             }\n        //             if(!modules.frequency) {\n        //                 document.getElementById(\"freq-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"freq-link\").style.display = \"block\";\n        //             }\n        //             if(!modules.alerts) {\n        //                 document.getElementById(\"alert-link\").style.display = \"none\";\n        //             } else {\n        //                 document.getElementById(\"alert-link\").style.display = \"block\";\n        //             }        \n        //             document.getElementById(\"licence-error-instruments\").style.display = \"none\";\n        //         } else {\n        //             document.getElementById(\"licence-error-instruments\").style.display = \"block\";\n        //         }\n        //         document.getElementById(\"licence-error-expired\").style.display = \"none\";\n        //     } else {\n        //         document.getElementById(\"add-new\").style.display = \"none\";\n        //         document.getElementById(\"licence-error-expired\").style.display = \"block\";\n        //     }\n        //     document.getElementById(\"licence-error-module\").style.display = \"none\";\n        // },\n        updateProperty(propertyName, propertyValue) {\n            this.set(propertyName, propertyValue);\n        },\n        vewRowDetails(id){\n            let curVal = this.get('isVisibleRowDetails')[id] ? false : true;\n            Ember.set(this.get('isVisibleRowDetails'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        toggleRowDeleteConfirmationDialog(id){\n            let curVal = this.get('isRowDeleteConfirmationDialog')[id] ? false : true;\n            Ember.set(this.get('isRowDeleteConfirmationDialog'), id, curVal); //update isVisibleRowDetails variable for each single row\n        },\n        remove(model, object){\n            let _this = this;\n            object.deleteRecord();\n            object.get('isDeleted');\n            object.save().then(function(){\n                // deal with records that just were created\n                // relates to the way I add new records to model https://github.com/emberjs/data/issues/3313\n                model.removeObject(object);\n            })\n            .catch(function(reason){\n                if (reason.errors[0].status == 403) {\n                    _this.send('updateProperty', 'permissionError', true);\n                }\n            });\n        },\n        sortBy(property) {\n            this.set('ordering', property);\n        }\n    }\n});\n","define(\"geotechnical-data-platform-new/data-adapter\", [\"exports\", \"@ember-data/debug\"], function (_exports, _debug) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _debug.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/-element\", [\"exports\", \"ember-element-helper/helpers/-element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport function activeClass([val]) {\n    if (val) {\n        return 'active';\n    }\n}\n\nexport default Ember.Helper.helper(activeClass);\n","import { helper } from '@ember/component/helper';\n\nexport default helper(function alertGetId([alertRow]) {\n  let gw = alertRow.get(\"gateway\")\n  let gwId = gw.get(\"id\");\n  return gwId;\n});","define(\"geotechnical-data-platform-new/helpers/and\", [\"exports\", \"ember-truth-helpers/helpers/and\"], function (_exports, _and) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _and.default;\n    }\n  });\n  Object.defineProperty(_exports, \"and\", {\n    enumerable: true,\n    get: function () {\n      return _and.and;\n    }\n  });\n});\n","import { helper } from '@ember/component/helper';\nimport config from '../config/environment';\nimport { shaRegExp, versionRegExp, versionExtendedRegExp } from 'ember-cli-app-version/utils/regexp';\n\nexport function appVersion(_, hash = {}) {\n  const version = config.APP.version;\n  // e.g. 1.0.0-alpha.1+4jds75hf\n\n  // Allow use of 'hideSha' and 'hideVersion' For backwards compatibility\n  let versionOnly = hash.versionOnly || hash.hideSha;\n  let shaOnly = hash.shaOnly || hash.hideVersion;\n\n  let match = null;\n\n  if (versionOnly) {\n    if (hash.showExtended) {\n      match = version.match(versionExtendedRegExp); // 1.0.0-alpha.1\n    }\n    // Fallback to just version\n    if (!match) {\n      match = version.match(versionRegExp); // 1.0.0\n    }\n  }\n\n  if (shaOnly) {\n    match = version.match(shaRegExp); // 4jds75hf\n  }\n\n  return match ? match[0] : version;\n}\n\nexport default helper(appVersion);\n","import Ember from 'ember';\n\nexport function arrayAt(params) {\n    // console.log(\"arrayAt:\" + params);\n    const arr = params[0];\n    const index = params[1];\n    // console.log(\"arr:\" + arr);\n    // console.log(\"index:\" + index);\n    if(arr == undefined){\n        return [];\n    }else{\n        // console.log(\"arr[index]:\");\n        // console.log(arr[index].anchorDistances);\n        return arr[index].anchorDistances;\n    }\n}\n\nexport default Ember.Helper.helper(arrayAt);\n","define(\"geotechnical-data-platform-new/helpers/bs-contains\", [\"exports\", \"ember-bootstrap/helpers/bs-contains\"], function (_exports, _bsContains) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsContains.default;\n    }\n  });\n  Object.defineProperty(_exports, \"bsContains\", {\n    enumerable: true,\n    get: function () {\n      return _bsContains.bsContains;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/bs-default\", [\"exports\", \"ember-bootstrap/helpers/bs-default\"], function (_exports, _bsDefault) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsDefault.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/bs-eq\", [\"exports\", \"ember-bootstrap/helpers/bs-eq\"], function (_exports, _bsEq) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsEq.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/bs-noop\", [\"exports\", \"ember-bootstrap/helpers/bs-noop\"], function (_exports, _bsNoop) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsNoop.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/bs-size-class\", [\"exports\", \"ember-bootstrap/helpers/bs-size-class\"], function (_exports, _bsSizeClass) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsSizeClass.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/bs-type-class\", [\"exports\", \"ember-bootstrap/helpers/bs-type-class\"], function (_exports, _bsTypeClass) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _bsTypeClass.default;\n    }\n  });\n});\n","import { helper } from '@ember/component/helper';\n\nexport function buttonclass([anchor, ref_anchor = 0] /*, hash*/) {\n\n    // Use the String constructor to ensure both values are strings.\n    anchor = String(anchor);\n    ref_anchor = String(ref_anchor);\n    // console.log(\"::::::::::::::::::::::::::: anchor.number: \" + anchor + \"   ref_anchor: \" + ref_anchor);\n\n  if (anchor === ref_anchor) {\n    // console.log(\":::::::::::::::::::::::::::Found match: anchor.number: \" + anchor + \"   ref_anchor: \" + ref_anchor);\n    return 'btn btn-outline-primary nowrap active';\n}\n\n  return 'btn btn-outline-primary nowrap';\n}\n\nexport default helper(buttonclass);\n","\nexport function assistiveToolTipLibrary(key) {\n    switch(key){\n        case 'statusBarStatusTooltip':\n            return \"Current status of Step 1 & Step 2 & Step 3.\\nIf it says 'Need Validation' then please check you have inputted all the textboxes for each Step.\\nIf it says 'Validated' then you are good to go and proceed to Calibration Dashboard.\";\n        case 'statusBarConnectionTooltip':\n            return \"Current websocket connection status.\\nIf you are trying to connect and it is failing repeatedly, please contact your manager for assistance.\";    \n        case 'statusBarCalibrationTooltip':\n            return \"Current situational status of the calibration. It is not specific for any phase.\\nPlease look here if you want to know what is going on when you have started Phase I or Phase II.\";    \n        case 'statusBarCurrentTooltip':\n            return \"Current value from the rig. The value you see is from all types of rigs.\\n No need to consider units.\";    \n        case 'statusBarTargetTooltip':\n            return \"Target value set for the rig. The value you see is from all types of rigs.\\n No need to consider units.\";    \n        case 'calibFormChannelsTooltip':\n            return \"Total number of channels for the sensor. Your value needs to include temperature channel.\\nNo need to consider units.\";\n        case 'calibFormMinLimitTooltip':\n            return \"Minimum limit for sensor, sensor type dependent. For example, minimum length for dExto's stroke length.\\nNo need to consider units.\";\n        case 'calibFormMaxLimitTooltip':\n            return \"Maximum limit for sensor, sensor type dependent. For example, maximum length for dExto's stroke length.\\nNo need to consider units.\";\n        case 'calibFormSampleSizeTooltip':\n            return \"When calibrating, how many samples would you like to make for each checkpoint? Your number of samples will be used when doing average calculation.\\nNo need to consider units.\";\n        case 'calibFormSpeedTooltip':\n            return \"When calibrating, what is the speed you want the rig to go from one checkpoint to another.\\nThis is rig type dependent, consult your manual for verification or contact your manager for assistance.\";\n        case 'calibFormUnitTooltip':\n            return \"This is the unit determined for sensor. For displacement, it can be mm or m... For pressure, it can be kPa or Pa...\\nSince this is critical, consult your manual for assurance or contact your manager for assistance.\";\n        case 'calibFormTypeIDTooltip':\n            return \"It is used to uniquely identify the ID of the type of the sensor.\\nSince this is critical, consult your manual for assurance or contact your manager for assistance.\";\n        case 'calibFormDelayTooltip':\n            return \"When calibrating, how long do you want to pause before sampling.\\nThe unit is in minutes.\";\n        case 'calibFormCurrent-TargetBufferTooltip':\n            return \"When calibrating and after setting target value, how much buffer would you like to set between current value and target value?\\nIf you wish to trigger sampling stage faster, set a larger buffer at the cost of calibration accuracy.\\nIf you wish to have higher calibration accuracy, set a smaller buffer value at the cost of calbiration duration.\\nNo need to consider units.\";\n        case 'calibFormPositionsTooltip':\n            return \"When calibrating, where would you like to set the checkpoint locations.\\nPlease follow this sample:\\n0.00,8.33,25.00,50.00,75.00,100.00,125.00\\nThis is rig type dependent, consult your manual for verification or contact your manager for assistance.\";\n        case 'rigFormRigIPTooltip':\n            return \"It is the IP address associated with this and only this rig. When connecting to websocket, it will use this IP value.\";        \n        case 'rigFormRigNameTooltip':\n            return \"This is used for labeling this rig. At no point will the name be used in any areas of the calibration phases.\\nIt is purely for verbally identifying each rig.\";        \n        case 'rigFormRigCategoryTooltip':\n            return \"This is to identify the specific type of rig.\\nCurrently the only supported types are: PUMP & STEPPER.\";\n        case 'rigFormReferenceIDTooltip':\n            return \"This is the serial number associated with the attached sensor.\";\n        case 'rigFormReferenceCalibrationValueTooltip':\n            return \"This is the certificate ID or certificate serial number associated with the attached sensor.\";\n        case 'rigFormReferenceCalibrationDateTooltip':\n            return \"This is the date of certificated associated with the attached sensor.\";\n                        \n    }\n}","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport Chart from 'chart.js/auto';\nimport printJS from 'print-js';\nimport html2pdf from 'html2pdf.js';\nimport { saveAs } from 'file-saver';\nimport JSZip from 'jszip/dist/jszip.min.js';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\n\n\n//Status Code & Incoming & Outgoing Libraries\n//  Allocate 500-549\nexport function connectionStatusLibrary(code) {\n    let statusObject = {\n        key:code,\n        value:\"\",\n        color:\"\",\n    }\n    switch(code){\n        case 500:\n            statusObject[\"value\"] = \"Not Connected\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 501:\n            statusObject[\"value\"] = \"Connecting...\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 502:\n            statusObject[\"value\"] = \"Connected\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n    }\n}\n//  Allocate 550-599\nexport function calibrationStatusLibrary(code) {\n    let statusObject = {\n        key:code,\n        value:\"\",\n        color:\"\",\n    }\n    switch(code){\n        case 550:\n            statusObject[\"value\"] = \"Error\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 551:\n            statusObject[\"value\"] = \"Idle\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 552:\n            statusObject[\"value\"] = \"Phase I: Stepper Increasing\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 553:\n            statusObject[\"value\"] = \"Phase I: Sampling\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 554:\n            statusObject[\"value\"] = \"Phase I: Averaging & Adding to Buffer\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 555:\n            statusObject[\"value\"] = \"Phase I: Clearing Memory & Resetting\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 559:\n            statusObject[\"value\"] = \"Phase I: Stepper Resetting\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 560:\n            statusObject[\"value\"] = \"Phase II: Stepper Increasing\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 561:\n            statusObject[\"value\"] = \"Phase II: Sampling\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 562:\n            statusObject[\"value\"] = \"Phase II: Averaging & Adding to Buffer\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 563:\n            statusObject[\"value\"] = \"Phase II: Clearing Memory & Resetting\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 570:\n            statusObject[\"value\"] = \"V2: Uploading Lookup Data...\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 571:\n            statusObject[\"value\"] = \"V2: Lookup Data Uploaded\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 572:\n            statusObject[\"value\"] = \"V2: Phase II Concluding...\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 573:\n            statusObject[\"value\"] = \"V2: Phase II Concluded\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 574:\n            statusObject[\"value\"] = \"V2 P2: Averaging Current Data\", \n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 575:\n            statusObject[\"value\"] = \"V2 P2: Sampling Current Data\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 576:\n            statusObject[\"value\"] = \"V2 P2: Averaging Calib. Data\", \n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 577:\n            statusObject[\"value\"] = \"V2 P2: Sampling Calib. Data\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 578:\n            statusObject[\"value\"] = \"V2 P2: Awaiting Rig...\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 579:\n            statusObject[\"value\"] = \"V2 P2: Soft Resetting\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 580:\n            statusObject[\"value\"] = \"V2: Phase I Concluding...\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 581:\n            statusObject[\"value\"] = \"V2: Phase I Concluded\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 583:\n            statusObject[\"value\"] = \"V2: Intermission\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 584:\n            statusObject[\"value\"] = \"V2: Emergency Stopped\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 586:\n            statusObject[\"value\"] = \"V2 P1: Averaging Calib. Data\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 587:\n            statusObject[\"value\"] = \"V2 P1: Sampling Calib. Data\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 588:\n            statusObject[\"value\"] = \"V2 P1: Awaiting Rig...\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 589:\n            statusObject[\"value\"] = \"V2 P1: Soft Resetting\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 590:\n            statusObject[\"value\"] = \"Ready to Start Calibration\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 591:\n            statusObject[\"value\"] = \"Sending Validation CMDs...\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 592:\n            statusObject[\"value\"] = \"Emergency Stopped\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 593:\n            statusObject[\"value\"] = \"Emergency Stopping...\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 594:\n            statusObject[\"value\"] = \"Phase I: Emergency Stopped\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 595:\n            statusObject[\"value\"] = \"Phase II: Emergency Stopped\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 596:\n            statusObject[\"value\"] = \"Checkpoint Delay\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 597:\n            statusObject[\"value\"] = \"Phase I: Soft Resetting\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 598:\n            statusObject[\"value\"] = \"Phase II: Soft Resetting\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 599:\n            statusObject[\"value\"] = \"Hard Resetting\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n    }\n}\n//  Allocate 600-649\nexport function generalStatusLibrary(code) {\n    let statusObject = {\n        key:code,\n        value:\"\",\n        color:\"\",\n    }\n    switch(code){\n        case 600:\n            statusObject[\"value\"] = \"-\",\n            statusObject[\"color\"] = \"black\"\n            return statusObject;\n        case 601:\n            statusObject[\"value\"] = \"Unavailable\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 602:\n            statusObject[\"value\"] = \"Need Validation\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 603:\n            statusObject[\"value\"] = \"Validated\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n    }\n}\nexport function incomingMessageLibrary(context, key,value){\n    switch(key){\n        case \"notification\":\n            const rigProfile = context.get(\"userInputtedData.selectedRigProfile\");\n            if(rigProfile != null && context.get(\"frontendData.rigNotificationData\").hasOwnProperty(rigProfile['data']['rigID'])){\n                context.get(\"frontendData.rigNotificationData\")[rigProfile['data']['rigID']]['messages'].push(`(${getCurrentDateTime()})-${value}`);\n            }\n            break;\n        case \"sensorData\":\n            //Used for when the message is in \":YP....\" structure, which is strictly for data values\n            const parsedData = parseMessage(context,value) //Has case consideration for v1.0 & v2.0\n            // console.log(`parsedData: ${parsedData}`)\n            //Update Anchor Live View Section\n            updateAnchorBoardLiveViewData(parsedData);\n            //Update Anchor Live Chart\n            updateAnchorChartLiveViewData(parsedData);\n\n            /**\n             * \n                isSamplingData:{\n                    isPhaseISampling:false,\n                    isSamplingCurrentData:false, \n                    isSamplingCalibrationData:false\n                }\n             */\n            if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n                //Handle sampling if it is on\n                if(context.get(\"calibrationIsSamplingData\")[\"isPhaseISampling\"]){\n                    calculateAveragePhaseIModule(context, parsedData);\n                }\n                else if(context.get(\"calibrationIsSamplingData\")[\"isPhaseIICalibrationDataValueSampling\"]){\n                    calculateAverageCalibrationDataPhaseIIModule(context, parsedData);\n                }\n                return;\n            }\n            else if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n                const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    if(batchSensorData[i] != null){\n                        const sensorObj = batchSensorData[i];\n                        let sensorIsSamplingData = sensorObj[\"isSamplingData\"];\n                        let sensorData = sensorObj[\"sensorData\"];\n                        if(sensorIsSamplingData[\"isPhaseISampling\"] && (sensorData[\"sensorID\"].trim() == parsedData[0].trim())){\n                            calculateAveragePhaseIV2Module(context, i, parsedData);\n\n                        }else if(sensorIsSamplingData[\"isSamplingCalibrationData\"] && (sensorData[\"sensorID\"].trim() == parsedData[0].trim())){\n                            calculateAverageCalibrationDataPhaseIIV2Module(context, i, parsedData);\n                        }\n                    }\n                }\n                return;\n\n            }\n        case \"current\":\n            // console.log(`current: ${value}`)\n            /**\n             * \n                isSamplingData:{\n                    isPhaseISampling:false,\n                    isSamplingCurrentData:false, \n                    isSamplingCalibrationData:false\n                }\n             */\n            const customStatusObj1 = generalStatusLibrary(602);\n            customStatusObj1[\"value\"] = value;\n            customStatusObj1[\"color\"] = \"black\";\n            context.set(\"dashboardStatusBarData.current\",customStatusObj1)\n            if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n                if(context.get(\"calibrationIsSamplingData\")[\"isPhaseIICurrentSampling\"]){\n                    calculateAverageCurrentPhaseIIModule(context, value);\n                }\n\n            }else if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n                const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    if(batchSensorData[i] != null){\n                        const sensorObj = batchSensorData[i];\n                        let sensorIsSamplingData = sensorObj[\"isSamplingData\"];\n                        if(sensorIsSamplingData[\"isSamplingCurrentData\"]){\n                            calculateAverageCurrentPhaseIIV2Module(context, i, value);\n                        }\n                    }\n                }\n\n            }\n``            \n            return;\n        case \"target\":\n            // console.log(`target: ${value}`)\n\n            const customStatusObj2 = generalStatusLibrary(602);\n            customStatusObj2[\"value\"] = value;\n            customStatusObj2[\"color\"] = \"black\";\n            context.set(\"dashboardStatusBarData.target\",customStatusObj2)\n            return;\n    }\n}\nexport async function outgoingMessageLibrary(context, cmd, value, type=null){\n    //Check if websocket is still alive, if so send the command, attach type of cmds if needed in the switch case\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n\n\n    let msg = null;\n    // console.log(`cmd:${cmd}, value:${value}`);\n    switch(cmd){\n        //For raw cmd straight to device\n        case \"raw\":\n            msg = value;\n            break;\n        //For cmd not needing type such as \"setStepper 22.2\"\n        case \"setTarget\":\n            if(calibProfile != null && calibProfile['data'] != null ){\n                const data = calibProfile['data'];\n                const checkpointSpeed = data['checkpointSpeed'];\n\n                const customStatusObj2 = {};\n                customStatusObj2[\"value\"] = value;\n                customStatusObj2[\"color\"] = \"black\";\n                context.set(\"dashboardStatusBarData.target\",customStatusObj2);\n                msg = `WS+MOV=${value},${checkpointSpeed}`;\n                break;\n            }\n        case \"setRigUnit\":\n            msg = `WS+UNIT=${value}`;\n            break;\n\n        case \"manualStepper\":\n        // case \"manualPump\":\n            msg = `WS+JOG=${value},1`;\n            break;\n        case 'emergencyStop':\n            msg = 'WS+STOP=1';\n            break;\n        //For control panel hotkeys\n        case \"stepperInit\":\n            msg = `WS+SETHOME=1`;\n            break; \n        case \"stepper0\":\n            msg = `WS+MOVHOME=1`;\n            break; \n        case \"getInternalVersion\":\n            showPopup([`Current internal version: ${context.get(\"settingsConfig.dataTranslatorVersion\")}`]);\n            break;\n        case \"setMode\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=0\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"getDetails\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=6\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break; \n        case \"setChannels\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=1\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setStroke\":  \n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=2\", `WS+COMMAND=${value}00`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setSensorID\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=3\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setType\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=4\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setDescription\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=5\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setExit\":\n            await sendBatchCommands(context, [\"WS+COMMAND=9\"]);\n            break;\n        //For cmd needing type such as \"ucom setStepper 22.2\"\n        default:\n            msg = `${type ? type : \"\"} ${cmd} ${value}`;\n            break;\n    }\n    if(context.ws){\n        if (msg){\n            appendLiveLog(context,msg, 'outgoing');\n            showPopup([`Message sent: ${msg}`],'success');\n            // console.log(`Sending message:${msg}`);\n            context.ws.send(msg);\n        }\n    }else{\n        showPopup([`Cannot send command!`, `Please connect to a rig first!`],'error');\n\n    }\n    \n}\nexport function generalPermissionLibrary(code) {\n    switch(code){\n        case 'validateButton':\n            return ['add_calibrationinstrumentprofile', 'add_calibrationcalibratedinstrumentdata', 'add_calibrationcalibratedinstrumentlookupdata',\n                'view_calibrationinstrumentprofile','view_calibrationinstrumentdata','view_calibrationinstrumentlookup',\n                'change_calibrationinstrumentprofile','change_calibrationinstrumentdata','change_calibrationinstrumentlookup'\n            ];\n        case 'getRigsList':\n            return ['view_calibrationrigprofile'];\n        case 'saveRigButton':\n            return ['add_calibrationrigprofile'];\n        case 'deleteRigButton':\n            return ['delete_calibrationrigprofile'];\n        case 'editRigButton':\n            return ['change_calibrationrigprofile'];\n        case 'getCalibProfileList':\n            return ['view_calibrationcalibrationprofile'];\n        case 'saveCalibProfileButton':\n            return ['add_calibrationcalibrationprofile'];\n        case 'deleteCalibProfileButton':\n            return ['delete_calibrationcalibrationprofile'];\n        case 'editCalibProfileButton':\n            return ['change_calibrationcalibrationprofile'];\n        case 'calibratedInstrumentTable':\n            return ['view_calibrationinstrumentprofile','view_calibrationcalibratedinstrumentdata', 'view_calibrationcalibratedinstrumentlookupdata'];\n    }\n}\n//Popup & Notification Section\nexport async function showPopup(messageArray, mode = 'standard', seconds = 1) {\n    const popup = document.getElementById('popupMessageSection');\n    const popupBody = document.getElementById('popupMessageBody');\n\n    // Define color based on mode\n    let color = '';\n    switch (mode) {\n        case \"success\":\n            color = \"green\";\n            break;\n        case \"warning\":\n            color = \"orange\";\n            break;\n        case \"notification\":\n            color = \"#4A6A9C\";\n            break;\n        case \"error\":\n            color = \"red\";\n            break;\n        case \"standard\":\n            color = \"black\";\n            break;\n    }\n\n    // Remove existing animation styles\n    const existingStyles = document.querySelectorAll(\"[id^='pulse-border-']\");\n    existingStyles.forEach((styleElement) => styleElement.remove());\n\n    // Define new animation name and style\n    const animationName = `pulse-border-${color.replace(/[^a-zA-Z0-9]/g, '')}`;\n    const styleSheet = document.createElement('style');\n    styleSheet.type = 'text/css';\n    styleSheet.id = animationName;\n\n    styleSheet.innerHTML = `\n        @keyframes ${animationName} {\n            0% {\n                border-color: white;\n            }\n            5% {\n                border-color: ${color};\n            }\n            100% {\n                border-color: white;\n            }\n        }\n    `;\n    document.head.appendChild(styleSheet);\n\n    // Apply the new animation dynamically\n    popup.style.animation = 'none'; // Reset animation\n    popup.offsetHeight; // Trigger reflow\n    popup.style.animation = `${animationName} 1s infinite linear`;\n\n    // Reset border color explicitly\n    popup.style.borderColor = color;\n\n    // Display the popup\n    popup.style.visibility = 'visible';\n    popup.style.opacity = 1;\n\n    // Clear previous messages and populate new messages\n    popupBody.innerHTML = '';\n    messageArray.forEach((message) => {\n        const subtitleSection = document.createElement('div');\n        subtitleSection.style.fontSize = \"small\";\n        subtitleSection.style.textAlign = \"left\";\n        subtitleSection.textContent = message;\n        subtitleSection.style.overflowWrap = 'break-word'\n        popupBody.appendChild(subtitleSection);\n    });\n    let fadeOutTimeout;\n\n    const closeButton = document.createElement('div');\n    closeButton.style.fontSize = \"small\";\n    closeButton.style.textAlign = \"center\";\n    closeButton.style.cursor = \"pointer\";\n    closeButton.textContent = 'Close';\n    closeButton.style.color = 'darkgrey'\n    closeButton.style.textDecoration='underline'\n    closeButton.onclick = () => {\n        popup.style.visibility = 'hidden';\n        popup.style.animation = 'none'; // Stop the animation on hide\n        popup.style.borderColor = 'white'; // Reset border color\n        clearTimeout(fadeOutTimeout);\n\n    };\n    popupBody.appendChild(closeButton);\n\n    // Fade-out logic\n    fadeOutTimeout =  setTimeout(() => {\n        let opacity = 1;\n        const fadeOut = setInterval(() => {\n            opacity -= 0.25;\n            if (opacity <= 0) {\n                clearInterval(fadeOut);\n                popup.style.visibility = 'hidden';\n                popup.style.animation = 'none'; // Stop the animation on hide\n                popup.style.borderColor = 'white'; // Reset border color\n            }\n            popup.style.opacity = opacity;\n        }, 50);\n    }, seconds * 1000);\n}\nexport async function buildRigActivityNotificationBoard(context){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n    // const rigProfileList = context.get('rigProfileList');\n    // console.log(rigProfileList);\n    let responseData = await sendGETRequest(`rig_profile_activity_view/`);\n    const data = responseData['data'];\n    Ember.run.scheduleOnce('afterRender', context, () => {\n\n        const masterPopupContent = document.getElementById('notificationPopupContentBody');\n        if(masterPopupContent){\n\n            masterPopupContent.innerHTML = '';\n\n            // Rigs Activity Label\n            const calibTableTitle = document.createElement('div');\n            calibTableTitle.style.marginTop = '10px';\n            calibTableTitle.style.fontSize = 'medium';\n            calibTableTitle.style.textDecoration = 'underline';\n            calibTableTitle.style.fontWeight = 'bold';\n            calibTableTitle.textContent = `Rig Activity Snapshots`;\n            masterPopupContent.appendChild(calibTableTitle);\n            const table = document.createElement('table');\n            table.style.marginTop=\"10px\"\n            // Rigs Activity Table\n            //Columns\n            const thead = document.createElement('thead');\n            thead.style.borderBottom= ``;\n            const trColumns = document.createElement('tr');\n\n            const  row1HeaderObject = [{key:\"rigID\",label:\"ID\",},{key:\"rigIP\",label:\"IP\",},\n                {key:\"rigName\",label:\"Name\",},\n                {key:\"rigCategory\",label:\"Category\",},\n                {key:\"latestDate\",label:\"Last Update\",},\n                {key:\"status\",label:\"Validation Status\",},\n                {key:\"connection\",label:\"Connection Status\",},\n                {key:\"activity\",label:\"Activity Status\",},\n                {key:\"activeUser\",label:\"User\",},\n                {key:\"company\",label:\"Company\",},\n                {key:\"connectedTo\",label:\"Sensor Connected\",},\n            ]\n            row1HeaderObject.forEach((columnObject, index)=>{\n                const thColumn = document.createElement('th');\n                thColumn.style.fontSize= `small`;\n                thColumn.style.border= `solid`;\n                thColumn.style.borderWidth= `1px`;\n                thColumn.style.borderColor= `black`;\n                thColumn.style.textAlign ='center';\n                thColumn.textContent= `${columnObject['label']}`;\n                trColumns.appendChild(thColumn);\n            });\n\n            thead.appendChild(trColumns);\n            table.appendChild(thead);\n            //Rows\n            const tbody = document.createElement('tbody');\n            for(let i=0;i< data.length;i++){\n                const rigProfile = data[i]\n                const rigID = rigProfile['rigID']\n                const activityJSON = rigProfile['activityJSON']\n                const trRows = document.createElement('tr');\n                row1HeaderObject.forEach((columnObject, index)=>{\n                    const tdRowData = document.createElement('td');\n                    tdRowData.style.fontSize= `small`;\n                    tdRowData.style.border= `solid`;\n                    tdRowData.style.borderWidth= `1px`;\n                    tdRowData.style.textAlign ='center';\n                    switch(columnObject['key']){\n                        case \"status\":\n                            tdRowData.textContent= `${generalStatusLibrary(activityJSON[columnObject['key']]) ? generalStatusLibrary(activityJSON[columnObject['key']]).value : \"\"}`;\n                            break;\n                        case \"connection\":\n                            tdRowData.textContent= `${connectionStatusLibrary(activityJSON[columnObject['key']]) ? connectionStatusLibrary(activityJSON[columnObject['key']]).value : \"\"}`;\n                            break;\n                        case \"activity\":\n                            tdRowData.textContent= `${calibrationStatusLibrary(activityJSON[columnObject['key']]) ? calibrationStatusLibrary(activityJSON[columnObject['key']]).value : \"\"}`;\n                            break;\n                        default:\n                            tdRowData.textContent= `${activityJSON[columnObject['key']] ? activityJSON[columnObject['key']] : \"N/A\"}`;\n                            break;\n\n                    }\n                    trRows.appendChild(tdRowData);\n                });\n                tbody.appendChild(trRows);\n            }\n\n            table.appendChild(tbody);\n            masterPopupContent.appendChild(table);\n\n    \n            //Display and setup Ok Button notificationRefreshButton\n            const refreshButtonComponent = document.getElementById('notificationRefreshButton');\n            refreshButtonComponent.style.display = \"block\";\n            refreshButtonComponent.style.marginRight = \"10px\";\n            refreshButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n                buildRigActivityNotificationBoard(context);\n            };\n            const okButtonComponent = document.getElementById('notificationOkButton');\n            okButtonComponent.style.display = \"block\";\n            okButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n        }\n    });\n}\nexport function buildRigNotificationNotificationBoard(context){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n    Ember.run.scheduleOnce('afterRender', context, () => {\n\n        const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n        if(popupContentSectionComponent){\n\n            popupContentSectionComponent.innerHTML = '';\n    \n            //Phase I label Section\n            Object.entries(context.get(\"frontendData.rigNotificationData\")).forEach(([key, rigObject]) => {\n                const messagesArray = rigObject['messages'];\n                const data = rigObject['data'];\n\n                const rigLabelSection = document.createElement('div');\n                rigLabelSection.id=`rigLabelSection${data['rigID']}`\n                rigLabelSection.style.fontSize = \"small\";\n                rigLabelSection.textContent = `${data['rigName']} Messages:`;\n                rigLabelSection.style.paddingLeft = \"15px\";\n\n                // Add a long press event listener\n                let pressTimer; // Variable to track the timer for each component\n            \n                // Listen for mouse down (start the timer)\n                rigLabelSection.addEventListener('mousedown', (event) => {\n                    pressTimer = setTimeout(() => {\n                        showPopup([`Notifications for Rig ${data['rigName']} has been cleared.`, 'standard'])\n                        context.set(\"frontendData.rigNotificationData\",{...context.get(\"frontendData.rigNotificationData\"), [data['rigID']]: {data:data, messages:[]} });\n                        context.send('closeNotificationPopup'); \n                        context.send('viewRigNotifications'); \n                        \n                    }, 1500); // 2.5 seconds\n                });\n            \n                // Listen for mouse up (cancel the timer if the user releases the mouse early)\n                rigLabelSection.addEventListener('mouseup', () => {\n                    clearTimeout(pressTimer);\n                });\n            \n                // Listen for mouse leave (cancel the timer if the user moves the mouse away early)\n                rigLabelSection.addEventListener('mouseleave', () => {\n                    clearTimeout(pressTimer);\n                });\n\n                popupContentSectionComponent.appendChild(rigLabelSection);\n\n                messagesArray.forEach((message, index)=>{\n                    const rigMessage = document.createElement('div');\n                    rigMessage.style.fontSize = \"small\";\n                    rigMessage.textContent = `${message}`;\n                    rigMessage.style.paddingLeft = \"30px\";\n                    rigLabelSection.appendChild(rigMessage);\n\n                });\n              });\n    \n            //Display and setup Ok Button\n            const okButtonComponent = document.getElementById('notificationOkButton');\n            okButtonComponent.style.display = \"block\";\n            okButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n    \n            // if(context.get(\"calibrationData\")['phaseILookupData']\n        }\n    });\n}\nexport function buildPhaseIIConclusionNotificationBoard(context){\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n    const selectedSensorData = context.get(\"userInputtedData.selectedSensorData\");\n    const selectedAnchorData = context.get(\"userInputtedData.selectedAnchorData\")\n    const calibrationData = context.get('calibrationData');\n    console.log(selectedRigProfile);\n    console.log(selectedCalibrationProfile);\n    console.log(selectedSensorData);\n    console.log(selectedAnchorData);\n    console.log(calibrationData);\n    if(userProfile != null && selectedRigProfile != null && selectedCalibrationProfile != null &&  selectedCalibrationProfile != null && JSON.stringify(selectedSensorData) != \"{}\"){\n        context.set(\"isShowConfig.isShowPopupNotification\", true);\n        Ember.run.scheduleOnce('afterRender', context, () => {\n            const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n            const selectedRigData = selectedRigProfile['data'];\n            const selectedCalibrationData = selectedCalibrationProfile['data'];\n            const selectedSensorObj = selectedSensorData;\n            if(popupContentSectionComponent){\n                console.log('buildPhaseIIConclusionNotificationBoard');\n        \n                popupContentSectionComponent.innerHTML = ''; \n\n                //Sub-Title Section\n                const subTitleSection = document.createElement('div');\n                subTitleSection.style.fontSize = \"smaller\";\n                subTitleSection.style.paddingBottom = \"15px\";\n                subTitleSection.textContent = \"Before saving, please have a glance at the content which will be saved to the database. If everything looks correct, please tick the checkbox and click Yes. If you believe something is out of the ordinary, please contact your superior or re-calibrate again.\"\n                popupContentSectionComponent.appendChild(subTitleSection);                 \n                \n                //Row 1(Sensor ID & packId & Rig Profile & Calibration Profile & Job ID) Section\n                const row1Section = document.createElement('div');\n                row1Section.style.width = \"100%\";\n                row1Section.style.display = \"flex\";\n                row1Section.style.justifyContent = \"space-evenly\";\n                //sensorID label-value Section\n                const sensorIDSection = document.createElement('div');\n                sensorIDSection.style.display = \"flex\";\n                sensorIDSection.style.flexDirection = \"row\";\n                sensorIDSection.style.alignItems = \"center\";\n                const sensorIDSectionLabelSection = document.createElement('div');\n                sensorIDSectionLabelSection.style.fontSize = \"small\";\n                sensorIDSectionLabelSection.textContent = \"Sensor ID:\";\n                const sensorIDSectionValueSection = document.createElement('div');\n                sensorIDSectionValueSection.style.fontSize = \"small\";\n                sensorIDSectionValueSection.style.fontWeight = \"bold\";\n                sensorIDSectionValueSection.textContent = selectedSensorObj['sensorID'];\n                sensorIDSection.appendChild(sensorIDSectionLabelSection);\n                sensorIDSection.appendChild(sensorIDSectionValueSection);\n                //packId label-value Section\n                const packIdSection = document.createElement('div');\n                packIdSection.style.display = \"flex\";\n                packIdSection.style.flexDirection = \"row\";\n                packIdSection.style.alignItems = \"center\";\n                const packIdSectionLabelSection = document.createElement('div');\n                packIdSectionLabelSection.style.fontSize = \"small\";\n                packIdSectionLabelSection.textContent = \"Pack ID:\";\n                const packIdSectionValueSection = document.createElement('div');\n                packIdSectionValueSection.style.fontSize = \"small\";\n                packIdSectionValueSection.style.fontWeight = \"bold\";\n                packIdSectionValueSection.textContent = selectedSensorObj['selectedPackProfile'] ? selectedSensorObj['selectedPackProfile']['packId'] : \"\";\n                packIdSection.appendChild(packIdSectionLabelSection);\n                packIdSection.appendChild(packIdSectionValueSection);\n                //Rig label-value Section\n                const rigSection = document.createElement('div');\n                rigSection.style.display = \"flex\";\n                rigSection.style.flexDirection = \"row\";\n                rigSection.style.alignItems = \"center\";\n                const rigLabelSection = document.createElement('div');\n                rigLabelSection.style.fontSize = \"small\";\n                rigLabelSection.textContent = \"Rig Profile ID:\";\n                const rigValueSection = document.createElement('div');\n                rigValueSection.style.fontSize = \"small\";\n                rigValueSection.style.fontWeight = \"bold\";\n                rigValueSection.textContent = selectedRigData['rigID'];\n                rigSection.appendChild(rigLabelSection);\n                rigSection.appendChild(rigValueSection); \n                //Calibration label-value Section\n                const calibSection = document.createElement('div');\n                calibSection.style.display = \"flex\";\n                calibSection.style.flexDirection = \"row\";\n                calibSection.style.alignItems = \"center\";\n                const calibLabelSection = document.createElement('div');\n                calibLabelSection.style.fontSize = \"small\";\n                calibLabelSection.textContent = \"Calibration Profile ID:\";\n                const calibValueSection = document.createElement('div');\n                calibValueSection.style.fontSize = \"small\";\n                calibValueSection.style.fontWeight = \"bold\";\n                calibValueSection.textContent = selectedCalibrationData['id'];\n                calibSection.appendChild(calibLabelSection);\n                calibSection.appendChild(calibValueSection);\n                //Job ID label-value Section\n                const jobIDSection = document.createElement('div');\n                jobIDSection.style.display = \"flex\";\n                jobIDSection.style.flexDirection = \"row\";\n                jobIDSection.style.alignItems = \"center\";\n                const jobIDLabelSection = document.createElement('div');\n                jobIDLabelSection.style.fontSize = \"small\";\n                jobIDLabelSection.textContent = \"Job ID:\";\n                const jobIDValueSection = document.createElement('div');\n                jobIDValueSection.style.fontSize = \"small\";\n                jobIDValueSection.style.fontWeight = \"bold\";\n                jobIDValueSection.textContent = selectedSensorData['jobID'];\n                jobIDSection.appendChild(jobIDLabelSection);\n                jobIDSection.appendChild(jobIDValueSection);\n                //Combine & Build Row\n                row1Section.appendChild(sensorIDSection);\n                row1Section.appendChild(packIdSection);\n                row1Section.appendChild(rigSection);\n                row1Section.appendChild(calibSection);\n                row1Section.appendChild(jobIDSection);\n                popupContentSectionComponent.appendChild(row1Section);\n\n                //Row 2(calibrationDate) Section\n                const row2Section = document.createElement('div');\n                row2Section.style.width = \"100%\";\n                row2Section.style.display = \"flex\";\n                row2Section.style.justifyContent = \"space-evenly\";\n                //calibrationDate label-value Section\n                const latestDateTime=getCurrentDateTime();\n                context.set(\"userInputtedData.selectedSensorData.calibrationDate\", latestDateTime);\n                const calibrationDateSection = document.createElement('div');\n                calibrationDateSection.style.display = \"flex\";\n                calibrationDateSection.style.flexDirection = \"row\";\n                calibrationDateSection.style.alignItems = \"center\";\n                const calibrationDateLabelSection = document.createElement('div');\n                calibrationDateLabelSection.style.fontSize = \"small\";\n                calibrationDateLabelSection.textContent = \"Calibration Date:\";\n                const calibrationDateValueSection = document.createElement('div');\n                calibrationDateValueSection.style.fontSize = \"small\";\n                calibrationDateValueSection.style.fontWeight = \"bold\";\n                calibrationDateValueSection.textContent = `${latestDateTime}`;\n                calibrationDateSection.appendChild(calibrationDateLabelSection);\n                calibrationDateSection.appendChild(calibrationDateValueSection);\n                //Combine & Build Row\n                row2Section.appendChild(calibrationDateSection);\n                popupContentSectionComponent.appendChild(row2Section);\n\n                //Row 3(sensorName & sensorDescription & employee) Section\n                const row3Section = document.createElement('div');\n                row3Section.style.width = \"100%\";\n                row3Section.style.display = \"flex\";\n                row3Section.style.justifyContent = \"space-evenly\";\n                //sensorName label-value Section\n                const sensorNameSection = document.createElement('div');\n                sensorNameSection.style.display = \"flex\";\n                sensorNameSection.style.flexDirection = \"row\";\n                sensorNameSection.style.alignItems = \"center\";\n                const sensorNameLabelSection = document.createElement('div');\n                sensorNameLabelSection.style.fontSize = \"small\";\n                sensorNameLabelSection.textContent = \"Sensor Alias:\";\n                const sensorNameValueSection = document.createElement('div');\n                sensorNameValueSection.style.fontSize = \"small\";\n                sensorNameValueSection.style.fontWeight = \"bold\";\n                sensorNameValueSection.textContent = selectedSensorObj['sensorName'] ? selectedSensorObj['sensorName'] : \"\";\n                sensorNameSection.appendChild(sensorNameLabelSection);\n                sensorNameSection.appendChild(sensorNameValueSection);\n                //sensorDescription label-value Section\n                const sensorDescriptionSection = document.createElement('div');\n                sensorDescriptionSection.style.display = \"flex\";\n                sensorDescriptionSection.style.flexDirection = \"row\";\n                sensorDescriptionSection.style.alignItems = \"center\";\n                const sensorDescriptionLabelSection = document.createElement('div');\n                sensorDescriptionLabelSection.style.fontSize = \"small\";\n                sensorDescriptionLabelSection.textContent = \"Sensor Description:\";\n                const sensorDescriptionValueSection = document.createElement('div');\n                sensorDescriptionValueSection.style.fontSize = \"small\";\n                sensorDescriptionValueSection.style.fontWeight = \"bold\";\n                sensorDescriptionValueSection.textContent = selectedSensorObj['sensorDescription'] ? selectedSensorObj['sensorDescription'] : \"\";\n                sensorDescriptionSection.appendChild(sensorDescriptionLabelSection);\n                sensorDescriptionSection.appendChild(sensorDescriptionValueSection);\n                //employee label-value Section\n                const employeeSection = document.createElement('div');\n                employeeSection.style.display = \"flex\";\n                employeeSection.style.flexDirection = \"row\";\n                employeeSection.style.alignItems = \"center\";\n                const employeeLabelSection = document.createElement('div');\n                employeeLabelSection.style.fontSize = \"small\";\n                employeeLabelSection.textContent = \"Employee:\";\n                const employeeValueSection = document.createElement('div');\n                employeeValueSection.style.fontSize = \"small\";\n                employeeValueSection.style.fontWeight = \"bold\";\n                employeeValueSection.textContent = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n                employeeSection.appendChild(employeeLabelSection);\n                employeeSection.appendChild(employeeValueSection);\n                //Combine & Build Row\n                row3Section.appendChild(sensorNameSection);\n                row3Section.appendChild(sensorDescriptionSection);\n                row3Section.appendChild(employeeSection);\n                popupContentSectionComponent.appendChild(row3Section);\n\n                //Row 4(checkpointPositions) Section\n                const row4Section = document.createElement('div');\n                row4Section.style.width = \"100%\";\n                row4Section.style.display = \"flex\";\n                row4Section.style.justifyContent = \"space-evenly\";\n                //checkpointPositions label-value Section\n                const checkpointPositionsSection = document.createElement('div');\n                checkpointPositionsSection.style.display = \"flex\";\n                checkpointPositionsSection.style.flexDirection = \"row\";\n                checkpointPositionsSection.style.alignItems = \"center\";\n                const checkpointPositionsLabelSection = document.createElement('div');\n                checkpointPositionsLabelSection.style.fontSize = \"small\";\n                checkpointPositionsLabelSection.textContent = \"Checkpoints:\";\n                const checkpointPositionsValueSection = document.createElement('div');\n                checkpointPositionsValueSection.style.fontSize = \"small\";\n                checkpointPositionsValueSection.style.fontWeight = \"bold\";\n                checkpointPositionsValueSection.textContent = `[${selectedCalibrationData['checkpointPositions']}]`;\n                checkpointPositionsSection.appendChild(checkpointPositionsLabelSection);\n                checkpointPositionsSection.appendChild(checkpointPositionsValueSection);\n                //Combine & Build Row\n                row4Section.appendChild(checkpointPositionsSection);\n                popupContentSectionComponent.appendChild(row4Section);\n                //Memo Section\n                const memoSectionLabelSection = document.createElement('div');\n                memoSectionLabelSection.style.fontSize = \"small\";\n                memoSectionLabelSection.textContent = \"Memo:\";\n                const memoSectionValueSection = document.createElement('div');\n                memoSectionValueSection.style.marginLeft = \"30px\";\n                memoSectionValueSection.style.whiteSpace = 'pre-line';\n                memoSectionValueSection.style.fontSize = \"small\";\n                memoSectionValueSection.style.fontWeight = \"bold\";\n                memoSectionValueSection.textContent = `${selectedSensorObj['memo'] ? selectedSensorObj['memo'] : \"\"}`;\n                //Combine & Build Row\n                popupContentSectionComponent.appendChild(memoSectionLabelSection);\n                popupContentSectionComponent.appendChild(memoSectionValueSection);\n                //Row 5(anchorProfileData) Section Sensor Type Specific\n                if(selectedAnchorData != null && (selectedCalibrationData['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || selectedCalibrationData['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue)){\n\n                    //anchorSection label-value Section\n                    const anchorSectionLabelSection = document.createElement('div');\n                    anchorSectionLabelSection.style.fontSize = \"small\";\n                    anchorSectionLabelSection.textContent = \"Anchor Object:\";\n                    const anchorSectionValueSection = document.createElement('div');\n                    anchorSectionValueSection.style.marginLeft = \"30px\";\n                    anchorSectionValueSection.style.fontSize = \"small\";\n                    anchorSectionValueSection.style.fontWeight = \"bold\";\n                    anchorSectionValueSection.textContent = `${JSON.stringify(selectedAnchorData)}`;\n                    //Combine & Build Row\n                    popupContentSectionComponent.appendChild(anchorSectionLabelSection);\n                    popupContentSectionComponent.appendChild(anchorSectionValueSection);\n                }\n        \n                //Row 6(phaseILookUpArray) Section \n                //phaseILookUpArray label-value Section\n                const channels = selectedCalibrationData['channels'] - 1;//-1 to disregard the temperature channel\n                const phaseILookUpLabelSection = document.createElement('div');\n                phaseILookUpLabelSection.style.fontSize = \"small\";\n                phaseILookUpLabelSection.textContent = \"Phase I Lookup(Channel):\";\n                popupContentSectionComponent.appendChild(phaseILookUpLabelSection);\n                calibrationData['phaseILookupData'].forEach((lookup, index)=>{\n                    const phaseIValueSection = document.createElement('div');\n                    phaseIValueSection.style.color = \"black\";\n                    phaseIValueSection.style.fontSize = \"small\";\n                    phaseIValueSection.style.fontWeight = \"bold\";\n                    phaseIValueSection.style.whiteSpace = \"nowrap\";\n                    phaseIValueSection.textContent =  `${index + 1} = [${lookup.toString()}]`;\n                    phaseIValueSection.style.marginLeft = \"30px\";\n                    popupContentSectionComponent.appendChild(phaseIValueSection);\n                });\n\n                //Row 7(phaseIICalibratedDataArray) Section \n                //phaseIICalibratedDataArray label-value Section\n                const phaseIILookUpLabelSection = document.createElement('div');\n                phaseIILookUpLabelSection.style.fontSize = \"small\";\n                phaseIILookUpLabelSection.textContent = \"Phase II Calibrated Lookup Values(Channel):\";\n                popupContentSectionComponent.appendChild(phaseIILookUpLabelSection);\n                //Lookup value raw format\n                calibrationData['phaseIICalibrationDataValueData'].forEach((lookup, index)=>{\n                    const phaseIIValueSection = document.createElement('div');\n                    phaseIIValueSection.style.color = \"black\";\n                    phaseIIValueSection.style.fontSize = \"small\";\n                    phaseIIValueSection.style.fontWeight = \"bold\";\n                    phaseIIValueSection.style.whiteSpace = \"nowrap\";\n                    phaseIIValueSection.textContent =  `${index + 1} = [${lookup.toString()}]`;\n                    phaseIIValueSection.style.marginLeft = \"30px\";\n                    popupContentSectionComponent.appendChild(phaseIIValueSection);\n                });\n\n                //Row 8(phaseIICalibratedCurrentArray) Section\n                //phaseIICalibratedCurrentArray label-value Section\n                const phaseIICalibratedCurrentLabelSection = document.createElement('div');\n                phaseIICalibratedCurrentLabelSection.style.fontSize = \"small\";\n                phaseIICalibratedCurrentLabelSection.textContent = \"Phase II Calibrated Current Values:\";\n                popupContentSectionComponent.appendChild(phaseIICalibratedCurrentLabelSection);\n                const phaseIICalibratedCurrentValueSection = document.createElement('div');\n                phaseIICalibratedCurrentValueSection.style.color = \"black\";\n                phaseIICalibratedCurrentValueSection.style.fontSize = \"small\";\n                phaseIICalibratedCurrentValueSection.style.fontWeight = \"bold\";\n                phaseIICalibratedCurrentValueSection.style.whiteSpace = \"nowrap\";\n                phaseIICalibratedCurrentValueSection.textContent =  `[${calibrationData['phaseIICurrentData'].toString()}]`;\n                phaseIICalibratedCurrentValueSection.style.marginLeft = \"30px\";\n                popupContentSectionComponent.appendChild(phaseIICalibratedCurrentValueSection);\n\n                //Row 9(phaseIICalibratedSlopeArray) Section\n                //phaseIICalibratedSlopeArray label-value Section\n                const phaseIICalibratedSlopeLabelSection = document.createElement('div');\n                phaseIICalibratedSlopeLabelSection.style.fontSize = \"small\";\n                phaseIICalibratedSlopeLabelSection.textContent = \"Phase II Calibrated Slope Values:\";\n                popupContentSectionComponent.appendChild(phaseIICalibratedSlopeLabelSection);\n                const phaseIICalibratedSlopeValueSection = document.createElement('div');\n                phaseIICalibratedSlopeValueSection.style.color = \"black\";\n                phaseIICalibratedSlopeValueSection.style.fontSize = \"small\";\n                phaseIICalibratedSlopeValueSection.style.fontWeight = \"bold\";\n                phaseIICalibratedSlopeValueSection.style.whiteSpace = \"nowrap\";\n                phaseIICalibratedSlopeValueSection.textContent =  `[${calibrationData['phaseIISlopeData'].toString()}]`;\n                phaseIICalibratedSlopeValueSection.style.marginLeft = \"30px\";\n                popupContentSectionComponent.appendChild(phaseIICalibratedSlopeValueSection);\n\n                //Row 10(phaseIICalibratedOffsetArray) Section\n                //phaseIICalibratedOffsetArray label-value Section\n                const phaseIICalibratedOffsetLabelSection = document.createElement('div');\n                phaseIICalibratedOffsetLabelSection.style.fontSize = \"small\";\n                phaseIICalibratedOffsetLabelSection.textContent = \"Phase II Calibrated Offset Values:\";\n                popupContentSectionComponent.appendChild(phaseIICalibratedOffsetLabelSection);\n                const phaseIICalibratedOffsetValueSection = document.createElement('div');\n                phaseIICalibratedOffsetValueSection.style.color = \"black\";\n                phaseIICalibratedOffsetValueSection.style.fontSize = \"small\";\n                phaseIICalibratedOffsetValueSection.style.fontWeight = \"bold\";\n                phaseIICalibratedOffsetValueSection.style.whiteSpace = \"nowrap\";\n                phaseIICalibratedOffsetValueSection.textContent =  `[${calibrationData['phaseIIOffsetData'].toString()}]`;\n                phaseIICalibratedOffsetValueSection.style.marginLeft = \"30px\";\n                popupContentSectionComponent.appendChild(phaseIICalibratedOffsetValueSection);\n\n\n                //Display and setup Ok Button\n                const saveButtonComponent = document.getElementById('notificationSaveButton');\n                saveButtonComponent.style.display = \"block\";\n                saveButtonComponent.onclick = () => {\n                    const confirmCheckBoxComponent = document.getElementById('confirmationCheckBox');\n                    if(confirmCheckBoxComponent.checked){\n                        saveAndSendPhaseIIData(context);\n                        \n                    }else{\n                        showPopup(['Please tick checkbox in order to save!'], 'notification', 2);\n                    }\n                };\n                //Display and setup Confirmation Checkbox Button\n                const confirmCheckBoxComponentSection = document.getElementById('confirmationCheckBoxSection');\n                confirmCheckBoxComponentSection.style.display = \"flex\";\n                const confirmCheckBoxComponent = document.getElementById('confirmationCheckBox');\n                confirmCheckBoxComponent.oninput = (event) => {\n                };\n        \n                // if(context.get(\"calibrationData\")['phaseILookupData']\n            }\n        });\n    }else{\n        let messageArr = []\n        if(selectedRigProfile == null){\n            messageArr.push(\"Rig profile is missing!\")\n        }\n        if(selectedCalibrationProfile == null){\n            messageArr.push(\"Calibration profile is missing!\")\n        }\n        if(JSON.stringify(selectedSensorData) === \"{}\"){\n            messageArr.push(\"Sensor data is missing!\")\n        }\n        showPopup(messageArr, 'error', messageArr.length > 2 ? 5: 2);\n    }\n\n\n}\nexport function buildPhaseIIConclusionNotificationBoardV2(context){\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n    const selectedSensorData = context.get(\"userInputtedData.selectedSensorData\");\n    const selectedAnchorData = context.get(\"userInputtedData.selectedAnchorData\")\n    console.log(selectedRigProfile);\n    console.log(selectedCalibrationProfile);\n    console.log(selectedSensorData);\n    console.log(selectedAnchorData);\n    if(userProfile != null && selectedCalibrationProfile != null &&  selectedCalibrationProfile != null && JSON.stringify(selectedSensorData) != \"{}\"){\n        context.set(\"isShowConfig.isShowPopupNotification\", true);\n        Ember.run.scheduleOnce('afterRender', context, () => {\n            const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n            const selectedRigData = selectedRigProfile['data'];\n            const selectedCalibrationData = selectedCalibrationProfile['data'];\n            const selectedSensorObj = selectedSensorData;\n            if(popupContentSectionComponent){\n                console.log('buildPhaseIIConclusionNotificationBoard');\n        \n                popupContentSectionComponent.innerHTML = ''; \n\n                //Sub-Title Section\n                const subTitleSection = document.createElement('div');\n                subTitleSection.style.fontSize = \"smaller\";\n                subTitleSection.style.paddingBottom = \"15px\";\n                subTitleSection.textContent = \"Before saving, please have a glance at the content which will be saved to the database. If everything looks correct, please tick the checkbox and click Yes. If you believe something is out of the ordinary, please contact your superior or re-calibrate again.\"\n                popupContentSectionComponent.appendChild(subTitleSection);                 \n                \n                const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n\n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    const sensorObj = batchSensorData[i];\n                    const sensorData = sensorObj['sensorData'];\n                    const calibrationData = sensorObj['calibrationData'];\n\n                    //Sensor Title Section\n                    const sensorTitleSection = document.createElement('div');\n                    sensorTitleSection.style.fontSize = \"medium\";\n                    sensorTitleSection.style.textDecoration = \"underline\";\n                    sensorTitleSection.style.fontWeight = \"bold\";\n                    sensorTitleSection.textContent = `Sensor ${sensorData[\"sensorID\"]}`\n                    popupContentSectionComponent.appendChild(sensorTitleSection);   \n\n                    //Row 1(Sensor ID & packId & Rig Profile & Calibration Profile & Job ID) Section\n                    const row1Section = document.createElement('div');\n                    row1Section.style.width = \"100%\";\n                    row1Section.style.display = \"flex\";\n                    row1Section.style.justifyContent = \"space-evenly\";\n                    //sensorID label-value Section\n                    const sensorIDSection = document.createElement('div');\n                    sensorIDSection.style.display = \"flex\";\n                    sensorIDSection.style.flexDirection = \"row\";\n                    sensorIDSection.style.alignItems = \"center\";\n                    const sensorIDSectionLabelSection = document.createElement('div');\n                    sensorIDSectionLabelSection.style.fontSize = \"small\";\n                    sensorIDSectionLabelSection.textContent = \"Sensor ID:\";\n                    const sensorIDSectionValueSection = document.createElement('div');\n                    sensorIDSectionValueSection.style.fontSize = \"small\";\n                    sensorIDSectionValueSection.style.fontWeight = \"bold\";\n                    sensorIDSectionValueSection.textContent = sensorData['sensorID'];\n                    sensorIDSection.appendChild(sensorIDSectionLabelSection);\n                    sensorIDSection.appendChild(sensorIDSectionValueSection);\n                    //packId label-value Section\n                    const packIdSection = document.createElement('div');\n                    packIdSection.style.display = \"flex\";\n                    packIdSection.style.flexDirection = \"row\";\n                    packIdSection.style.alignItems = \"center\";\n                    const packIdSectionLabelSection = document.createElement('div');\n                    packIdSectionLabelSection.style.fontSize = \"small\";\n                    packIdSectionLabelSection.textContent = \"Pack ID:\";\n                    const packIdSectionValueSection = document.createElement('div');\n                    packIdSectionValueSection.style.fontSize = \"small\";\n                    packIdSectionValueSection.style.fontWeight = \"bold\";\n                    packIdSectionValueSection.textContent = sensorData[\"packObj\"] ? sensorData[\"packObj\"][\"packId\"] : \"\";\n                    packIdSection.appendChild(packIdSectionLabelSection);\n                    packIdSection.appendChild(packIdSectionValueSection);\n                    //Rig label-value Section\n                    const rigSection = document.createElement('div');\n                    rigSection.style.display = \"flex\";\n                    rigSection.style.flexDirection = \"row\";\n                    rigSection.style.alignItems = \"center\";\n                    const rigLabelSection = document.createElement('div');\n                    rigLabelSection.style.fontSize = \"small\";\n                    rigLabelSection.textContent = \"Rig Profile ID:\";\n                    const rigValueSection = document.createElement('div');\n                    rigValueSection.style.fontSize = \"small\";\n                    rigValueSection.style.fontWeight = \"bold\";\n                    rigValueSection.textContent = selectedRigData['rigID'] ? selectedRigData['rigID'] : \"\";\n                    rigSection.appendChild(rigLabelSection);\n                    rigSection.appendChild(rigValueSection); \n                    //Calibration label-value Section\n                    const calibSection = document.createElement('div');\n                    calibSection.style.display = \"flex\";\n                    calibSection.style.flexDirection = \"row\";\n                    calibSection.style.alignItems = \"center\";\n                    const calibLabelSection = document.createElement('div');\n                    calibLabelSection.style.fontSize = \"small\";\n                    calibLabelSection.textContent = \"Calibration Profile ID:\";\n                    const calibValueSection = document.createElement('div');\n                    calibValueSection.style.fontSize = \"small\";\n                    calibValueSection.style.fontWeight = \"bold\";\n                    calibValueSection.textContent = selectedCalibrationData['id'];\n                    calibSection.appendChild(calibLabelSection);\n                    calibSection.appendChild(calibValueSection);\n                    //Job ID label-value Section\n                    const jobIDSection = document.createElement('div');\n                    jobIDSection.style.display = \"flex\";\n                    jobIDSection.style.flexDirection = \"row\";\n                    jobIDSection.style.alignItems = \"center\";\n                    const jobIDLabelSection = document.createElement('div');\n                    jobIDLabelSection.style.fontSize = \"small\";\n                    jobIDLabelSection.textContent = \"Job ID:\";\n                    const jobIDValueSection = document.createElement('div');\n                    jobIDValueSection.style.fontSize = \"small\";\n                    jobIDValueSection.style.fontWeight = \"bold\";\n                    jobIDValueSection.textContent = selectedSensorData['jobID'];\n                    jobIDSection.appendChild(jobIDLabelSection);\n                    jobIDSection.appendChild(jobIDValueSection);\n                    //Combine & Build Row\n                    row1Section.appendChild(sensorIDSection);\n                    row1Section.appendChild(packIdSection);\n                    row1Section.appendChild(rigSection);\n                    row1Section.appendChild(calibSection);\n                    row1Section.appendChild(jobIDSection);\n                    popupContentSectionComponent.appendChild(row1Section);\n                    \n                    //Row 2(calibrationDate) Section\n                    const row2Section = document.createElement('div');\n                    row2Section.style.width = \"100%\";\n                    row2Section.style.display = \"flex\";\n                    row2Section.style.justifyContent = \"space-evenly\";\n                    //calibrationDate label-value Section\n                    const latestDateTime=getCurrentDateTime();\n                    sensorData[\"calibrationDate\"] = latestDateTime;\n\n                    const calibrationDateSection = document.createElement('div');\n                    calibrationDateSection.style.display = \"flex\";\n                    calibrationDateSection.style.flexDirection = \"row\";\n                    calibrationDateSection.style.alignItems = \"center\";\n                    const calibrationDateLabelSection = document.createElement('div');\n                    calibrationDateLabelSection.style.fontSize = \"small\";\n                    calibrationDateLabelSection.textContent = \"Calibration Date:\";\n                    const calibrationDateValueSection = document.createElement('div');\n                    calibrationDateValueSection.style.fontSize = \"small\";\n                    calibrationDateValueSection.style.fontWeight = \"bold\";\n                    calibrationDateValueSection.textContent = `${latestDateTime}`;\n                    calibrationDateSection.appendChild(calibrationDateLabelSection);\n                    calibrationDateSection.appendChild(calibrationDateValueSection);\n                    //Combine & Build Row\n                    row2Section.appendChild(calibrationDateSection);\n                    popupContentSectionComponent.appendChild(row2Section);\n\n                    //Row 3(sensorName & sensorDescription & employee) Section\n                    const row3Section = document.createElement('div');\n                    row3Section.style.width = \"100%\";\n                    row3Section.style.display = \"flex\";\n                    row3Section.style.justifyContent = \"space-evenly\";\n                    //sensorName label-value Section\n                    const sensorNameSection = document.createElement('div');\n                    sensorNameSection.style.display = \"flex\";\n                    sensorNameSection.style.flexDirection = \"row\";\n                    sensorNameSection.style.alignItems = \"center\";\n                    const sensorNameLabelSection = document.createElement('div');\n                    sensorNameLabelSection.style.fontSize = \"small\";\n                    sensorNameLabelSection.textContent = \"Sensor Alias:\";\n                    const sensorNameValueSection = document.createElement('div');\n                    sensorNameValueSection.style.fontSize = \"small\";\n                    sensorNameValueSection.style.fontWeight = \"bold\";\n                    sensorNameValueSection.textContent = sensorData['sensorName'] ? sensorData['sensorName'] : \"\";\n                    sensorNameSection.appendChild(sensorNameLabelSection);\n                    sensorNameSection.appendChild(sensorNameValueSection);\n                    //sensorDescription label-value Section\n                    const sensorDescriptionSection = document.createElement('div');\n                    sensorDescriptionSection.style.display = \"flex\";\n                    sensorDescriptionSection.style.flexDirection = \"row\";\n                    sensorDescriptionSection.style.alignItems = \"center\";\n                    const sensorDescriptionLabelSection = document.createElement('div');\n                    sensorDescriptionLabelSection.style.fontSize = \"small\";\n                    sensorDescriptionLabelSection.textContent = \"Sensor Description:\";\n                    const sensorDescriptionValueSection = document.createElement('div');\n                    sensorDescriptionValueSection.style.fontSize = \"small\";\n                    sensorDescriptionValueSection.style.fontWeight = \"bold\";\n                    sensorDescriptionValueSection.textContent = sensorData['sensorDescription'] ? sensorData['sensorDescription'] : \"\";\n                    sensorDescriptionSection.appendChild(sensorDescriptionLabelSection);\n                    sensorDescriptionSection.appendChild(sensorDescriptionValueSection);\n                    //employee label-value Section\n                    const employeeSection = document.createElement('div');\n                    employeeSection.style.display = \"flex\";\n                    employeeSection.style.flexDirection = \"row\";\n                    employeeSection.style.alignItems = \"center\";\n                    const employeeLabelSection = document.createElement('div');\n                    employeeLabelSection.style.fontSize = \"small\";\n                    employeeLabelSection.textContent = \"Employee:\";\n                    const employeeValueSection = document.createElement('div');\n                    employeeValueSection.style.fontSize = \"small\";\n                    employeeValueSection.style.fontWeight = \"bold\";\n                    employeeValueSection.textContent = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n                    employeeSection.appendChild(employeeLabelSection);\n                    employeeSection.appendChild(employeeValueSection);\n                    //Combine & Build Row\n                    row3Section.appendChild(sensorNameSection);\n                    row3Section.appendChild(sensorDescriptionSection);\n                    row3Section.appendChild(employeeSection);\n                    popupContentSectionComponent.appendChild(row3Section);\n\n                    //Row 4(checkpointPositions) Section\n                    const row4Section = document.createElement('div');\n                    row4Section.style.width = \"100%\";\n                    row4Section.style.display = \"flex\";\n                    row4Section.style.justifyContent = \"space-evenly\";\n                    //checkpointPositions label-value Section\n                    const checkpointPositionsSection = document.createElement('div');\n                    checkpointPositionsSection.style.display = \"flex\";\n                    checkpointPositionsSection.style.flexDirection = \"row\";\n                    checkpointPositionsSection.style.alignItems = \"center\";\n                    const checkpointPositionsLabelSection = document.createElement('div');\n                    checkpointPositionsLabelSection.style.fontSize = \"small\";\n                    checkpointPositionsLabelSection.textContent = \"Checkpoints:\";\n                    const checkpointPositionsValueSection = document.createElement('div');\n                    checkpointPositionsValueSection.style.fontSize = \"small\";\n                    checkpointPositionsValueSection.style.fontWeight = \"bold\";\n                    checkpointPositionsValueSection.textContent = `[${selectedCalibrationData['checkpointPositions']}]`;\n                    checkpointPositionsSection.appendChild(checkpointPositionsLabelSection);\n                    checkpointPositionsSection.appendChild(checkpointPositionsValueSection);\n                    //Combine & Build Row\n                    row4Section.appendChild(checkpointPositionsSection);\n                    popupContentSectionComponent.appendChild(row4Section);\n                    //Memo Section\n                    const memoSectionLabelSection = document.createElement('div');\n                    memoSectionLabelSection.style.fontSize = \"small\";\n                    memoSectionLabelSection.textContent = \"Memo:\";\n                    const memoSectionValueSection = document.createElement('div');\n                    memoSectionValueSection.style.marginLeft = \"30px\";\n                    memoSectionValueSection.style.whiteSpace = 'pre-line';\n                    memoSectionValueSection.style.fontSize = \"small\";\n                    memoSectionValueSection.style.fontWeight = \"bold\";\n                    memoSectionValueSection.textContent = `${selectedSensorObj['memo'] ? selectedSensorObj['memo'] : \"\"}`;\n                    //Combine & Build Row\n                    popupContentSectionComponent.appendChild(memoSectionLabelSection);\n                    popupContentSectionComponent.appendChild(memoSectionValueSection);\n\n                    //Row 5(anchorProfileData) Section Sensor Type Specific\n                    if(selectedAnchorData != null && (selectedCalibrationData['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || selectedCalibrationData['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue)){\n    \n                        //anchorSection label-value Section\n                        const anchorSectionLabelSection = document.createElement('div');\n                        anchorSectionLabelSection.style.fontSize = \"small\";\n                        anchorSectionLabelSection.textContent = \"Anchor Object:\";\n                        const anchorSectionValueSection = document.createElement('div');\n                        anchorSectionValueSection.style.marginLeft = \"30px\";\n                        anchorSectionValueSection.style.fontSize = \"small\";\n                        anchorSectionValueSection.style.fontWeight = \"bold\";\n                        anchorSectionValueSection.textContent = `${JSON.stringify(selectedAnchorData)}`;\n                        //Combine & Build Row\n                        popupContentSectionComponent.appendChild(anchorSectionLabelSection);\n                        popupContentSectionComponent.appendChild(anchorSectionValueSection);\n                    }\n        \n                    //Row 6(lookupData) Section \n                    //lookupData label-value Section\n                    const phaseILookUpLabelSection = document.createElement('div');\n                    phaseILookUpLabelSection.style.fontSize = \"small\";\n                    phaseILookUpLabelSection.textContent = \"Phase I Lookup(Channel):\";\n                    popupContentSectionComponent.appendChild(phaseILookUpLabelSection);\n                    calibrationData['lookupData'].forEach((lookup, index)=>{\n                        const phaseIValueSection = document.createElement('div');\n                        phaseIValueSection.style.color = \"black\";\n                        phaseIValueSection.style.fontSize = \"small\";\n                        phaseIValueSection.style.fontWeight = \"bold\";\n                        phaseIValueSection.style.whiteSpace = \"nowrap\";\n                        phaseIValueSection.textContent =  `CH${index + 1} = [${lookup.toString()}]`;\n                        phaseIValueSection.style.marginLeft = \"30px\";\n                        popupContentSectionComponent.appendChild(phaseIValueSection);\n                    });\n\n                    //Row 7(calibrationDataData) Section \n                    //calibrationDataData label-value Section\n                    const phaseIILookUpLabelSection = document.createElement('div');\n                    phaseIILookUpLabelSection.style.fontSize = \"small\";\n                    phaseIILookUpLabelSection.textContent = \"Phase II Calibrated Lookup Values(Channel):\";\n                    popupContentSectionComponent.appendChild(phaseIILookUpLabelSection);\n                    //Lookup value raw format\n                    calibrationData['calibrationDataData'].forEach((lookup, index)=>{\n                        const phaseIIValueSection = document.createElement('div');\n                        phaseIIValueSection.style.color = \"black\";\n                        phaseIIValueSection.style.fontSize = \"small\";\n                        phaseIIValueSection.style.fontWeight = \"bold\";\n                        phaseIIValueSection.style.whiteSpace = \"nowrap\";\n                        phaseIIValueSection.textContent =  `CH${index + 1} = [${lookup.toString()}]`;\n                        phaseIIValueSection.style.marginLeft = \"30px\";\n                        popupContentSectionComponent.appendChild(phaseIIValueSection);\n                    });\n\n                    //Row 8(currentData) Section\n                    //currentData label-value Section\n                    const phaseIICalibratedCurrentLabelSection = document.createElement('div');\n                    phaseIICalibratedCurrentLabelSection.style.fontSize = \"small\";\n                    phaseIICalibratedCurrentLabelSection.textContent = \"Phase II Calibrated Current Values:\";\n                    popupContentSectionComponent.appendChild(phaseIICalibratedCurrentLabelSection);\n                    const phaseIICalibratedCurrentValueSection = document.createElement('div');\n                    phaseIICalibratedCurrentValueSection.style.color = \"black\";\n                    phaseIICalibratedCurrentValueSection.style.fontSize = \"small\";\n                    phaseIICalibratedCurrentValueSection.style.fontWeight = \"bold\";\n                    phaseIICalibratedCurrentValueSection.style.whiteSpace = \"nowrap\";\n                    phaseIICalibratedCurrentValueSection.textContent =  `[${calibrationData['currentData'].toString()}]`;\n                    phaseIICalibratedCurrentValueSection.style.marginLeft = \"30px\";\n                    popupContentSectionComponent.appendChild(phaseIICalibratedCurrentValueSection);\n\n                    //Row 9(slopeData) Section\n                    //slopeData label-value Section\n                    const phaseIICalibratedSlopeLabelSection = document.createElement('div');\n                    phaseIICalibratedSlopeLabelSection.style.fontSize = \"small\";\n                    phaseIICalibratedSlopeLabelSection.textContent = \"Phase II Calibrated Slope Values:\";\n                    popupContentSectionComponent.appendChild(phaseIICalibratedSlopeLabelSection);\n                    const phaseIICalibratedSlopeValueSection = document.createElement('div');\n                    phaseIICalibratedSlopeValueSection.style.color = \"black\";\n                    phaseIICalibratedSlopeValueSection.style.fontSize = \"small\";\n                    phaseIICalibratedSlopeValueSection.style.fontWeight = \"bold\";\n                    phaseIICalibratedSlopeValueSection.style.whiteSpace = \"nowrap\";\n                    phaseIICalibratedSlopeValueSection.textContent =  `[${calibrationData['slopeData'].toString()}]`;\n                    phaseIICalibratedSlopeValueSection.style.marginLeft = \"30px\";\n                    popupContentSectionComponent.appendChild(phaseIICalibratedSlopeValueSection);\n\n                    //Row 10(offsetData) Section\n                    //offsetData label-value Section\n                    const phaseIICalibratedOffsetLabelSection = document.createElement('div');\n                    phaseIICalibratedOffsetLabelSection.style.fontSize = \"small\";\n                    phaseIICalibratedOffsetLabelSection.textContent = \"Phase II Calibrated Offset Values:\";\n                    popupContentSectionComponent.appendChild(phaseIICalibratedOffsetLabelSection);\n                    const phaseIICalibratedOffsetValueSection = document.createElement('div');\n                    phaseIICalibratedOffsetValueSection.style.color = \"black\";\n                    phaseIICalibratedOffsetValueSection.style.fontSize = \"small\";\n                    phaseIICalibratedOffsetValueSection.style.fontWeight = \"bold\";\n                    phaseIICalibratedOffsetValueSection.style.whiteSpace = \"nowrap\";\n                    phaseIICalibratedOffsetValueSection.textContent =  `[${calibrationData['offsetData'].toString()}]`;\n                    phaseIICalibratedOffsetValueSection.style.marginLeft = \"30px\";\n                    popupContentSectionComponent.appendChild(phaseIICalibratedOffsetValueSection);\n\n                }\n\n\n                //Display and setup Ok Button\n                const saveButtonComponent = document.getElementById('notificationSaveButton');\n                saveButtonComponent.style.display = \"block\";\n                saveButtonComponent.onclick = () => {\n                    const confirmCheckBoxComponent = document.getElementById('confirmationCheckBox');\n                    if(confirmCheckBoxComponent.checked){\n                        saveAndSendPhaseIIV2Data(context);\n                        \n                    }else{\n                        showPopup(['Please tick checkbox in order to save!'], 'notification', 2);\n                    }\n                };\n                //Display and setup Confirmation Checkbox Button\n                const confirmCheckBoxComponentSection = document.getElementById('confirmationCheckBoxSection');\n                confirmCheckBoxComponentSection.style.display = \"flex\";\n                const confirmCheckBoxComponent = document.getElementById('confirmationCheckBox');\n                confirmCheckBoxComponent.oninput = (event) => {\n                };\n        \n                // if(context.get(\"calibrationData\")['phaseILookupData']\n            }\n        });\n    }else{\n        let messageArr = []\n        if(selectedRigProfile == null){\n            messageArr.push(\"Rig profile is missing!\")\n        }\n        if(selectedCalibrationProfile == null){\n            messageArr.push(\"Calibration profile is missing!\")\n        }\n        if(JSON.stringify(selectedSensorData) === \"{}\"){\n            messageArr.push(\"Sensor data is missing!\")\n        }\n        showPopup(messageArr, 'error', messageArr.length > 2 ? 5: 2);\n    }\n\n\n}\nexport async function buildBatchCalibrationSheet(context,isVisiblePopup){\n    try{\n        const batchCBData = context.get(\"userInputtedData.batchCheckboxData\");\n        let payload = {\n        };\n        for (const key in batchCBData) {\n            payload[`cb${batchCBData[key]['calibrationID']}`] = batchCBData[key]['calibrationID'];\n        }\n        let responseData = await sendGETRequest(`batch_sensor_profile/`,payload);\n        const data = responseData['data'];\n        if (data.length > 0){\n\n            context.set(\"isShowConfig.isShowPopupNotification\", true);\n            Ember.run.scheduleOnce('afterRender', context, () => {\n                const masterContent = document.getElementById('notificationPopupContentBody');\n                masterContent.style.fontFamily = \"sans-serif\"\n                if(masterContent){\n\n                    //Start for looping each certificate obj data\n                    data.forEach((certificateObj, index)=>{\n                        Ember.run.scheduleOnce('afterRender', context, () => {\n                            const sensorProfile = certificateObj['sensorProfile'];\n                            const phaseILookupData = certificateObj['calibrationData']['phaseILookupData'][0];\n                            const phaseIICalibrationDataValueData = certificateObj['calibrationData']['phaseIICalibrationDataValueData'];\n                            const phaseIICurrentData = certificateObj['calibrationData']['phaseIICurrentData'][0];\n                            const phaseIISlopeData = certificateObj['calibrationData']['phaseIISlopeData'];\n                            const phaseIIOffsetData = certificateObj['calibrationData']['phaseIIOffsetData'];\n                            // console.log(sensorProfile);\n                            // console.log(phaseILookupData);\n                            // console.log(phaseIICalibrationDataValueData);\n                            // console.log(phaseIICurrentData);\n                            // console.log(phaseIISlopeData);\n                            // console.log(phaseIIOffsetData);\n                            const masterPopupContent = document.createElement('div');\n                            masterPopupContent.id=`certificate-${index}`;\n                            Object.assign(masterPopupContent.style, {\n                                paddingLeft: '20px',\n                                paddingRight: '20px',\n                                display: 'flex',\n                                flexDirection: 'column',\n                                justifyContent: 'space-between',\n                                width: '100%',\n                                fontFamily: \"sans-serif\"\n                            });\n                            //Logo header\n                            const logoComponent = document.createElement('img');\n                            // logoComponent.style.marginTop = `${index * 2}px`;\n                            logoComponent.style.alignSelf = 'center';\n                            logoComponent.style.width = '30%';\n                            logoComponent.src = '/assets/images/yieldpoint-logo.png';\n                            masterPopupContent.appendChild(logoComponent);\n                            //Main Title\n                            const mainComponent = document.createElement('div');\n                            mainComponent.style.fontSize = 'medium';\n                            mainComponent.style.fontWeight = 'bold';\n                            mainComponent.style.width=\"100%\";\n                            mainComponent.style.display=\"flex\";\n                            mainComponent.style.justifyContent=\"center\";\n                            mainComponent.textContent = `${sensorProfile['sensorID']} Calibration Report`;\n                            // mainComponent.style.letterSpacing = '0.01px';\n            \n                            masterPopupContent.appendChild(mainComponent);\n                            //Row 1 Section\n                            //Quick Detail Title\n                            const quickDetailTitle = document.createElement('div');\n                            quickDetailTitle.style.marginTop = '10px';\n                            quickDetailTitle.style.fontSize = 'small';\n                            quickDetailTitle.style.textDecoration = 'underline';\n                            quickDetailTitle.style.width=\"100%\";\n                            quickDetailTitle.style.fontWeight = 'bold';\n                            quickDetailTitle.textContent = `Quick Detail`;\n                            // quickDetailTitle.style.letterSpacing = '0.01px';\n                            const row1Section = document.createElement('div');\n                            row1Section.style.marginLeft = '25px';\n                            row1Section.style.fontSize = 'smaller';\n                            row1Section.style.width = '100%';\n                            row1Section.style.display = 'flex';\n                            row1Section.style.flexDirection = 'row';\n                            row1Section.style.alignItems = 'center';\n                            //Job ID \n                            const jobIDComponent = document.createElement('div');\n                            jobIDComponent.style.width = '20%';\n                            jobIDComponent.textContent = `Job: ${sensorProfile['jobID']}`;\n                            //Sensor Name \n                            const sensorNameComponent = document.createElement('div');\n                            sensorNameComponent.style.width = '20%';\n                            sensorNameComponent.textContent = `Name: ${sensorProfile['sensorName'] ? sensorProfile['sensorName'] : ''}`;\n                            //Sensor Description \n                            const sensorDescriptionComponent = document.createElement('div');\n                            sensorDescriptionComponent.style.width = '20%';\n                            sensorDescriptionComponent.textContent = `Description: ${sensorProfile['sensorDescription']}`;\n                            //Calibration Date \n                            const calibrationDateComponent = document.createElement('div');\n                            calibrationDateComponent.style.width = '40%';\n                            calibrationDateComponent.textContent = `Calibration Date: ${sensorProfile['calibrationDate'].split(' ')[0]}`;\n                            //Append to Row 1\n                            masterPopupContent.appendChild(quickDetailTitle);\n                            masterPopupContent.appendChild(row1Section);\n                            row1Section.appendChild(jobIDComponent);\n                            row1Section.appendChild(sensorNameComponent);\n                            row1Section.appendChild(sensorDescriptionComponent);\n                            row1Section.appendChild(calibrationDateComponent);\n            \n                            //Row 2A Section\n                            const technicalDetailTitle = document.createElement('div');\n                            technicalDetailTitle.style.marginTop = '10px';\n                            technicalDetailTitle.style.fontSize = 'small';\n                            technicalDetailTitle.style.textDecoration = 'underline';\n                            technicalDetailTitle.style.fontWeight = 'bold';\n                            technicalDetailTitle.textContent = `Technical Detail`;\n                            // technicalDetailTitle.style.letterSpacing = '0.01px';\n                            const row2ASection = document.createElement('div');\n                            row2ASection.style.marginLeft = '25px';\n                            row2ASection.style.fontSize = 'smaller';\n                            row2ASection.style.width = '100%';\n                            row2ASection.style.display = 'flex';\n                            row2ASection.style.flexDirection = 'row';\n                            row2ASection.style.alignItems = 'center';\n                            //Employee\n                            const employeeComponent = document.createElement('div');\n                            employeeComponent.style.width = '20%';\n                            employeeComponent.textContent = `Employee: ${sensorProfile['employee']}`;\n                            //Sensor ID \n                            const sensorIDComponent = document.createElement('div');\n                            sensorIDComponent.style.width = '20%';\n                            sensorIDComponent.textContent = `ID: ${sensorProfile['sensorID']}`;\n                            //Sensor Type\n                            const sensorTypeComponent = document.createElement('div');\n                            sensorTypeComponent.style.width = '20%';\n                            sensorTypeComponent.textContent = `Type: ${sensorProfile['type']}`;\n                            //Sensor Unit\n                            const sensorUnitComponent = document.createElement('div');\n                            sensorUnitComponent.style.width = '20%';\n                            sensorUnitComponent.textContent = `Unit: ${sensorProfile['unit']}`;\n            \n                            //Append to Row 2\n                            masterPopupContent.appendChild(technicalDetailTitle);\n                            masterPopupContent.appendChild(row2ASection);\n                            row2ASection.appendChild(employeeComponent);\n                            row2ASection.appendChild(sensorIDComponent);\n                            row2ASection.appendChild(sensorTypeComponent);\n                            row2ASection.appendChild(sensorUnitComponent);\n            \n                            //Row 2B Section\n                            const row2BSection = document.createElement('div');\n                            row2BSection.style.marginLeft = '25px';\n                            row2BSection.style.fontSize = 'smaller';\n                            row2BSection.style.width = '100%';\n                            row2BSection.style.display = 'flex';\n                            row2BSection.style.flexDirection = 'row';\n                            row2BSection.style.alignItems = 'center';\n                            //Rig Calib Cert S/N\n                            const refSNComponent = document.createElement('div');\n                            refSNComponent.style.width = '20%';\n                            refSNComponent.textContent = `Ref. Cert. S/N: ${sensorProfile['rigReferenceID']}`;\n                            //Rig Calib Cert S/N\n                            const refCertValueComponent = document.createElement('div');\n                            refCertValueComponent.style.width = '20%';\n                            refCertValueComponent.textContent = `Ref. Cert.: ${sensorProfile['rigReferenceCalibrationValue']}`;\n                            //Rig Calib Cert Date\n                            const refCertDateComponent = document.createElement('div');\n                            refCertDateComponent.style.width = '60%';\n                            refCertDateComponent.textContent = `Ref. Cert. Date: ${sensorProfile['rigReferenceCalibrationDate']}`;\n                            //Append to Row 2B\n                            // masterPopupContent.appendChild(row2BSection);\n                            row2BSection.appendChild(refSNComponent);\n                            row2BSection.appendChild(refCertValueComponent);\n                            row2BSection.appendChild(refCertDateComponent);\n            \n            \n                            //Calibration Data Table \n                            //Data Table Title\n                            const calibTableTitle = document.createElement('div');\n                            calibTableTitle.style.marginTop = '10px';\n                            calibTableTitle.style.fontSize = 'small';\n                            calibTableTitle.style.textDecoration = 'underline';\n                            calibTableTitle.style.fontWeight = 'bold';\n                            calibTableTitle.textContent = `Data`;\n                            masterPopupContent.appendChild(calibTableTitle);\n                            const table = document.createElement('table');\n                            table.style.marginTop=\"10px\"\n                            //Columns\n                            const thead = document.createElement('thead');\n                            thead.style.borderBottom= ``;\n                            const trColumns = document.createElement('tr');\n            \n                            let columns = []\n                            for(let i=0;i< sensorProfile['channels'];i++){\n                                if(i == 0){\n                                    columns.push(\"APPLIED DISP\");\n                                }else{\n                                    columns.push(`DISP ${i}`);\n                                }\n                            }\n                            columns.forEach((columnLabel, index)=>{\n                                const thColumn = document.createElement('th');\n                                thColumn.style.fontSize= `small`;\n                                thColumn.style.border= `solid`;\n                                thColumn.style.borderWidth= `1px`;\n                                thColumn.style.borderColor= `black`;\n                                thColumn.style.textAlign ='center';\n                                thColumn.textContent= `${columnLabel}`;\n                                trColumns.appendChild(thColumn);\n                            });\n            \n                            thead.appendChild(trColumns);\n                            table.appendChild(thead);\n                            //Rows\n                            const tbody = document.createElement('tbody');\n                            const checkpointPositionsLength = sensorProfile['checkpointPositions'].length\n                            for(let i=0;i< checkpointPositionsLength;i++){\n                                const trRows = document.createElement('tr');\n                                //Current Data\n                                const tdRowCurr = document.createElement('td');\n                                tdRowCurr.style.fontSize= `small`;\n                                tdRowCurr.style.border= `solid`;\n                                tdRowCurr.style.borderWidth= `1px`;\n                                tdRowCurr.style.textAlign ='center';\n                                tdRowCurr.textContent= phaseIICurrentData[i] ? `${phaseIICurrentData[i]}` : \"\";\n                                trRows.appendChild(tdRowCurr);\n                                phaseIICalibrationDataValueData.forEach((channelArray, index)=>{\n                                    //Displacement Row\n                                    const tdRowDisp = document.createElement('td');\n                                    tdRowDisp.style.fontSize= `small`;\n                                    tdRowDisp.style.border= `solid`;\n                                    tdRowDisp.style.borderWidth= `1px`;\n                                    tdRowDisp.style.textAlign ='center';\n                                    tdRowDisp.textContent= channelArray[i] ? `${channelArray[i]}` : \"\";\n                                    trRows.appendChild(tdRowDisp);\n                                });\n                                tbody.appendChild(trRows);\n                            }\n                            //Cal.Slop Data\n                            const trSlopeRows = document.createElement('tr');\n                            const tdSlopeCol = document.createElement('td');\n                            tdSlopeCol.style.fontSize= `small`;\n                            tdSlopeCol.style.border= `solid`;\n                            tdSlopeCol.style.borderWidth= `1px`;\n                            tdSlopeCol.style.textAlign ='center';\n                            tdSlopeCol.textContent= `CAL. SLOPE`;\n                            trSlopeRows.appendChild(tdSlopeCol);\n                            phaseIISlopeData.forEach((slopeVal, index)=>{\n                                //Displacement Row\n                                const tdRowDisp = document.createElement('td');\n                                tdRowDisp.style.fontSize= `small`;\n                                tdRowDisp.style.border= `solid`;\n                                tdRowDisp.style.borderWidth= `1px`;\n                                tdRowDisp.style.textAlign ='center';\n                                tdRowDisp.textContent= `${slopeVal}`;\n                                trSlopeRows.appendChild(tdRowDisp);\n                            });\n                            tbody.appendChild(trSlopeRows);\n            \n                            //Cal.Offset Data\n                            const trOffsetRows = document.createElement('tr');\n                            const tdoffsetCol = document.createElement('td');\n                            tdoffsetCol.style.fontSize= `small`;\n                            tdoffsetCol.style.border= `solid`;\n                            tdoffsetCol.style.borderWidth= `1px`;\n                            tdoffsetCol.style.textAlign ='center';\n                            tdoffsetCol.textContent= `CAL. OFFSET`;\n                            trOffsetRows.appendChild(tdoffsetCol);\n                            phaseIIOffsetData.forEach((offsetVal, index)=>{\n                                //Displacement Row\n                                const tdRowDisp = document.createElement('td');\n                                tdRowDisp.style.fontSize= `small`;\n                                tdRowDisp.style.border= `solid`;\n                                tdRowDisp.style.borderWidth= `1px`;\n                                tdRowDisp.style.textAlign ='center';\n                                tdRowDisp.textContent= `${offsetVal}`;\n                                trOffsetRows.appendChild(tdRowDisp);\n                            });\n                            tbody.appendChild(trOffsetRows);\n            \n                            table.appendChild(tbody);\n                            masterPopupContent.appendChild(table);\n            \n                            //Calibration Anchor Diagram\n                            if(!(Object.keys(sensorProfile['anchorDataValue']).length === 0 && sensorProfile['anchorDataValue'].constructor === Object)){\n                                //Anchor Diagram Title\n                                const anchorDiagramTitle = document.createElement('div');\n                                anchorDiagramTitle.style.marginTop = '25px';\n                                anchorDiagramTitle.style.fontSize = 'medium';\n                                anchorDiagramTitle.style.textDecoration = 'underline';\n                                anchorDiagramTitle.style.fontWeight = 'bold';\n                                anchorDiagramTitle.textContent = `Anchor Diagram`;\n                                masterPopupContent.appendChild(anchorDiagramTitle);\n            \n                                //Anchor Diagram Framework\n                                const masterDiagramSection = document.createElement('div');\n                                masterDiagramSection.className=\"masterAnchorDiagramStyle\";\n            \n                                const upperMasterSection = document.createElement('div');\n                                upperMasterSection.className=\"upperMasterSectionStyle\";\n                                upperMasterSection.id=\"upperMasterSection\";\n                                const anchorDummyHeadComponent1 = document.createElement('div');\n                                anchorDummyHeadComponent1.style.width=\"47px\"\n                                const anchorUpperTextBoxSection = document.createElement('div');\n                                anchorUpperTextBoxSection.className=\"anchorUpperTextBoxSectionStyle\";\n                                anchorUpperTextBoxSection.id=\"anchorUpperTextBoxSection\";\n                                const anchorDummyTailComponent1 = document.createElement('div');\n                                anchorDummyTailComponent1.style.width=\"47px\"\n                                upperMasterSection.appendChild(anchorDummyHeadComponent1);\n                                upperMasterSection.appendChild(anchorUpperTextBoxSection);\n                                upperMasterSection.appendChild(anchorDummyTailComponent1);\n            \n                                const anchorMasterSection = document.createElement('div');\n                                anchorMasterSection.className=\"anchorMasterSectionStyle\";\n                                anchorMasterSection.id=\"anchorMasterSection\"\n            \n                                const anchorHeadComponent = document.createElement('div');\n                                anchorHeadComponent.className=\"anchorHeadTextStyle\";\n                                anchorHeadComponent.textContent=\"HEAD\"\n            \n                                const anchorPointsComponent = document.createElement('div');\n                                anchorPointsComponent.className=\"anchorPointsSectionStyle\";\n                                anchorPointsComponent.id=\"anchorPointsSection\"\n            \n                                const anchorToeTextComponent = document.createElement('div');\n                                anchorToeTextComponent.className=\"anchorToeTextStyle\";\n                                anchorToeTextComponent.textContent=\"TOE\"\n            \n                                anchorMasterSection.appendChild(anchorHeadComponent);\n                                anchorMasterSection.appendChild(anchorPointsComponent);\n                                anchorMasterSection.appendChild(anchorToeTextComponent);\n            \n                                const lowerMasterSection = document.createElement('div');\n                                lowerMasterSection.className=\"lowerMasterSectionStyle\";\n                                lowerMasterSection.id=\"lowerMasterSection\"\n                                const anchorDummyHeadComponent2 = document.createElement('div');\n                                anchorDummyHeadComponent2.style.width=\"47px\"\n                                const anchorLowerTextBoxSection = document.createElement('div');\n                                anchorLowerTextBoxSection.className=\"anchorLowerTextBoxSection\";\n                                anchorLowerTextBoxSection.id=\"anchorLowerTextBoxSection\"\n                                const anchorDummyTailComponent2 = document.createElement('div');\n                                anchorDummyTailComponent2.style.width=\"47px\"\n            \n                                lowerMasterSection.appendChild(anchorDummyHeadComponent2);\n                                lowerMasterSection.appendChild(anchorLowerTextBoxSection);\n                                lowerMasterSection.appendChild(anchorDummyTailComponent2);\n            \n                                masterDiagramSection.appendChild(upperMasterSection);\n                                masterDiagramSection.appendChild(anchorMasterSection);\n                                masterDiagramSection.appendChild(lowerMasterSection);\n            \n                                if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                 \n                                    //Show Upper Section\n                                    upperMasterSection.style.display=\"flex\";\n                                    //Show Anchor Section\n                                    anchorMasterSection.style.display=\"flex\";\n                                    //Hide Lower Section\n                                    lowerMasterSection.style.display=\"none\";\n                                    //Show Master Section\n                                    masterDiagramSection.style.display=\"block\"\n                                }\n                                else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                                    //Show Upper Section\n                                    upperMasterSection.style.display=\"flex\";\n                                    //Show Anchor Section\n                                    anchorMasterSection.style.display=\"flex\";\n                                    //Show Lower Section\n                                    lowerMasterSection.style.display=\"flex\";\n                                    //Show Master Section\n                                    masterDiagramSection.style.display=\"block\"\n                                }else{\n                                    //Hide Everything\n                                    upperMasterSection.style.display=\"none\";\n                                    anchorMasterSection.style.display=\"none\";\n                                    lowerMasterSection.style.display=\"none\";\n                                    masterDiagramSection.style.display=\"none\"\n                                }\n                                //Build Channels so that it will be using building textboxes\n                                let visualAnchorPoints = [];\n                                try{\n                                    if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                                                                                     \n                                        for(let i=1; i <= sensorProfile['channels'] - 1; i ++){\n                                            visualAnchorPoints.push(i);\n                                        }\n                                    }\n                                    else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                                        for(let i=1; i <= (sensorProfile['channels'] - 1)/2; i ++){\n                                            visualAnchorPoints.push(i);\n                                        }\n                                    }else{\n                                    }\n                                }catch(e){\n                                    console.log(\"Error in 'Build Channels so that it will be using building textboxes' in buildAnchorDiagram: \" + e)\n                                }\n                                if(anchorUpperTextBoxSection){\n                    \n                                    anchorUpperTextBoxSection.innerHTML = '';\n                    \n                                    const firstBufferSection = document.createElement('div');\n                                    firstBufferSection.style.width = \"65px\";\n                                    firstBufferSection.style.height = \"15px\";\n                    \n                                    anchorUpperTextBoxSection.appendChild(firstBufferSection);\n                    \n                                    visualAnchorPoints.forEach((channel)=>{\n                                        const inputElement = document.createElement('div');\n                                        inputElement.style.fontSize=`small`\n                                        inputElement.style.width = \"50px\";\n                                        inputElement.style.display = 'flex';\n                                        inputElement.id=`upperAnchorTB${channel}-${index}`;\n                                        inputElement.style.justifyContent = 'center';\n                                        inputElement.style.fontWeight = 'bold';\n                                        // inputElement.textContent=`${channel}`\n                                        anchorUpperTextBoxSection.appendChild(inputElement);\n                                    });\n                                }\n                                if (anchorPointsComponent) {\n                                // Clear any existing children\n                                    anchorPointsComponent.innerHTML = '';\n                    \n                                    const headDiv = document.createElement('div');\n                                    headDiv.id='headDiv'\n                                    headDiv.style.display = \"block\";\n                                    headDiv.style.background = \"#4A6A9C\";\n                                    headDiv.style.width = \"65px\";\n                                    headDiv.style.height = \"15px\";\n                                    headDiv.style.borderRadius = \"10px 0 0 10px\";\n                                    anchorPointsComponent.appendChild(headDiv);\n                    \n                                    visualAnchorPoints.forEach((channel) => {\n                                        // Create anchor space\n                                        const anchorSpace = document.createElement('div');\n                                        anchorSpace.id=`anchorPoint${channel}`;\n                                        anchorSpace.style.width = '50px';\n                                        anchorSpace.style.height = '15px';\n                                        anchorSpace.style.display = 'flex';\n                                        anchorSpace.style.justifyContent = 'center';\n                                        anchorSpace.style.alignItems = 'center';\n                                        anchorSpace.style.flexDirection = 'row';\n                                        // Create anchor point\n                                        const anchorPoint = document.createElement('div');\n                                        anchorPoint.style.width = '8px';\n                                        anchorPoint.style.height = '8px';\n                                        anchorPoint.style.background = '#4A6A9C';\n                                        anchorPoint.style.borderStyle = 'solid';\n                                        anchorPoint.style.borderRadius = '999px';\n                                        anchorPoint.style.borderWidth = '1px';\n                    \n                    \n                                        anchorSpace.appendChild(anchorPoint);\n                                        anchorPointsComponent.appendChild(anchorSpace);\n                                    });\n                                }\n                                if(anchorLowerTextBoxSection){\n                    \n                                    anchorLowerTextBoxSection.innerHTML = '';\n                                    const firstBufferSection = document.createElement('div');\n                    \n                                    firstBufferSection.style.width = \"65px\";\n                                    firstBufferSection.style.height = \"15px\";\n                                    anchorLowerTextBoxSection.appendChild(firstBufferSection);\n                    \n                                    visualAnchorPoints.forEach((channel)=>{\n                                        const inputElement = document.createElement('div');\n                                        inputElement.style.fontSize=`small`\n                                        inputElement.style.width = \"50px\";\n                                        inputElement.style.display = 'flex';\n                                        inputElement.id=`lowerAnchorTB${channel}-${index}`;\n                                        inputElement.style.justifyContent = 'center';\n                                        inputElement.style.fontWeight = 'bold';\n                                        // inputElement.textContent=`${channel}`\n                                        anchorLowerTextBoxSection.appendChild(inputElement);\n                                    });\n                                }\n                                masterPopupContent.append(masterDiagramSection);\n                                //Load Initial values for textboxes, sensor type dependent\n                                //Uncomment section below if you want to have ID index as pre-loaded upperAnchorTBs\n                                try{\n                                    if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){\n                                        Ember.run.schedule('afterRender', this, () => {\n                                            Object.entries(sensorProfile['anchorDataValue']).map(([key, value])=>{\n                                                // console.log(`key:${key}, value:${value}`)\n                                                const upperAnchorElement = document.getElementById(`${key}-${index}`);\n                                                upperAnchorElement.style.fontSize ='small';\n                                                upperAnchorElement.style.fontWeight ='bold';\n                                                upperAnchorElement.textContent =`${value}`;\n                                            });\n                                        });\n                                }\n                                    else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                                        Ember.run.schedule('afterRender', this, () => {\n                                            Object.entries(sensorProfile['anchorDataValue']).map(([key, value])=>{\n                                                // console.log(`key:${key}, value:${value}`)\n                                                const lowerAnchorElement = document.getElementById(`${key}-${index}`);\n                                                lowerAnchorElement.style.fontSize ='small';\n                                                lowerAnchorElement.style.fontWeight ='bold';\n                                                lowerAnchorElement.textContent =`${value}`;\n                                            })\n                                        });\n                                    }else{\n                                    }\n                    \n                                }catch(e){\n                                    console.log(\"Error in 'Load Initial values for textboxes, sensor type dependent' in buildAnchorDiagram: \" + e)\n                                    console.log(e.stack);\n                                }\n            \n                                \n                            }\n                            //Memo\n                            const memoTitle = document.createElement('div');\n                            memoTitle.style.marginTop = '15px';\n                            memoTitle.style.fontSize = 'medium';\n                            memoTitle.style.textDecoration = 'underline';\n                            memoTitle.style.fontWeight = 'bold';\n                            memoTitle.textContent = `Memo`;\n                            masterPopupContent.appendChild(memoTitle);\n                            const memoValue = document.createElement('div');\n                            memoValue.style.fontSize = 'small';\n                            memoValue.style.whiteSpace = 'pre-line'; \n                            memoValue.textContent = sensorProfile['memo'];\n                            masterPopupContent.appendChild(memoValue);\n            \n                            //Page Break\n                            const pageBreakDiv = document.createElement('div');\n                            pageBreakDiv.style.display = 'block';\n                            pageBreakDiv.style.height = '0px';\n                            pageBreakDiv.style.pageBreakAfter = 'always';\n                            pageBreakDiv.style.breakAfter = 'page';       \n                            masterPopupContent.appendChild(pageBreakDiv);\n            \n                            //Calibration Graphs\n                            masterContent.appendChild(masterPopupContent);\n                        // });\n                        // Ember.run.scheduleOnce('afterRender', this, () => {\n                            createCalibrationGraphs(context, masterPopupContent, sensorProfile, phaseIICalibrationDataValueData, phaseIICurrentData);\n                        });\n                    })\n\n                    const okButtonComponent = document.getElementById('notificationOkButton');\n                    okButtonComponent.style.display = \"block\";\n                    okButtonComponent.style.marginRight = \"10px\";\n                    okButtonComponent.style.visibility = isVisiblePopup ? \"visible\" : \"hidden\";\n                    okButtonComponent.onclick = () => {\n                        context.send('closeNotificationPopup'); \n                    };\n                    const exportButtonComponent = document.getElementById('notificationExportButton');\n                    exportButtonComponent.style.display = \"block\";\n                    exportButtonComponent.style.visibility = isVisiblePopup ? \"visible\" : \"hidden\";\n                    exportButtonComponent.onclick = async () => {\n                        showPopup([\"Exporting...\"],\"notification\");\n                        const zip = new JSZip();\n                        for (const [index, certificateObj] of data.entries()) {\n                            const sensorProfile = certificateObj['sensorProfile'];\n                            const container = document.getElementById(`certificate-${index}`);\n                            if (container) {\n\n                                const opts = {\n                                    margin: 0,\n                                    filename: `${sensorProfile['sensorID']}.pdf`,\n                                    image: { type: 'jpeg', quality: 0.98 },\n                                    html2canvas: { scale: 2, useCORS: true },\n                                    jsPDF: { unit: 'in', format: 'a4', orientation: 'portrait' },\n                                    pagebreak: { mode: ['avoid-all', 'css', 'legacy'] }\n                                };\n                                const pdfBlob = await html2pdf().set(opts).from(container).outputPdf('blob');\n                                zip.file(`${sensorProfile['sensorID']}.pdf`, pdfBlob);\n                            } else {\n                                console.error(`Element with ID certificate-${index} not found.`);\n                            }\n                        } \n                        const zipBlob = await zip.generateAsync({ type: 'blob' });\n                        saveAs(zipBlob, 'calibration_certificates.zip');\n                        context.send('closeNotificationPopup'); \n                    };\n\n                    if (!isVisiblePopup) {\n                        // Do not wait for user click — auto-export silently\n                        setTimeout(() => {\n                            exportButtonComponent.onclick();\n                        }, 500); // Delay to ensure DOM is ready\n                    }\n                }\n            });\n\n        }else{\n            showPopup([\"Please select calibration(s)!\"], \"notification\")\n\n        }\n    }catch(error){\n        console.error('Error buildBatchCalibrationSheet:', error);\n        console.log(err.stack);\n\n    }\n}\nexport async function buildCalibrationSheet(context, calibrationID){\n    try{\n        const sensorProfileList = context.get(\"frontendData.calibrationInstrumentProfileList\");\n        let selectedSensorProfileObj = null;\n        sensorProfileList.forEach((sensorProfile, index)=>{\n            if (sensorProfile['calibrationId'] === calibrationID){\n                selectedSensorProfileObj = sensorProfile;\n            }\n        });\n        if(selectedSensorProfileObj != null){\n\n            let responseData = await sendGETRequest(`sensor_profile/${calibrationID}/`);\n            const data = responseData['data'];\n            const sensorProfile = data['sensorProfile'];\n            const phaseILookupData = data['calibrationData']['phaseILookupData'];\n            const phaseIICalibrationDataValueData = data['calibrationData']['phaseIICalibrationDataValueData'];\n            const phaseIICurrentData = data['calibrationData']['phaseIICurrentData'];\n            const phaseIISlopeData = data['calibrationData']['phaseIISlopeData'];\n            const phaseIIOffsetData = data['calibrationData']['phaseIIOffsetData'];\n            console.log(\"you selected\") \n            console.log(data);\n\n            context.set(\"isShowConfig.isShowPopupNotification\", true);\n            Ember.run.scheduleOnce('afterRender', context, () => {\n                const masterPopupContent = document.getElementById('notificationPopupContentBody');\n                masterPopupContent.style.fontFamily = \"sans-serif\"\n                if(masterPopupContent){\n                    //Logo header\n                    const logoComponent = document.createElement('img');\n                    logoComponent.style.alignSelf = 'center';\n                    logoComponent.style.width = '30%';\n                    logoComponent.style.paddingTop = '10px';\n                    logoComponent.src = '/assets/images/yieldpoint-logo.png';\n                    masterPopupContent.appendChild(logoComponent);\n                    //Main Title\n                    const mainComponent = document.createElement('div');\n                    mainComponent.style.fontSize = 'medium';\n                    mainComponent.style.fontWeight = 'bold';\n                    mainComponent.style.width=\"100%\";\n                    mainComponent.style.display=\"flex\";\n                    mainComponent.style.justifyContent=\"center\";\n                    mainComponent.textContent = `${sensorProfile['sensorID']} Calibration Report`;\n                    // mainComponent.style.letterSpacing = '0.01px';\n\n                    masterPopupContent.appendChild(mainComponent);\n                    //Row 1 Section\n                    //Quick Detail Title\n                    const quickDetailTitle = document.createElement('div');\n                    quickDetailTitle.style.marginTop = '10px';\n                    quickDetailTitle.style.fontSize = 'small';\n                    quickDetailTitle.style.textDecoration = 'underline';\n                    quickDetailTitle.style.width=\"100%\";\n                    quickDetailTitle.style.fontWeight = 'bold';\n                    quickDetailTitle.textContent = `Quick Detail`;\n                    // quickDetailTitle.style.letterSpacing = '0.01px';\n                    const row1Section = document.createElement('div');\n                    row1Section.style.marginLeft = '25px';\n                    row1Section.style.fontSize = 'smaller';\n                    row1Section.style.width = '100%';\n                    row1Section.style.display = 'flex';\n                    row1Section.style.flexDirection = 'row';\n                    row1Section.style.alignItems = 'center';\n                    //Job ID \n                    const jobIDComponent = document.createElement('div');\n                    jobIDComponent.style.width = '20%';\n                    jobIDComponent.textContent = `Job: ${sensorProfile['jobID']}`;\n                    //Sensor Name \n                    const sensorNameComponent = document.createElement('div');\n                    sensorNameComponent.style.width = '20%';\n                    sensorNameComponent.textContent = `Name: ${sensorProfile['sensorName'] ? sensorProfile['sensorName'] : ''}`;\n                    //Sensor Description \n                    const sensorDescriptionComponent = document.createElement('div');\n                    sensorDescriptionComponent.style.width = '20%';\n                    sensorDescriptionComponent.textContent = `Description: ${sensorProfile['sensorDescription']}`;\n                    //Calibration Date \n                    const calibrationDateComponent = document.createElement('div');\n                    calibrationDateComponent.style.width = '40%';\n                    calibrationDateComponent.textContent = `Calibration Date: ${sensorProfile['calibrationDate'].split(' ')[0]}`;\n                    //Append to Row 1\n                    masterPopupContent.appendChild(quickDetailTitle);\n                    masterPopupContent.appendChild(row1Section);\n                    row1Section.appendChild(jobIDComponent);\n                    row1Section.appendChild(sensorNameComponent);\n                    row1Section.appendChild(sensorDescriptionComponent);\n                    row1Section.appendChild(calibrationDateComponent);\n\n                    //Row 2A Section\n                    const technicalDetailTitle = document.createElement('div');\n                    technicalDetailTitle.style.marginTop = '10px';\n                    technicalDetailTitle.style.fontSize = 'small';\n                    technicalDetailTitle.style.textDecoration = 'underline';\n                    technicalDetailTitle.style.fontWeight = 'bold';\n                    technicalDetailTitle.textContent = `Technical Detail`;\n                    // technicalDetailTitle.style.letterSpacing = '0.01px';\n                    const row2ASection = document.createElement('div');\n                    row2ASection.style.marginLeft = '25px';\n                    row2ASection.style.fontSize = 'smaller';\n                    row2ASection.style.width = '100%';\n                    row2ASection.style.display = 'flex';\n                    row2ASection.style.flexDirection = 'row';\n                    row2ASection.style.alignItems = 'center';\n                    //Employee\n                    const employeeComponent = document.createElement('div');\n                    employeeComponent.style.width = '20%';\n                    employeeComponent.textContent = `Employee: ${sensorProfile['employee']}`;\n                    //Sensor ID \n                    const sensorIDComponent = document.createElement('div');\n                    sensorIDComponent.style.width = '20%';\n                    sensorIDComponent.textContent = `ID: ${sensorProfile['sensorID']}`;\n                    //Sensor Type\n                    const sensorTypeComponent = document.createElement('div');\n                    sensorTypeComponent.style.width = '20%';\n                    sensorTypeComponent.textContent = `Type: ${sensorProfile['type']}`;\n                    //Sensor Unit\n                    const sensorUnitComponent = document.createElement('div');\n                    sensorUnitComponent.style.width = '20%';\n                    sensorUnitComponent.textContent = `Unit: ${sensorProfile['unit']}`;\n\n                    //Append to Row 2\n                    masterPopupContent.appendChild(technicalDetailTitle);\n                    masterPopupContent.appendChild(row2ASection);\n                    row2ASection.appendChild(employeeComponent);\n                    row2ASection.appendChild(sensorIDComponent);\n                    row2ASection.appendChild(sensorTypeComponent);\n                    row2ASection.appendChild(sensorUnitComponent);\n\n                    //Row 2B Section\n                    const row2BSection = document.createElement('div');\n                    row2BSection.style.marginLeft = '25px';\n                    row2BSection.style.fontSize = 'smaller';\n                    row2BSection.style.width = '100%';\n                    row2BSection.style.display = 'flex';\n                    row2BSection.style.flexDirection = 'row';\n                    row2BSection.style.alignItems = 'center';\n                    //Rig Calib Cert S/N\n                    const refSNComponent = document.createElement('div');\n                    refSNComponent.style.width = '20%';\n                    refSNComponent.textContent = `Ref. Cert. S/N: ${sensorProfile['rigReferenceID']}`;\n                    //Rig Calib Cert S/N\n                    const refCertValueComponent = document.createElement('div');\n                    refCertValueComponent.style.width = '20%';\n                    refCertValueComponent.textContent = `Ref. Cert.: ${sensorProfile['rigReferenceCalibrationValue']}`;\n                    //Rig Calib Cert Date\n                    const refCertDateComponent = document.createElement('div');\n                    refCertDateComponent.style.width = '60%';\n                    refCertDateComponent.textContent = `Ref. Cert. Date: ${sensorProfile['rigReferenceCalibrationDate']}`;\n                    //Append to Row 2B\n                    // masterPopupContent.appendChild(row2BSection);\n                    row2BSection.appendChild(refSNComponent);\n                    row2BSection.appendChild(refCertValueComponent);\n                    row2BSection.appendChild(refCertDateComponent);\n\n\n                    //Calibration Data Table \n                    //Data Table Title\n                    const calibTableTitle = document.createElement('div');\n                    calibTableTitle.style.marginTop = '10px';\n                    calibTableTitle.style.fontSize = 'small';\n                    calibTableTitle.style.textDecoration = 'underline';\n                    calibTableTitle.style.fontWeight = 'bold';\n                    calibTableTitle.textContent = `Data`;\n                    masterPopupContent.appendChild(calibTableTitle);\n                    const table = document.createElement('table');\n                    table.style.marginTop=\"10px\"\n                    //Columns\n                    const thead = document.createElement('thead');\n                    thead.style.borderBottom= ``;\n                    const trColumns = document.createElement('tr');\n\n                    let columns = []\n                    for(let i=0;i< sensorProfile['channels'];i++){\n                        if(i == 0){\n                            columns.push(\"APPLIED DISP\");\n                        }else{\n                            columns.push(`DISP ${i}`);\n                        }\n                    }\n                    columns.forEach((columnLabel, index)=>{\n                        const thColumn = document.createElement('th');\n                        thColumn.style.fontSize= `small`;\n                        thColumn.style.border= `solid`;\n                        thColumn.style.borderWidth= `1px`;\n                        thColumn.style.borderColor= `black`;\n                        thColumn.style.textAlign ='center';\n                        thColumn.textContent= `${columnLabel}`;\n                        trColumns.appendChild(thColumn);\n                    });\n\n                    thead.appendChild(trColumns);\n                    table.appendChild(thead);\n                    //Rows\n                    const tbody = document.createElement('tbody');\n                    const checkpointPositionsLength = sensorProfile['checkpointPositions'].length\n                    for(let i=0;i< checkpointPositionsLength;i++){\n                        const trRows = document.createElement('tr');\n                        //Current Data\n                        const tdRowCurr = document.createElement('td');\n                        tdRowCurr.style.fontSize= `small`;\n                        tdRowCurr.style.border= `solid`;\n                        tdRowCurr.style.borderWidth= `1px`;\n                        tdRowCurr.style.textAlign ='center';\n                        tdRowCurr.textContent= `${phaseIICurrentData[i]}`;\n                        trRows.appendChild(tdRowCurr);\n                        phaseIICalibrationDataValueData.forEach((channelArray, index)=>{\n                            //Displacement Row\n                            const tdRowDisp = document.createElement('td');\n                            tdRowDisp.style.fontSize= `small`;\n                            tdRowDisp.style.border= `solid`;\n                            tdRowDisp.style.borderWidth= `1px`;\n                            tdRowDisp.style.textAlign ='center';\n                            tdRowDisp.textContent= `${channelArray[i]}`;\n                            trRows.appendChild(tdRowDisp);\n                        });\n                        tbody.appendChild(trRows);\n                    }\n                    //Cal.Slop Data\n                    const trSlopeRows = document.createElement('tr');\n                    const tdSlopeCol = document.createElement('td');\n                    tdSlopeCol.style.fontSize= `small`;\n                    tdSlopeCol.style.border= `solid`;\n                    tdSlopeCol.style.borderWidth= `1px`;\n                    tdSlopeCol.style.textAlign ='center';\n                    tdSlopeCol.textContent= `CAL. SLOPE`;\n                    trSlopeRows.appendChild(tdSlopeCol);\n                    phaseIISlopeData.forEach((slopeVal, index)=>{\n                        //Displacement Row\n                        const tdRowDisp = document.createElement('td');\n                        tdRowDisp.style.fontSize= `small`;\n                        tdRowDisp.style.border= `solid`;\n                        tdRowDisp.style.borderWidth= `1px`;\n                        tdRowDisp.style.textAlign ='center';\n                        tdRowDisp.textContent= `${slopeVal}`;\n                        trSlopeRows.appendChild(tdRowDisp);\n                    });\n                    tbody.appendChild(trSlopeRows);\n\n                    //Cal.Offset Data\n                    const trOffsetRows = document.createElement('tr');\n                    const tdoffsetCol = document.createElement('td');\n                    tdoffsetCol.style.fontSize= `small`;\n                    tdoffsetCol.style.border= `solid`;\n                    tdoffsetCol.style.borderWidth= `1px`;\n                    tdoffsetCol.style.textAlign ='center';\n                    tdoffsetCol.textContent= `CAL. OFFSET`;\n                    trOffsetRows.appendChild(tdoffsetCol);\n                    phaseIIOffsetData.forEach((offsetVal, index)=>{\n                        //Displacement Row\n                        const tdRowDisp = document.createElement('td');\n                        tdRowDisp.style.fontSize= `small`;\n                        tdRowDisp.style.border= `solid`;\n                        tdRowDisp.style.borderWidth= `1px`;\n                        tdRowDisp.style.textAlign ='center';\n                        tdRowDisp.textContent= `${offsetVal}`;\n                        trOffsetRows.appendChild(tdRowDisp);\n                    });\n                    tbody.appendChild(trOffsetRows);\n\n                    table.appendChild(tbody);\n                    masterPopupContent.appendChild(table);\n\n                    const watermark = document.createElement('div');\n                    watermark.textContent = \"UNOFFICIAL DOCUMENT\";\n                    watermark.style.cssText = `\n                        position: fixed; /* Fixed instead of absolute */\n                        top: 50%; /* Centered vertically */\n                        left: 50%; /* Centered horizontally */\n                        transform: translate(-50%, -50%) rotate(-45deg); /* Center and rotate */\n                        color: rgba(255, 0, 0, 0.6); /* Semi-transparent red */\n                        font-size: 100px;\n                        font-weight: bold;\n                        width: 100%;\n                        text-align: center;\n                        pointer-events: none; /* Click through */\n                        z-index: 1000;\n                    `;\n                    // Adjust position to ensure it covers the entire content area\n                    watermark.style.top = '50%';\n                    watermark.style.left = '50%';\n                    masterPopupContent.style.position = 'relative';\n                    // masterPopupContent.appendChild(watermark);\n\n                    //Calibration Anchor Diagram\n                    if(!(Object.keys(sensorProfile['anchorDataValue']).length === 0 && sensorProfile['anchorDataValue'].constructor === Object)){\n                        //Anchor Diagram Title\n                        const anchorDiagramTitle = document.createElement('div');\n                        anchorDiagramTitle.style.marginTop = '25px';\n                        anchorDiagramTitle.style.fontSize = 'medium';\n                        anchorDiagramTitle.style.textDecoration = 'underline';\n                        anchorDiagramTitle.style.fontWeight = 'bold';\n                        anchorDiagramTitle.textContent = `Anchor Diagram`;\n                        masterPopupContent.appendChild(anchorDiagramTitle);\n\n                        //Anchor Diagram Framework\n                        const masterDiagramSection = document.createElement('div');\n                        masterDiagramSection.className=\"masterAnchorDiagramStyle\";\n\n                        const upperMasterSection = document.createElement('div');\n                        upperMasterSection.className=\"upperMasterSectionStyle\";\n                        upperMasterSection.id=\"upperMasterSection\";\n                        const anchorDummyHeadComponent1 = document.createElement('div');\n                        anchorDummyHeadComponent1.style.width=\"47px\"\n                        const anchorUpperTextBoxSection = document.createElement('div');\n                        anchorUpperTextBoxSection.className=\"anchorUpperTextBoxSectionStyle\";\n                        anchorUpperTextBoxSection.id=\"anchorUpperTextBoxSection\";\n                        const anchorDummyTailComponent1 = document.createElement('div');\n                        anchorDummyTailComponent1.style.width=\"47px\"\n                        upperMasterSection.appendChild(anchorDummyHeadComponent1);\n                        upperMasterSection.appendChild(anchorUpperTextBoxSection);\n                        upperMasterSection.appendChild(anchorDummyTailComponent1);\n\n                        const anchorMasterSection = document.createElement('div');\n                        anchorMasterSection.className=\"anchorMasterSectionStyle\";\n                        anchorMasterSection.id=\"anchorMasterSection\"\n\n                        const anchorHeadComponent = document.createElement('div');\n                        anchorHeadComponent.className=\"anchorHeadTextStyle\";\n                        anchorHeadComponent.textContent=\"HEAD\"\n\n                        const anchorPointsComponent = document.createElement('div');\n                        anchorPointsComponent.className=\"anchorPointsSectionStyle\";\n                        anchorPointsComponent.id=\"anchorPointsSection\"\n\n                        const anchorToeTextComponent = document.createElement('div');\n                        anchorToeTextComponent.className=\"anchorToeTextStyle\";\n                        anchorToeTextComponent.textContent=\"TOE\"\n\n                        anchorMasterSection.appendChild(anchorHeadComponent);\n                        anchorMasterSection.appendChild(anchorPointsComponent);\n                        anchorMasterSection.appendChild(anchorToeTextComponent);\n\n                        const lowerMasterSection = document.createElement('div');\n                        lowerMasterSection.className=\"lowerMasterSectionStyle\";\n                        lowerMasterSection.id=\"lowerMasterSection\"\n                        const anchorDummyHeadComponent2 = document.createElement('div');\n                        anchorDummyHeadComponent2.style.width=\"47px\"\n                        const anchorLowerTextBoxSection = document.createElement('div');\n                        anchorLowerTextBoxSection.className=\"anchorLowerTextBoxSection\";\n                        anchorLowerTextBoxSection.id=\"anchorLowerTextBoxSection\"\n                        const anchorDummyTailComponent2 = document.createElement('div');\n                        anchorDummyTailComponent2.style.width=\"47px\"\n\n                        lowerMasterSection.appendChild(anchorDummyHeadComponent2);\n                        lowerMasterSection.appendChild(anchorLowerTextBoxSection);\n                        lowerMasterSection.appendChild(anchorDummyTailComponent2);\n\n                        masterDiagramSection.appendChild(upperMasterSection);\n                        masterDiagramSection.appendChild(anchorMasterSection);\n                        masterDiagramSection.appendChild(lowerMasterSection);\n\n                        if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                 \n                            //Show Upper Section\n                            upperMasterSection.style.display=\"flex\";\n                            //Show Anchor Section\n                            anchorMasterSection.style.display=\"flex\";\n                            //Hide Lower Section\n                            lowerMasterSection.style.display=\"none\";\n                            //Show Master Section\n                            masterDiagramSection.style.display=\"block\"\n                        }\n                        else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                            //Show Upper Section\n                            upperMasterSection.style.display=\"flex\";\n                            //Show Anchor Section\n                            anchorMasterSection.style.display=\"flex\";\n                            //Show Lower Section\n                            lowerMasterSection.style.display=\"flex\";\n                            //Show Master Section\n                            masterDiagramSection.style.display=\"block\"\n                        }else{\n                            //Hide Everything\n                            upperMasterSection.style.display=\"none\";\n                            anchorMasterSection.style.display=\"none\";\n                            lowerMasterSection.style.display=\"none\";\n                            masterDiagramSection.style.display=\"none\"\n                        }\n                        //Build Channels so that it will be using building textboxes\n                        let visualAnchorPoints = [];\n                        try{\n                            if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                                                                                     \n                                for(let i=1; i <= sensorProfile['channels'] - 1; i ++){\n                                    visualAnchorPoints.push(i);\n                                }\n                            }\n                            else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                                for(let i=1; i <= (sensorProfile['channels'] - 1)/2; i ++){\n                                    visualAnchorPoints.push(i);\n                                }\n                            }else{\n                            }\n                        }catch(e){\n                            console.log(\"Error in 'Build Channels so that it will be using building textboxes' in buildAnchorDiagram: \" + e)\n                        }\n                        if(anchorUpperTextBoxSection){\n            \n                            anchorUpperTextBoxSection.innerHTML = '';\n            \n                            const firstBufferSection = document.createElement('div');\n                            firstBufferSection.style.width = \"65px\";\n                            firstBufferSection.style.height = \"15px\";\n            \n                            anchorUpperTextBoxSection.appendChild(firstBufferSection);\n            \n                            visualAnchorPoints.forEach((channel)=>{\n                                const inputElement = document.createElement('div');\n                                inputElement.style.fontSize=`small`\n                                inputElement.style.width = \"50px\";\n                                inputElement.style.display = 'flex';\n                                inputElement.id=`upperAnchorTB${channel}`;\n                                inputElement.style.justifyContent = 'center';\n                                inputElement.style.fontWeight = 'bold';\n                                // inputElement.textContent=`${channel}`\n                                anchorUpperTextBoxSection.appendChild(inputElement);\n                            });\n                        }\n                        if (anchorPointsComponent) {\n                        // Clear any existing children\n                            anchorPointsComponent.innerHTML = '';\n            \n                            const headDiv = document.createElement('div');\n                            headDiv.id='headDiv'\n                            headDiv.style.display = \"block\";\n                            headDiv.style.background = \"#4A6A9C\";\n                            headDiv.style.width = \"65px\";\n                            headDiv.style.height = \"15px\";\n                            headDiv.style.borderRadius = \"10px 0 0 10px\";\n                            anchorPointsComponent.appendChild(headDiv);\n            \n                            visualAnchorPoints.forEach((channel) => {\n                                // Create anchor space\n                                const anchorSpace = document.createElement('div');\n                                anchorSpace.id=`anchorPoint${channel}`;\n                                anchorSpace.style.width = '50px';\n                                anchorSpace.style.height = '15px';\n                                anchorSpace.style.display = 'flex';\n                                anchorSpace.style.justifyContent = 'center';\n                                anchorSpace.style.alignItems = 'center';\n                                anchorSpace.style.flexDirection = 'row';\n                                // Create anchor point\n                                const anchorPoint = document.createElement('div');\n                                anchorPoint.style.width = '8px';\n                                anchorPoint.style.height = '8px';\n                                anchorPoint.style.background = '#4A6A9C';\n                                anchorPoint.style.borderStyle = 'solid';\n                                anchorPoint.style.borderRadius = '999px';\n                                anchorPoint.style.borderWidth = '1px';\n            \n            \n                                anchorSpace.appendChild(anchorPoint);\n                                anchorPointsComponent.appendChild(anchorSpace);\n                            });\n                        }\n                        if(anchorLowerTextBoxSection){\n            \n                            anchorLowerTextBoxSection.innerHTML = '';\n                            const firstBufferSection = document.createElement('div');\n            \n                            firstBufferSection.style.width = \"65px\";\n                            firstBufferSection.style.height = \"15px\";\n                            anchorLowerTextBoxSection.appendChild(firstBufferSection);\n            \n                            visualAnchorPoints.forEach((channel)=>{\n                                const inputElement = document.createElement('div');\n                                inputElement.style.fontSize=`small`\n                                inputElement.style.width = \"50px\";\n                                inputElement.style.display = 'flex';\n                                inputElement.id=`lowerAnchorTB${channel}`;\n                                inputElement.style.justifyContent = 'center';\n                                inputElement.style.fontWeight = 'bold';\n                                // inputElement.textContent=`${channel}`\n                                anchorLowerTextBoxSection.appendChild(inputElement);\n                            });\n                        }\n                        masterPopupContent.append(masterDiagramSection);\n                        //Load Initial values for textboxes, sensor type dependent\n                        //Uncomment section below if you want to have ID index as pre-loaded upperAnchorTBs\n                        try{\n                            // console.log(\"sensorProfile\")\n                            // console.log(sensorProfile)\n                            if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){\n                                Object.entries(sensorProfile['anchorDataValue']).map(([key, value])=>{\n                                    // console.log(`key:${key}, value:${value}`)\n                                    const upperAnchorElement = document.getElementById(key);\n                                    upperAnchorElement.style.fontSize ='small';\n                                    upperAnchorElement.style.fontWeight ='bold';\n                                    upperAnchorElement.textContent =`${value}`;\n                                })\n                            }\n                            else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n            \n                                Object.entries(sensorProfile['anchorDataValue']).map(([key, value])=>{\n                                    // console.log(`key:${key}, value:${value}`)\n                                    const lowerAnchorElement = document.getElementById(key);\n                                    lowerAnchorElement.style.fontSize ='small';\n                                    lowerAnchorElement.style.fontWeight ='bold';\n                                    lowerAnchorElement.textContent =`${value}`;\n                                })\n                            }else{\n                            }\n            \n                        }catch(e){\n                            console.log(\"Error in 'Load Initial values for textboxes, sensor type dependent' in buildAnchorDiagram: \" + e)\n                        }\n\n                        \n                    }\n                    //Memo\n                    const memoTitle = document.createElement('div');\n                    memoTitle.style.marginTop = '15px';\n                    memoTitle.style.fontSize = 'medium';\n                    memoTitle.style.textDecoration = 'underline';\n                    memoTitle.style.fontWeight = 'bold';\n                    memoTitle.textContent = `Memo`;\n                    masterPopupContent.appendChild(memoTitle);\n                    const memoValue = document.createElement('div');\n                    memoValue.style.fontSize = 'small';\n                    memoValue.style.whiteSpace = 'pre-line'; \n                    memoValue.textContent = sensorProfile['memo'];\n                    masterPopupContent.appendChild(memoValue);\n\n                    //Page Break\n                    const pageBreakDiv = document.createElement('div');\n                    pageBreakDiv.style.breakAfter='page';\n                    masterPopupContent.appendChild(pageBreakDiv);\n\n                    //Calibration Graphs\n                    createCalibrationGraphs(context, masterPopupContent, sensorProfile, phaseIICalibrationDataValueData, phaseIICurrentData);\n\n                    const okButtonComponent = document.getElementById('notificationOkButton');\n                    okButtonComponent.style.display = \"block\";\n                    okButtonComponent.style.marginRight = \"10px\";\n                    okButtonComponent.onclick = () => {\n                        context.send('closeNotificationPopup'); \n                    };\n                    const printButtonComponent = document.getElementById('notificationPrintButton');\n                    printButtonComponent.style.display = \"block\";\n                    printButtonComponent.onclick = () => {\n                        const element = document.getElementById('notificationPopupContentBody');\n                        const opt = {\n                            margin:       0, // inches\n                            filename:      `${sensorProfile.sensorID}.pdf`,\n                            image:        { type: 'jpeg', quality: 0.98 },\n                            html2canvas:  { scale: 2, useCORS: true,allowTaint: true, },\n                            jsPDF:        { unit: 'in', format: 'a4', orientation: 'portrait' },\n                            pagebreak: {\n                            mode: ['css', 'legacy'],\n                            avoid: ['.no-break'],\n                            }\n                        };\n                        // html2pdf().set(opt).from(element).save();\n                        html2pdf().set(opt).from(element).outputPdf('blob').then((pdfBlob) => {\n                            // Trigger file download (original behavior)\n                            saveAs(pdfBlob, `${sensorProfile.sensorID}.pdf`);\n\n                            // OPTIONAL: Also emit event or save to global context for ZIP bundling\n                            // e.g. window.generatedPDFs = window.generatedPDFs || {};\n                            // window.generatedPDFs[sensorProfile.sensorID] = pdfBlob;\n                        });\n                    };\n                    if (!isVisiblePopup) {\n                        // Do not wait for user click — auto-export silently\n                        setTimeout(() => exportButtonComponent.onclick(), 500); // Delay to ensure DOM is ready\n                    }\n                    \n                }\n            });\n        \n        }else{\n            showPopup(['Your selected sensor profile cannot be found!'], 'error', 2);\n        }\n\n    }catch (error) {\n        console.error('Error buildCalibrationSheet:', error);\n        console.log(err.stack);\n    }\n}\nfunction roundDownAuto(number) {\n    const digits = Math.floor(Math.log10(number));       // Count digits - 1\n    const place = Math.pow(10, digits);\n    const stepSize = Math.floor(number / place) * place;\n    // console.log(`number:${number} | step size:${stepSize}`)\n    return stepSize;\n}\nfunction createCalibrationGraphs(context, masterPopupContent, sensorProfile, arrayY, xValues) {\n  \n    // // Iterate over each Y-axis array and create a chart\n    const columns = 2;\n    const height='200px'\n    const displacementUnit = ['mm','mm','μm'];\n    const pressureUnit = ['kPa','Pa','PSI'];\n    let row;\n    //Graph Title\n    const anchorDiagramTitle = document.createElement('div');\n    anchorDiagramTitle.style.marginTop = '25px';\n    anchorDiagramTitle.style.fontSize = 'medium';\n    anchorDiagramTitle.style.textDecoration = 'underline';\n    anchorDiagramTitle.style.fontWeight = 'bold';\n    anchorDiagramTitle.textContent = `${context.settingsConfig.APPROVEDINSTRUMENTTYPES[sensorProfile['type']] ? context.settingsConfig.APPROVEDINSTRUMENTTYPES[sensorProfile['type']].typeCategory : \"\"} Graphs`;\n    masterPopupContent.appendChild(anchorDiagramTitle);\n\n    arrayY.forEach((yValues, index) => {\n        if(index % columns === 0){\n            row = document.createElement('div');\n            row.style.width ='700px';\n            row.style.display ='flex';\n            row.style.flexDirection='row';\n            row.style.alignItems='center';\n            row.style.justifyContent = 'space-evenly';\n            masterPopupContent.appendChild(row);\n        }\n        const calibrationGraphsDiv = document.createElement('div');\n        calibrationGraphsDiv.id=`calibrationGraph${index}`;\n        // calibrationGraphsDiv.style.width = '50%';\n        // calibrationGraphsDiv.style.height = height;\n        const calibrationGraphs = document.createElement('canvas');\n        // calibrationGraphs.style.height='400px';\n        // calibrationGraphs.style.width='400px';\n        calibrationGraphsDiv.appendChild(calibrationGraphs);\n        row.appendChild(calibrationGraphsDiv);\n        new Chart(calibrationGraphs, {\n            type: 'line',\n            data: {\n                labels: xValues,\n                datasets: [\n                    {\n                        label: `CH${index + 1}`,\n                        data: yValues,\n                        borderColor: 'rgba(0,0,0)',\n                        borderWidth: 1,\n                        pointRadius: 2, \n                        pointBackgroundColor: 'black',  \n                        fill: false,\n                    }\n                ]\n            },\n            options: {\n                responsive: true,\n                maintainAspectRatio: true,\n                aspectRatio: 1, \n                scales: {\n                    x: getAxisChartOption(context, sensorProfile, xValues, yValues)['x'],\n                    y: getAxisChartOption(context, sensorProfile, xValues, yValues)['y']\n                },\n                plugins: {  \n                    title: {\n                        display: true,\n                        text: `Channel ${index + 1}`\n                    },\n                    legend: {\n                        display: false,\n                    },\n                    tooltip: {\n                        enabled: true,\n                    },\n                },\n                elements: {                                         \n                    // point: {\n                    //     radius: 0, // Remove the circle markers\n                    // },\n                },\n            },\n        });\n         \n    });\n}\nfunction getAxisChartOption(context, sensorProfile, xValues, yValues){\n    let option={\n        x:{},\n        y:{}\n    }\n    try{\n        //For x axis\n        option['x'] = {\n            type: 'linear',\n            display: true,\n            data:xValues,\n            title: {\n                display: true,\n                text: `Applied ${context.settingsConfig.APPROVEDINSTRUMENTTYPES[sensorProfile['type']] ? context.settingsConfig.APPROVEDINSTRUMENTTYPES[sensorProfile['type']].typeCategory : \"\"} (${sensorProfile['unit']})`\n            },\n            max: Math.max(...xValues) * 1.05, // Dynamically set the maximum value\n        };\n        option['y'] = {\n            type: 'linear',\n            display: true,\n            data:yValues,\n            title: {\n                display: true,\n                text: `Sensor Output (${sensorProfile['unit']})`\n            },\n            max: Math.max(...xValues) * 1.05, // Dynamically set the maximum value\n\n        };\n        switch(sensorProfile['type']){\n            case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMicro.typeValue:\n                option['x']['ticks']={\n                    font: {\n                        size: 12,\n                        weight: 'bold'\n                    },\n                    color: 'black',\n                    autoSkip: false,\n                    // stepSize: Number(((Math.max(...xValues) * 1.05)/(xValues.length)).toFixed(0)),\n                    stepSize: 1000,\n                    // stepSize: 8.33,\n                    callback: function(val, index, ctx) {\n                        // return val;\n                        return xValues.some(x => Math.abs(x - val) <= 500) ? val : '';\n                    }\n                };\n                option['x']['grid']={\n                    color: (ctx) => {\n                        const val = ctx.tick.value;\n                        return val === 0 ? \"black\" : xValues.some(x => Math.abs(x - val)  <= 500) ? \"#ccc\" : 'transparent';\n                    },\n                };\n                break;\n            default:\n                option['x']['ticks']={\n                    font: {\n                        size: 12,\n                        weight: 'bold'\n                    },\n                    color: 'black',\n                    autoSkip: false,\n                    // stepSize: Number(((Math.max(...xValues) * 1.05)/(xValues.length)).toFixed(0)),\n                    stepSize: 5,\n                    // stepSize: 8.33,\n                    callback: function(val, index, ctx) {\n                        // return val;\n                        return xValues.some(x => Math.abs(x - val) <= 1) ? val : '';\n                    }\n                };\n                option['x']['grid']={\n                    color: (ctx) => {\n                        const val = ctx.tick.value;\n                        return val === 0 ? \"black\" : xValues.some(x => Math.abs(x - val) <= 1) ? \"#ccc\" : 'transparent';\n                    },\n                };\n                break;\n\n        }\n\n        //For y axis\n        switch(sensorProfile['type']){\n            case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMicro.typeValue:\n                option['y']['ticks']={\n                    font: {\n                        size: 12,\n                        weight: 'bold'\n                    },\n                    color: 'black',\n                    autoSkip: false,\n                    // stepSize: Number(((Math.max(...xValues) * 1.05)/(xValues.length)).toFixed(0)),\n                    stepSize: 1000,\n                    // stepSize: 8.33,\n                    callback: function(val, index, ctx) {\n                        // console.log(`val:${val}; Index:${index}`);\n                        // return val;\n                        return yValues.some(y => Math.abs(y - val)  <= 600) ? val : '';\n                    }\n                };\n                option['y']['grid']={\n                    color: (ctx) => {\n                        const val = ctx.tick.value;\n                        return val === 0 ? \"black\" : yValues.some(y => Math.abs(y - val)  <= 600) ? \"#ccc\" : 'transparent';\n                    },\n                };\n                break;\n            default:\n                option['y']['ticks']={\n                    font: {\n                        size: 12,\n                        weight: 'bold'\n                    },\n                    color: 'black',\n                    autoSkip: false,\n                    // stepSize: Number(((Math.max(...xValues) * 1.05)/(xValues.length)).toFixed(0)),\n                    stepSize: 5,\n                    // stepSize: 8.33,\n                    callback: function(val, index, ctx) {\n                        // return val;\n                        return yValues.some(y => Math.abs(y - val) <= 1) ? val : '';\n                    }\n                };\n                option['y']['grid']={\n                    color: (ctx) => {\n                        const val = ctx.tick.value;\n                        return val === 0 ? \"black\" : xValues.some(y => Math.abs(y - val) <= 1) ? \"#ccc\" : 'transparent';\n                    },\n                };\n                break;\n\n        }\n\n        return option;\n    }catch (err){\n        console.log(`Error in getAxisChartOption: ${err.message}`);\n        console.log(err.stack);\n    }   \n}\nexport async function buildSensorProfileNotificationBoard(context, allowPrint, packProfile, sensorProfile, phaseILookupData, phaseIICalibrationDataValueData, phaseIICurrentData, phaseIISlopeData, phaseIIOffsetData){\n    try{\n        context.set(\"isShowConfig.isShowPopupNotification\", true);\n        Ember.run.scheduleOnce('afterRender', context, () => {\n    \n            const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n            if(popupContentSectionComponent){\n                popupContentSectionComponent.innerHTML = '';\n\n                // console.log(\"sensorProfile\");\n                // console.log(sensorProfile);\n                // console.log(\"packProfile\");\n                // console.log(packProfile);\n                //Row 1A==========================================================\n                const row1ASection = document.createElement('div');\n                row1ASection.style.display = \"flex\";\n                row1ASection.style.flexDirection = \"row\";\n                row1ASection.style.marginLeft = \"25px\";\n                //SensorID Report Title\n                const reportTitleSection = document.createElement('div');\n                reportTitleSection.style.fontSize = \"large\";\n                reportTitleSection.style.alignSelf = \"center\";\n                reportTitleSection.style.textDecoration = \"underline\";\n                reportTitleSection.textContent = `${sensorProfile['sensorID']} Report`;\n                reportTitleSection.style.fontWeight = \"bold\";\n                //Quick Detail Title\n                const calibrationTitleSection = document.createElement('div');\n                calibrationTitleSection.style.fontSize = \"small\";\n                calibrationTitleSection.textContent = \"Quick Detail:\";\n                calibrationTitleSection.style.fontWeight = \"bold\";\n                calibrationTitleSection.style.textDecoration = \"underline\";\n                //Calib ID\n                const calibIDSection = document.createElement('div');\n                calibIDSection.style.display = \"flex\";\n                calibIDSection.style.flexDirection = \"row\";\n                calibIDSection.style.alignItems = \"center\";\n                calibIDSection.style.width = \"33%\";\n                const calibIDLabelSection = document.createElement('div');\n                calibIDLabelSection.style.fontSize = \"small\";\n                calibIDLabelSection.textContent = \"Calibration ID:\";\n                calibIDLabelSection.style.fontWeight = \"bold\";\n                const calibIDValueSection = document.createElement('div');\n                calibIDValueSection.style.fontSize = \"small\";\n                calibIDValueSection.textContent = `${sensorProfile['calibrationID']}`;\n                calibIDValueSection.style.paddingLeft = \"5px\";\n                calibIDSection.appendChild(calibIDLabelSection);\n                calibIDSection.appendChild(calibIDValueSection);\n                //Job ID\n                const jobIDSection = document.createElement('div');\n                jobIDSection.style.display = \"flex\";\n                jobIDSection.style.flexDirection = \"row\";\n                jobIDSection.style.alignItems = \"center\";\n                jobIDSection.style.width = \"33%\";\n                const jobIDLabelSection = document.createElement('div');\n                jobIDLabelSection.style.fontSize = \"small\";\n                jobIDLabelSection.textContent = \"Job ID:\";\n                jobIDLabelSection.style.fontWeight = \"bold\";\n                const jobIDValueSection = document.createElement('div');\n                jobIDValueSection.style.fontSize = \"small\";\n                jobIDValueSection.textContent = `${sensorProfile['jobID']}`;\n                jobIDValueSection.style.paddingLeft = \"5px\";\n                jobIDSection.appendChild(jobIDLabelSection);\n                jobIDSection.appendChild(jobIDValueSection);\n                //Calib Date\n                const calibDateSection = document.createElement('div');\n                calibDateSection.style.display = \"flex\";\n                calibDateSection.style.flexDirection = \"row\";\n                calibDateSection.style.alignItems = \"center\";\n                calibDateSection.style.width = \"33%\";\n                const calibDateLabelSection = document.createElement('div');\n                calibDateLabelSection.style.fontSize = \"small\";\n                calibDateLabelSection.textContent = \"Calibration Date:\";\n                calibDateLabelSection.style.fontWeight = \"bold\";\n                const calibDateValueSection = document.createElement('div');\n                calibDateValueSection.style.fontSize = \"small\";\n                calibDateValueSection.textContent = `${sensorProfile['calibrationDate']}`;\n                calibDateValueSection.style.paddingLeft = \"5px\";\n                calibDateSection.appendChild(calibDateLabelSection);\n                calibDateSection.appendChild(calibDateValueSection);\n                //Row 1B==========================================================\n                const row1BSection = document.createElement('div');\n                row1BSection.style.display = \"flex\";\n                row1BSection.style.flexDirection = \"row\";\n                row1BSection.style.marginLeft = \"25px\";\n                //Employee\n                const employeeSection = document.createElement('div');\n                employeeSection.style.display = \"flex\";\n                employeeSection.style.flexDirection = \"row\";\n                employeeSection.style.alignItems = \"center\";\n                employeeSection.style.width = \"33%\";\n                const employeeLabelSection = document.createElement('div');\n                employeeLabelSection.style.fontSize = \"small\";\n                employeeLabelSection.textContent = \"Employee:\";\n                employeeLabelSection.style.fontWeight = \"bold\";\n                const employeeValueSection = document.createElement('div');\n                employeeValueSection.style.fontSize = \"small\";\n                employeeValueSection.textContent = `${sensorProfile['employee']}`;\n                employeeValueSection.style.paddingLeft = \"5px\";\n                employeeSection.appendChild(employeeLabelSection);\n                employeeSection.appendChild(employeeValueSection);\n\n                //Row 2==========================================================\n                const row2ASection = document.createElement('div');\n                row2ASection.style.display = \"flex\";\n                row2ASection.style.flexDirection = \"row\";\n                row2ASection.style.marginLeft = \"25px\";\n                //Rig Detail Title\n                const rigTitleSection = document.createElement('div');\n                rigTitleSection.style.fontSize = \"small\";\n                rigTitleSection.textContent = \"Rig Detail:\";\n                rigTitleSection.style.fontWeight = \"bold\";\n                rigTitleSection.style.textDecoration = \"underline\";\n                //Rig Certificate S/N\n                const rigCalibIDSection = document.createElement('div');\n                rigCalibIDSection.style.display = \"flex\";\n                rigCalibIDSection.style.flexDirection = \"row\";\n                rigCalibIDSection.style.alignItems = \"center\";\n                rigCalibIDSection.style.width = \"33%\";\n                const rigCalibIDLabelSection = document.createElement('div');\n                rigCalibIDLabelSection.style.fontSize = \"small\";\n                rigCalibIDLabelSection.textContent = \"Ref. S/N:\";\n                rigCalibIDLabelSection.style.fontWeight = \"bold\";\n                const rigCalibIDValueSection = document.createElement('div');\n                rigCalibIDValueSection.style.fontSize = \"small\";\n                rigCalibIDValueSection.textContent = `${sensorProfile['rigReferenceID']}`;\n                rigCalibIDValueSection.style.paddingLeft = \"5px\";\n                rigCalibIDSection.appendChild(rigCalibIDLabelSection);\n                rigCalibIDSection.appendChild(rigCalibIDValueSection);\n                //Rig Certificate Value\n                const rigCalibValueSection = document.createElement('div');\n                rigCalibValueSection.style.display = \"flex\";\n                rigCalibValueSection.style.flexDirection = \"row\";\n                rigCalibValueSection.style.alignItems = \"center\";\n                rigCalibValueSection.style.width = \"33%\";\n                const rigCalibValueLabelSection = document.createElement('div');\n                rigCalibValueLabelSection.style.fontSize = \"small\";\n                rigCalibValueLabelSection.textContent = \"Ref. Value:\";\n                rigCalibValueLabelSection.style.fontWeight = \"bold\";\n                const rigCalibValueValueSection = document.createElement('div');\n                rigCalibValueValueSection.style.fontSize = \"small\";\n                rigCalibValueValueSection.textContent = `${sensorProfile['rigReferenceCalibrationValue']}`;\n                rigCalibValueValueSection.style.paddingLeft = \"5px\";\n                rigCalibValueSection.appendChild(rigCalibValueLabelSection);\n                rigCalibValueSection.appendChild(rigCalibValueValueSection);\n                //Rig Certificate Calib Date\n                const rigCalibDateSection = document.createElement('div');\n                rigCalibDateSection.style.display = \"flex\";\n                rigCalibDateSection.style.flexDirection = \"row\";\n                rigCalibDateSection.style.alignItems = \"center\";\n                rigCalibDateSection.style.width = \"33%\";\n                const rigCalibDateLabelSection = document.createElement('div');\n                rigCalibDateLabelSection.style.fontSize = \"small\";\n                rigCalibDateLabelSection.textContent = \"Ref. Date:\";\n                rigCalibDateLabelSection.style.fontWeight = \"bold\";\n                const rigICalibDateValueSection = document.createElement('div');\n                rigICalibDateValueSection.style.fontSize = \"small\";\n                rigICalibDateValueSection.textContent = `${sensorProfile['rigReferenceCalibrationDate']}`;\n                rigICalibDateValueSection.style.paddingLeft = \"5px\";\n                rigCalibDateSection.appendChild(rigCalibDateLabelSection);\n                rigCalibDateSection.appendChild(rigICalibDateValueSection);\n\n                const row2BSection = document.createElement('div');\n                row2BSection.style.display = \"flex\";\n                row2BSection.style.flexDirection = \"row\";\n                row2BSection.style.marginLeft = \"25px\";\n                //Rig ID\n                const rigIDSection = document.createElement('div');\n                rigIDSection.style.display = \"flex\";\n                rigIDSection.style.flexDirection = \"row\";\n                rigIDSection.style.alignItems = \"center\";\n                rigIDSection.style.width = \"33%\";\n                const rigIDLabelSection = document.createElement('div');\n                rigIDLabelSection.style.fontSize = \"small\";\n                rigIDLabelSection.textContent = \"ID:\";\n                rigIDLabelSection.style.fontWeight = \"bold\";\n                const rigIDValueSection = document.createElement('div');\n                rigIDValueSection.style.fontSize = \"small\";\n                rigIDValueSection.textContent = `${sensorProfile['rigID']}`;\n                rigIDValueSection.style.paddingLeft = \"5px\";\n                rigIDSection.appendChild(rigIDLabelSection);\n                rigIDSection.appendChild(rigIDValueSection);\n                //Rig Name\n                const rigNameSection = document.createElement('div');\n                rigNameSection.style.display = \"flex\";\n                rigNameSection.style.flexDirection = \"row\";\n                rigNameSection.style.alignItems = \"center\";\n                rigNameSection.style.width = \"33%\";\n                const rigNameLabelSection = document.createElement('div');\n                rigNameLabelSection.style.fontSize = \"small\";\n                rigNameLabelSection.textContent = \"Name:\";\n                rigNameLabelSection.style.fontWeight = \"bold\";\n                const rigNameValueSection = document.createElement('div');\n                rigNameValueSection.style.fontSize = \"small\";\n                rigNameValueSection.textContent = `${sensorProfile['rigName']}`;\n                rigNameValueSection.style.paddingLeft = \"5px\";\n                rigNameSection.appendChild(rigNameLabelSection);\n                rigNameSection.appendChild(rigNameValueSection);\n                //Rig IP\n                const rigIPSection = document.createElement('div');\n                rigIPSection.style.display = \"flex\";\n                rigIPSection.style.flexDirection = \"row\";\n                rigIPSection.style.alignItems = \"center\";\n                rigIPSection.style.width = \"20%\";\n                const rigIPLabelSection = document.createElement('div');\n                rigIPLabelSection.style.fontSize = \"small\";\n                rigIPLabelSection.textContent = \"IP:\";\n                rigIPLabelSection.style.fontWeight = \"bold\";\n                const rigIPValueSection = document.createElement('div');\n                rigIPValueSection.style.fontSize = \"small\";\n                rigIPValueSection.textContent = `${sensorProfile['rigIP']}`;\n                rigIPValueSection.style.paddingLeft = \"5px\";\n                rigIPSection.appendChild(rigIPLabelSection);\n                rigIPSection.appendChild(rigIPValueSection);\n\n                //Row 3A==========================================================\n                const row3ASection = document.createElement('div');\n                row3ASection.style.display = \"flex\";\n                row3ASection.style.flexDirection = \"row\";\n                row3ASection.style.alignItems = \"center\";\n                row3ASection.style.marginLeft = \"25px\";\n                //Sensor Detail Title\n                const sensorTitleSection = document.createElement('div');\n                sensorTitleSection.style.fontSize = \"small\";\n                sensorTitleSection.textContent = \"Sensor Detail:\";\n                sensorTitleSection.style.fontWeight = \"bold\";\n                sensorTitleSection.style.textDecoration = \"underline\";\n                //Sensor Description\n                const sensorDescriptionSection = document.createElement('div');\n                sensorDescriptionSection.style.display = \"flex\";\n                sensorDescriptionSection.style.flexDirection = \"row\";\n                sensorDescriptionSection.style.alignItems = \"center\";\n                sensorDescriptionSection.style.width = \"33%\";\n                const sensorDescriptionLabelSection = document.createElement('div');\n                sensorDescriptionLabelSection.style.fontSize = \"small\";\n                sensorDescriptionLabelSection.textContent = \"Description:\";\n                sensorDescriptionLabelSection.style.fontWeight = \"bold\";\n                const sensorDescriptionValueSection = document.createElement('div');\n                sensorDescriptionValueSection.style.fontSize = \"small\";\n                sensorDescriptionValueSection.textContent = `${sensorProfile['sensorDescription']}`;\n                sensorDescriptionValueSection.style.paddingLeft = \"5px\";\n                sensorDescriptionSection.appendChild(sensorDescriptionLabelSection);\n                sensorDescriptionSection.appendChild(sensorDescriptionValueSection);\n                //Type\n                const typeSection = document.createElement('div');\n                typeSection.style.display = \"flex\";\n                typeSection.style.flexDirection = \"row\";\n                typeSection.style.alignItems = \"center\";\n                typeSection.style.width = \"33%\";\n                const typeLabelSection = document.createElement('div');\n                typeLabelSection.style.fontSize = \"small\";\n                typeLabelSection.textContent = \"Type:\";\n                typeLabelSection.style.fontWeight = \"bold\";\n                const typeValueSection = document.createElement('div');\n                typeValueSection.style.fontSize = \"small\";\n                typeValueSection.textContent = `${sensorProfile['type']}`;\n                typeValueSection.style.paddingLeft = \"5px\";\n                typeSection.appendChild(typeLabelSection);\n                typeSection.appendChild(typeValueSection);\n                //Unit\n                const unitSection = document.createElement('div');\n                unitSection.style.display = \"flex\";\n                unitSection.style.flexDirection = \"row\";\n                unitSection.style.alignItems = \"center\";\n                unitSection.style.width = \"33%\";\n                const unitLabelSection = document.createElement('div');\n                unitLabelSection.style.fontSize = \"small\";\n                unitLabelSection.textContent = \"Unit:\";\n                unitLabelSection.style.fontWeight = \"bold\";\n                const unitValueSection = document.createElement('div');\n                unitValueSection.style.fontSize = \"small\";\n                unitValueSection.textContent = `${sensorProfile['unit']}`;\n                unitValueSection.style.paddingLeft = \"5px\";\n                unitSection.appendChild(unitLabelSection);\n                unitSection.appendChild(unitValueSection);\n\n                //Row 3B==========================================================\n                const row3BSection = document.createElement('div');\n                row3BSection.style.display = \"flex\";\n                row3BSection.style.flexDirection = \"row\";\n                row3BSection.style.alignItems = \"center\";\n                row3BSection.style.marginLeft = \"25px\";\n                //Sensor ID\n                const sensorIDSection = document.createElement('div');\n                sensorIDSection.style.display = \"flex\";\n                sensorIDSection.style.flexDirection = \"row\";\n                sensorIDSection.style.alignItems = \"center\";\n                sensorIDSection.style.width = \"33%\";\n                const sensorIDLabelSection = document.createElement('div');\n                sensorIDLabelSection.style.fontSize = \"small\";\n                sensorIDLabelSection.textContent = \"ID:\";\n                sensorIDLabelSection.style.fontWeight = \"bold\";\n                const sensorIDValueSection = document.createElement('div');\n                sensorIDValueSection.style.fontSize = \"small\";\n                sensorIDValueSection.textContent = `${sensorProfile['sensorID']}`;\n                sensorIDValueSection.style.paddingLeft = \"5px\";\n                sensorIDSection.appendChild(sensorIDLabelSection);\n                sensorIDSection.appendChild(sensorIDValueSection);\n                //Sensor Name\n                const sensorNameSection = document.createElement('div');\n                sensorNameSection.style.display = \"flex\";\n                sensorNameSection.style.flexDirection = \"row\";\n                sensorNameSection.style.alignItems = \"center\";\n                sensorNameSection.style.width = \"33%\";\n                const sensorNameLabelSection = document.createElement('div');\n                sensorNameLabelSection.style.fontSize = \"small\";\n                sensorNameLabelSection.textContent = \"Name:\";\n                sensorNameLabelSection.style.fontWeight = \"bold\";\n                const sensorNameValueSection = document.createElement('div');\n                sensorNameValueSection.style.fontSize = \"small\";\n                sensorNameValueSection.textContent = `${sensorProfile['sensorName']}`;\n                sensorNameValueSection.style.paddingLeft = \"5px\";\n                sensorNameSection.appendChild(sensorNameLabelSection);\n                sensorNameSection.appendChild(sensorNameValueSection);\n\n                //Row 4==========================================================\n                //Technical Detail Title\n                const technicalTitleSection = document.createElement('div');\n                technicalTitleSection.style.fontSize = \"small\";\n                technicalTitleSection.textContent = \"Technical Detail:\";\n                technicalTitleSection.style.fontWeight = \"bold\";\n                technicalTitleSection.style.textDecoration = \"underline\";\n                const row4ASection = document.createElement('div');\n                row4ASection.style.display = \"flex\";\n                row4ASection.style.flexDirection = \"row\";\n                row4ASection.style.alignItems = \"center\";\n                row4ASection.style.marginLeft = \"25px\";\n                //Sample Size\n                const sampleSizeSection = document.createElement('div');\n                sampleSizeSection.style.display = \"flex\";\n                sampleSizeSection.style.flexDirection = \"row\";\n                sampleSizeSection.style.alignItems = \"center\";\n                sampleSizeSection.style.width = \"33%\";\n                const sampleSizeLabelSection = document.createElement('div');\n                sampleSizeLabelSection.style.fontSize = \"small\";\n                sampleSizeLabelSection.textContent = \"Sample Size:\";\n                sampleSizeLabelSection.style.fontWeight = \"bold\";\n                const sampleSizeValueSection = document.createElement('div');\n                sampleSizeValueSection.style.fontSize = \"small\";\n                sampleSizeValueSection.textContent = `${sensorProfile['checkpointSampleSize']}`;\n                sampleSizeValueSection.style.paddingLeft = \"5px\";\n                sampleSizeSection.appendChild(sampleSizeLabelSection);\n                sampleSizeSection.appendChild(sampleSizeValueSection);\n                //Speed\n                const speedSection = document.createElement('div');\n                speedSection.style.display = \"flex\";\n                speedSection.style.flexDirection = \"row\";\n                speedSection.style.alignItems = \"center\";\n                speedSection.style.width = \"33%\";\n                const speedLabelSection = document.createElement('div');\n                speedLabelSection.style.fontSize = \"small\";\n                speedLabelSection.textContent = \"Sample Speed:\";\n                speedLabelSection.style.fontWeight = \"bold\";\n                const speedValueSection = document.createElement('div');\n                speedValueSection.style.fontSize = \"small\";\n                speedValueSection.textContent = `${sensorProfile['checkpointSpeed']}`;\n                speedValueSection.style.paddingLeft = \"5px\";\n                speedSection.appendChild(speedLabelSection);\n                speedSection.appendChild(speedValueSection);\n                //Delay\n                const delaySection = document.createElement('div');\n                delaySection.style.display = \"flex\";\n                delaySection.style.flexDirection = \"row\";\n                delaySection.style.alignItems = \"center\";\n                delaySection.style.width = \"33%\";\n                const delayLabelSection = document.createElement('div');\n                delayLabelSection.style.fontSize = \"small\";\n                delayLabelSection.textContent = \"Sample Delay:\";\n                delayLabelSection.style.fontWeight = \"bold\";\n                const delayValueSection = document.createElement('div');\n                delayValueSection.style.fontSize = \"small\";\n                delayValueSection.textContent = `${sensorProfile['checkpointDelay']}`;\n                delayValueSection.style.paddingLeft = \"5px\";\n                delaySection.appendChild(delayLabelSection);\n                delaySection.appendChild(delayValueSection);\n\n                const row4BSection = document.createElement('div');\n                row4BSection.style.display = \"flex\";\n                row4BSection.style.flexDirection = \"row\";\n                row4BSection.style.alignItems = \"center\";\n                row4BSection.style.marginLeft = \"25px\";\n                //LimitRange\n                const limitSection = document.createElement('div');\n                limitSection.style.display = \"flex\";\n                limitSection.style.flexDirection = \"row\";\n                limitSection.style.alignItems = \"center\";\n                limitSection.style.width = \"33%\";\n                const limitLabelSection = document.createElement('div');\n                limitLabelSection.style.fontSize = \"small\";\n                limitLabelSection.textContent = \"Range(inclu.):\";\n                limitLabelSection.style.fontWeight = \"bold\";\n                const limitValueSection = document.createElement('div');\n                limitValueSection.style.fontSize = \"small\";\n                limitValueSection.textContent = `${sensorProfile['minLimit']} to ${sensorProfile['maxLimit']}`;\n                limitValueSection.style.paddingLeft = \"5px\";\n                limitSection.appendChild(limitLabelSection);\n                limitSection.appendChild(limitValueSection);\n                //Checkpoint Positions\n                const checkpointPositionsSection = document.createElement('div');\n                checkpointPositionsSection.style.display = \"flex\";\n                checkpointPositionsSection.style.flexDirection = \"row\";\n                checkpointPositionsSection.style.alignItems = \"center\";\n                checkpointPositionsSection.style.width = \"66%\";\n                const checkpointPositionsLabelSection = document.createElement('div');\n                checkpointPositionsLabelSection.style.fontSize = \"small\";\n                checkpointPositionsLabelSection.textContent = \"Checkpoint Positions:\";\n                checkpointPositionsLabelSection.style.fontWeight = \"bold\";\n                const checkpointPositionsValueSection = document.createElement('div');\n                checkpointPositionsValueSection.style.fontSize = \"small\";\n                checkpointPositionsValueSection.textContent = `[${sensorProfile['checkpointPositions'].toString()}]`;\n                checkpointPositionsValueSection.style.paddingLeft = \"5px\";\n                checkpointPositionsSection.appendChild(checkpointPositionsLabelSection);\n                checkpointPositionsSection.appendChild(checkpointPositionsValueSection);\n\n                const row4CSection = document.createElement('div');\n                row4CSection.style.display = \"flex\";\n                row4CSection.style.flexDirection = \"row\";\n                row4CSection.style.alignItems = \"center\";\n                row4CSection.style.marginLeft = \"25px\";\n                //packID\n                const packIDSection = document.createElement('div');\n                packIDSection.style.display = \"flex\";\n                packIDSection.style.flexDirection = \"row\";\n                packIDSection.style.alignItems = \"center\";\n                packIDSection.style.width = \"33%\";\n                const packIDLabelSection = document.createElement('div');\n                packIDLabelSection.style.fontSize = \"small\";\n                packIDLabelSection.textContent = \"Pack ID:\";\n                packIDLabelSection.style.fontWeight = \"bold\";\n                const packIDValueSection = document.createElement('div');\n                packIDValueSection.style.fontSize = \"small\";\n                packIDValueSection.textContent = packProfile ? `${packProfile['packID']}` : '';\n                packIDValueSection.style.paddingLeft = \"5px\";\n                packIDSection.appendChild(packIDLabelSection);\n                packIDSection.appendChild(packIDValueSection);\n                //packName\n                const packNameSection = document.createElement('div');\n                packNameSection.style.display = \"flex\";\n                packNameSection.style.flexDirection = \"row\";\n                packNameSection.style.alignItems = \"center\";\n                packNameSection.style.width = \"33%\";\n                const packNameLabelSection = document.createElement('div');\n                packNameLabelSection.style.fontSize = \"small\";\n                packNameLabelSection.textContent = \"Pack Name:\";\n                packNameLabelSection.style.fontWeight = \"bold\";\n                const packNameValueSection = document.createElement('div');\n                packNameValueSection.style.fontSize = \"small\";\n                packNameValueSection.textContent = packProfile ? `${packProfile['packName']}` : \"\";\n                packNameValueSection.style.paddingLeft = \"5px\";\n                packNameSection.appendChild(packNameLabelSection);\n                packNameSection.appendChild(packNameValueSection);\n                //company\n                const packCompanySection = document.createElement('div');\n                packCompanySection.style.display = \"flex\";\n                packCompanySection.style.flexDirection = \"row\";\n                packCompanySection.style.alignItems = \"center\";\n                packCompanySection.style.width = \"33%\";\n                const packCompanyLabelSection = document.createElement('div');\n                packCompanyLabelSection.style.fontSize = \"small\";\n                packCompanyLabelSection.textContent = \"Pack Company:\";\n                packCompanyLabelSection.style.fontWeight = \"bold\";\n                const packCompanyValueSection = document.createElement('div');\n                packCompanyValueSection.style.fontSize = \"small\";\n                packCompanyValueSection.textContent = packProfile ? `${packProfile['company']}` : \"\";\n                packCompanyValueSection.style.paddingLeft = \"5px\";\n                packCompanySection.appendChild(packCompanyLabelSection);\n                packCompanySection.appendChild(packCompanyValueSection);\n\n\n                const watermark = document.createElement('div');\n                watermark.textContent = \"UNOFFICIAL DOCUMENT\";\n                watermark.style.cssText = `\n                    position: fixed; /* Fixed instead of absolute */\n                    top: 50%; /* Centered vertically */\n                    left: 50%; /* Centered horizontally */\n                    transform: translate(-50%, -50%) rotate(-45deg); /* Center and rotate */\n                    color: rgba(255, 0, 0, 0.6); /* Semi-transparent red */\n                    font-size: 100px;\n                    font-weight: bold;\n                    width: 100%;\n                    text-align: center;\n                    pointer-events: none; /* Click through */\n                    z-index: 1000;\n                `;\n                // Adjust position to ensure it covers the entire content area\n                watermark.style.top = '50%';\n                watermark.style.left = '50%';\n                popupContentSectionComponent.style.position = 'relative';\n                // popupContentSectionComponent.appendChild(watermark);\n                //Row 5==========================================================\n                const row5Section = document.createElement('div');\n                row5Section.style.display = \"none\";\n                row5Section.style.flexDirection = \"column\";\n                row5Section.style.alignItems = \"center\";\n                row5Section.style.marginLeft = \"25px\";\n                //Phase I Title\n                const phaseITitleSection = document.createElement('div');\n                phaseITitleSection.style.fontSize = \"small\";\n                phaseITitleSection.textContent = \"Phase I Detail:\";\n                phaseITitleSection.style.fontWeight = \"bold\";\n                phaseITitleSection.style.cursor = \"pointer\";\n                phaseITitleSection.style.color = \"blue\";\n                phaseITitleSection.style.textDecoration = \"underline\";\n                phaseITitleSection.addEventListener('click', () => {\n                    row5Section.style.display = row5Section.style.display === \"none\" ? \"flex\" : \"none\";\n                });\n                \n                //Lookup Data\n                const lookupSection = document.createElement('div');\n                lookupSection.style.display = \"flex\";\n                lookupSection.style.flexDirection = \"row\";\n                lookupSection.style.width = \"100%\";\n                const lookupLabelSection = document.createElement('div');\n                lookupLabelSection.textContent = `Lookup Data: `; \n                lookupLabelSection.style.fontWeight = \"bold\";\n                lookupLabelSection.style.fontSize = \"small\";\n                const lookupDataSection = document.createElement('div');\n                lookupDataSection.style.display = \"flex\";\n                lookupDataSection.style.flexDirection = \"column\";\n                lookupDataSection.style.fontSize = \"small\";\n                lookupDataSection.style.marginLeft = \"5px\";\n                phaseILookupData.forEach((lookupArr, index)=>{\n                    const lookupRowValueSection = document.createElement('div');\n                    lookupRowValueSection.style.display = \"flex\";\n                    lookupRowValueSection.style.flexDirection = \"row\";\n                    lookupRowValueSection.style.alignItems = \"center\";\n                    const channelLabelSection = document.createElement('div');\n                    channelLabelSection.textContent = `CH${index + 1}: `; \n                    channelLabelSection.style.fontWeight = \"bold\";\n                    const lookupData = document.createElement('div');\n                    lookupData.style.marginLeft = \"5px\";\n                    lookupData.textContent =  `[${lookupArr.toString()}]`;\n                    lookupRowValueSection.appendChild(channelLabelSection);\n                    lookupRowValueSection.appendChild(lookupData);\n                    lookupDataSection.appendChild(lookupRowValueSection);\n                }) \n                lookupSection.appendChild(lookupLabelSection);\n                lookupSection.appendChild(lookupDataSection);\n                //Lookup Translated Data\n                const lookupTranslatedSection = document.createElement('div');\n                lookupTranslatedSection.style.display = \"flex\";\n                lookupTranslatedSection.style.flexDirection = \"row\";\n                lookupTranslatedSection.style.width = \"100%\";\n                const lookupTranslatedLabelSection = document.createElement('div');\n                lookupTranslatedLabelSection.textContent = `Converted Data: `; \n                lookupTranslatedLabelSection.style.fontWeight = \"bold\";\n                lookupTranslatedLabelSection.style.fontSize = \"small\";\n                const lookupTranslatedDataSection = document.createElement('div');\n                lookupTranslatedDataSection.style.display = \"flex\";\n                lookupTranslatedDataSection.style.flexDirection = \"column\";\n                lookupTranslatedDataSection.style.fontSize = \"small\";\n                lookupTranslatedDataSection.style.whiteSpace = \"pre\"; \n                lookupTranslatedDataSection.style.marginLeft = \"5px\";\n                let lookupBodyStructure = `const char Sensor_ID[11]=\"${sensorProfile['sensorID']},\";\\nconst char Sensor_Type[${sensorProfile[\"channels\"]}]=\"${sensorProfile[\"channels\"]}${sensorProfile['typeID']},;\";\\nconst char Sensor_Desc[12]=\"${sensorProfile['sensorDescription']},\";\\n// JOB# ${sensorProfile['jobID']}\\n// Calibration coeff's are temp compensated periods\\n// Cal coeff stored in ROM\\n`;        \n                phaseILookupData.forEach((lookupArr, index)=>{\n                    lookupBodyStructure += `unsigned int cal_${index+1}[${sensorProfile['checkpointPositions'].length }]= {${lookupArr.toString()}};\\n`;\n                });\n                lookupTranslatedDataSection.textContent =  `${lookupBodyStructure}`;\n                lookupTranslatedSection.appendChild(lookupTranslatedLabelSection);\n                lookupTranslatedSection.appendChild(lookupTranslatedDataSection);\n\n                //Row 6==========================================================\n                const row6Section = document.createElement('div');\n                row6Section.style.display = \"none\";\n                row6Section.style.flexDirection = \"column\";\n                row6Section.style.alignItems = \"center\";\n                row6Section.style.marginLeft = \"25px\";\n                //Phase II Title\n                const phaseIITitleSection = document.createElement('div');\n                phaseIITitleSection.style.fontSize = \"small\";\n                phaseIITitleSection.textContent = \"Phase II Detail:\";\n                phaseIITitleSection.style.fontWeight = \"bold\";\n                phaseIITitleSection.style.cursor = \"pointer\";\n                phaseIITitleSection.style.color = \"blue\";\n                phaseIITitleSection.style.textDecoration = \"underline\";\n                phaseIITitleSection.addEventListener('click', () => {\n                    row6Section.style.display = row6Section.style.display === \"none\" ? \"flex\" : \"none\";\n                });\n                \n                //Calibrated Data\n                const calibratedDataSection = document.createElement('div');\n                calibratedDataSection.style.display = \"flex\";\n                calibratedDataSection.style.flexDirection = \"row\";\n                calibratedDataSection.style.width = \"100%\";\n                const calibratedDataLabelSection = document.createElement('div');\n                calibratedDataLabelSection.textContent = `Calib. Data: `; \n                calibratedDataLabelSection.style.fontWeight = \"bold\";\n                calibratedDataLabelSection.style.fontSize = \"small\";\n                const calibratedDataDataSection = document.createElement('div');\n                calibratedDataDataSection.style.display = \"flex\";\n                calibratedDataDataSection.style.flexDirection = \"column\";\n                calibratedDataDataSection.style.fontSize = \"small\";\n                calibratedDataDataSection.style.marginLeft = \"15px\";\n                phaseIICalibrationDataValueData.forEach((calibratedDataArray, index)=>{\n                    const calibratedDataRowValueSection = document.createElement('div');\n                    calibratedDataRowValueSection.style.display = \"flex\";\n                    calibratedDataRowValueSection.style.flexDirection = \"row\";\n                    calibratedDataRowValueSection.style.alignItems = \"center\";\n                    const channelLabelSection = document.createElement('div');\n                    channelLabelSection.textContent = `CH${index + 1}: `; \n                    channelLabelSection.style.fontWeight = \"bold\";\n                    const dataSection = document.createElement('div');\n                    dataSection.style.marginLeft = \"5px\";\n                    dataSection.textContent =  `[${calibratedDataArray.toString()}]`;\n                    calibratedDataRowValueSection.appendChild(channelLabelSection);\n                    calibratedDataRowValueSection.appendChild(dataSection);\n                    calibratedDataDataSection.appendChild(calibratedDataRowValueSection);\n                }) \n                calibratedDataSection.appendChild(calibratedDataLabelSection);\n                calibratedDataSection.appendChild(calibratedDataDataSection);\n                //Current Data \n                const currentDataSection = document.createElement('div');\n                currentDataSection.style.display = \"flex\";\n                currentDataSection.style.flexDirection = \"row\";\n                currentDataSection.style.alignItems = \"center\";\n                currentDataSection.style.width = \"100%\";\n                const currentDataLabelSection = document.createElement('div');\n                currentDataLabelSection.style.fontSize = \"small\";\n                currentDataLabelSection.textContent = \"Current Data:\";\n                currentDataLabelSection.style.fontWeight = \"bold\";\n                const currentDataValueSection = document.createElement('div');\n                currentDataValueSection.style.fontSize = \"small\";\n                currentDataValueSection.textContent = `[${phaseIICurrentData.toString()}]`;\n                currentDataValueSection.style.paddingLeft = \"5px\";\n                currentDataSection.appendChild(currentDataLabelSection);\n                currentDataSection.appendChild(currentDataValueSection);\n                //Slope Data \n                const slopeDataSection = document.createElement('div');\n                slopeDataSection.style.display = \"flex\";\n                slopeDataSection.style.flexDirection = \"row\";\n                slopeDataSection.style.alignItems = \"center\";\n                slopeDataSection.style.width = \"100%\";\n                const slopeDataLabelSection = document.createElement('div');\n                slopeDataLabelSection.style.fontSize = \"small\";\n                slopeDataLabelSection.textContent = \"Slope Data:\";\n                slopeDataLabelSection.style.fontWeight = \"bold\";\n                const slopeDataValueSection = document.createElement('div');\n                slopeDataValueSection.style.fontSize = \"small\";\n                slopeDataValueSection.textContent = `[${phaseIISlopeData.toString()}]`;\n                slopeDataValueSection.style.paddingLeft = \"5px\";\n                slopeDataSection.appendChild(slopeDataLabelSection);\n                slopeDataSection.appendChild(slopeDataValueSection);\n                //Offset Data \n                const offsetDataSection = document.createElement('div');\n                offsetDataSection.style.display = \"flex\";\n                offsetDataSection.style.flexDirection = \"row\";\n                offsetDataSection.style.alignItems = \"center\";\n                offsetDataSection.style.width = \"100%\";\n                const offsetDataLabelSection = document.createElement('div');\n                offsetDataLabelSection.style.fontSize = \"small\";\n                offsetDataLabelSection.textContent = \"Offset Data:\";\n                offsetDataLabelSection.style.fontWeight = \"bold\";\n                const offsetDataValueSection = document.createElement('div');\n                offsetDataValueSection.style.fontSize = \"small\";\n                offsetDataValueSection.textContent = `[${phaseIIOffsetData.toString()}]`;\n                offsetDataValueSection.style.paddingLeft = \"5px\";\n                offsetDataSection.appendChild(offsetDataLabelSection);\n                offsetDataSection.appendChild(offsetDataValueSection);\n\n\n                //Appending to Row 1A==========================================================\n                popupContentSectionComponent.appendChild(reportTitleSection);\n                popupContentSectionComponent.appendChild(calibrationTitleSection);\n                popupContentSectionComponent.appendChild(row1ASection);\n                row1ASection.appendChild(calibIDSection);\n                row1ASection.appendChild(jobIDSection);\n                row1ASection.appendChild(calibDateSection);\n                //Appending to Row 1B==========================================================\n                popupContentSectionComponent.appendChild(row1BSection);\n                row1BSection.appendChild(employeeSection);\n                //Appending to Row 2==========================================================\n                popupContentSectionComponent.appendChild(rigTitleSection);\n                popupContentSectionComponent.appendChild(row2ASection);\n                row2ASection.appendChild(rigCalibIDSection);\n                row2ASection.appendChild(rigCalibValueSection);\n                row2ASection.appendChild(rigCalibDateSection);\n                popupContentSectionComponent.appendChild(row2BSection);\n                row2BSection.appendChild(rigIDSection);\n                row2BSection.appendChild(rigNameSection);\n                row2BSection.appendChild(rigIPSection);\n                //Appending to Row 3==========================================================\n                popupContentSectionComponent.append(sensorTitleSection);\n                popupContentSectionComponent.appendChild(row3ASection);\n                row3ASection.appendChild(sensorDescriptionSection);\n                row3ASection.appendChild(typeSection);\n                row3ASection.appendChild(unitSection);\n                popupContentSectionComponent.appendChild(row3BSection);\n                row3BSection.appendChild(sensorIDSection);\n                row3BSection.appendChild(sensorNameSection);\n                //Appending to Row 4==========================================================\n                popupContentSectionComponent.appendChild(technicalTitleSection);\n                popupContentSectionComponent.appendChild(row4ASection);\n                row4ASection.appendChild(sampleSizeSection);\n                row4ASection.appendChild(speedSection);\n                row4ASection.appendChild(delaySection);\n                popupContentSectionComponent.appendChild(row4BSection);\n                row4BSection.appendChild(limitSection);\n                row4BSection.appendChild(checkpointPositionsSection);\n                popupContentSectionComponent.appendChild(row4CSection);\n                row4CSection.appendChild(packIDSection);\n                row4CSection.appendChild(packNameSection);\n                row4CSection.appendChild(packCompanySection);\n                //Appending to Row 5==========================================================\n                popupContentSectionComponent.appendChild(phaseITitleSection);\n                popupContentSectionComponent.appendChild(row5Section);\n                row5Section.appendChild(lookupTranslatedSection);\n                row5Section.appendChild(lookupSection);\n                //Appending to Row 6==========================================================\n                popupContentSectionComponent.appendChild(phaseIITitleSection);\n                popupContentSectionComponent.appendChild(row6Section);\n                row6Section.appendChild(calibratedDataSection);\n                row6Section.appendChild(currentDataSection);\n                row6Section.appendChild(slopeDataSection);\n                row6Section.appendChild(offsetDataSection);\n\n                //Row Memo==========================================================\n                //Memo\n                const memoSection = document.createElement('div');\n                memoSection.style.display = \"flex\";\n                memoSection.style.flexDirection = \"row\";\n                memoSection.style.alignItems = \"center\";\n                memoSection.style.width = \"100%\";\n                const memoLabelSection = document.createElement('div');\n                memoLabelSection.style.fontSize = \"small\";\n                memoLabelSection.textContent = \"Memo Detail:\";\n                memoLabelSection.style.fontWeight = \"bold\";\n                memoLabelSection.style.textDecoration = \"underline\";\n                const memoValueSection = document.createElement('div');\n                memoValueSection.style.fontSize = \"small\";\n                memoValueSection.style.width = \"100%\";\n                memoValueSection.textContent = `${sensorProfile['memo'] ? sensorProfile['memo'] : \"\"}`;\n                memoValueSection.style.paddingLeft = \"25px\";\n                memoValueSection.style.whiteSpace = \"pre\"; \n                popupContentSectionComponent.appendChild(memoLabelSection);\n                popupContentSectionComponent.appendChild(memoValueSection);\n\n                //Anchor Diagram Title\n                //Calibration Anchor Diagram\n                let  masterDiagramSection = null;\n                let  anchorDiagramTitle = null;\n                // console.log(\"anchorDataValue\");\n                // console.log(sensorProfile['anchorDataValue']);\n                if(sensorProfile['anchorDataValue'] != null){\n                    //Anchor Diagram Title\n                    anchorDiagramTitle = document.createElement('div');\n                    anchorDiagramTitle.style.fontSize = 'small';\n                    anchorDiagramTitle.style.textDecoration = 'underline';\n                    anchorDiagramTitle.style.fontWeight = 'bold';\n                    anchorDiagramTitle.textContent = `Anchor Diagram`;\n\n                    //Anchor Diagram Framework\n                    masterDiagramSection = document.createElement('div');\n                    masterDiagramSection.className=\"masterAnchorDiagramStyle\";\n\n                    const upperMasterSection = document.createElement('div');\n                    upperMasterSection.className=\"upperMasterSectionStyle\";\n                    upperMasterSection.id=\"upperMasterSection\";\n                    const anchorDummyHeadComponent1 = document.createElement('div');\n                    anchorDummyHeadComponent1.style.width=\"47px\"\n                    const anchorUpperTextBoxSection = document.createElement('div');\n                    anchorUpperTextBoxSection.className=\"anchorUpperTextBoxSectionStyle\";\n                    anchorUpperTextBoxSection.id=\"anchorUpperTextBoxSection\";\n                    const anchorDummyTailComponent1 = document.createElement('div');\n                    anchorDummyTailComponent1.style.width=\"47px\"\n                    upperMasterSection.appendChild(anchorDummyHeadComponent1);\n                    upperMasterSection.appendChild(anchorUpperTextBoxSection);\n                    upperMasterSection.appendChild(anchorDummyTailComponent1);\n\n                    const anchorMasterSection = document.createElement('div');\n                    anchorMasterSection.className=\"anchorMasterSectionStyle\";\n                    anchorMasterSection.id=\"anchorMasterSection\"\n\n                    const anchorHeadComponent = document.createElement('div');\n                    anchorHeadComponent.className=\"anchorHeadTextStyle\";\n                    anchorHeadComponent.textContent=\"HEAD\"\n\n                    const anchorPointsComponent = document.createElement('div');\n                    anchorPointsComponent.className=\"anchorPointsSectionStyle\";\n                    anchorPointsComponent.id=\"anchorPointsSection\"\n\n                    const anchorToeTextComponent = document.createElement('div');\n                    anchorToeTextComponent.className=\"anchorToeTextStyle\";\n                    anchorToeTextComponent.textContent=\"TOE\"\n\n                    anchorMasterSection.appendChild(anchorHeadComponent);\n                    anchorMasterSection.appendChild(anchorPointsComponent);\n                    anchorMasterSection.appendChild(anchorToeTextComponent);\n\n                    const lowerMasterSection = document.createElement('div');\n                    lowerMasterSection.className=\"lowerMasterSectionStyle\";\n                    lowerMasterSection.id=\"lowerMasterSection\"\n                    const anchorDummyHeadComponent2 = document.createElement('div');\n                    anchorDummyHeadComponent2.style.width=\"47px\"\n                    const anchorLowerTextBoxSection = document.createElement('div');\n                    anchorLowerTextBoxSection.className=\"anchorLowerTextBoxSection\";\n                    anchorLowerTextBoxSection.id=\"anchorLowerTextBoxSection\"\n                    const anchorDummyTailComponent2 = document.createElement('div');\n                    anchorDummyTailComponent2.style.width=\"47px\"\n\n                    lowerMasterSection.appendChild(anchorDummyHeadComponent2);\n                    lowerMasterSection.appendChild(anchorLowerTextBoxSection);\n                    lowerMasterSection.appendChild(anchorDummyTailComponent2);\n\n                    popupContentSectionComponent.appendChild(anchorDiagramTitle);\n                    popupContentSectionComponent.appendChild(masterDiagramSection);\n                    masterDiagramSection.appendChild(upperMasterSection);\n                    masterDiagramSection.appendChild(anchorMasterSection);\n                    masterDiagramSection.appendChild(lowerMasterSection);\n\n                    if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue){                            \n                        //Show Upper Section\n                        upperMasterSection.style.display=\"flex\";\n                        //Show Anchor Section\n                        anchorMasterSection.style.display=\"flex\";\n                        //Hide Lower Section\n                        lowerMasterSection.style.display=\"none\";\n                        //Show Master Section\n                        masterDiagramSection.style.display=\"block\"\n                    }\n                    else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                        //Show Upper Section\n                        upperMasterSection.style.display=\"flex\";\n                        //Show Anchor Section\n                        anchorMasterSection.style.display=\"flex\";\n                        //Show Lower Section\n                        lowerMasterSection.style.display=\"flex\";\n                        //Show Master Section\n                        masterDiagramSection.style.display=\"block\"\n                    }else{\n                        //Hide Everything\n                        upperMasterSection.style.display=\"none\";\n                        anchorMasterSection.style.display=\"none\";\n                        lowerMasterSection.style.display=\"none\";\n                        masterDiagramSection.style.display=\"none\"\n                    }\n                    //Build Channels so that it will be using building textboxes\n                    let visualAnchorPoints = [];\n                    try{\n                        if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue){                                                                                               \n                            for(let i=1; i <= sensorProfile['channels'] - 1; i ++){\n                                visualAnchorPoints.push(i);\n                            }\n                        }\n                        else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                            for(let i=1; i <= (sensorProfile['channels'] - 1)/2; i ++){\n                                visualAnchorPoints.push(i);\n                            }\n                        }else{\n                        }\n                    }catch(e){\n                        console.log(\"Error in 'Build Channels so that it will be using building textboxes' in buildAnchorDiagram: \" + e)\n                    }\n                    if(anchorUpperTextBoxSection){\n        \n                        anchorUpperTextBoxSection.innerHTML = '';\n        \n                        const firstBufferSection = document.createElement('div');\n                        firstBufferSection.style.width = \"65px\";\n                        firstBufferSection.style.height = \"15px\";\n        \n                        anchorUpperTextBoxSection.appendChild(firstBufferSection);\n        \n                        visualAnchorPoints.forEach((channel)=>{\n                            const inputElement = document.createElement('div');\n                            inputElement.style.fontSize=`small`\n                            inputElement.style.width = \"50px\";\n                            inputElement.style.display = 'flex';\n                            inputElement.id=`upperAnchorTB${channel}`;\n                            inputElement.style.justifyContent = 'center';\n                            inputElement.style.fontWeight = 'bold';\n                            // inputElement.textContent=`${channel}`\n                            anchorUpperTextBoxSection.appendChild(inputElement);\n                        });\n                    }\n                    if (anchorPointsComponent) {\n                    // Clear any existing children\n                        anchorPointsComponent.innerHTML = '';\n        \n                        const headDiv = document.createElement('div');\n                        headDiv.id='headDiv'\n                        headDiv.style.display = \"block\";\n                        headDiv.style.background = \"#4A6A9C\";\n                        headDiv.style.width = \"65px\";\n                        headDiv.style.height = \"15px\";\n                        headDiv.style.borderRadius = \"10px 0 0 10px\";\n                        anchorPointsComponent.appendChild(headDiv);\n        \n                        visualAnchorPoints.forEach((channel) => {\n                            // Create anchor space\n                            const anchorSpace = document.createElement('div');\n                            anchorSpace.id=`anchorPoint${channel}`;\n                            anchorSpace.style.width = '50px';\n                            anchorSpace.style.height = '15px';\n                            anchorSpace.style.display = 'flex';\n                            anchorSpace.style.justifyContent = 'center';\n                            anchorSpace.style.alignItems = 'center';\n                            anchorSpace.style.flexDirection = 'row';\n                            // Create anchor point\n                            const anchorPoint = document.createElement('div');\n                            anchorPoint.style.width = '8px';\n                            anchorPoint.style.height = '8px';\n                            anchorPoint.style.background = '#4A6A9C';\n                            anchorPoint.style.borderStyle = 'solid';\n                            anchorPoint.style.borderRadius = '999px';\n                            anchorPoint.style.borderWidth = '1px';\n        \n        \n                            anchorSpace.appendChild(anchorPoint);\n                            anchorPointsComponent.appendChild(anchorSpace);\n                        });\n                    }\n                    if(anchorLowerTextBoxSection){\n        \n                        anchorLowerTextBoxSection.innerHTML = '';\n                        const firstBufferSection = document.createElement('div');\n        \n                        firstBufferSection.style.width = \"65px\";\n                        firstBufferSection.style.height = \"15px\";\n                        anchorLowerTextBoxSection.appendChild(firstBufferSection);\n        \n                        visualAnchorPoints.forEach((channel)=>{\n                            const inputElement = document.createElement('div');\n                            inputElement.style.fontSize=`small`\n                            inputElement.style.width = \"50px\";\n                            inputElement.style.display = 'flex';\n                            inputElement.id=`lowerAnchorTB${channel}`;\n                            inputElement.style.justifyContent = 'center';\n                            inputElement.style.fontWeight = 'bold';\n                            // inputElement.textContent=`${channel}`\n                            anchorLowerTextBoxSection.appendChild(inputElement);\n                        });\n                    }\n\n                    //Load Initial values for textboxes, sensor type dependent\n                    //Uncomment section below if you want to have ID index as pre-loaded upperAnchorTBs\n                    try{\n                        // console.log(\"sensorProfile\")\n                        // console.log(sensorProfile)\n                        if(sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue){\n                            Object.entries(sensorProfile['anchorDataValue']).map(([key, value])=>{\n                                // console.log(`key:${key}, value:${value}`)\n                                const upperAnchorElement = document.getElementById(key);\n                                upperAnchorElement.style.fontSize ='small';\n                                upperAnchorElement.style.fontWeight ='bold';\n                                upperAnchorElement.textContent =`${value}`;\n                            })\n                        }\n                        else if (sensorProfile['type'] === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n        \n                            Object.entries(sensorProfile['anchorDataValue']).map(([key, value])=>{\n                                // console.log(`key:${key}, value:${value}`)\n                                const lowerAnchorElement = document.getElementById(key);\n                                lowerAnchorElement.style.fontSize ='small';\n                                lowerAnchorElement.style.fontWeight ='bold';\n                                lowerAnchorElement.textContent =`${value}`;\n                            })\n                        }else{\n                        }\n        \n                    }catch(e){\n                        console.log(\"Error in 'Load Initial values for textboxes, sensor type dependent' in buildAnchorDiagram: \" + e)\n                    }\n                }\n        \n\n\n                //Row 7==========================================================\n                const row7Section = document.createElement('div');\n                row7Section.style.display = \"none\";\n                row7Section.style.flexDirection = \"column\";\n                row7Section.style.marginLeft = \"25px\";\n                //Phase II Title\n                const activityLogTitleSection = document.createElement('div');\n                activityLogTitleSection.style.fontSize = \"small\";\n                activityLogTitleSection.textContent = \"Activity Log:\";\n                activityLogTitleSection.style.fontWeight = \"bold\";\n                activityLogTitleSection.style.cursor = \"pointer\";\n                activityLogTitleSection.style.color = \"blue\";\n                activityLogTitleSection.style.textDecoration = \"underline\";\n                activityLogTitleSection.addEventListener('click', () => {\n                    row7Section.style.display = row7Section.style.display === \"none\" ? \"flex\" : \"none\";\n                });\n                if(sensorProfile['employeeActivityLog'] != null &&  Object.keys(sensorProfile['employeeActivityLog']).length > 0){\n                    Object.entries(sensorProfile['employeeActivityLog']).forEach(([key, value]) => {\n                        const employee = key;\n                        value.forEach((activityObj, index)=>{\n                            const activityElement = document.createElement('div');\n                            activityElement.style.border=\"solid\";\n                            activityElement.style.borderRadius=\"30px\";\n                            activityElement.style.borderWidth=\"2px\";\n                            activityElement.style.padding=\"0px\";\n                            activityElement.style.paddingLeft=\"15px\";\n                            activityElement.style.paddingRight=\"15px\";\n                            activityElement.style.borderColor=activityObj['severity'] === 2 ? \"red\" : activityObj['severity'] === 1 ? \"darkorange\" : \"lightblue\"\n                            activityElement.style.fontSize=\"x-small\"\n                            activityElement.style.marginBottom=\"10px\";\n                            const activityEmployeeElement = document.createElement('div');\n                            activityEmployeeElement.textContent = employee;\n                            const activityDateElement = document.createElement('div');\n                            activityDateElement.textContent = activityObj['datetime']\n                            const activityMsgElement = document.createElement('div');\n                            activityMsgElement.textContent = activityObj['activity']\n                            activityElement.appendChild(activityEmployeeElement);\n                            activityElement.appendChild(activityDateElement);\n                            activityElement.appendChild(activityMsgElement);\n                            row7Section.appendChild(activityElement);\n                        })\n                        // console.log(`Key: ${key}, Value: ${value}`);\n                      });\n                    //Appending to Row 7==========================================================\n                    popupContentSectionComponent.appendChild(activityLogTitleSection);\n                    popupContentSectionComponent.appendChild(row7Section);\n                }\n\n                //Display and setup Ok Button\n                const okButtonComponent = document.getElementById('notificationOkButton');\n                okButtonComponent.style.display = \"block\";\n                okButtonComponent.style.marginRight = \"10px\";\n                okButtonComponent.onclick = () => {\n                    context.send('closeNotificationPopup'); \n                };\n                if(allowPrint){\n                    const printButtonComponent = document.getElementById('notificationPrintButton');\n                    printButtonComponent.style.display = \"block\";\n                    printButtonComponent.onclick = () => {\n                        const popupContent = document.getElementById('notificationPopupContentBody');\n                        if (!popupContent) {\n                            console.error(\"Popup content body not found\");\n                            return;\n                        }\n    \n                        popupContent.style.overflowX = \"visible\";\n                        row5Section.style.display = \"flex\";\n                        row6Section.style.display = \"flex\";\n                        const inlineStyles = `\n                        @media print {\n                            .pagebreak { page-break-before: always; } /* page-break-after works, as well */\n                            body {\n                                -webkit-print-color-adjust: exact;\n                                -moz-print-color-adjust: exact;\n                                -ms-print-color-adjust: exact;\n                                print-color-adjust: exact;\n                            }\n                        }\n                        #notificationPopupContentBody {\n                            overflow-x: visible;\n                            overflow-y: visible;\n                            padding-bottom: 10px;\n                            padding-left: 20px;\n                            display: flex;\n                            flex-direction: column;\n                            justify-content: space-between;\n                            width: 100%;\n                            padding-right: 20px;\n                        }\n                        .masterAnchorDiagramStyle {\n                            display: block;\n                            width: 100%;\n                            margin-top: 10px; \n                            margin-bottom: 10px;\n                        }\n                        .upperMasterSectionStyle {\n                            width: 100%; \n                            display: flex; \n                            flex-direction: row;\n                            justify-content: center;\n                        }\n                        .anchorMasterSectionStyle {\n                            height: 15px;\n                            width: 100%; \n                            display: flex; \n                            flex-direction: row;\n                            justify-content: center;\n                            align-items: center;\n                        }\n                        .lowerMasterSectionStyle {\n                            height: 15px;\n                            width: 100%; \n                            display: flex; \n                            flex-direction: row;\n                            justify-content: center;\n                        }\n                        .anchorUpperTextBoxSectionStyle {\n                            display: flex;\n                            flex-direction: row;\n                            justify-content: space-between;\n                            width: 900px;\n                            height: 15px;\n                        }\n                        .anchorHeadTextStyle {\n                            width: 50px; \n                            font-size: 12px; \n                            font-weight: bold;\n                        }\n                        .anchorToeTextStyle {\n                            width: 50px; \n                            font-size: 12px; \n                            font-weight: bold;\n                            display: flex;\n                            justify-content: flex-end;\n                        }\n                        .anchorLowerTextBoxSection {\n                            display: flex;\n                            flex-direction: row;\n                            justify-content: space-between; \n                            width: 900px;\n                            height: 15px;\n                        }\n                        .anchorPointsSectionStyle {\n                            display: flex;\n                            flex-direction: row;\n                            justify-content: space-between;\n                            width: 900px;\n                            height: 15px;\n                            background: lightgray;\n                            border-width: 1px;\n                            border-color: gray;\n                            border-style: solid;\n                            border-radius: 10px;\n                        }\n                        `;\n                        printJS({ \n                            printable: popupContent,\n                            type: 'html',\n                            style: inlineStyles,\n                            scanStyles: false,\n                        });\n                        // popupContent.style.overflowX = \"scroll\";\n                        // popupContent.style.overflowY = \"visible\";\n                        row5Section.style.display = \"none\";\n                        row6Section.style.display = \"none\";\n                        \n                    };\n                }\n        \n                // if(context.get(\"calibrationData\")['phaseILookupData']\n            }\n            \n    \n        });\n    }catch (error) {\n        console.error('Error buildSensorProfileNotificationBoard:', error);\n    }\n\n}\nexport function buildBatchSensorBoard(context){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n    Ember.run.scheduleOnce('afterRender', context, () => {\n\n        const masterPopupContent = document.getElementById('notificationPopupContentBody');\n        if(masterPopupContent){\n\n            masterPopupContent.innerHTML = '';\n\n            // Title\n            const titleSection = document.createElement('div');\n            titleSection.style.fontSize = 'large';\n            titleSection.style.fontWeight = 'bold';\n            titleSection.textContent = `Sensor List`;\n            masterPopupContent.appendChild(titleSection);\n            \n\n            const masterDivSection = document.createElement(\"div\");\n            masterDivSection.style.width = \"100%\";\n            masterDivSection.style.display = \"flex\";\n            masterDivSection.style.flexDirection = \"row\";\n\n            const master1DivSection = document.createElement(\"div\");\n            master1DivSection.style.width = \"50%\";\n            for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n\n                // subRow1Section Section\n                const subRow1Section = document.createElement('div');\n                subRow1Section.style.display = 'flex';\n                subRow1Section.style.flexDirection = 'row';\n                \n                const col1SensorObjSection = document.createElement('div');\n                col1SensorObjSection.style.marginRight=\"20px\";\n                //Sensor ID Label\n                const sensorIDLabel = document.createElement('div');\n                sensorIDLabel.style.fontSize = 'small';\n                sensorIDLabel.textContent = `ID ${i}:`;\n                //Sensor ID TB\n                const tdsensorIDElement = document.createElement('td');\n                tdsensorIDElement.classList.add('input');\n                const inputSensorIDElement = document.createElement('input');\n                inputSensorIDElement.classList.add('form-control'); \n                inputSensorIDElement.setAttribute('type', 'text');\n                inputSensorIDElement.id=`batch_sensorid_${i}`;\n                inputSensorIDElement.style.fontSize = \"small\";\n                inputSensorIDElement.style.padding = \"0px\";\n                inputSensorIDElement.style.padding = \"0px\";\n                let userInputtedSensorID = null;\n                try{\n                    userInputtedSensorID = `${context.get(\"userInputtedData.batchSensorData\")[i]['sensorData']['sensorID'] ? context.get(\"userInputtedData.batchSensorData\")[i]['sensorData']['sensorID'] : \"\"}`\n                }catch(e){\n\n                }\n                inputSensorIDElement.value = userInputtedSensorID;\n                inputSensorIDElement.addEventListener('change', (event) => {\n                    context.set(\"dashboardStatusBarData.calibration\",calibrationStatusLibrary(551));\n                    context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n\n                });\n                tdsensorIDElement.appendChild(inputSensorIDElement);\n\n                col1SensorObjSection.appendChild(sensorIDLabel);\n                col1SensorObjSection.appendChild(tdsensorIDElement);\n                subRow1Section.appendChild(col1SensorObjSection);\n\n                const col2SensorObjSection = document.createElement('div');\n                col2SensorObjSection.style.marginRight=\"20px\";\n                //Sensor ID Label\n                const sensorNameLabel = document.createElement('div');\n                sensorNameLabel.style.fontSize = 'small';\n                sensorNameLabel.textContent = `Name:`;\n                //Sensor Name TB\n                const tdsensorNameElement = document.createElement('td');\n                tdsensorNameElement.classList.add('input');\n                const inputSensorNameElement = document.createElement('input');\n                inputSensorNameElement.classList.add('form-control'); \n                inputSensorNameElement.setAttribute('type', 'text');\n                inputSensorNameElement.id=`batch_sensorname_${i}`;\n                inputSensorNameElement.style.fontSize = \"small\";\n                inputSensorNameElement.style.padding = \"0px\";\n                let userInputtedSensorName = null;\n                try{\n                    userInputtedSensorName = `${context.get(\"userInputtedData.batchSensorData\")[i]['sensorData']['sensorName'] ? context.get(\"userInputtedData.batchSensorData\")[i]['sensorData']['sensorName'] : \"\"}`\n                }catch(e){\n\n                }\n                inputSensorNameElement.value = userInputtedSensorName;\n                inputSensorNameElement.addEventListener('change', (event) => {\n                    context.set(\"dashboardStatusBarData.calibration\",calibrationStatusLibrary(551));\n                    context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n\n                });\n                tdsensorNameElement.appendChild(inputSensorNameElement);\n                col2SensorObjSection.appendChild(sensorNameLabel);\n                col2SensorObjSection.appendChild(tdsensorNameElement);\n                subRow1Section.appendChild(col2SensorObjSection);\n\n                const packIDSection = document.createElement('div');\n                //Pack ID Label\n                const packIDLabel = document.createElement('div');\n                packIDLabel.style.fontSize = 'small';\n                packIDLabel.textContent = `Pack ID:`;\n                //Pack Dropdown Label\n                const tdInput = document.createElement('td');\n                tdInput.classList.add('input');\n                const select = document.createElement('select');\n                select.classList.add('form-control');\n                select.id = `batch_validationid_${i}`;\n                select.style.maxWidth = \"130px\";\n                select.style.fontSize = \"small\";\n                select.style.padding = \"0px\";\n\n                const defaultOption = document.createElement('option');\n                defaultOption.value = \"0\";\n                defaultOption.innerText = \"Mandatory selection\";\n                select.appendChild(defaultOption);\n                \n                const packValidationCompletedProfileList = context.get(\"frontendData.packValidationCompletedProfileList\");\n\n                packValidationCompletedProfileList.forEach(selectOption => {\n                    const option = document.createElement('option');\n                    option.value = selectOption.id;\n                    option.innerText = selectOption.title;\n                    select.appendChild(option);\n                });\n                \n                // Attach onchange listener (replicating `action 'updateSensorFormData'`)\n                select.addEventListener('change', (event) => {\n                    const selectedValue = event.target.value;\n                    console.log(event.target);\n                    console.log(\"Selected Pack ID:\", selectedValue);\n                    const selectedPackProfile = context.get('frontendData.packValidationCompletedProfileList')[Number.parseInt(selectedValue) - 1]['data'];\n                    console.log('you ahve selected pack profile')\n                    console.log(selectedPackProfile);\n                });\n                \n                // Final DOM assembly\n                tdInput.appendChild(select);\n\n                packIDSection.appendChild(packIDLabel);\n                packIDSection.appendChild(tdInput);\n                subRow1Section.appendChild(packIDSection);\n\n\n                const col3SensorObjSection = document.createElement('div');\n                col3SensorObjSection.style.display = \"flex\";\n                col3SensorObjSection.style.alignItems = \"end\";\n                //Trash Icon\n                const trashIconComp = document.createElement('img');\n                trashIconComp.src = '/assets/images/trash-icon.png';\n                trashIconComp.style.width = `15px`;\n                trashIconComp.id = `batch_trash_${i}`\n                trashIconComp.style.cursor = \"pointer\";\n                col3SensorObjSection.appendChild(trashIconComp);\n                trashIconComp.onclick = () => {\n                    const inputSensorIDElementElement = document.getElementById(`batch_sensorid_${i}`);\n                    const inputSensorNameElementElement = document.getElementById(`batch_sensorname_${i}`);\n                    const validationIDComponent = document.getElementById(`batch_validationid_${i}`);\n                    // context.send('closeNotificationPopup'); \n                    inputSensorNameElementElement.value = null;\n                    inputSensorIDElementElement.value = null;\n                    validationIDComponent.value = \"0\";\n                    const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n                    if(batchSensorData[i] != null){\n                        batchSensorData[i][\"sensorData\"][\"sensorID\"] = null;\n                        batchSensorData[i][\"sensorData\"][\"sensorName\"] = null;\n                        batchSensorData[i][\"sensorData\"][\"packObj\"] = null;\n                        context.set(\"userInputtedData.batchSensorData\", batchSensorData);\n\n                    }\n                };\n                subRow1Section.appendChild(col3SensorObjSection);\n\n                master1DivSection.appendChild(subRow1Section);\n            }\n\n            masterDivSection.appendChild(master1DivSection);\n            masterPopupContent.appendChild(masterDivSection);\n            \n            //Display and setup Cancel Save Button\n            const notificationCancelButton = document.getElementById('notificationCancelButton');\n            notificationCancelButton.style.display = \"block\";\n            notificationCancelButton.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n            const notificationSaveButton = document.getElementById('notificationSaveButton');\n            notificationSaveButton.style.display = \"block\";\n            notificationSaveButton.style.marginRight = \"10px\";\n            notificationSaveButton.onclick = () => {\n                showPopup([\"Applying your changes...\"], \"warning\", 3);\n                const currCalibrationProcessData = context.get(\"calibrationProcessData\");\n                const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n                /**\n                 * \n                 * When the user clicks Save, for loop the textboxes and then iniitalize each sensor object.\n                 * Each sensor obj has format:\n                 * sensorID:*user inputted* \n                    calibrationData:{\n                        sampleDataDump:[],\n                        sampleCurrentDataDump:[],\n                        lookupData:[\n                        ],\n                        calibrationDataData:[\n                        ],\n                        currentData:[\n                        ],\n                        slopeData:[\n                        ], \n                        offsetData:[\n                        ]\n                    },\n                 */\n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    const sensorIDComponent = document.getElementById(`batch_sensorid_${i}`);\n                    const sensorNameComponent = document.getElementById(`batch_sensorname_${i}`);\n                    const validationIDComponent = document.getElementById(`batch_validationid_${i}`);\n                    if(batchSensorData[i] != null && sensorIDComponent != null & sensorNameComponent != null){\n                        //Initialize sensorInputted Data used for sending values at the end of Calibration Process\n                        batchSensorData[i][\"sensorData\"][\"sensorID\"] = sensorIDComponent.value;\n                        batchSensorData[i][\"sensorData\"][\"sensorName\"] = sensorNameComponent.value;\n                        \n                        if(validationIDComponent != null && context.get('frontendData.packValidationCompletedProfileList')[Number.parseInt(validationIDComponent.value) - 1] != null){\n                            const selectedPackProfile = context.get('frontendData.packValidationCompletedProfileList')[Number.parseInt(validationIDComponent.value) - 1]['data'];\n                            batchSensorData[i][\"sensorData\"][\"packObj\"] = selectedPackProfile;\n                        }\n\n                    }\n                }\n                context.set(\"userInputtedData.batchSensorData\", batchSensorData);\n                console.log(context.get(\"userInputtedData.batchSensorData\"));\n                showPopup([\"Changes applied!\"], \"success\", 3);\n                context.send('closeNotificationPopup'); \n            };\n        }\n    });\n\n}\nexport function showHelpNotificationBoard(context){\n    /**\n     * Case sensitive \n     */\n    return new Promise((resolve) => {\n        try{\n            context.set(\"isShowConfig.isShowPopupNotification\", true);\n            Ember.run.scheduleOnce('afterRender', context, () => {\n                const masterPopupContent = document.getElementById('notificationPopupContentBody');\n                if(masterPopupContent){\n                    //Main Title\n                    const mainComponent = document.createElement('div');\n                    mainComponent.style.alignSelf = 'center';\n                    mainComponent.style.fontSize = 'x-large';\n                    mainComponent.style.fontWeight = 'bold';\n                    mainComponent.textContent = `Help`;\n                    masterPopupContent.appendChild(mainComponent);\n                    // Title 1\n                    const rawCodeSubTitleComponent = document.createElement('div');\n                    rawCodeSubTitleComponent.style.fontSize = 'medium';\n                    rawCodeSubTitleComponent.style.fontWeight = 'bold';\n                    rawCodeSubTitleComponent.textContent = `Configure Board's Settings:`;\n                    masterPopupContent.appendChild(rawCodeSubTitleComponent);\n                    //Subtitle 1\n                    const subsection1Component = document.createElement('div');\n                    subsection1Component.style.marginLeft = \"15px\";\n                    //SubCode 1\n                    const subRawCode1 = document.createElement('div');\n                    subRawCode1.style.fontSize = 'smaller';\n                    subRawCode1.style.fontWeight = 'bold';\n                    subRawCode1.textContent = `1) Set Command Mode`;\n                    subsection1Component.appendChild(subRawCode1);\n                    //Subsubtitle 1\n                    const subsubsection1Component = document.createElement('div');\n                    subsubsection1Component.style.marginLeft = \"30px\";\n                    //Command Mode\n                    const commandMode = document.createElement('div');\n                    commandMode.style.fontSize = 'smaller';\n                    commandMode.textContent = `- Set to Command Mode: WS+COMMAND_MODE=1`;\n                    subsubsection1Component.appendChild(commandMode);\n\n                    subsection1Component.appendChild(subsubsection1Component);\n                    //SubCode 2\n                    const subRawCode2 = document.createElement('div');\n                    subRawCode2.style.fontSize = 'smaller';\n                    subRawCode2.style.fontWeight = 'bold';\n                    subRawCode2.textContent = `2) Set Desired Setting`;\n                    subsection1Component.appendChild(subRawCode2);\n                    //Subsubtitle 2\n                    const subsubsection2Component = document.createElement('div');\n                    subsubsection2Component.style.marginLeft = \"30px\";\n                    //Mode Setting \n                    const modeSettingComponent = document.createElement('div');\n                    modeSettingComponent.style.fontSize = 'smaller';\n                    modeSettingComponent.textContent = `- Mode Setting: WS+COMMAND=0`;\n                    subsubsection2Component.appendChild(modeSettingComponent);\n                    //Channels Setting\n                    const channelsSettingComponent = document.createElement('div');\n                    channelsSettingComponent.style.fontSize = 'smaller';\n                    channelsSettingComponent.textContent = `- Channels Setting: WS+COMMAND=1`;\n                    subsubsection2Component.appendChild(channelsSettingComponent);\n                    //Stroke Setting\n                    const strokeSettingComponent = document.createElement('div');\n                    strokeSettingComponent.style.fontSize = 'smaller';\n                    strokeSettingComponent.textContent = `- Stroke Setting: WS+COMMAND=2`;\n                    subsubsection2Component.appendChild(strokeSettingComponent);\n                    //ID Setting\n                    const idSettingComponent = document.createElement('div');\n                    idSettingComponent.style.fontSize = 'smaller';\n                    idSettingComponent.textContent = `- ID Setting: WS+COMMAND=3`;\n                    subsubsection2Component.appendChild(idSettingComponent);\n                    //Type Setting\n                    const typeSettingComponent = document.createElement('div');\n                    typeSettingComponent.style.fontSize = 'smaller';\n                    typeSettingComponent.textContent = `- Type Setting: WS+COMMAND=4`;\n                    subsubsection2Component.appendChild(typeSettingComponent);\n                    //Description Setting\n                    const descriptionSettingComponent = document.createElement('div');\n                    descriptionSettingComponent.style.fontSize = 'smaller';\n                    descriptionSettingComponent.textContent = `- Description Setting: WS+COMMAND=5`;\n                    subsubsection2Component.appendChild(descriptionSettingComponent);\n                    //Table to ROM Setting\n                    const tableToROMSettingComponent = document.createElement('div');\n                    tableToROMSettingComponent.style.fontSize = 'smaller';\n                    tableToROMSettingComponent.textContent = `- Table to ROM Setting: WS+COMMAND=7`;\n                    subsubsection2Component.appendChild(tableToROMSettingComponent);\n                    //ROM to Table\n                    const romToTableSettingComponent = document.createElement('div');\n                    romToTableSettingComponent.style.fontSize = 'smaller';\n                    romToTableSettingComponent.textContent = `- ROM to Table Setting: WS+COMMAND=8`;\n                    subsubsection2Component.appendChild(romToTableSettingComponent);\n                    //Exit Setting\n                    const exitSettingComponent = document.createElement('div');\n                    exitSettingComponent.style.fontSize = 'smaller';\n                    exitSettingComponent.textContent = `- Exit Setting: WS+COMMAND=9`;\n                    subsubsection2Component.appendChild(exitSettingComponent);\n\n                    subsection1Component.appendChild(subsubsection2Component);\n                    //SubCode 3\n                    const subRawCode3 = document.createElement('div');\n                    subRawCode3.style.fontSize = 'smaller';\n                    subRawCode3.style.fontWeight = 'bold';\n                    subRawCode3.textContent = `3) Set Desired Value for Setting`;\n                    subsection1Component.appendChild(subRawCode3);\n                    //Subsubtitle 3\n                    const subsubsection3Component = document.createElement('div');\n                    subsubsection3Component.style.marginLeft = \"30px\";\n                    //Command Mode\n                    const setValueComponent = document.createElement('div');\n                    setValueComponent.style.fontSize = 'smaller';\n                    setValueComponent.textContent = `- Set Value: WS+COMMAND_MODE=XXXX`;\n                    subsubsection3Component.appendChild(setValueComponent);\n\n                    subsection1Component.appendChild(subsubsection3Component);\n                    masterPopupContent.appendChild(subsection1Component);\n\n                    // Title 2\n                    const easterEggTitleComponent = document.createElement('div');\n                    easterEggTitleComponent.style.fontSize = 'medium';\n                    easterEggTitleComponent.style.fontWeight = 'bold';\n                    easterEggTitleComponent.textContent = `Easter Egg Settings:`;\n                    masterPopupContent.appendChild(easterEggTitleComponent);\n\n                    //Subtitle 2\n                    const subsection2Component = document.createElement('div');\n                    subsection2Component.style.marginLeft = \"15px\";\n                    masterPopupContent.appendChild(subsection2Component);\n\n                    //getRigActivity\n                    const getRigActivityComponent = document.createElement('div');\n                    getRigActivityComponent.style.fontSize = 'smaller';\n                    getRigActivityComponent.textContent = `- View all rig activites: getRigActivity`;\n                    subsection2Component.appendChild(getRigActivityComponent);\n\n                    //getInternalVersion\n                    const getInternalVersionComponent = document.createElement('div');\n                    getInternalVersionComponent.style.fontSize = 'smaller';\n                    getInternalVersionComponent.textContent = `- View all rig activites: getInternalVersion`;\n                    subsection2Component.appendChild(getInternalVersionComponent);\n    \n                }\n            });\n    \n        }catch (error) {\n            console.error('Error reflashPopup:', error);\n            resolve(false);\n            document.removeEventListener('keydown', enterKeyHandler);\n\n        }\n    });\n}\nexport function buildCalibrationV2IntermissionNotificationBoard(context){\n    /**\n     * Case sensitive \n     */\n    return new Promise((resolve) => {\n        try{\n            let timer = 300;\n            context.set(\"isShowConfig.isShowPopupNotification\", true);\n            Ember.run.scheduleOnce('afterRender', context, () => {\n                const masterPopupContent = document.getElementById('notificationPopupContentBody');\n                if(masterPopupContent){\n                    //X Cloe Button \n                    const xButtonComponent = document.getElementById('closeXButton');\n                    xButtonComponent.style.display ='none';\n                    //Main Title\n                    const mainComponent = document.createElement('div');\n                    mainComponent.style.alignSelf = 'center';\n                    mainComponent.style.fontSize = ' x-large';\n                    mainComponent.style.fontWeight = 'bold';\n                    mainComponent.textContent = `Calibration Intermission`;\n                    masterPopupContent.appendChild(mainComponent);\n                    //Timer Warning message 1\n                    const timerWarningComponent1 = document.createElement('div');\n                    timerWarningComponent1.style.alignSelf = 'center';\n                    timerWarningComponent1.style.fontSize = 'medium';\n                    timerWarningComponent1.style.color = 'red';\n                    timerWarningComponent1.style.fontWeight = 'bold';\n                    const interval = setInterval(() => {\n                        timerWarningComponent1.textContent = `You have ${timer} seconds to ensure the lookup values meet your expectations!`;\n                        const progressBarSection = document.getElementById('packsProgressionPopupViewSection');\n                        const progressBarFill = document.getElementById('packsProgressionPopupViewBar');\n                        let progressPercentage = ((300 - timer) / 300) * 100;\n                        progressPercentage = Math.min(progressPercentage, 100); // Ensures max is 100%\n                        progressBarSection.style.display = \"flex\"; \n                    \n                        progressBarFill.style.width = `${progressPercentage}%`;\n                        timer -= 1;\n                        if(timer < 0){\n                            const xButtonComponent = document.getElementById('closeXButton');\n                            xButtonComponent.style.display ='block';\n                            clearInterval(interval);\n                            context.send('closeNotificationPopup'); \n                            resolve(true);\n                        }\n                    }, 1000); \n                    masterPopupContent.appendChild(timerWarningComponent1);\n                    //Timer Bar Section\n                    const timerBarSection = document.createElement('div');\n                    timerBarSection.id='packsProgressionPopupViewSection'\n                    timerBarSection.class='packsProgressionViewSection'\n                    //Timer Bar \n                    const timerBarBar = document.createElement('div');\n                    timerBarBar.id='packsProgressionPopupViewBar'\n                    timerBarBar.className='packsProgressionBar'\n                    //Timer Bar Value\n                    const timerBarValue = document.createElement('div');\n                    timerBarValue.id='packsProgressionPopupViewValue'\n                    timerBarValue.className='packsProgressionValue'\n                    timerBarSection.appendChild(timerBarBar);\n                    masterPopupContent.appendChild(timerBarSection);\n\n                    //Batch Sensor Section\n                    const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n                    for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                        if(batchSensorData[i] != null){\n                            const sensorObj = batchSensorData[i];\n                            let calibrationData = sensorObj[\"calibrationData\"];\n                            let sensorData = sensorObj[\"sensorData\"];\n\n                            const subtitle1 = document.createElement('div');\n                            subtitle1.style.fontSize = 'smaller';\n                            subtitle1.style.fontWeight = 'bold';\n                            subtitle1.textContent = `Sensor ${i}: ${sensorData[\"sensorID\"]}`;\n                            masterPopupContent.appendChild(subtitle1);\n\n                            const lookupDataSection = document.createElement('div');\n                            lookupDataSection.style.fontSize = 'smaller';\n                            lookupDataSection.style.marginLeft = '10px';\n                            masterPopupContent.appendChild(lookupDataSection);\n                            calibrationData[\"lookupData\"].forEach((calibrationDataArr, index)=>{\n                                const lookupData = document.createElement('div');\n                                lookupData.style.fontSize = 'smaller';\n                                lookupData.textContent = `Lookup ${index + 1}:[${calibrationDataArr.toString()}]`;\n                                lookupDataSection.appendChild(lookupData);\n\n                            })\n                        }\n                    }\n                                    \n                    //Timer Warning message 2\n                    const timerWarningComponent2 = document.createElement('div');\n                    timerWarningComponent2.style.alignSelf = 'center';\n                    timerWarningComponent2.style.fontSize = 'medium';\n                    timerWarningComponent2.textContent = `If you do not meet the time, calibration will continue.`;\n                    masterPopupContent.appendChild(timerWarningComponent2);\n                    //Timer Warning message 3\n                    const timerWarningComponent3 = document.createElement('div');\n                    timerWarningComponent3.style.alignSelf = 'center';\n                    timerWarningComponent3.style.fontSize = 'small';\n                    timerWarningComponent3.textContent = `If you are ready before the counter, please click Ready below.`;\n                    masterPopupContent.appendChild(timerWarningComponent3);\n    \n                    const readyButtonComponent = document.getElementById('notificationReadyButton');\n                    readyButtonComponent.style.display = \"block\";\n                    readyButtonComponent.style.marginRight = \"10px\";\n                    const closePopupAndResolve = () => {\n                        clearInterval(interval);\n                        xButtonComponent.style.display = 'block';\n                        context.send('closeNotificationPopup');\n                        resolve(true); \n                        document.removeEventListener('keydown', enterKeyHandler);\n                    };\n\n                    readyButtonComponent.onclick = closePopupAndResolve;\n                    const enterKeyHandler = (event) => {\n                        if (event.key === \"Enter\") {\n                            closePopupAndResolve();\n                        }\n                    };\n                    document.addEventListener('keydown', enterKeyHandler);\n                    const abortButtonComponent = document.getElementById('notificationAbortButton');\n                    abortButtonComponent.style.display = \"block\";\n                    abortButtonComponent.style.backgroundColor = \"red\"; \n                    abortButtonComponent.style.borderColor = \"red\"; \n                    const abortResolve = () => {\n                        clearInterval(interval);\n                        xButtonComponent.style.display = 'block';\n                        context.send('closeNotificationPopup');\n                        document.removeEventListener('keydown', enterKeyHandler);\n                        context.get(\"emergencyController\").abort();\n                        resolve(false)\n                    };\n                    abortButtonComponent.onclick = abortResolve;\n    \n                }\n            });\n    \n        }catch (error) {\n            console.error('Error calibrationV2IntermissionNotificationBoard:', error.message);\n            console.error(error.stack);\n            resolve(false);\n            document.removeEventListener('keydown', enterKeyHandler);\n\n        }\n    });\n}\nexport function buildInventoryUpdateBoard(context, sensorProfile){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n    Ember.run.scheduleOnce('afterRender', context, () => {\n\n        const masterPopupContent = document.getElementById('notificationPopupContentBody');\n        if(masterPopupContent){\n\n            masterPopupContent.innerHTML = '';\n\n            // Title\n            const titleSection = document.createElement('div');\n            titleSection.style.fontSize = 'large';\n            titleSection.style.fontWeight = 'bold';\n            titleSection.textContent = `Edit Sensor ${sensorProfile['sensorId']} from Inventory `;\n            masterPopupContent.appendChild(titleSection);\n            \n\n            const masterDivSection = document.createElement(\"div\");\n            masterDivSection.style.width = \"100%\";\n            masterDivSection.style.display = \"flex\";\n            masterDivSection.style.flexDirection = \"row\";\n\n            const master1DivSection = document.createElement(\"div\");\n            master1DivSection.style.width = \"50%\";\n\n\n            // Row 1 Section\n            const row1Section = document.createElement('div');\n            row1Section.style.display = 'flex';\n            row1Section.style.flexDirection = 'row';\n            row1Section.style.marginTop = \"10px\";\n\n            // Sensor Name Row Section\n            const sensorNameSection = document.createElement('div');\n            sensorNameSection.style.display = 'flex';\n            sensorNameSection.style.flexDirection = 'row';\n            sensorNameSection.style.alignItems = 'center';\n            sensorNameSection.style.marginRight = \"10px\";\n            //Sensor Name Label\n            const sensorNameLabel = document.createElement('div');\n            sensorNameLabel.style.fontSize = 'small';\n            sensorNameLabel.textContent = `Sensor Name:`;\n            //Sensor Name TB\n            const tdsensorNameElement = document.createElement('td');\n            tdsensorNameElement.classList.add('input');\n            const inputSensorNameElement = document.createElement('input');\n            inputSensorNameElement.classList.add('form-control'); \n            inputSensorNameElement.setAttribute('type', 'text');\n            inputSensorNameElement.id=`edit_from_inventory_sensorNameTB`;\n            inputSensorNameElement.style.fontSize = \"small\";\n            inputSensorNameElement.style.padding = \"0px\";\n            inputSensorNameElement.style.marginRight = \"10px\";\n            let userInputtedSensorName = null;\n            try{\n                userInputtedSensorName = `${sensorProfile['sensorId'] ? sensorProfile['sensorId'] : \"\"}`\n            }catch(e){\n\n            }\n            inputSensorNameElement.value = userInputtedSensorName;\n            tdsensorNameElement.appendChild(inputSensorNameElement);\n            sensorNameSection.appendChild(sensorNameLabel);\n            sensorNameSection.appendChild(tdsensorNameElement);\n            row1Section.appendChild(sensorNameSection);\n\n            // Job ID Row Section\n            const jobIDSection = document.createElement('div');\n            jobIDSection.style.display = 'flex';\n            jobIDSection.style.flexDirection = 'row';\n            jobIDSection.style.alignItems = 'center';\n            //Job ID Label\n            const jobIDLabel = document.createElement('div');\n            jobIDLabel.style.fontSize = 'small';\n            jobIDLabel.textContent = `Job ID:`;\n            //Job ID TB\n            const tdJobIDElement = document.createElement('td');\n            tdJobIDElement.classList.add('input');\n            const inputJobIDElement = document.createElement('input');\n            inputJobIDElement.classList.add('form-control'); \n            inputJobIDElement.setAttribute('type', 'text');\n            inputJobIDElement.id=`edit_from_inventory_jobIDTB`;\n            inputJobIDElement.style.fontSize = \"small\";\n            inputJobIDElement.style.padding = \"0px\";\n            let userInputtedJobID = null;\n            try{\n                userInputtedJobID = `${sensorProfile['jobId'] ? sensorProfile['jobId'] : \"\"}`\n            }catch(e){\n\n            }\n            inputJobIDElement.value = userInputtedJobID;\n            tdJobIDElement.appendChild(inputJobIDElement);\n            jobIDSection.appendChild(jobIDLabel);\n            jobIDSection.appendChild(tdJobIDElement);\n            row1Section.appendChild(jobIDSection);\n\n            masterPopupContent.appendChild(row1Section);\n\n            // Row 2 Section\n            const row2Section = document.createElement('div');\n            row2Section.style.display = 'flex';\n            row2Section.style.flexDirection = 'row';\n            row2Section.style.marginTop = \"10px\";\n\n            //Memo\n            const memoSection = document.createElement('div');\n            memoSection.style.display = 'flex';\n            memoSection.style.flexDirection = 'row';\n            memoSection.style.alignItems = 'center';\n            const memoLabelSection = document.createElement('div');\n            memoLabelSection.style.fontSize = 'small';\n            memoLabelSection.textContent = `Memo:`;\n\n            const tdMemoElement = document.createElement('td');\n            tdMemoElement.classList.add('input');\n            // Create the textarea\n            const textareaElement = document.createElement('textarea');\n            textareaElement.classList.add('form-control');\n            textareaElement.id=`edit_from_inventory_memoTB`;\n            textareaElement.style.fontSize = 'small';\n            textareaElement.style.padding = \"0px\";\n            textareaElement.value=sensorProfile['memo']\n            \n            tdMemoElement.appendChild(textareaElement);\n            memoSection.appendChild(memoLabelSection);\n            memoSection.appendChild(tdMemoElement);\n\n            row2Section.appendChild(memoSection)\n            masterPopupContent.appendChild(row2Section);\n\n            // Row 3 Section\n            const row3Section = document.createElement('div');\n            row3Section.style.display = 'flex';\n            row3Section.style.flexDirection = 'row';\n            row3Section.style.marginTop = \"10px\";\n\n            //REMEMBER, \"channels\" passed in contains temeprature channel, thus when you do length and indexing, -1 it. \n            Ember.run.scheduleOnce('afterRender', this, () => {\n                let channels = sensorProfile[\"channels\"];\n                let type = sensorProfile[\"type\"];\n                //Build Sections\n                const masterDiagramSection = document.createElement('div');\n                masterDiagramSection.id = 'masterAnchorDiagram';\n        \n                const upperMasterSection = document.createElement('div');\n                upperMasterSection.className=\"upperMasterSectionStyle\";\n                upperMasterSection.id=\"upperMasterSection\";\n                const anchorDummyHeadComponent1 = document.createElement('div');\n                anchorDummyHeadComponent1.style.width=\"47px\"\n                const anchorUpperTextBoxSection = document.createElement('div');\n                anchorUpperTextBoxSection.className=\"anchorUpperTextBoxSectionStyle\";\n                anchorUpperTextBoxSection.id=\"anchorUpperTextBoxSection\";\n                const anchorDummyTailComponent1 = document.createElement('div');\n                anchorDummyTailComponent1.style.width=\"47px\"\n                upperMasterSection.appendChild(anchorDummyHeadComponent1);\n                upperMasterSection.appendChild(anchorUpperTextBoxSection);\n                upperMasterSection.appendChild(anchorDummyTailComponent1);\n\n                const anchorMasterSection = document.createElement('div');\n                anchorMasterSection.className=\"anchorMasterSectionStyle\";\n                anchorMasterSection.id=\"anchorMasterSection\"\n\n                const anchorHeadComponent = document.createElement('div');\n                anchorHeadComponent.className=\"anchorHeadTextStyle\";\n                anchorHeadComponent.textContent=\"HEAD\"\n\n                const anchorPointsComponent = document.createElement('div');\n                anchorPointsComponent.className=\"anchorPointsSectionStyle\";\n                anchorPointsComponent.id=\"anchorPointsSection\"\n\n                const anchorToeTextComponent = document.createElement('div');\n                anchorToeTextComponent.className=\"anchorToeTextStyle\";\n                anchorToeTextComponent.textContent=\"TOE\"\n\n                anchorMasterSection.appendChild(anchorHeadComponent);\n                anchorMasterSection.appendChild(anchorPointsComponent);\n                anchorMasterSection.appendChild(anchorToeTextComponent);\n\n                const lowerMasterSection = document.createElement('div');\n                lowerMasterSection.className=\"lowerMasterSectionStyle\";\n                lowerMasterSection.id=\"lowerMasterSection\"\n                const anchorDummyHeadComponent2 = document.createElement('div');\n                anchorDummyHeadComponent2.style.width=\"47px\"\n                const anchorLowerTextBoxSection = document.createElement('div');\n                anchorLowerTextBoxSection.className=\"anchorLowerTextBoxSection\";\n                anchorLowerTextBoxSection.id=\"anchorLowerTextBoxSection\"\n                const anchorDummyTailComponent2 = document.createElement('div');\n                anchorDummyTailComponent2.style.width=\"47px\"\n\n                lowerMasterSection.appendChild(anchorDummyHeadComponent2);\n                lowerMasterSection.appendChild(anchorLowerTextBoxSection);\n                lowerMasterSection.appendChild(anchorDummyTailComponent2);\n\n                masterDiagramSection.appendChild(upperMasterSection);\n                masterDiagramSection.appendChild(anchorMasterSection);\n                masterDiagramSection.appendChild(lowerMasterSection);\n        \n                if(type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                 \n                    //Show Upper Section\n                    upperMasterSection.style.display=\"flex\";\n                    //Show Anchor Section\n                    anchorMasterSection.style.display=\"flex\";\n                    //Hide Lower Section\n                    lowerMasterSection.style.display=\"none\";\n                    //Show Master Section\n                    masterDiagramSection.style.display=\"block\"\n                }\n                else if (type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                    //Show Upper Section\n                    upperMasterSection.style.display=\"flex\";\n                    //Show Anchor Section\n                    anchorMasterSection.style.display=\"flex\";\n                    //Show Lower Section\n                    lowerMasterSection.style.display=\"flex\";\n                    //Show Master Section\n                    masterDiagramSection.style.display=\"block\"\n                }else{\n                    //Hide Everything\n                    upperMasterSection.style.display=\"none\";\n                    anchorMasterSection.style.display=\"none\";\n                    lowerMasterSection.style.display=\"none\";\n                    masterDiagramSection.style.display=\"none\"\n                }\n                //Build Channels so that it will be using building textboxes\n                let visualAnchorPoints = [];\n                try{\n                    if(type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                                                                                     \n                        for(let i=1; i <= channels - 1; i ++){\n                            visualAnchorPoints.push(i);\n                        }\n                    }\n                    else if (type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                        for(let i=1; i <= (channels - 1)/2; i ++){\n                            visualAnchorPoints.push(i);\n                        }\n                    }else{\n                    }\n                }catch(e){\n                    console.log(\"Error in 'Build Channels so that it will be using building textboxes' in visualAnchorPoints: \" + e)\n                }\n                if(anchorUpperTextBoxSection){\n    \n                    anchorUpperTextBoxSection.innerHTML = '';\n    \n                    const firstBufferSection = document.createElement('div');\n                    firstBufferSection.style.width = \"65px\";\n                    firstBufferSection.style.height = \"15px\";\n    \n                    anchorUpperTextBoxSection.appendChild(firstBufferSection);\n    \n                    visualAnchorPoints.forEach((channel)=>{\n\n                        const tdElement = document.createElement('td');\n                        tdElement.classList.add('input');\n                        tdElement.style.width = \"50px\";\n                        tdElement.style.height = '15px';\n                        const inputElement = document.createElement('input');\n                        inputElement.classList.add('form-control'); \n                        inputElement.setAttribute('type', 'number'); \n                        inputElement.id=`upperAnchorTB${channel}`;\n                        inputElement.style.width = \"50px\";\n                        inputElement.style.height = '15px';\n                        inputElement.style.fontSize = \"13px\";\n                        inputElement.style.padding = \"0px\";\n\n                        // inputElement.value = `${channel}`;\n                        tdElement.appendChild(inputElement);\n                        anchorUpperTextBoxSection.appendChild(tdElement);\n                    });\n                }\n                if (anchorPointsComponent) {\n                // Clear any existing children\n                    anchorPointsComponent.innerHTML = '';\n    \n                    const headDiv = document.createElement('div');\n                    headDiv.id='headDiv'\n                    headDiv.style.display = \"block\";\n                    headDiv.style.background = \"#4A6A9C\";\n                    headDiv.style.width = \"65px\";\n                    headDiv.style.height = \"15px\";\n                    headDiv.style.borderRadius = \"10px 0 0 10px\";\n                    anchorPointsComponent.appendChild(headDiv);\n    \n                    visualAnchorPoints.forEach((channel) => {\n                        // Create anchor space\n                        const anchorSpace = document.createElement('div');\n                        anchorSpace.id=`anchorPoint${channel}`;\n                        anchorSpace.style.width = '50px';\n                        anchorSpace.style.height = '15px';\n                        anchorSpace.style.display = 'flex';\n                        anchorSpace.style.justifyContent = 'center';\n                        anchorSpace.style.alignItems = 'center';\n                        anchorSpace.style.flexDirection = 'row';\n                        // Create anchor point\n                        const anchorPoint = document.createElement('div');\n                        anchorPoint.style.width = '8px';\n                        anchorPoint.style.height = '8px';\n                        anchorPoint.style.background = '#4A6A9C';\n                        anchorPoint.style.borderStyle = 'solid';\n                        anchorPoint.style.borderRadius = '999px';\n                        anchorPoint.style.borderWidth = '1px';\n    \n    \n                        anchorSpace.appendChild(anchorPoint);\n                        anchorPointsComponent.appendChild(anchorSpace);\n                    });\n                }\n                if(anchorLowerTextBoxSection){\n    \n                    anchorLowerTextBoxSection.innerHTML = '';\n                    const firstBufferSection = document.createElement('div');\n    \n                    firstBufferSection.style.width = \"65px\";\n                    firstBufferSection.style.height = \"15px\";\n                    anchorLowerTextBoxSection.appendChild(firstBufferSection);\n    \n                    visualAnchorPoints.forEach((channel)=>{\n\n                        const tdElement = document.createElement('td');\n                        tdElement.classList.add('input');\n                        tdElement.style.width = \"50px\";\n                        tdElement.style.height = '15px';\n                        const inputElement = document.createElement('input');\n                        inputElement.classList.add('form-control'); \n                        inputElement.setAttribute('type', 'number');\n                        inputElement.id=`lowerAnchorTB${channel}`;\n                        inputElement.style.width = \"50px\";\n                        inputElement.style.height = '15px';\n                        inputElement.style.fontSize = \"13px\";\n                        inputElement.style.padding = \"0px\";\n                        tdElement.appendChild(inputElement);\n                        anchorLowerTextBoxSection.appendChild(tdElement);\n                    });\n                }\n                row3Section.append(masterDiagramSection);\n                masterPopupContent.appendChild(row3Section);\n                //Load Initial values for textboxes, sensor type dependent\n                //Uncomment section below if you want to have ID index as pre-loaded upperAnchorTBs\n                try{\n                    if(type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){\n                        visualAnchorPoints.forEach(anchorPoint=>{\n                            const anchorUpperTBComponent = document.getElementById(`upperAnchorTB${anchorPoint}`);\n                            if(anchorUpperTBComponent){\n                                anchorUpperTBComponent.value = Number(sensorProfile['anchorDataValue'][`upperAnchorTB${anchorPoint}`]);\n                            }\n                        });\n                    }\n                    else if (type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                        let channelArray = []\n                        for(let i = 1; i <= (channels - 1); i ++){\n                            channelArray.push(i);\n                        }\n\n                        visualAnchorPoints.forEach(anchorPoint=>{\n                            const anchorUpperTBComponent = document.getElementById(`upperAnchorTB${anchorPoint}`);\n                            const anchorLowerTBComponent = document.getElementById(`lowerAnchorTB${anchorPoint}`);\n                            if(anchorUpperTBComponent != null && anchorLowerTBComponent != null){\n                                anchorUpperTBComponent.value = Number(sensorProfile['anchorDataValue'][`upperAnchorTB${anchorPoint}`]);\n                                anchorLowerTBComponent.value = Number(sensorProfile['anchorDataValue'][`lowerAnchorTB${anchorPoint}`]);\n\n                            }\n                        });\n                    }else{\n                    }\n\n                }catch(e){\n                    console.log(\"Error in 'Load Initial values for textboxes, sensor type dependent' in buildInventoryUpdateBoard: \" + e)\n                    console.log(e.stack);\n                }\n\n            });\n            \n            //Display and setup Cancel Save Button\n            const notificationCancelButton = document.getElementById('notificationCancelButton');\n            notificationCancelButton.style.display = \"block\";\n            notificationCancelButton.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n            const notificationSaveButton = document.getElementById('notificationSaveButton');\n            notificationSaveButton.style.display = \"block\";\n            notificationSaveButton.style.marginRight = \"10px\";\n            notificationSaveButton.onclick = async () => {\n                //Anchor upper IDs: upperAnchorTB_edit_from_inventory_${channel}\n                //Anchor lower IDs: lowerAnchorTB_edit_from_inventory_${channel}\n                let channels = sensorProfile[\"channels\"];\n                let type = sensorProfile[\"type\"];\n                let visualAnchorPoints = [];\n                let requestBody = {};\n                let anchorDataValue = {};\n                try{\n                    if(type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){                                                                                     \n                        for(let i=1; i <= channels - 1; i ++){\n                            visualAnchorPoints.push(i);\n                        }\n                    }\n                    else if (type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                        for(let i=1; i <= (channels - 1)/2; i ++){\n                            visualAnchorPoints.push(i);\n                        }\n                    }else{\n                    }\n                }catch(e){\n                    console.log(\"Error in 'Build Channels so that it will be using building textboxes' in visualAnchorPoints: \" + e)\n                }\n                try{\n                    if(type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue || type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue){\n                        visualAnchorPoints.forEach(anchorPoint=>{\n                            const anchorUpperTBComponent = document.getElementById(`upperAnchorTB${anchorPoint}`);\n                            if(anchorUpperTBComponent){\n                                // console.log(`upper tb value:${anchorUpperTBComponent.value}`);\n                                anchorDataValue[`upperAnchorTB${anchorPoint}`] = Number(anchorUpperTBComponent.value);\n                            }\n                        });\n                    }\n                    else if (type === context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue){\n                        let channelArray = []\n                        for(let i = 1; i <= (channels - 1); i ++){\n                            channelArray.push(i);\n                        }\n\n                        visualAnchorPoints.forEach(anchorPoint=>{\n                            const anchorUpperTBComponent = document.getElementById(`upperAnchorTB${anchorPoint}`);\n                            const anchorLowerTBComponent = document.getElementById(`lowerAnchorTB${anchorPoint}`);\n                            if(anchorUpperTBComponent != null && anchorLowerTBComponent != null){\n                                // console.log(`upperAnchorTB${anchorPoint}: ${anchorUpperTBComponent.value}`);\n                                // console.log(`lowerAnchorTB${anchorPoint}: ${anchorLowerTBComponent.value}`);\n                                anchorDataValue[`upperAnchorTB${anchorPoint}`] = Number(anchorUpperTBComponent.value);\n                                anchorDataValue[`lowerAnchorTB${anchorPoint}`] = Number(anchorLowerTBComponent.value);\n                            }\n                        });\n                    }else{\n                    }\n\n                }catch(e){\n                    console.log(\"Error in 'get values from textboxes for anchorDataValue' in buildInventoryUpdateBoard: \" + e)\n                    console.log(e.stack);\n                }\n                requestBody['anchorDataValue'] = anchorDataValue;\n                const sensorNameElement = document.getElementById('edit_from_inventory_sensorNameTB');\n                requestBody['sensorName'] = sensorNameElement.value;\n                const jobIDElement = document.getElementById('edit_from_inventory_jobIDTB');\n                requestBody['jobID'] = jobIDElement.value;\n                const memoElement = document.getElementById('edit_from_inventory_memoTB');\n                requestBody['memo'] = memoElement.value;\n                const latestDateTime=getCurrentDateTime();\n                requestBody['employeeActivityDate'] = latestDateTime;\n\n                const userProfile = context.get('session').data.authenticated['userProfile'];\n                // console.log(userProfile['profile'])\n                requestBody['employeeActivityUsername'] = `${userProfile['profile']['username']}`\n                showPopup([\"Applying changes...\"], \"warning\", 1);\n                const response = await sendPATCHRequest(`calib_sensor_inventory_profile/${sensorProfile[\"calibrationId\"]}`, requestBody);\n                if(response){\n                    showPopup([\"Changes applied!\"], \"success\", 1);\n                    context.send('closeNotificationPopup'); \n                }else{\n                    showPopup([\"Changes failed\"], \"error\", 1);\n\n                }\n            };\n        }\n    });\n\n}\n\n//Make POST & PATCH requests \nexport async function sendGETRequest(endpoint, queryParams = {}){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint;\n        const queryString = new URLSearchParams(queryParams).toString();\n        if (queryString) {\n          url += `?${queryString}`;\n        }\n        const response = await fetch(url, {\n          method: 'GET',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response['status'] == 200) || (response['status'] == 201)) {\n            const responseData = await response.json();\n            const newData = convertKeysToCamelCase(responseData);\n            return newData; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nfunction convertKeysToCamelCase(obj) {\n    /**\n        This helper function is a generic helper function used to convert kebab-case to camelCase, so that I can take the obj and see it as normal JSON object \n        const inputFrom = {\n            'sensor-name': 'Temperature Sensor',\n            'sensor-id': 12345,\n            'nested-data': {\n            'calibration-date': '2024-12-15',\n            'sensor-details': [\n                { 'sensor-value': 100, 'sensor-unit': 'C' },\n                { 'sensor-value': 200, 'sensor-unit': 'F' }\n            ]\n            }\n        };\n        const inputTo =  {\n            sensorName: 'Temperature Sensor',\n            sensorId: 12345,\n            nestedData: {\n            calibrationDate: '2024-12-15',\n            sensorDetails: [\n                { sensorValue: 100, sensorUnit: 'C' },\n                { sensorValue: 200, sensorUnit: 'F' }\n            ]\n            }\n        }\n    */\n\n    if (Array.isArray(obj)) {\n      return obj.map(v => convertKeysToCamelCase(v));\n    } else if (obj !== null && typeof obj === 'object') {\n      return Object.fromEntries(\n        Object.entries(obj).map(([key, value]) => [\n          key.replace(/-([a-z])/g, (_, char) => char.toUpperCase()), // Convert kebab-case to camelCase\n          convertKeysToCamelCase(value)\n        ])\n      );\n    }\n    return obj;\n}\nexport async function sendPOSTRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            // console.log('Data submitted successfully:', responseData);\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendPATCHRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'PATCH',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            // console.log('Data submitted successfully:', responseData);\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendDELETERequest(endpoint){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'DELETE',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n  \n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            // console.log('Data submitted successfully:', responseData);\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\n\n//Profile & Form & Data Section\nexport function resetProfile(context, mode){\n    switch (mode){\n        case \"rig\":\n            resetProfileForm(mode);\n            context.set(\"formRigData\",{});\n        case \"calib\":\n            resetProfileForm(mode);\n            context.set(\"formCalibData\",{});\n    }\n\n}\nexport function resetProfileForm(mode){\n    switch(mode){\n        case \"rig\":\n            const rigIPComponent = document.getElementById(\"rigIP\");\n            if(rigIPComponent){\n                rigIPComponent.value = null;\n            }\n            const rigNameComponent = document.getElementById(\"rigName\");\n            if(rigNameComponent){\n                rigNameComponent.value = null;\n            }\n            const rigCategoryComponent = document.getElementById(\"rigCategory\");\n            if(rigCategoryComponent){\n                rigCategoryComponent.value = '';\n            }\n        case \"calib\":\n            const comp1 = document.getElementById(\"calibType\");\n            if(comp1){\n                comp1.value = \"\";\n            }\n            const comp2 = document.getElementById(\"channels\");\n            if(comp2){\n                comp2.value = null;\n            }\n            const comp3 = document.getElementById(\"minLimit\");\n            if(comp3){\n                comp3.value = null;\n            }\n            const comp4 = document.getElementById(\"maxLimit\");\n            if(comp4){\n                comp4.value = null;\n            }\n            const comp5 = document.getElementById(\"checkpointSampleSize\");\n            if(comp5){\n                comp5.value = null;\n            }\n            const comp6 = document.getElementById(\"checkpointSpeed\");\n            if(comp6){\n                comp6.value = null;\n            }\n            const comp7 = document.getElementById(\"checkpointDelay\");\n            if(comp7){\n                comp7.value = null;\n            }\n            const comp8 = document.getElementById(\"checkpointPositions\");\n            if(comp8){\n                comp8.value = null;\n            }\n    }\n}\nexport function resetDataRigProfile(context){\n    console.log(\"resetDataRigProfile\");\n    //Clear live log console\n    const chatBox = document.getElementById('streamingTextBox');\n    if(chatBox){\n        chatBox.innerHTML = \"\";\n    }\n    //Reset Calib Profile Selection\n    const calibProfile = document.getElementById(\"selectedCalibrationType\");\n    calibProfile.value=\"0\";\n    context.set(\"userInputtedData.selectedCalibrationProfile\", 0);\n    //Disable Stepper motor & pump sections & \n    const stepperComponent = document.getElementById('stepperMotorSection');\n    stepperComponent.style.pointerEvents=\"none\";\n    stepperComponent.style.opacity=\"0.5\";\n    const pumpComponent = document.getElementById('pressurePumpSection');\n    pumpComponent.style.pointerEvents=\"none\";\n    pumpComponent.style.opacity=\"0.5\";\n    const pressureCalibHotKeysSectionComponent = document.getElementById('pressureCalibHotKeysSection');\n    pressureCalibHotKeysSectionComponent.style.pointerEvents=\"none\";\n    pressureCalibHotKeysSectionComponent.style.opacity=\"0.5\";\n    let dataVer = \"v1.0\"\n    context.set(\"settingsConfig.internalVersion\", dataVer);\n    //Reset Rig Profile Selection\n    context.set(\"userInputtedData.selectedRigProfile\", null);\n}\nexport function resetDataCalibProfile(context){\n    context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n    //Reset Anchor Data\n    const masterDiagramSection = document.getElementById('masterAnchorDiagram');\n    masterDiagramSection.style.display=\"none\"\n    context.set(\"userInputtedData.selectedAnchorData\", null);\n    //Clear Anchor Live Section\n    document.getElementById('anchorLiveViewSections').innerHTML = '';\n    //Clear Live Log Charts Dataset\n    if (context.chart) {\n        context.chart.data.datasets = [];\n        context.chart.data.labels = []\n        context.chart.update();\n    }\n    //Clear Selected Calib Profile\n    context.set(\"userInputtedData.selectedCalibrationProfile\", null);\n    if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n        //Clear Sensor ID TB\n        const sensorIDTBComponent = document.getElementById(\"sensorID\");\n        sensorIDTBComponent.value = ``;\n\n    }else if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n        clearBatchSensorCalibrationData(context);\n\n    }\n    \n}\nfunction updateAnchorBoardLiveViewData(data){\n    const parsedData = data.slice(2); // Parse your incoming message\n    // console.log(parsedData);\n    const chart = Chart.getChart('myChart'); // Get the Chart instance\n    if (chart && chart.data && chart.data.datasets.length > 0) {\n\n        for(let i=0;i<chart.data.datasets.length; i++){\n            if(i == 0){\n                const tempLabel = document.getElementById('T0');\n                if(tempLabel){\n                    tempLabel.textContent=`T:${parsedData[i]}`\n                }\n            }else{\n                const dispLabel = document.getElementById(`CH${i}`);\n                if(dispLabel){\n                    dispLabel.textContent=`CH${i}:${parsedData[i]}`\n                }\n            }\n        }\n    }\n\n}\nfunction updateAnchorChartLiveViewData (data) {\n    const parsedData = data.slice(2); // Parse your incoming message\n    const chart = Chart.getChart('myChart'); // Get the Chart instance\n    if (chart && chart.data && chart.data.datasets.length > 0) {\n        const currentIndex = chart.data.labels.length;\n\n        // Add the new x-axis label (counter value)\n        chart.data.labels.push(currentIndex);\n\n        // Add the new y-axis data (parsed displacement value)\n        for(let i=0;i<chart.data.datasets.length; i++){\n            chart.data.datasets[i].data.push(parsedData[i]);\n        }\n\n        const maxDataPoints = 60; // max\n        if (chart.data.labels.length > maxDataPoints) {\n            chart.data.labels.shift(); // Remove the oldest x-axis label\n            for(let i=0;i<chart.data.datasets.length; i++){\n                chart.data.datasets[i].data.shift();\n            }\n        }\n\n        chart.update('none'); // Update the chart to reflect the new data\n\n    }\n}\nexport async function validateAllForms(context){\n    //When Building a validator, there are only 3 types validation state:\n    //Missing-Red Neutral-Orange Passed-Green\n    const failedState = \"Missing-Red\";\n    const neutralState = \"Neutral-Orange\";\n    const labelState = \"Label-Black\";\n    const passedState = \"Passed-Green\"\n    //When Building a validator, there are only 3 levels of indentation:\n    const indent = 12; //supposed to represent 10px, setting numbers here because I can use it for multiples\n\n    //What is the structure for failedObjects? \n    //Label Text-Value Text-Value Text Color-# of indents\n    let failedObjects={};\n\n\n    //Check Rig Connection\n    if(context.get(\"dashboardStatusBarData.connection\") == null || (JSON.stringify(context.get(\"dashboardStatusBarData.connection\")) != JSON.stringify(connectionStatusLibrary(502)))){\n        failedObjects[\"rigConnection\"] = `Rig Connection-${failedState}-${0 * indent}px`;\n    }else{\n        failedObjects[\"rigConnection\"] = `Rig Connection-${passedState}-${0 * indent}px`;\n    }\n    //Check Permissions\n    let responseData = await sendGETRequest(`sensor_calib_validate/`);\n    const data = responseData;\n    if(data['status'] != 200){\n        failedObjects[\"permission_sensor_calib\"] = `Permissions-${failedState}-${0 * indent}px`;\n    }else{\n        failedObjects[\"permission_sensor_calib\"] = `Permissions-${passedState}-${0 * indent}px`;\n    }\n\n    //Check Calibration Profile\n    if(context.get(\"userInputtedData.selectedCalibrationProfile\") == '0' || context.get(\"userInputtedData.selectedCalibrationProfile\") == '' || context.get(\"userInputtedData.selectedCalibrationProfile\") == null){\n        failedObjects[\"calib\"] = `Calibration Profile-${failedState}-${0 * indent}px`;\n    }else{\n        failedObjects[\"calib\"] = `Calibration Profile-${passedState}-${0 * indent}px`;\n    }\n\n    if(context.get(\"settingsConfig.CALIBRATIONSPECIFICPERMISSIONS\")[\"can_view_edit_from_inv\"]){\n\n    }else{\n        //Check Anchor Diagram\n        const masterDiagramSection = document.getElementById('masterAnchorDiagram');\n        if(masterDiagramSection != null && masterDiagramSection.style.display != \"none\"){\n            failedObjects[\"anchorParentSection\"] = `Anchor Diagram Summary-${labelState}-${0 * indent}px`;\n            // console.log(\"Anchor Diagram activated\");\n            let i = 1; \n            if(context.get(\"userInputtedData.selectedAnchorData\") != null){\n                console.log(context.get(\"userInputtedData.selectedAnchorData\"));\n                Object.entries(context.get(\"userInputtedData.selectedAnchorData\")).forEach(([key, value]) => {\n                    const anchorComponent = document.getElementById(key);\n                    failedObjects[key] = `Anchor ${anchorComponent.getAttribute('placeholder')}-${(value == \"\" || value == null) ? \"Missing\" : value}-${value == \"\" ? \"Red\" : \"Green\"}-${1 * indent}px`;\n                });\n    \n            }\n        }\n    }\n    //Check Pack Profile\n    if(context.get(\"userInputtedData.selectedSensorData\") == null || context.get(\"userInputtedData.selectedSensorData\")['selectedPackProfile'] == '' || context.get(\"userInputtedData.selectedSensorData\")['selectedPackProfile'] == null){\n        failedObjects[\"selectedPackProfile\"] = `Pack Profile-${neutralState}-${0 * indent}px`;\n    }else if(context.get(\"userInputtedData.selectedSensorData\") != null && context.get(\"userInputtedData.selectedSensorData\")['selectedPackProfile'] != \"\" && context.get(\"userInputtedData.selectedSensorData\")['selectedPackProfile'] != null){\n        failedObjects[\"selectedPackProfile\"] = `Pack Profile-${neutralState}-${0 * indent}px`;\n    }\n\n    //Check Sensor ID or Batch Sensor ID\n    if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n        //Check Sensor ID\n        if(context.get(\"userInputtedData.selectedSensorData\") == null || context.get(\"userInputtedData.selectedSensorData\")['sensorID'] == '' || context.get(\"userInputtedData.selectedSensorData\")['sensorID'] == null){\n            failedObjects[\"sensorID\"] = `Sensor ID-${failedState}-${0 * indent}px`;\n        }else if(context.get(\"userInputtedData.selectedSensorData\") != null && context.get(\"userInputtedData.selectedSensorData\")['sensorID'] != \"\" && context.get(\"userInputtedData.selectedSensorData\")['sensorID'] != null){\n            let sensorIDValue = context.get(\"userInputtedData.selectedSensorData\")['sensorID'];\n            if(sensorIDValue.length == 9){\n                failedObjects[\"sensorID\"] = `Sensor ID-${neutralState}-${0 * indent}px`;\n            }else if (sensorIDValue.length == 10){\n                failedObjects[\"sensorID\"] = `Sensor ID-${neutralState}-${0 * indent}px`;\n            }else{\n                failedObjects[\"sensorID\"] = `Sensor ID-${neutralState}-${0 * indent}px`;\n            }\n        }\n    }else if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n        const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n            const sensorObj = batchSensorData[i];\n            if(sensorObj != null){\n                const sensorIDValue = sensorObj[\"sensorData\"][\"sensorID\"];\n                if(sensorIDValue.length == 9){\n                    failedObjects[`sensorID${i}`] = `Batch Sensor ID ${i}-${neutralState}-${0 * indent}px`;\n                }else if (sensorIDValue.length == 10){\n                    failedObjects[`sensorID${i}`] = `Batch Sensor ID ${i}-${neutralState}-${0 * indent}px`;\n                }else{\n                    failedObjects[`sensorID${i}`] = `Batch Sensor ID ${i}-${neutralState}-${0 * indent}px`;\n                }\n\n            }\n        }\n    }\n    // console.log(context.get(\"settingsConfig.CALIBRATIONSPECIFICPERMISSIONS\"))\n    if(context.get(\"settingsConfig.CALIBRATIONSPECIFICPERMISSIONS\")[\"can_view_edit_from_inv\"]){\n\n    }else{\n        //Check JobID\n        if(context.get(\"userInputtedData.selectedSensorData\") == null || context.get(\"userInputtedData.selectedSensorData\")['jobID'] == '' || context.get(\"userInputtedData.selectedSensorData\")['jobID'] == null){\n            failedObjects[\"jobID\"] = `Job ID-${failedState}-${0 * indent}px`;\n        }else if(context.get(\"userInputtedData.selectedSensorData\") != null && context.get(\"userInputtedData.selectedSensorData\")['jobID'] != \"\" && context.get(\"userInputtedData.selectedSensorData\")['jobID'] != null){\n            failedObjects[\"jobID\"] = `Job ID-${passedState}-${0 * indent}px`;\n        }\n    }\n    //Final Check\n    for (const key in failedObjects) {\n        const value = failedObjects[key];\n\n        // Check if the value contains the keyword (case-insensitive)\n        if (typeof value === 'string' && (value.includes(failedState))) {\n            //When it contains at least one \"Missing\" key word, it fails the check, needs to show notification popup\n            context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n            return context.buildValidationPopupContent(failedObjects);\n        }\n        \n    }\n\n    \n    //When it passes, don't need to show notification popup. Directly jump to Calibration Daashboard \n    const element = document.getElementById(\"calibrationDashboardTitle\");\n    if (element) {\n        element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n        // console.log(context.get(\"userInputtedData.selectedRigProfile\"));\n        // console.log(context.get(\"userInputtedData.selectedCalibrationProfile\"));\n        // console.log(context.get(\"userInputtedData.selectedSensorData\"));\n        context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(603));\n    }\n    //Start to send unique batch of commands to prior to start calibration FOR V2.0 ONLY \n    if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n        showPopup([`Validation Success!`, `Will start to send batch commands`], \"success\", 5);\n        sendV2BatchCommands1(context);\n    }else{\n        showPopup([`Validation Success!`], \"success\", 2);\n    }\n\n}\n\n//Web Socket Section\n/**\n * FOR DEV: USE WS. FOR PRODUCTION: USE WSS\n */\nexport function initializeConnection(context, ip){\n    // console.log(\"called initializeConnection\");\n    //initialize websock component\n    if (context.ws && context.ws.readyState !== WebSocket.CLOSED) {\n        console.warn(\"WebSocket already exists. Disconnecting...\");\n        webSocketDisconnect(context);\n    }\n    resetLog(context, 'live');\n    context.ws = new WebSocket(`wss://${ip}:888`);\n\n    if(context.ws.readyState === WebSocket.CONNECTING){\n        context.set(\"dashboardStatusBarData.connection\",connectionStatusLibrary(501));\n        showPopup(['Connecting... Please wait until connection has been updated!'], 'warning', 10)\n    }\n    context.ws.onopen = () => {\n        context.set(\"dashboardStatusBarData.connection\",connectionStatusLibrary(502));\n\n        updateStepperPressureControlPanel(context, context.get(\"userInputtedData.selectedRigProfile\")['data']['rigCategory']);\n    };\n\n    context.ws.onmessage = event => {\n        if(event.data != null){\n            // console.log(event.data.trim());\n            appendLiveLog(context,event.data.trim(), 'incoming');\n        }\n    };\n\n    context.ws.onerror = error => {\n        console.log(\"error\");\n        context.set(\"dashboardStatusBarData.connection\", connectionStatusLibrary(500));\n    };\n\n    context.ws.onclose = () => {\n        context.set(\"dashboardStatusBarData.connection\", connectionStatusLibrary(500));\n        resetDataRigProfile(context);\n    };    \n    window.addEventListener('beforeunload', function () {\n        const component = document.getElementById('selectedRigIP');\n        component.value = \"0\";\n        context.set(\"selectedRigDP\", \"0\");\n    });\n}\nexport function webSocketDisconnect(context){\n    if(context.ws){\n        console.log(\"Disconnecting websocket\")\n        context.set(\"dashboardStatusBarData.connection\",connectionStatusLibrary(500));\n        resetLog(context, 'live');\n        context.ws.onopen = null;\n        context.ws.onmessage = null;\n        context.ws.onerror = null;\n        context.ws.onclose = null;\n\n        context.ws.close();\n        context.ws = null;\n        console.log(\"Disconnected to websocket\")\n    }\n}\nexport function websocketReconnect(context){\n    if(context.ws){\n        webSocketDisconnect(context);\n    }\n    if(context.get(\"userInputtedData.selectedRigProfile\")){\n        initializeConnection(context, context.get(\"userInputtedData.selectedRigProfile\")['data']['rigIP']);\n        showPopup(['Successfully reconnected Websocket'], 'success');\n    }\n}\n\n//Anchor & Live & Phase I Log & Phase II Log & Control Panel Section  \nexport function updateRigActivity(context){\n    /**\n     * {\n            \"activityJSON\": {\n                \"status\": 602,\n                \"connection\": 500,\n                \"activity\": 551,\n                \"activeUser\": \"Steven Fu\",\n                \"connectedTo\": \"240471999\",\n                \"company\": \"YieldPoint Epiroc\",\n                \"latestDate\": \"2024-01-8 01:00:00\"\n            }\n        }\n     */\n    const dashboardStatusObj    = context.get(\"dashboardStatusBarData\");\n    const formSensorData    = context.get(\"userInputtedData.selectedSensorData\");\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    const formRigData    = context.get(\"userInputtedData.selectedRigProfile\");\n    const calibrationObj        = dashboardStatusObj['calibration'];\n    const connectionObj         = dashboardStatusObj['connection'];\n    const currentObj            = dashboardStatusObj['current'];\n    const statusObj             = dashboardStatusObj['status'];\n    const targetObj             = dashboardStatusObj['target'];\n    const latestDateTime        = getCurrentDateTime();\n    if(userProfile !== null && formRigData){\n        let activityLog = {};\n        activityLog['status'] = statusObj['key'];\n        activityLog['connection'] = connectionObj['key'];\n        activityLog['activity'] = calibrationObj['key'];\n        activityLog['activeUser'] = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n        activityLog['connectedTo'] = formSensorData['sensorID'] ? formSensorData['sensorID'] : null;\n        activityLog['company'] =  `${userProfile['profile']['company']}`;\n        activityLog['latestDate'] = latestDateTime;\n        // console.log(activityLog);\n        sendPATCHRequest(`rig_profile_activity_view/${formRigData['data']['rigID']}`, {'activityJSON':activityLog});\n    }\n}\nexport function appendLiveLog(context, newMessage, direction) {\n    //Update Live Log TB\n    const chatBox = document.getElementById('streamingTextBox');\n    if (chatBox) {\n        if(newMessage.includes(\"current\") || newMessage.includes('target')){\n        }else{\n            chatBox.textContent += `${direction == \"incoming\" ? \">>\" : \"<<\"}${newMessage}\\n`;\n            const lines = chatBox.textContent.split('\\n');\n            const maxNumLines = 300;\n            if (lines.length > maxNumLines) {\n                chatBox.textContent = lines.slice(lines.length - maxNumLines).join('\\n');\n            }\n        }\n\n        // Scroll to the bottom if chat is locked\n        if (context.get('settingsConfig.chatLocked.streamingTextBox')) {\n            chatBox.scrollTop = chatBox.scrollHeight;\n        }\n    }\n    //Used for when the message is in standard structure\n    if(newMessage.includes(\"=\") && newMessage.split(\"=\").length == 2){\n        incomingMessageLibrary(context, newMessage.split(\"=\")[0], newMessage.split(\"=\")[1]);\n    }\n    \n}\nexport function appendPhaseILog(context, newMessage) {\n    //Update Live Log TB\n    const chatBox = document.getElementById('phaseITextbox');\n    if (chatBox) {\n        chatBox.textContent += `${newMessage}\\n`;\n        const lines = chatBox.textContent.split('\\n');\n        const maxNumLines = 75;\n        if (lines.length > maxNumLines) {\n            chatBox.textContent = lines.slice(lines.length - maxNumLines).join('\\n');\n        }\n\n        // Scroll to the bottom if chat is locked\n        if (context.get('settingsConfig.chatLocked.phaseITextbox')) {\n            chatBox.scrollTop = chatBox.scrollHeight;\n        }\n    }\n}\nexport function appendPhaseIILog(context, newMessage) {\n    //Update Live Log TB\n    const chatBox = document.getElementById('phaseIITextbox');\n    if (chatBox) {\n        chatBox.textContent += `${newMessage}\\n`;\n        const lines = chatBox.textContent.split('\\n');\n        const maxNumLines = 75;\n        if (lines.length > maxNumLines) {\n            chatBox.textContent = lines.slice(lines.length - maxNumLines).join('\\n');\n        }\n\n        // Scroll to the bottom if chat is locked\n        if (context.get('settingsConfig.chatLocked.phaseIITextbox')) {\n            chatBox.scrollTop = chatBox.scrollHeight;\n        }\n    }\n}\nexport function updateStepperPressureControlPanel(context,value){\n    // console.log(context.get(\"userInputtedData.selectedRigProfile\")['data']);\n    const stepperPanelComponent = document.getElementById(\"stepperMotorSection\");\n    const pumpPanelComponent = document.getElementById(\"pressurePumpSection\");\n    const pressureCalibHotKeysPanelComponent = document.getElementById(\"pressureCalibHotKeysSection\");\n    //Set the Software ENV based on the rig category \n    //In The future, everything should be V2, however, currently the sensorData= message is comma delimited, not JSON, thus it musts be V1\n    //For pressure calibration, data coming in is in JSON< thus it must use V2\n    if(value == null){\n        stepperPanelComponent.style.pointerEvents=\"none\";\n        stepperPanelComponent.style.opacity=\"0.5\";\n        pumpPanelComponent.style.pointerEvents=\"none\";\n        pumpPanelComponent.style.opacity=\"0.5\";\n        pressureCalibHotKeysPanelComponent.style.pointerEvents=\"none\";\n        pressureCalibHotKeysPanelComponent.style.opacity=\"0.5\";\n    }else if (value == \"STEPPER\"){\n        stepperPanelComponent.style.pointerEvents=\"visible\";\n        stepperPanelComponent.style.opacity=\"1\";\n        pumpPanelComponent.style.pointerEvents=\"none\";\n        pumpPanelComponent.style.opacity=\"0.5\";\n        pressureCalibHotKeysPanelComponent.style.pointerEvents=\"none\";\n        pressureCalibHotKeysPanelComponent.style.opacity=\"0.5\";\n    }else if (value == \"PUMP\"){\n        stepperPanelComponent.style.pointerEvents=\"none\";\n        stepperPanelComponent.style.opacity=\"0.5\";\n        pumpPanelComponent.style.pointerEvents=\"visible\";\n        pumpPanelComponent.style.opacity=\"1\";\n        pressureCalibHotKeysPanelComponent.style.pointerEvents=\"visible\";\n        pressureCalibHotKeysPanelComponent.style.opacity=\"1\";\n    }\n}\nexport function resetLog(context, typeOfLog){\n    switch(typeOfLog){\n        case \"live\":\n            const liveChatBox = document.getElementById('streamingTextBox');\n            if(liveChatBox){\n                liveChatBox.innerHTML=\"\";\n            }\n        case \"phaseI\":\n            const pIChatBox = document.getElementById('phaseITextbox');\n            if(pIChatBox){\n                pIChatBox.innerHTML=\"\";\n            }\n        case \"phaseII\":\n            const pIIChatBox = document.getElementById('phaseIITextbox');\n            if(pIIChatBox){\n                pIIChatBox.innerHTML=\"\";\n            }\n\n    }\n}\n//Phase I && II Schematics\nexport async function getSensorPhaseISchematics(context){\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n    const websocket = context.ws;\n    try{\n        if(websocket != null && calibProfile != null && calibProfile['data'] != null){\n            const data = calibProfile['data'];\n            const type = data['type'];\n            const checkpointDelay = data['checkpointDelay'];\n            const checkpointPositions = data['checkpointPositions'];\n            const checkpointSampleSize = data['checkpointSampleSize'];\n            const checkpointSpeed = data['checkpointSpeed'];\n            const checkpointCurrentTargetBuffer = data['checkpointCurrentTargetBuffer'];\n            const maxLimit = data['maxLimit'];\n            const minLimit = data['minLimit'];\n            console.log(`type:${type} checkpointDelay:${checkpointDelay} checkpointPositions:${checkpointPositions.toString()} checkpointSampleSize:${checkpointSampleSize} checkpointSpeed:${checkpointSpeed} maxLimit: ${maxLimit} minLimit:${minLimit} checkpointCurrentTargetBuffer:${checkpointCurrentTargetBuffer} `);\n\n            switch(type){\n                case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dPPC.typeValue:\n                    break;\n\n                default:\n                    //Soft Reset\n                    console.log(\"Soft Resetting\");\n                    softResetPhaseIModule(context);\n\n                    //Set Rig Unit\n                    console.log(\"Setting rig unit\");\n                    setRigUnit(context, type, 'phaseI');\n\n                    //Start Phase I Loop Acension\n                    for (const [index, value] of checkpointPositions.entries()) {\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 1\");\n\n                        //Set Increase Value and the Status\n                        updateCalibrationStatusModule(context, 552);\n                        appendPhaseILog(context,`Target Updated:${value}`)\n                        setTargetModule(context, value);\n \n                        //Wait until reached to target\n                        // console.log(`calling awaitUntilCheckPointPositionReached`);\n                        const awaitReachAcensionStageResult = await awaitUntilCheckPointPositionReachedAcensionStage(context, 'phaseI', data, value)\n                        if (!awaitReachAcensionStageResult){\n                            updateCalibrationStatusModule(context, 594);\n                            return;\n                        }\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 2\");\n\n                        //CheckPoint Delay\n                        updateCalibrationStatusModule(context, 596);\n                        await delayTimeModule(context,checkpointDelay)\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 3\");\n\n                        //Build Lookup values \n                        // console.log(\"Updating calibration status\");\n                        const phaseISampleResult = await phaseISampleModule(context, index, checkpointPositions);\n                        if(!phaseISampleResult){\n                            updateCalibrationStatusModule(context, 594);\n                            return;\n                        }\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 4\");\n                    }\n                    // console.log(context.get(\"calibrationData\")[\"phaseILookupData\"]);\n\n                    //Post Phase I      \n                    postPhaseProceduralModule(context, 'phaseI', 'stepper0');\n                    break;\n            }\n        }else{\n            showPopup(['Missing calibration profile and/or sensor profile!'], 'warning', 2); \n        }\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            updateCalibrationStatusModule(context, 594);\n            showPopup([`Error in getSensorPhaseISchematics: ${err.message}`], 'error', 15);\n        } else {\n            showPopup([`Error in getSensorPhaseISchematics: ${err.message}`], 'error', 15);\n        }\n        return;\n    }\n}\nexport async function getSensorPhaseIISchematics(context){\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\"); \n    const websocket = context.ws;\n    try{\n        if(websocket != null && calibProfile != null && calibProfile['data'] != null){\n            const data = calibProfile['data'];\n            const type = data['type'];\n            const checkpointDelay = data['checkpointDelay'];\n            const checkpointPositions = data['checkpointPositions'];\n            const checkpointSampleSize = data['checkpointSampleSize'];\n            const checkpointSpeed = data['checkpointSpeed'];\n            const checkpointCurrentTargetBuffer = data['checkpointCurrentTargetBuffer'];\n            const maxLimit = data['maxLimit'];\n            const minLimit = data['minLimit'];\n            console.log(`type:${type} checkpointDelay:${checkpointDelay} checkpointPositions:${checkpointPositions.toString()} checkpointSampleSize:${checkpointSampleSize} checkpointSpeed:${checkpointSpeed} maxLimit: ${maxLimit} minLimit:${minLimit} checkpointCurrentTargetBuffer:${checkpointCurrentTargetBuffer} `);\n\n            switch(type){\n                case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dPPC.typeValue: \n                    break\n                default:\n                    //Hard Reset\n                    console.log(\"Soft Resetting\");\n                    softResetPhaseIIModule(context);\n\n                    //Set Rig Unit\n                    console.log(\"Setting rig unit\");\n                    setRigUnit(context, type, 'phaseII');\n\n\n                    //Start Phase II Loop Acension\n                    for (const [index, value] of checkpointPositions.entries()) {\n                        //Set Increase Value and the Status\n                        updateCalibrationStatusModule(context, 560);\n                        appendPhaseIILog(context,`Target Updated:${value}`)\n                        setTargetModule(context, value);\n\n                        emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 1\")\n\n                        //Wait until reached to target\n                        // console.log(`calling awaitUntilCheckPointPositionReached`);\n                        const awaitReachAcensionStageResult = await awaitUntilCheckPointPositionReachedAcensionStage(context, 'phaseII', data, value)\n                        if (!awaitReachAcensionStageResult){\n                            updateCalibrationStatusModule(context, 595);\n                            return;\n                        }\n\n                        emergencyCheckOrThrow(context,\"Phase II emergency triggered. For loop, section 2\");\n\n                        //CheckPoint Delay\n                        updateCalibrationStatusModule(context, 596);\n                        await delayTimeModule(context,checkpointDelay);\n\n                        emergencyCheckOrThrow(context,\"Phase II emergency triggered. For loop, section 3\");\n\n                        //Build Lookup values \n                        // console.log(\"Updating calibration status\");\n                        const phaseISampleResult = await phaseIISampleModule(context, index, checkpointPositions);\n                        if(!phaseISampleResult){\n                            updateCalibrationStatusModule(context, 595);\n                            return;\n                        }\n                        emergencyCheckOrThrow(context,\"Phase II emergency triggered. For loop, section 4\");\n                    }\n                    // console.log(context.get(\"calibrationData\")[\"phaseILookupData\"]); \n\n                    //Post Phase II  \n                    postPhaseProceduralModule(context, 'phaseII', 'stepper0'); \n                    break;\n            }\n        }else{\n            showPopup(['Missing calibration profile and/or sensor profile!'], 'warning', 2); \n        }\n    }catch(err){\n        console.log(`Error in getSensorPhaseIISchematics: Error Name: ${err.name}. Error Message: ${err.message}`);\n        console.log(err.stack);\n        if (err.name === \"AbortError\") {\n            updateCalibrationStatusModule(context, 595);\n            showPopup([`Error in getSensorPhaseIISchematics: ${err.message}`], 'error', 15);\n        } else {\n            showPopup([`Error in getSensorPhaseIISchematics: ${err.message}`], 'error', 15);\n        }\n        return;\n    }\n}\nexport async function getV2CalibrationSchematics(context){\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n    const websocket = context.ws;\n    try{\n        if(websocket != null && calibProfile != null && calibProfile['data'] != null){\n            const data = calibProfile['data'];\n            const type = data['type'];\n            const checkpointDelay = data['checkpointDelay'];\n            const checkpointPositions = data['checkpointPositions'];\n            const checkpointSampleSize = data['checkpointSampleSize'];\n            const checkpointSpeed = data['checkpointSpeed'];\n            const checkpointCurrentTargetBuffer = data['checkpointCurrentTargetBuffer'];\n            const maxLimit = data['maxLimit'];\n            const minLimit = data['minLimit'];\n            console.log(`type:${type} checkpointDelay:${checkpointDelay} checkpointPositions:${checkpointPositions.toString()} checkpointSampleSize:${checkpointSampleSize} checkpointSpeed:${checkpointSpeed} maxLimit: ${maxLimit} minLimit:${minLimit} checkpointCurrentTargetBuffer:${checkpointCurrentTargetBuffer} `);\n\n            switch(type){\n                case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dPPC.typeValue:\n                    break;\n                default:\n                    //Soft Reset\n                    updateCalibrationStatusModule(context, 589);//V2 P1: Soft Resetting\n                    softResetV2PhaseIModule(context, \"phaseI\");\n\n                    //Start Phase I Loop\n                    for (const [index, value] of checkpointPositions.entries()) {\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 1\");\n\n                        //Set Increase Value and the Status\n                        updateCalibrationStatusModule(context, 588);//V2 P1: Awaiting Rig...\n                        appendPhaseILog(context,`Target Updated:${value}`)\n                        setTargetModule(context, value);\n                        //Wait until reached to target\n                        const awaitReachAcensionStageResult = await awaitUntilCheckPointPositionReachedAcensionV2Stage(context, \"phaseI\", data, value)\n                        if (!awaitReachAcensionStageResult){\n                            updateCalibrationStatusModule(context, 584);//V2 P1: Emergency Stopped\n                            return;\n                        }\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 2\");\n\n                        //CheckPoint Delay\n                        updateCalibrationStatusModule(context, 596);//Checkpoint Delay\n                        await delayTimeModule(context,checkpointDelay)\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 3\");\n\n                        //Sample & Build Lookup values \n                        const phaseISampleResult = await sampleV2PhaseIModule(context, index, checkpointPositions);\n                        if(!phaseISampleResult){\n                            updateCalibrationStatusModule(context, 584);//V2 P1: Emergency Stopped\n                            return;\n                        }\n\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 4\");\n                    }\n\n                    //Post Phase I Actions\n                    let postP1Result = postPhaseCalibrationV2Module(context, \"phaseI\");\n                    if(!postP1Result){\n                        updateCalibrationStatusModule(context, 584);//V2 P1: Emergency Stopped\n                        return;\n                    }\n\n                    //Start Show Intermission Notification\n                    updateCalibrationStatusModule(context, 583);//V2 P1: Intermission\n                    let popupResult = await buildCalibrationV2IntermissionNotificationBoard(context);\n                    if(!popupResult){\n                        updateCalibrationStatusModule(context, 584);//Calibration V2: Emergency Stopped\n                        return;\n                    }\n\n                    updateCalibrationStatusModule(context, 570);//V2: Uploading Lookup Data...\n                    await sendV2BatchCommands2(context);\n                    updateCalibrationStatusModule(context, 571);//V2: Lookup Data Uploaded\n\n                    //Soft Reset Phase II \n                    updateCalibrationStatusModule(context, 579);//V2 P2: Soft Resetting\n                    softResetV2PhaseIModule(context, \"phaseII\");\n\n\n                    //Start Phase II Loop\n                    for (const [index, value] of checkpointPositions.entries()) {\n\n                        emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 1\");\n\n                        //Set Increase Value and the Status\n                        updateCalibrationStatusModule(context, 578);//Calibration V2: Awaiting Rig...\n                        appendPhaseIILog(context,`Target Updated:${value}`)\n                        setTargetModule(context, value);\n                        //Wait until reached to target\n                        const awaitReachAcensionStageResult = await awaitUntilCheckPointPositionReachedAcensionV2Stage(context, \"phaseII\", data, value)\n                        if (!awaitReachAcensionStageResult){\n                            updateCalibrationStatusModule(context, 584);//Calibration V2: Emergency Stopped\n                            return;\n                        }\n\n                        emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 2\");\n\n                        //CheckPoint Delay\n                        updateCalibrationStatusModule(context, 596);//Checkpoint Delay\n                        await delayTimeModule(context,checkpointDelay)\n\n                        emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 3\");\n\n                        //Sample & Build Lookup values \n                        const phaseISampleResult = await sampleV2PhaseIIModule(context, index, checkpointPositions);\n                        if(!phaseISampleResult){\n                            updateCalibrationStatusModule(context, 584);//Calibration V2: Emergency Stopped\n                            return;\n                        }\n\n                        emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 4\");\n                        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                            console.log('END OF PHASE II SAMPLING: sensor obj');\n                            console.log(context.get(`userInputtedData.batchSensorData.${i}`));\n                        }\n                    }\n\n                    //Post Phase II Actions\n                    let postP2Result = postPhaseCalibrationV2Module(context, \"phaseII\");\n                    if(!postP2Result){\n                        updateCalibrationStatusModule(context, 584);//V2 P1: Emergency Stopped\n                        return;\n                    }\n                    break;\n            }\n        }else{\n            showPopup(['Missing calibration profile and/or sensor profile!'], 'warning', 2); \n        }\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            updateCalibrationStatusModule(context, 594);\n            showPopup([`Error in getSensorPhaseISchematics: ${err.message}`], 'error', 15);\n        } else {\n            showPopup([`Error in getSensorPhaseISchematics: ${err.message}`], 'error', 15);\n        }\n        return;\n    }\n}\n\n//Phase Modules\nasync function postPhaseProceduralModule(context, phase, rigResetCMD){\n    switch(phase){\n        case \"phaseI\":\n            //ADDITIONAL CALC & DATA MODIFICATIONS\n            //Transform lookup data from array of array(size of checkpoints) to array of array(size of channels)\n            resetLog(context, phase);\n            const sensorDescription = buildSensorDescription(context);\n            context.set('userInputtedData.selectedSensorData.sensorDescription', sensorDescription);\n            const specialPhaseILogText = getLookupBody(context,phase);\n            context.set('userInputtedData.selectedSensorData.phaseIDescription', specialPhaseILogText);\n            appendPhaseILog(context, specialPhaseILogText);//Special Case, add to Phase I log of a specific text form for the production people.\n\n            //Transform the phaseILookupData from array length based off of # of checkpoint to # of channels\n            const transformedLookupArrayPI = transformLookUpDataObj(context,phase); \n            context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseILookupData\"]: transformedLookupArrayPI});\n            console.log('Official final phaseILookupData');\n            console.log(context.get('calibrationData')['phaseILookupData']);\n            \n            //RESET and CLEAR\n            updateCalibrationStatusModule(context, 555); //Clear & Resetting \n            context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseISampleLookupData\"]: []}); //Clear & Resetting\n            context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseISampling\"]: false}); //Clear & Resetting\n            await outgoingMessageLibrary(context, rigResetCMD, '');\n            updateCalibrationStatusModule(context, 551); //Idle \n            showPopup(['Phase I is complete and tidied up.','Please evaluate approprivate values and determine whether to proceed to phase II'], 'success', 20);\n            break;\n\n        case \"phaseII\":\n            //ADDITIONAL CALC & DATA MODIFICATIONS\n            //Transform the phaseIICalibrated Data from array length based off of # of checkpoint to # of channels\n            const transformedLookupArrayPII = transformLookUpDataObj(context,'phaseII'); \n            context.set(\"calibrationData.phaseIICalibrationDataValueData\",transformedLookupArrayPII);\n            console.log('Official final phaseIICalibrationDataValueData');\n            console.log(context.get('calibrationData')['phaseIICalibrationDataValueData']);\n            //As soon as after transforming the array to be based off # of channels, need to calculate and build the phaseIISlopeData and phaseIIOffsetData\n            getSlopeAndOffset(context);\n            //RESET and CLEAR\n            updateCalibrationStatusModule(context, 563); //Clear & Resetting \n            context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCalibrationDataValueData\"]: []});\n            context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCurrentData\"]: []});\n            context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICalibrationDataValueSampling\"]: false});\n            context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICurrentSampling\"]: false});\n            await outgoingMessageLibrary(context, rigResetCMD, '');\n            resetLog(context, phase);\n            appendPhaseIILog(context, `Calibration Current Data Value: [${context.get(\"calibrationData\")['phaseIICurrentData'].toString()}]`);\n            context.get(\"calibrationData\")['phaseIICalibrationDataValueData'].forEach((dataValueArr, index)=>{\n                appendPhaseIILog(context, `Calibration Data Value[${index + 1}]: [${dataValueArr}]`);\n            })\n\n            updateCalibrationStatusModule(context, 551); //Idle \n            showPopup(['Phase II is complete is tidied up.'], 'success', 20);\n\n            //Display Phase II Completion Board\n            buildPhaseIIConclusionNotificationBoard(context);\n            break;\n    }\n} \nasync function postPhaseCalibrationV2Module(context, phase){\n    try{\n        const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n        switch(phase){\n            case \"phaseI\":\n                updateCalibrationStatusModule(context, 580); //V2 P1: Phase I Concluding...\n                //For each sensor in batch, transform its corresponding lookup data structure\n                const transformResponse1 = transformLookUpV2(context, \"lookupData\");\n                if(!transformResponse1){\n                    return false;\n                }\n        \n                //Optional: Clear Phase I Log\n                // resetLog(context, 'phaseI');\n        \n                /**\n                 * Add sensorDescription to sensorData in each sensor in batch\n                 * Clear sampleDataDump\n                 * Ensure isPhaseISampling is closed\n                 */\n                const sensorDescription = buildSensorDescription(context);\n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    if(batchSensorData[i] != null){\n                        const sensorObj = batchSensorData[i];\n                        let sensorData = sensorObj['sensorData'];\n                        let calibrationData = sensorObj['calibrationData'];\n                        let isSamplingData = sensorObj['isSamplingData'];\n                        sensorData['sensorDescription'] = sensorDescription;\n                        calibrationData['sampleDataDump'] = [];\n                        isSamplingData['isPhaseISampling'] = false;\n                    }\n                }\n                context.set(\"userInputtedData.batchSensorData\", batchSensorData);\n        \n                //Move Rig back to 0\n                await outgoingMessageLibrary(context, \"stepper0\");\n                updateCalibrationStatusModule(context, 581); //V2 P1: Phase I Concluded\n        \n                //Start Phase II Loop\n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    console.log('END OF PHASE I: sensor obj');\n                    console.log(context.get(`userInputtedData.batchSensorData.${i}`));\n                }\n        \n                return true;\n            case \"phaseII\":\n                updateCalibrationStatusModule(context, 572); //V2: Phase II Concluding...\n                //For each sensor in batch, transform its corresponding lookup data structure\n                const transformResponse2 = transformLookUpV2(context, \"calibrationDataData\");\n                if(!transformResponse2){\n                    return false;\n                }\n                getSlopeAndOffset(context);\n\n                //Optional: Clear Phase I Log\n                // resetLog(context, 'phaseI');\n        \n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    if(batchSensorData[i] != null){\n                        const sensorObj = batchSensorData[i];\n                        let calibrationData = sensorObj['calibrationData'];\n                        let isSamplingData = sensorObj['isSamplingData'];\n                        calibrationData['sampleDataDump'] = [];\n                        calibrationData['sampleCurrentDataDump'] = [];\n                        isSamplingData['isSamplingCurrentData'] = false;\n                        isSamplingData['isSamplingCalibrationData'] = false;\n                    }\n                }\n                context.set(\"userInputtedData.batchSensorData\", batchSensorData);\n        \n                //Move Rig back to 0\n                await outgoingMessageLibrary(context, \"stepper0\");\n                updateCalibrationStatusModule(context, 573); //V2: Phase II Concluded\n        \n                //Start Phase II Loop\n                for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                    console.log('END OF PHASE II: sensor obj');\n                    console.log(context.get(`userInputtedData.batchSensorData.${i}`));\n                }\n\n                buildPhaseIIConclusionNotificationBoardV2(context);\n                return true;\n\n        }\n    }catch(err){\n        console.log(`Error in postPhase1CalibrationV2Module: ${err.message}`);\n        console.log(err.stack);\n        return false;\n    }\n} \nasync function saveAndSendPhaseIIData(context){\n\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n    const selectedSensorData = context.get(\"userInputtedData.selectedSensorData\");\n    const selectedAnchorData = context.get(\"userInputtedData.selectedAnchorData\")\n    const calibrationData = context.get('calibrationData');\n    // console.log(selectedRigProfile);\n    // console.log(selectedCalibrationProfile);\n    // console.log(selectedSensorData);\n    // console.log(selectedAnchorData);\n    // console.log(calibrationData);\n    if(selectedRigProfile != null && selectedCalibrationProfile != null && JSON.stringify(selectedSensorData) != \"{}\"){\n        const requestData = buildAndGetDataFormat1(context);\n        //send request\n        if (await sendPOSTRequest(\"calib_sensor_profile\", requestData)){\n            showPopup([\"Sensor Profile Created Successfully!\"],'success',3);\n            // window.location.reload();\n\n            context.send('closeNotificationPopup'); \n\n        }else{\n            showPopup([\"Sensor Profile Creation Failed!\"],'error', 3);\n        };\n    }\n}\nasync function saveAndSendPhaseIIV2Data(context){\n\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n    const selectedSensorData = context.get(\"userInputtedData.selectedSensorData\");\n    // console.log(selectedRigProfile);\n    // console.log(selectedCalibrationProfile);\n    // console.log(selectedSensorData);\n    // console.log(selectedAnchorData);\n    // console.log(calibrationData);\n    if(selectedRigProfile != null && selectedCalibrationProfile != null && JSON.stringify(selectedSensorData) != \"{}\"){\n        const requestArrData = buildAndGetDataFormat2(context);\n\n    for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n        let requestData = requestArrData[i - 1];\n        //send request\n        if (await sendPOSTRequest(\"calib_sensor_profile\", requestData)){\n            showPopup([`Sensor ${i} Profile Created Successfully!`],'success',3);\n            appendLiveLog(context,`Sensor ${i} Profile Created Successfully!`, \"incoming\"); \n\n        }else{\n            showPopup([\"Sensor Profile Creation Failed!\"],'error', 3);\n        };\n    };\n    // window.location.reload();\n\n    context.send('closeNotificationPopup'); \n    }\n}\nexport function buildSensorDescription(context){\n    const calibrationObj = context.get(\"userInputtedData.selectedCalibrationProfile\");\n    try{\n        if(calibrationObj != null){\n            const data = calibrationObj['data'];\n            const type = data['type'];\n            const channels = data['channels'] - 1;//-1 to disregard the temperature channel\n            let sensorDescription=``;\n\n            switch(type){\n                case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMPBX.typeValue:\n                case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dRebar.typeValue:\n                case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dCable.typeValue:\n                case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dExto.typeValue:\n                    sensorDescription = type.slice(0, 1) + channels + type.slice(1).toUpperCase();\n                    break;\n                default:\n                    sensorDescription = type.slice(0, 1) + type.slice(1).toUpperCase();\n                    break;\n\n            }\n\n            return sensorDescription;\n        }\n    }catch (err){\n        console.log(`Error in buildSensorDescription: ${err.message}`);\n        console.log(err.stack);\n    }   \n}\nexport function getSlopeAndOffset(context){\n    if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n        const calibrationData = context.get(\"calibrationData\");\n        const calibratedData = calibrationData['phaseIICalibrationDataValueData'];\n        const currentData = calibrationData['phaseIICurrentData'];\n        let slopeArr = [];\n        let offsetArr = [];\n        // console.log('calibratedData')\n        // console.log(calibratedData)\n    \n        calibratedData.forEach((calibratedDataArr, index)=>{\n            const result = linearRegression(currentData, calibratedDataArr);\n            // console.log('result')\n            // console.log(result)\n            slopeArr.push(roundToDecimalPlaces(result['slope'], 4));\n            offsetArr.push(roundToDecimalPlaces(result['offset'], 4));\n        });\n    \n        context.set('calibrationData.phaseIISlopeData', slopeArr);\n        context.set('calibrationData.phaseIIOffsetData', offsetArr);\n\n    }else if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n        const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n            if(batchSensorData[i] != null){\n                const sensorObj = batchSensorData[i];\n                let calibrationData = sensorObj[\"calibrationData\"];\n                let calibrationDataData = calibrationData[\"calibrationDataData\"];\n                let currentData = calibrationData[\"currentData\"];\n                let slopeArr = [];\n                let offsetArr = [];\n    \n                calibrationDataData.forEach((calibratedDataArr, index)=>{\n                    const result = linearRegression(currentData, calibratedDataArr);\n                    slopeArr.push(roundToDecimalPlaces(result['slope'], 4));\n                    offsetArr.push(roundToDecimalPlaces(result['offset'], 4));\n                });\n                calibrationData[\"slopeData\"] = slopeArr;\n                calibrationData[\"offsetData\"] = offsetArr;\n            }\n        }\n        context.set(\"userInputtedData.batchSensorData\", batchSensorData);\n        \n    }\n}\nfunction getLookupBody(context, phase){\n    const sensorObj = context.get(\"userInputtedData.selectedSensorData\");\n    const calibrationObj = context.get(\"userInputtedData.selectedCalibrationProfile\");\n    try{\n        if(sensorObj != null && calibrationObj != null){\n            const data = calibrationObj['data'];\n            const checkPointPositions = data['checkpointPositions'];\n            const channels = data['channels'] - 1;//-1 to disregard the temperature channel\n            const sensorID = sensorObj['sensorID'];\n            const sensorDescription = sensorObj['sensorDescription'];\n            const jobID = sensorObj['jobID'];\n            const sensorTypeNumber = sensorID.slice(-5, -3)\n\n            let lookupBodyStructure = `const char Sensor_ID[11]=\"${sensorID},\";\\nconst char Sensor_Type[5]=\"${sensorTypeNumber},;\";\\nconst char Sensor_Desc[12]=\"${sensorDescription},\";\\n// JOB# ${jobID}\\n// Calibration coeff's are temp compensated periods\\n// Cal coeff stored in ROM\\n`;\n            const transformedLookupArray = transformLookUpDataObj(context,phase).map(subArray => `{${subArray.join(',')}}`);\n\n            for(let i=1;i<=channels;i++){\n                lookupBodyStructure += `unsigned int cal_${i}[${checkPointPositions.length }]= ${transformedLookupArray[i-1]};\\n`;\n            }\n            return lookupBodyStructure;\n        }\n    }catch (err){\n        console.log(`Error in getLookupStructure: ${err.message}`);\n        console.log(err.stack);\n    }\n}\nasync function awaitUntilCheckPointPositionReachedAcensionStage(context, phaseType,calibProfileData, target){\n    const currentPointComponent = document.getElementById(\"currentPoint\");\n    const type = calibProfileData['type'];\n    const AWAIT_FLEXIBILITY= calibProfileData['checkpointCurrentTargetBuffer'];\n    let timeoutCounter = 0;\n    try{\n        if(currentPointComponent != null){\n            let current = Number.parseFloat(currentPointComponent.textContent);\n            const upperBufferTargetLimit = Number.parseFloat(target + AWAIT_FLEXIBILITY);\n            // const lowerBufferTargetLimit = target - AWAIT_FLEXIBILITY;\n            while (true){\n                emergencyCheckOrThrow(context,`Emergency triggered at awaitUntilCheckPointPositionReachedAcensionStage for phase: ${phaseType}`);\n\n                if(timeoutCounter % 15 == 0){\n                    if(phaseType == 'phaseI'){\n                        appendPhaseILog(context,`Waiting to reach target...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n                    }else{\n                        appendPhaseIILog(context,`Waiting to reach target...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n                    }\n                }\n                // console.log(`current:${current}, upperBufferTargetLimit:${upperBufferTargetLimit}`);\n                if(areNumbersEqual(current, upperBufferTargetLimit)){\n                    console.log(`reached to target, will exit and continue code`);\n                    if(phaseType == 'phaseI'){\n                        appendPhaseILog(context,`Reached accepted threshold:${upperBufferTargetLimit}`);\n                    }else{\n                        appendPhaseIILog(context,`Reached accepted threshold:${upperBufferTargetLimit}`);\n                    }\n                    return true;\n                }\n                else if(timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                    console.log(`Acension TIMEOUT`);\n                    throw new Error(\"In awaitUntilCheckPointPositionReachedAcensionStage: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORT\");\n                }\n                await delayTimeModule(context, 0.2);\n                timeoutCounter += 1;\n                current = Number.parseFloat(currentPointComponent.textContent);\n            }\n        }\n\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updateCalibrationStatusModule(context, 550);\n            showPopup([`${err.message}`], 'error', 15);\n        }\n        return false;\n    }\n}\nasync function awaitUntilCheckPointPositionReachedAcensionV2Stage(context,phaseType, calibProfileData, target){\n    const currentPointComponent = document.getElementById(\"currentPoint\");\n    const AWAIT_FLEXIBILITY= calibProfileData['checkpointCurrentTargetBuffer'];\n    let timeoutCounter = 0;\n    try{\n        if(currentPointComponent != null){\n            let current = Number.parseFloat(currentPointComponent.textContent);\n            const upperBufferTargetLimit = Number.parseFloat(target + AWAIT_FLEXIBILITY);\n            while (true){\n                emergencyCheckOrThrow(context,`Emergency triggered at awaitUntilCheckPointPositionReachedAcensionV2Stage for calibration V2`);\n\n                if(timeoutCounter % 15 == 0){                \n                    if(phaseType == 'phaseI'){\n                        appendPhaseILog(context,`Waiting to reach target...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n                    }else{\n                        appendPhaseIILog(context,`Waiting to reach target...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n                    }\n                }\n                // console.log(`waiting is awaitUntilCheckPointPositionReachedAcensionV2Stage... ${current}/${upperBufferTargetLimit}`);\n\n                if(areNumbersEqual(current, upperBufferTargetLimit)){\n                    console.log(`reached to target, will exit and continue code`);\n                    if(phaseType == 'phaseI'){\n                        appendPhaseILog(context,`Reached accepted threshold:${upperBufferTargetLimit}`);\n                    }else{\n                        appendPhaseIILog(context,`Reached accepted threshold:${upperBufferTargetLimit}`);\n                    }\n                    return true;\n                }\n                else if(timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                    console.log(`Acension TIMEOUT`);\n                    throw new Error(\"In awaitUntilCheckPointPositionReachedAcensionV2Stage: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORT\");\n                }\n                timeoutCounter += 1;\n                current = Number.parseFloat(currentPointComponent.textContent);\n                await delayTimeModule(context, 0.5);\n            }\n        }\n\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updateCalibrationStatusModule(context, 550);\n            showPopup([`${err.message}`], 'error', 15);\n        }\n        return false;\n    }\n}\nexport function updateCalibrationStatusModule(context, statusCode){\n    context.set(\"dashboardStatusBarData.calibration\",calibrationStatusLibrary(statusCode));\n}\nasync function setTargetModule(context, quantity){\n    await outgoingMessageLibrary(context, \"setTarget\", quantity);\n}\nasync function setRigUnit(context, type, phase){\n    let unitID = 0;\n    let message = \"\";\n    switch(type){\n        case context.settingsConfig.APPROVEDINSTRUMENTTYPES.dMicro.typeValue:\n            unitID = 1;\n            message = `Updated Rig Unit for dMicro`;\n            break;\n\n        default:\n            unitID = 0;\n            message = `Updated Rig Unit for default`;\n            break;\n    }\n    if(phase === \"phaseI\"){\n        appendPhaseILog(context,message);\n    }else{\n        appendPhaseIILog(context,message);\n    }\n    await outgoingMessageLibrary(context, \"setRigUnit\", unitID);\n}\nasync function phaseISampleModule(context, checkpointPositionIndex, checkpointPositionArray){\n    const checkpointPositionValue = checkpointPositionIndex + 1;\n    //Turn on Sampling\n    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseISampling\"]: true});\n    let timeoutCounter = 0;\n    try{\n        while (true){\n            emergencyCheckOrThrow(context,`Emergency triggered at phaseISampleModule`);\n    \n            if(timeoutCounter % 20 == 0){\n                appendPhaseILog(context,`Waiting on Lookup & Current sampling. Current checkpoint position:${checkpointPositionValue}/${checkpointPositionArray.length}. Waiting...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n            }\n            if(!context.get(\"calibrationIsSamplingData\")[\"isPhaseISampling\"]){\n                return true;\n            }else if (timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                throw new Error(\"In phaseISampleModule: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORTING phase I\");\n            }\n            timeoutCounter+= 1;\n            await delayTimeModule(context, 0.5);\n        }\n        \n    }catch(err){\n\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updateCalibrationStatusModule(context, 550);\n            showPopup([`${err.message}`], 'error', 15);\n        }\n        context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseISampling\"]: false});\n        return false;\n    }\n}\nasync function phaseIISampleModule(context, checkpointPositionIndex, checkpointPositionArray){\n    const checkpointPositionValue = checkpointPositionIndex + 1;\n    //Turn on Sampling\n    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICalibrationDataValueSampling\"]: true});\n    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICurrentSampling\"]: true});\n    let timeoutCounter = 0;\n    try{\n        while (true){                        \n            emergencyCheckOrThrow(context,`Emergency triggered at phaseIISampleModule`);\n            \n            if(timeoutCounter % 20 == 0){\n                appendPhaseIILog(context,`Waiting on Lookup & Current sampling. Current checkpoint position:${checkpointPositionValue}/${checkpointPositionArray.length}. Waiting...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n            }\n    \n            if(!context.get(\"calibrationIsSamplingData\")[\"isPhaseIICalibrationDataValueSampling\"] && !context.get(\"calibrationIsSamplingData\")[\"isPhaseIICurrentSampling\"]){\n                return true;\n            }else if (timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                throw new Error(\"In phaseIISampleModule: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORTING phase II\");\n            }\n            timeoutCounter+= 1;\n            await delayTimeModule(context, 0.25);\n        }\n\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updateCalibrationStatusModule(context, 550);\n            showPopup([`Error in phaseIISampleModule: ${err.message}`], 'error', 15);\n        }\n        context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICalibrationDataValueSampling\"]: false});\n        context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICurrentSampling\"]: false});\n        return false;\n    }\n}\nasync function sampleV2PhaseIModule(context, checkpointPositionIndex, checkpointPositionArray){\n    const checkpointPositionValue = checkpointPositionIndex + 1;\n    //Turn on Sampling\n    for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n        let sensorObj = context.get(`userInputtedData.batchSensorData.${i}`);\n        if( sensorObj != null){\n            context.set(`userInputtedData.batchSensorData.${i}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${i}.isSamplingData`), [\"isPhaseISampling\"]: true});\n            appendPhaseILog(context, `Batch Sensor ${i}: Sampling`);\n        }\n    }\n    //Wait for each sensor has sampled to desired amount\n    let timeoutCounter = 0;\n    try{\n        while (true){\n            emergencyCheckOrThrow(context,`Emergency triggered at sampleV2PhaseIModule`);\n            if(timeoutCounter % 15 == 0){\n                appendPhaseILog(context,`Waiting on Lookup & Current sampling. Current checkpoint position:${checkpointPositionValue}/${checkpointPositionArray.length}. Waiting...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n            }\n            //Core checking area, Checking all instrument sampling should be done within a specific TIMEOUT constant\n            const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n            let doneSamplingCount = 0;\n            for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                if(batchSensorData[i] != null){\n                    const sensorObj = batchSensorData[i];\n                    let sensorIsSamplingData = sensorObj[\"isSamplingData\"];\n                    if(!sensorIsSamplingData[\"isPhaseISampling\"]){\n                        doneSamplingCount += 1;\n                    }\n                }\n            }\n            // console.log(`waiting is isPhaseISampling... ${doneSamplingCount}/${context.get(\"settingsConfig.BATCH_SENSORS_COUNT\")}`);\n\n            if(doneSamplingCount == context.get(\"settingsConfig.BATCH_SENSORS_COUNT\")){\n                appendPhaseILog(context, `All Batch Sensor: Done sampling`);\n                return true;\n            }\n            else if (timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                appendPhaseILog(context, `All or some batch sensors failed sampling stage`);\n                throw new Error(\"In sampleV2PhaseIModule: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORTING phase I\");\n            }\n            timeoutCounter+= 1;\n            await delayTimeModule(context, 0.5);\n        }\n        \n    }catch(err){\n\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updateCalibrationStatusModule(context, 550);\n            showPopup([`${err.message}`], 'error', 15);\n        }\n        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n            let sensorObj = context.get(`userInputtedData.batchSensorData.${i}`);\n            if( sensorObj != null){\n                context.set(`userInputtedData.batchSensorData.${i}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${i}.isSamplingData`), [\"isPhaseISampling\"]: false});\n            }\n        }\n        return false;\n    }\n}\nasync function sampleV2PhaseIIModule(context, checkpointPositionIndex, checkpointPositionArray){\n    const checkpointPositionValue = checkpointPositionIndex + 1;\n    //Turn on Sampling\n    /**\n     * \n        isSamplingCurrentData:false, \n        isSamplingCalibrationData:false\n     */\n    for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n        let sensorObj = context.get(`userInputtedData.batchSensorData.${i}`);\n        if( sensorObj != null){\n            context.set(`userInputtedData.batchSensorData.${i}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${i}.isSamplingData`), [\"isSamplingCurrentData\"]: true});\n            context.set(`userInputtedData.batchSensorData.${i}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${i}.isSamplingData`), [\"isSamplingCalibrationData\"]: true});\n            appendPhaseIILog(context, `Batch Sensor ${i}: Sampling`);\n        }\n    }\n    //Wait for each sensor has sampled to desired amount\n    let timeoutCounter = 0;\n    try{\n        while (true){\n            emergencyCheckOrThrow(context,`Emergency triggered at sampleV2PhaseIModule`);\n            if(timeoutCounter % 15 == 0){\n                appendPhaseIILog(context,`Waiting on Lookup & Current sampling. Current checkpoint position:${checkpointPositionValue}/${checkpointPositionArray.length}. Waiting...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}`);\n            }\n            //Core checking area, Checking all instrument sampling should be done within a specific TIMEOUT constant\n            const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n            let doneCurrentSamplingCount = 0;\n            let doneCalibrationDataSamplingCount = 0;\n            for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                if(batchSensorData[i] != null){\n                    const sensorObj = batchSensorData[i];\n                    let sensorIsSamplingData = sensorObj[\"isSamplingData\"];\n                    if(!sensorIsSamplingData[\"isSamplingCurrentData\"]){\n                        doneCurrentSamplingCount += 1;\n                    }\n                    if(!sensorIsSamplingData[\"isSamplingCalibrationData\"]){\n                        doneCalibrationDataSamplingCount += 1;\n                    }\n                }\n            }\n            // console.log(`waiting is isPhaseISampling...Current: ${doneCurrentSamplingCount}/${context.get(\"settingsConfig.BATCH_SENSORS_COUNT\")} Calibration Data: ${doneCalibrationDataSamplingCount}/${context.get(\"settingsConfig.BATCH_SENSORS_COUNT\")}`);\n\n            if(doneCurrentSamplingCount == context.get(\"settingsConfig.BATCH_SENSORS_COUNT\") && \n            doneCalibrationDataSamplingCount == context.get(\"settingsConfig.BATCH_SENSORS_COUNT\")){\n                appendPhaseIILog(context, `All Batch Sensor: Done sampling`);\n                return true;\n            }\n            else if (timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                appendPhaseIILog(context, `All or some batch sensors failed sampling stage`);\n                throw new Error(\"In sampleV2PhaseIModule: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORTING phase I\");\n            }\n            timeoutCounter+= 1;\n            await delayTimeModule(context, 0.5);\n        }\n        \n    }catch(err){\n\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updateCalibrationStatusModule(context, 550);\n            showPopup([`${err.message}`], 'error', 15);\n        }\n        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n            let sensorObj = context.get(`userInputtedData.batchSensorData.${i}`);\n            if( sensorObj != null){\n                context.set(`userInputtedData.batchSensorData.${i}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${i}.isSamplingData`), [\"isPhaseISampling\"]: false});\n            }\n        }\n        return false;\n    }\n}\nfunction calculateAveragePhaseIModule(context, sensorData){\n    /**\n     * NOTE: ONLY call this function if isPhaseISampling is true\n    */\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n    try{\n        if(calibProfile){\n            /***\n             * // first three values from sensor data: \n             * 241171999,71,25.0,19.67,19.60,19.41,19.41,19.01,19.83 -> 19.67,19.60,19.41,19.41,19.01,19.83\n             */\n            const trimmedSensorData = sensorData.slice(3); \n\n            // appendPhaseILog(context,`parsed data::::${trimmedSensorData.toString()}`);\n            const data = calibProfile['data']; \n            const checkpointSampleSize = data['checkpointSampleSize'];\n            if(context.get(\"calibrationData\")[\"phaseISampleLookupData\"].length != checkpointSampleSize){\n                updateCalibrationStatusModule(context, 553); //Sampling Status\n                const updatedSampleArr = context.get(\"calibrationData\")['phaseISampleLookupData'];\n                updatedSampleArr.push(trimmedSensorData)\n                context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseISampleLookupData\"]: updatedSampleArr});\n            }else{\n                updateCalibrationStatusModule(context, 554); //Adding & Averaging Status\n                console.log('phaseISampleLookupData');\n                console.log(context.get(\"calibrationData\")['phaseISampleLookupData']);\n                let lookupValues = [];\n                const result = new Array(context.get(\"calibrationData\")['phaseISampleLookupData'][0].length).fill(0); // Initialize result array with zeros\n\n                context.get(\"calibrationData\")['phaseISampleLookupData'].forEach(subArray => {\n                    subArray.forEach((value, index) => {\n                        result[index] += value; // Add values at the same index\n                    });\n                });\n\n                result.forEach((value, index)=>{\n                    index += 1;\n                    lookupValues.push(roundToDecimalPlaces(value/checkpointSampleSize, 0));\n                })\n                //Lookup Array Object is \n                context.get(\"calibrationData\")[\"phaseILookupData\"].push(lookupValues);\n                appendPhaseILog(context,`Averaged Lookup Value:${lookupValues}`);\n                //Reset & Stop sampling, move on\n                context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseISampleLookupData\"]: []});\n                context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseISampling\"]: false});\n                \n            }\n        }\n    }catch(err){\n        console.log(`Error in calculateAveragePhaseIModule: ${err.message}`);\n        console.log(err.stack);\n        context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseISampling\"]: false});\n\n    }\n}\nfunction calculateAveragePhaseIV2Module(context, batchSensorPosition, sensorData){\n    /**\n     * NOTE: ONLY call this function if isPhaseISampling is true\n    */\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n\n    try{\n        if(calibProfile){\n            /***\n             * // first three values from sensor data: \n             * 241171999,71,25.0,19.67,19.60,19.41,19.41,19.01,19.83 -> 19.67,19.60,19.41,19.41,19.01,19.83\n             */\n            const trimmedSensorData = sensorData.slice(3); \n\n            // appendPhaseILog(context,`parsed data::::${trimmedSensorData.toString()}`);\n            const data = calibProfile['data']; \n            const checkpointSampleSize = data['checkpointSampleSize'];\n            if(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`).length != checkpointSampleSize){\n                // console.log(`sample progress:${context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`).length}/${checkpointSampleSize}`);\n\n                updateCalibrationStatusModule(context, 587); //V2 P1: Sampling\n                const updatedSampleArr = context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`);\n                updatedSampleArr.push(trimmedSensorData)\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`), [\"sampleDataDump\"]: updatedSampleArr});\n            }else{\n                console.log(`Done sampling, averaging lookup data...`);\n\n                updateCalibrationStatusModule(context, 586); //V2 P1: Averaging Buffer\n                let lookupValues = [];\n                const result = new Array(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`)[0].length).fill(0); // Initialize result array with zeros\n\n                context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`).forEach(subArray => {\n                    subArray.forEach((value, index) => {\n                        result[index] += value; // Add values at the same index\n                    });\n                });\n\n                result.forEach((value, index)=>{\n                    index += 1;\n                    lookupValues.push(roundToDecimalPlaces(value/checkpointSampleSize, 0));\n                })\n                //Lookup Array Object\n                // context.get(\"calibrationData\")[\"phaseILookupData\"].push(lookupValues);\n                context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.lookupData`).push(lookupValues);\n                // freshSensorObj[\"calibrationData\"][\"lookupData\"].push(lookupValues);\n                appendPhaseILog(context,`Averaged Lookup Value:${lookupValues}`);\n\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`), [\"sampleDataDump\"]: []});\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`), [\"isPhaseISampling\"]: false});\n\n                // console.log(`Done sampling & averaging. lookup data`);\n                // console.log(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.lookupData`));\n\n            }\n        }\n    }catch(err){\n        console.log(`Error in calculateAveragePhaseIV2Module: ${err.message}`);\n        console.log(err.stack);\n        context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`), [\"isPhaseISampling\"]: false});\n    }\n}\nfunction calculateAverageCalibrationDataPhaseIIModule(context, sensorData){\n    /**\n     * NOTE: ONLY call this function if isPhaseIICalibrationDataValueSampling is true\n     * The idea of this helper function is to do handle two important arrays in calibrationData: phaseIICurrentData & phaseIICalibrationDataValueData\n     * There will be two places in incomingMessageLibrary() where it calls, this. When the case is \"sensorData\" and \"current\".\n     * The idea for both are the same, essentially, keep adding into a buffer called \"phaseIISampleCalibrationDataValueData\" and \"phaseIISampleCurrentData\" until it meets limit of \"checkpointSampleSize\"\n     * When it does meets(the length of the buffer == checkpointSampleSize), then it progressively adds each value in the array, and then averages. This might seems simple, but below is a break down.\n     * buffer(regardless phaseIISampleCalibrationDataValueData or phaseIISampleCurrentData) = [[x1,x2,x3,x4,x5],[y1,y2,y3,y4,y5],[z1,z2,z3,z4,z5]], \n     * then jump into else{} and do the averaging:\n     * final array of averaged values: [(x1+y1+z1)/checkpointSampleSize, (x2+y2+z2)/checkpointSampleSize, (x3+y3+z3)/checkpointSampleSize]\n     * \n     * There are some minor differences. The final array for lookup, will be [[],[],[]] format and for current values will be [c1,c2,c3], assuming the checkpointSampleSize is 3. That being said, the\n     * respective array size should all be the same. \n     * \n     * Finally when the array for both are the same, then we can end this calculation & averaging step, clear the buffer and set the isPhaseIICalibrationDataValueSampling false\n    */\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n    try{\n        if(calibProfile && sensorData != null){\n            /***\n             * // first three values from sensor data: \n             * 241171999,71,25.0,19.67,19.60,19.41,19.41,19.01,19.83 -> 19.67,19.60,19.41,19.41,19.01,19.83\n             */\n\n            // appendPhaseILog(context,`parsed data::::${trimmedSensorData.toString()}`);\n            const data = calibProfile['data']; \n            const checkpointSampleSize = data['checkpointSampleSize'];\n            if(context.get(\"calibrationData\")[\"phaseIISampleCalibrationDataValueData\"].length != checkpointSampleSize){\n                updateCalibrationStatusModule(context, 561); //Sampling Status\n                const updatedSampleArr = context.get(\"calibrationData\")['phaseIISampleCalibrationDataValueData'];\n                updatedSampleArr.push(sensorData.slice(3))\n                context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCalibrationDataValueData\"]: updatedSampleArr});\n                // console.log(`calibrationData phaseIISampleCalibrationDataValueData::::${context.get(\"calibrationData\")[\"phaseIISampleCalibrationDataValueData\"].toString()}`);\n            }else{\n                updateCalibrationStatusModule(context, 562); //Adding & Averaging Status\n                let calibratedDataValues = [];\n                const result = new Array(context.get(\"calibrationData\")['phaseIISampleCalibrationDataValueData'][0].length).fill(0); // Initialize result array with zeros\n\n                context.get(\"calibrationData\")['phaseIISampleCalibrationDataValueData'].forEach(subArray => {\n                    subArray.forEach((value, index) => {\n                        result[index] += value; // Add values at the same index\n                    });\n                });\n                result.forEach((value, index)=>{\n                    index += 1;\n                    calibratedDataValues.push(roundToDecimalPlaces(value/checkpointSampleSize, 2));\n                })\n                //Lookup Array Object is \n                context.get(\"calibrationData\")[\"phaseIICalibrationDataValueData\"].push(calibratedDataValues);\n                // console.log(`phaseIISampleCalibrationDataValueData:`);\n                // console.log(context.get(\"calibrationData\")[\"phaseIISampleCalibrationDataValueData\"]);\n                // console.log(`phaseIICalibrationDataValueData:`);\n                // console.log(context.get(\"calibrationData\")[\"phaseIICalibrationDataValueData\"]);\n                appendPhaseIILog(context,`Averaged Calibrated Data Value:${calibratedDataValues}`);  \n                context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCalibrationDataValueData\"]: []});  \n                context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICalibrationDataValueSampling\"]: false});         \n            }\n            \n        }\n    }catch(err){\n        console.log(`Error in calculateAverageCalibrationDataPhaseIIModule: ${err.message}`);\n        console.log(err.stack);\n        context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICalibrationDataValueSampling\"]: false});     \n\n    }\n\n}\nfunction calculateAverageCurrentPhaseIIModule(context, currentData){\n    /**\n     * NOTE: ONLY call this function if isPhaseIICurrentSampling is true\n     * The idea of this helper function is to do handle two important arrays in calibrationData: phaseIICurrentData & phaseIICalibrationDataValueData\n     * There will be two places in incomingMessageLibrary() where it calls, this. When the case is \"sensorData\" and \"current\".\n     * The idea for both are the same, essentially, keep adding into a buffer called \"phaseIISampleCalibrationDataValueData\" and \"phaseIISampleCurrentData\" until it meets limit of \"checkpointSampleSize\"\n     * When it does meets(the length of the buffer == checkpointSampleSize), then it progressively adds each value in the array, and then averages. This might seems simple, but below is a break down.\n     * buffer(regardless phaseIISampleCalibrationDataValueData or phaseIISampleCurrentData) = [[x1,x2,x3,x4,x5],[y1,y2,y3,y4,y5],[z1,z2,z3,z4,z5]], \n     * then jump into else{} and do the averaging:\n     * final array of averaged values: [(x1+y1+z1)/checkpointSampleSize, (x2+y2+z2)/checkpointSampleSize, (x3+y3+z3)/checkpointSampleSize]\n     * \n     * There are some minor differences. The final array for lookup, will be [[],[],[]] format and for current values will be [c1,c2,c3], assuming the checkpointSampleSize is 3. That being said, the\n     * respective array size should all be the same. \n     * \n     * Finally when the array for both are the same, then we can end this calculation & averaging step, clear the buffer and set the isPhaseIICurrentSampling false\n    */\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n    try{\n        if(calibProfile && currentData != null){\n            \n            const data = calibProfile['data']; \n            const checkpointSampleSize = data['checkpointSampleSize'];\n            if(context.get(\"calibrationData\")[\"phaseIISampleCurrentData\"].length != checkpointSampleSize){\n                updateCalibrationStatusModule(context, 561); //Sampling Status\n                const updatedCurrArr = context.get(\"calibrationData\")['phaseIISampleCurrentData'];\n                updatedCurrArr.push(Number.parseFloat(currentData))\n                context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCurrentData\"]: updatedCurrArr});\n                // console.log(`calibrationData phaseIISampleCurrentData::::${context.get(\"calibrationData\")[\"phaseIISampleCurrentData\"].toString()}`);\n            }\n            else{\n                updateCalibrationStatusModule(context, 562); //Adding & Averaging Status\n                let finalValue = 0;\n\n                //sample phaseIISampleCurrentData [21.93, 24.47, 30.55, 27.44, 28.91, 29.54]\n                context.get(\"calibrationData\")['phaseIISampleCurrentData'].forEach(sampleValue => { \n                    finalValue += sampleValue;\n                });\n                finalValue = (finalValue/checkpointSampleSize);\n                finalValue = roundToDecimalPlaces(finalValue, 2);\n                //Final Current Value Added \n                context.get(\"calibrationData\")[\"phaseIICurrentData\"].push(finalValue);\n                // console.log(`phaseIISampleCurrentData:`);\n                // console.log(context.get(\"calibrationData\")[\"phaseIISampleCurrentData\"]);\n                // console.log(`phaseIICurrentData:`);\n                // console.log(context.get(\"calibrationData\")[\"phaseIICurrentData\"]);\n                appendPhaseIILog(context,`Averaged Current Value:${finalValue}`);\n                //Reset Buffer and stop lookup sampling\n                context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCurrentData\"]: []});\n                context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICurrentSampling\"]: false});\n            }\n            \n        }\n    }catch(err){\n        console.log(`Error in calculateAveragePhaseIIModule: ${err.message}`);\n        console.log(err.stack);\n        context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICurrentSampling\"]: false});\n\n    }\n}\nfunction calculateAverageCalibrationDataPhaseIIV2Module(context, batchSensorPosition, sensorData){\n    /**\n     * NOTE: ONLY call this function if isPhaseISampling is true\n    */\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n\n    try{\n        if(calibProfile){\n            const trimmedSensorData = sensorData.slice(3); \n\n            // appendPhaseILog(context,`parsed data::::${trimmedSensorData.toString()}`);\n            const data = calibProfile['data']; \n            const checkpointSampleSize = data['checkpointSampleSize'];\n            if(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`).length != checkpointSampleSize){\n                // console.log(`sample progress calib. data:${context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`).length}/${checkpointSampleSize}`);\n\n                updateCalibrationStatusModule(context, 577); //V2 P2: Sampling Calib. Data\n                const updatedSampleArr = context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`);\n                updatedSampleArr.push(trimmedSensorData)\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`), [\"sampleDataDump\"]: updatedSampleArr});\n            }else{\n                console.log(`Done sampling, averaging calibration data...`);\n\n                updateCalibrationStatusModule(context, 576); //V2 P2: Averaging Calib. Data\n                let calibDataValues = [];\n                const result = new Array(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`)[0].length).fill(0); // Initialize result array with zeros\n                console.log(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`));\n\n                context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleDataDump`).forEach((calibDataSubArray) => {\n                    calibDataSubArray.forEach((value, index) => {\n                        result[index] += value; // Add values at the same index\n                    });\n                });\n\n                result.forEach((value, index)=>{\n                    index += 1;\n                    calibDataValues.push(roundToDecimalPlaces(value/checkpointSampleSize, 0));\n                })\n                //Calib Data Array Object\n                context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.calibrationDataData`).push(calibDataValues);\n                appendPhaseIILog(context,`Averaged Calib. Data Values:${calibDataValues}`);\n                //Reset\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`), [\"sampleDataDump\"]: []});\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`), [\"isSamplingCalibrationData\"]: false});\n                \n                // console.log(`Done sampling & averaging. current data`);\n                // console.log(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.calibrationDataData`));\n\n            }\n        }\n    }catch(err){\n        console.log(`Error in calculateAverageCalibrationDataPhaseIIV2Module: ${err.message}`);\n        console.log(err.stack);\n        context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`), [\"isSamplingCalibrationData\"]: false});\n    }\n}\nfunction calculateAverageCurrentPhaseIIV2Module(context, batchSensorPosition, sensorData){\n\n    const calibProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n\n    try{\n        if(calibProfile){\n            // appendPhaseILog(context,`parsed data::::${sensorData.toString()}`);\n            const data = calibProfile['data']; \n            const checkpointSampleSize = data['checkpointSampleSize'];\n            if(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleCurrentDataDump`).length != checkpointSampleSize){\n                // console.log(`sample progress current data:${context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleCurrentDataDump`).length}/${checkpointSampleSize}`);\n\n                updateCalibrationStatusModule(context, 575); //V2 P2: Sampling Current Data\n                const updatedSampleArr = context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleCurrentDataDump`);\n                updatedSampleArr.push(sensorData)\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`), [\"sampleCurrentDataDump\"]: updatedSampleArr});\n            }\n            else{\n                console.log(`Done sampling, averaging current data...`);\n                console.log(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleCurrentDataDump`));\n\n                updateCalibrationStatusModule(context, 574); //V2 P2: Averaging Current Data\n\n                let finalValue = 0;\n                context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.sampleCurrentDataDump`).forEach(sampleValue => { \n                    finalValue += Number.parseFloat(sampleValue);\n                });\n                finalValue = (finalValue/checkpointSampleSize);\n                finalValue = roundToDecimalPlaces(finalValue, 4);\n                context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.currentData`).push(finalValue);\n                appendPhaseIILog(context,`Averaged Current Values:${finalValue}`);\n\n                //Current Data Object\n                //Reset\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData`), [\"sampleCurrentDataDump\"]: []});\n                context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`), [\"isSamplingCurrentData\"]: false});\n                \n                // console.log(`Done sampling & averaging. current data`);\n                // console.log(context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.calibrationData.currentData`));\n\n            }\n        }\n    }catch(err){\n        console.log(`Error in calculateAverageCurrentPhaseIIV2Module: ${err.message}`);\n        console.log(err.stack);\n        context.set(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${batchSensorPosition}.isSamplingData`), [\"isSamplingCurrentData\"]: false});\n    }\n}\nfunction delayTimeModule(context, numberSeconds){\n    /***\n     * Call delay by \"await delayTimeModule(2);\"\n     */\n    return new Promise((resolve) => {\n        setTimeout(resolve, numberSeconds * 1000);\n      });\n}\nfunction softResetV2PhaseIModule(context, phase){\n\n    switch(phase){\n        case \"phaseI\":\n            const chatBoxP1 = document.getElementById('phaseITextbox');\n            if(chatBoxP1){\n                chatBoxP1.innerHTML=\"\";\n            }\n            for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                if(context.get(`userInputtedData.batchSensorData.${i}`) != null){\n                    context.set(`userInputtedData.batchSensorData.${i}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${i}.calibrationData`), [\"sampleDataDump\"]: []});\n                    context.set(`userInputtedData.batchSensorData.${i}.calibrationData`,{...context.get(`userInputtedData.batchSensorData.${i}.calibrationData`), [\"lookupData\"]: []});\n                    context.set(`userInputtedData.batchSensorData.${i}.isSamplingData`,{...context.get(`userInputtedData.batchSensorData.${i}.isSamplingData`), [\"isPhaseISampling\"]: false});    \n                }\n            }\n            context.set(\"dashboardStatusBarData.current\",generalStatusLibrary(600));\n            context.set(\"dashboardStatusBarData.target\",generalStatusLibrary(600));\n            break;\n\n        case \"phaseII\":\n            const chatBoxPII = document.getElementById('phaseIITextbox');\n            if(chatBoxPII){\n                chatBoxPII.innerHTML=\"\";\n            }\n            for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                if(context.get(`userInputtedData.batchSensorData.${i}`) != null){\n                    /**\n                     * \n                            calibrationDataData:[],\n                            currentData:[],\n                            slopeData:[], \n                            offsetData:[]\n                            isSamplingCurrentData:false, \n                            isSamplingCalibrationData:false\n                     */\n                    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"sampleDataDump\"]: []});\n                    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"sampleCurrentDataDump\"]: []});\n                    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"calibrationDataData\"]: []});\n                    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"currentData\"]: []});\n                    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"slopeData\"]: []});\n                    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"offsetData\"]: []});\n                    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isSamplingCurrentData\"]: false});\n                    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isSamplingCalibrationData\"]: false});\n                }\n            }\n            context.set(\"dashboardStatusBarData.current\",generalStatusLibrary(600));\n            context.set(\"dashboardStatusBarData.target\",generalStatusLibrary(600));\n            break;\n    }\n    \n    try{\n\n    }catch(err){\n        console.log(`Error in softResetV2PhaseIModule: ${err.message}`);\n        console.log(err.stack);\n    }\n}\nfunction softResetPhaseIModule(context){\n\n    updateCalibrationStatusModule(context, 597);\n    \n    const chatBox = document.getElementById('phaseITextbox');\n    if(chatBox){\n        chatBox.innerHTML=\"\";\n    }\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseISampleLookupData\"]: []});\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseILookupData\"]: []});\n    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseISampling\"]: false});\n    context.set(\"dashboardStatusBarData.current\",generalStatusLibrary(600));\n    context.set(\"dashboardStatusBarData.target\",generalStatusLibrary(600));\n}\nfunction softResetPhaseIIModule(context){\n\n    updateCalibrationStatusModule(context, 598);\n        \n    const chatBox = document.getElementById('phaseIITextbox');\n    if(chatBox){\n        chatBox.innerHTML=\"\";\n    }\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCalibrationDataValueData\"]: []});\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIICalibrationDataValueData\"]: []});\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISampleCurrentData\"]: []});\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIICurrentData\"]: []});\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIISlopeData\"]: []});\n    context.set(\"calibrationData\",{...context.get(\"calibrationData\"), [\"phaseIIOffsetData\"]: []});\n    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIICalibrationDataValueSampling\"]: false});\n    context.set(\"calibrationIsSamplingData\",{...context.get(\"calibrationIsSamplingData\"), [\"isPhaseIISampling\"]: false});\n    context.set(\"dashboardStatusBarData.current\",generalStatusLibrary(600));\n    context.set(\"dashboardStatusBarData.target\",generalStatusLibrary(600)); \n}\nexport function hardResetModule(context){\n\n    if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n        context.set(\"calibrationData\",{phaseISampleLookupData:[],phaseILookupData:[],phaseIISampleCalibrationDataValueData:[],phaseIICalibrationDataValueData:[],phaseIISampleCurrentData:[],phaseIICurrentData:[],phaseIISlopeData:[], phaseIIOffsetData:[]});\n        context.set(\"calibrationIsSamplingData\",{isPhaseISampling:false, isPhaseIISampling:false});\n    }else if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n        const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n            if(batchSensorData[i] != null){\n                const sensorObj = batchSensorData[i];\n                sensorObj[\"isSamplingData\"] = {\n                    isPhaseISampling:false,\n                    isSamplingCurrentData:false, \n                    isSamplingCalibrationData:false\n                };\n                sensorObj[\"calibrationData\"] = {\n                    sampleDataDump:[],\n                    sampleCurrentDataDump:[],\n                    lookupData:[],\n                    calibrationDataData:[],\n                    currentData:[],\n                    slopeData:[], \n                    offsetData:[]\n                };\n            }\n        }\n    }\n    context.set(\"dashboardStatusBarData.current\",generalStatusLibrary(600));\n    context.set(\"dashboardStatusBarData.target\",generalStatusLibrary(600));\n    const rigProfile = document.getElementById(\"selectedRigIP\");\n    rigProfile.value=\"0\";\n    context.set(\"selectedRigDP\", \"0\");\n    const calibProfile = document.getElementById(\"selectedCalibrationType\");\n    calibProfile.value=\"0\";\n    context.set(\"selectedCalibDP\", \"0\");\n\n}\nfunction emergencyCheckOrThrow(context, message, errCategory=null){\n    if (context.get(\"emergencyController\")['signal']['aborted']) {\n        throw new DOMException(message, errCategory == null ? \"AbortError\" : errCategory);\n    }\n\n}\n//General utilities and Tools Section\nexport async function sendV2BatchCommands1(context){\n    try{\n        const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n        const selectedCalibrationProfile = context.get(\"userInputtedData.selectedCalibrationProfile\");\n        updateCalibrationStatusModule(context, 591); //Sending Validation CMDs... \n\n        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n            if(batchSensorData[i] != null && selectedCalibrationProfile != null){\n                const sensorObj = batchSensorData[i];\n                const calibrationProfileData = selectedCalibrationProfile[\"data\"];\n                const sensorData = sensorObj['sensorData'];\n                const sensorName = sensorData['sensorName'];\n                const channelBoard = calibrationProfileData['channels'] - 1;\n                const strokeBoard = calibrationProfileData['maxLimit'];\n                const sensorID = sensorData['sensorID'];\n                const type = calibrationProfileData['typeID'];\n                const description = buildSensorDescription(context);\n                appendLiveLog(context, `Sending validation CMDs for sensor ${i}...`, \"incoming\");\n                showPopup([`Sending validation CMDs for sensor ${i}...`, \"warning\", 5]);\n                const cmdArray = [\n                    'WS+COMMAND_MODE=1',//Set CMD mode\n\n                    `WS+COMMAND=0`,//setMode 0\n                    `WS+COMMAND=1`,//setMode 1,\n\n                    `WS+COMMAND=1`,//setChannel\n                    `WS+COMMAND=${channelBoard}`,//setChannel\n\n                    `WS+COMMAND=2`,//setStroke\n                    `WS+COMMAND=${strokeBoard}00`,//setStroke\n                    \n                    `WS+COMMAND=3`,//setSensorID\n                    `WS+COMMAND=${sensorID}`,//setSensorID\n                    \n                    `WS+COMMAND=4`,//setType\n                    `WS+COMMAND=${calibrationProfileData['channels']}${type}`,//setType\n                    \n                    `WS+COMMAND=5`,//setDescrip\n                    `WS+COMMAND=${description}`,//setDescrip\n                    \n                    `WS+COMMAND=9`,//exit\n                ];\n                await sendBatchCommands(context, cmdArray);\n                appendLiveLog(context, `Done sending validation CMDs for sensor ${i}!`, \"incoming\");\n                showPopup([`Done sending validation CMDs for sensor ${i}!`, \"notification\", 5]);\n            }\n        }\n        updateCalibrationStatusModule(context, 590); //Ready to Start Calibration\n\n\n    }catch(err){\n        console.log(`Error in sendV2BatchCommands1: ${err.message}`);\n        console.log(err.stack);\n\n    }\n}\nexport async function sendV2BatchCommands2(context){\n    try{\n        const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n        //Notify\n        appendLiveLog(context, `Sending initial CMDs prior to lookup upload!`, \"incoming\");\n        showPopup([`Sending initial CMDs prior to lookup upload!`, \"warning\", 5]);\n        //Starting CMDs: setMode 1\n        const cmdArray1 = [\n            'WS+COMMAND_MODE=1',//Set CMD mode\n\n            `WS+COMMAND=0`,//setMode 0\n            `WS+COMMAND=0`,//setMode 0\n        ];\n        await sendBatchCommands(context, cmdArray1);\n        //Start Sending T1,T2,...\n        for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n            if(batchSensorData[i] != null){\n                const sensorObj = batchSensorData[i];\n                const sensorCalibrationData = sensorObj[\"calibrationData\"];\n                //Notify\n                appendLiveLog(context, `Uploading lookup data for sensor ${i}...`, \"incoming\");\n                showPopup([`Uploading lookup data for sensor ${i}...`, \"warning\", 5]);\n                for(let j=1; j<=sensorCalibrationData[\"lookupData\"].length; j ++){\n                    const lookupDataArray = sensorCalibrationData[\"lookupData\"][j-1];\n                    const cmdArray2 = [\n                        `WS+COMMAND=T${j}`,//set T1, T2,...,\n                        `WS+COMMAND=${lookupDataArray.toString()},`,//set T values\n                    ];\n                    await sendBatchCommands(context, cmdArray2);\n\n                }\n                //Notify\n                appendLiveLog(context, `Done uploading lookup data for sensor ${i}!`, \"incoming\");\n                showPopup([`Done uploading lookup data for sensor ${i}!`, \"warning\", 5]);\n            }\n        }\n        //Wrap Up CMDS\n        //Notify\n        appendLiveLog(context, `Sending concluding CMDs after lookup upload!`, \"incoming\");\n        showPopup([`Sending concluding CMDs after lookup upload!`, \"warning\", 5]);\n        const cmdArray2 = [\n            `WS+COMMAND=7`,//Table to ROM\n            `WS+COMMAND=9`,//Exit\n        ];\n        await sendBatchCommands(context, cmdArray2);\n\n\n    }catch(err){\n        console.log(`Error in sendV2BatchCommands2: ${err.message}`);\n        console.log(err.stack);\n\n    }\n}\nexport async function sendBatchCommands(context, cmdValueArray){\n    for (let cmdValueString of cmdValueArray) {\n        const [cmd, value] = cmdValueString.split(' ');\n        await outgoingMessageLibrary(\n            context,\n            cmd ? cmd : \"\",\n            value ? value : \"\"\n        );\n\n        // Wait 7 seconds before the next iteration\n        await new Promise(resolve => setTimeout(resolve, 8000));\n    }\n\n}\nexport function clearBatchSensorCalibrationData(context){\n    context.set(\"userInputtedData.batchSensorData\", {});\n}\nfunction transformLookUpDataObj(context, phase){\n    try{\n        const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n        // console.log(`phase:${phase}`);\n        if(selectedCalibrationProfile != null){\n            const data = selectedCalibrationProfile['data'];\n            let lookupData = null;\n            switch(phase){\n                case \"phaseI\":\n                    lookupData = context.get('calibrationData')['phaseILookupData'];\n                    break;\n                case \"phaseII\":\n                    lookupData = context.get('calibrationData')['phaseIICalibrationDataValueData'];\n                    break;\n            }\n            const channels = data['channels'] - 1; //-1 to disregard the temperature channel\n            let transformedArray =  Array.from({ length: channels }, () => []);\n            // console.log(lookupData);\n            // console.log(transformedArray);\n    \n            lookupData.forEach((value, i)=>{\n                value.forEach((value, index)=>{\n                    const channelID=index;\n                    transformedArray[channelID].push(value);\n                })\n            });\n            // console.log('transformedArray');\n            // console.log(transformedArray);\n            return transformedArray;\n        }\n    }catch(err){\n        console.log(`Error in transformLookUpDataObj: ${err.message}`);\n        console.log(err.stack);\n    }\n}\nfunction transformLookUpV2(context, dataKey){\n    try{\n        const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n        if(selectedCalibrationProfile != null){\n            const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n            const data = selectedCalibrationProfile['data'];\n            const channels = data['channels'] - 1; //-1 to disregard the temperature channel\n            for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n                if(batchSensorData[i] != null){\n                    const sensorObj = batchSensorData[i];\n                    let calibrationData = sensorObj[\"calibrationData\"];\n                    let transformedArray =  Array.from({ length: channels }, () => []);\n                    calibrationData[dataKey].forEach((value, i)=>{\n                        value.forEach((value, index)=>{\n                            const channelID=index;\n                            transformedArray[channelID].push(value);\n                        })\n                    });\n                    calibrationData[dataKey] = transformedArray;\n                }\n            }\n            context.set(\"userInputtedData.batchSensorData\", batchSensorData);\n            return true;\n        }\n        else{\n            return false;\n        }\n    }catch(err){\n        console.log(`Error in transformLookUpDataObjV2: ${err.message}`);\n        console.log(err.stack);\n        return false;\n    }\n}\nfunction getRandomNumber(min, max) {\n    // Generate a random number between 20 and 23\n    let randomNumber = Math.random() * (max - min) + 20;\n    // Round to two decimal places\n    return randomNumber.toFixed(2);\n}\nexport function roundToDecimalPlaces(value, decimalPlaces) {\n    const scale = Math.pow(10, decimalPlaces);\n    const roundedValue = Math.round(value * scale) / scale;\n\n    // Ensure the result has exactly the specified number of decimal places\n    return roundedValue.toFixed(decimalPlaces);\n}\nfunction parseMessage(context,message) {\n\n    if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\"){\n        const data = message.split(',');\n        // Ensure the array has at least the first 5 elements\n        if (data.length < 5) {\n          throw new Error(\"Array must have at least 5 elements.\");\n        }\n      \n        // Extract the required fields\n        const instrumentID = data[1]?.trim(); // Second element\n        const instrumentType = data[3]?.trim(); // Fourth element\n      \n        // Extract the temperature value (5th element in the array)\n        let temperatureValue;\n        try {\n          temperatureValue = parseFloat(data[4].replace(\"+\", \"\").trim()); // Clean and convert to float\n        } catch (error) {\n          throw new Error(\"Temperature value is not valid.\");\n        }\n      \n        // Initialize array for displacement values\n        const displacementValues = [];\n      \n        // Process the remaining elements in pairs (displacementValue, displacementUnit)\n        for (let i = 6; i < data.length; i += 2) {\n          let displacementValue = data[i]?.trim()?.replace(/\\s+/g, \"0\") || null; // Remove spaces\n          try {\n            if(displacementValue != null){\n                // console.log('displacementValue')\n                // console.log(displacementValue)\n                displacementValues.push(parseFloat(displacementValue));\n            }\n          } catch (error) {\n            // Skip invalid displacement values\n            console.warn(`Invalid displacement value at index ${i}:`, data[i]);\n          }\n        }\n      \n        // Return as an array\n        const finalArr = [instrumentID, instrumentType, temperatureValue];\n        displacementValues.forEach((value)=>{\n            finalArr.push(value);\n        })\n        // console.log(finalArr);\n    \n        return finalArr;\n\n    }else if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n\n        try {\n        \n            // Split by comma\n            const dataParts = message.split(',').map(part => part.trim());\n        \n            if (dataParts.length < 6) {\n              throw new Error('Input string does not have the minimum required fields.');\n            }\n        \n            // Extract fixed elements\n            const sensorID = dataParts[1];\n            const sensorTypeCombination = dataParts[3];\n        \n            const temperatureRaw = dataParts[4];\n            const temperatureValue = parseFloat(temperatureRaw.replace(/[^\\d.-]/g, ''));\n        \n            // Starting from index 6, collect displacement values\n            const displacementValues = [];\n            for (let i = 6; i < dataParts.length; i += 2) {\n              const value = parseFloat(dataParts[i]);\n              if (!isNaN(value)) {\n                displacementValues.push(value);\n              }\n            }\n        \n            // Return in desired format\n            return [sensorID, sensorTypeCombination, temperatureValue, ...displacementValues];\n          } catch (err) {\n            console.error(`Error in parseMessage: ${err.message}`);\n            console.error(err.stack);\n            return [];\n          }\n    }\n}\nexport function getDataSetColor(index) {\n    const colors = [\n        '#FF0000', // Red\n        '#00FF00', // Green\n        '#0000FF', // Blue\n        '#FFFF00', // Yellow\n        '#FF00FF', // Magenta\n        '#00FFFF', // Cyan\n        '#FF7F00', // Orange\n        '#7F00FF', // Violet\n        '#00FF7F', // Spring Green\n        '#7FFF00', // Chartreuse\n        '#FF007F', // Rose\n        '#007FFF', // Azure\n        '#7F7F7F', // Grey\n        '#FFAA00', // Amber\n        '#AAFF00', // Lime\n        '#00AAFF', // Cerulean\n        '#AA00FF', // Purple\n        '#FF00AA', // Fuchsia\n        '#00FFAA', // Aqua\n        '#AAFFAA', // Pastel Green\n        '#AAFF7F', // Light Green\n        '#7F7FFF', // Lavender\n        '#FF5555', // Soft Red\n        '#55FF55', // Soft Green\n        '#5555FF', // Soft Blue\n    ];\n\n    // Cycle through the colors if there are more datasets than predefined colors\n    return colors[index % colors.length];\n}\nexport function getCurrentDateTime () {\n    const now = new Date();\n\n    const year = now.getFullYear();\n    const month = String(now.getMonth() + 1).padStart(2, '0'); // Months are 0-based\n    const day = String(now.getDate()).padStart(2, '0');\n\n    const hours = String(now.getHours()).padStart(2, '0');\n    const minutes = String(now.getMinutes()).padStart(2, '0');\n    const seconds = String(now.getSeconds()).padStart(2, '0');\n    const milliseconds = String(now.getMilliseconds()).padStart(3, '0');\n\n    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\nfunction areNumbersEqual(num1, num2, epsilon = 0.005) {\n    return Math.abs(num1 - num2) < epsilon;\n}\nexport function formatDateTimeFromInputField(dateTimeString) {\n    // Convert the input datetime-local string to the desired format\n    const [date, time] = dateTimeString.split('T');\n    console.log(`date:${date} time:${time}`);\n    return `${date} ${time}:00`; // Append milliseconds as .000\n}\nexport function linearRegression(x, y) {\n    //x = array of x axis values (current)\n    //y = array of y axis values (calibrated)\n    x = x.map(Number);\n    y = y.map(Number);\n    try{\n        const n = x.length; // Number of points\n\n        // Calculate the sums needed for the formula\n        const sumX = x.reduce((a, b) => a + b, 0);\n        const sumY = y.reduce((a, b) => a + b, 0);\n        const sumXY = x.reduce((sum, xi, i) => sum + xi * y[i], 0);\n        const sumX2 = x.reduce((sum, xi) => sum + xi * xi, 0);\n\n        // Calculate slope (m) and offset (b)\n        const slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);\n        const offset = (sumY - slope * sumX) / n;\n\n        return { slope, offset };\n    }catch(err){\n        console.log(`Error in linearRegression: ${err.message}`);\n        console.log(err.stack);\n    } \n}\nexport function convertDBDateToTableDate(DBDate){\n    const date = new Date (DBDate);\n    let year = date.getFullYear();\n    let month = String(date.getMonth() + 1).padStart(2, '0');\n    let day = String(date.getDate()).padStart(2, '0');\n    let hours = String(date.getHours()).padStart(2, '0');\n    let minutes = String(date.getMinutes()).padStart(2, '0');\n    let seconds = String(date.getSeconds()).padStart(2, '0');\n    \n    return(`${year}-${month}-${day} ${hours}:${minutes}:${seconds}`) ;\n\n}\nexport function buildAndGetDataFormat1(context){\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n    const selectedSensorData = context.get(\"userInputtedData.selectedSensorData\");\n    const selectedAnchorData = context.get(\"userInputtedData.selectedAnchorData\")\n    const calibrationData = context.get('calibrationData');\n    //Build Data\n    let requestData = {};\n    //add rigProfile ID\n    requestData['selectedRigProfileID'] = Number.parseInt(selectedRigProfile['data']['rigID']);\n    //add calibProfile ID\n    requestData['selectedCalibrationProfileID'] = Number.parseInt(selectedCalibrationProfile['data']['id']);\n    //add sensorProfile \n    requestData['sensorProfileData'] = {};\n    requestData['sensorProfileData']['channels'] = selectedCalibrationProfile['data']['channels'] ? Number.parseInt(selectedCalibrationProfile['data']['channels']) : 0;\n    requestData['sensorProfileData']['validationID'] = selectedSensorData['selectedPackProfile'] &&  selectedSensorData['selectedPackProfile']['validationId'] != null ? selectedSensorData['selectedPackProfile']['validationId'] != null : null;\n    requestData['sensorProfileData']['sensorID'] = selectedSensorData['sensorID'] ? selectedSensorData['sensorID'] : '';\n    requestData['sensorProfileData']['rigID'] = selectedRigProfile['data']['rigID'] ? Number.parseInt(selectedRigProfile['data']['rigID']) : 0;\n    requestData['sensorProfileData']['rigIP'] = selectedRigProfile ? selectedRigProfile['data']['rigIP'] : \"\";\n    requestData['sensorProfileData']['rigName'] = selectedRigProfile ? selectedRigProfile['data']['rigName'] : \"\";\n    requestData['sensorProfileData']['unit'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['unit'] : \"\";\n    requestData['sensorProfileData']['typeID'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['typeID'] : \"\";\n    requestData['sensorProfileData']['jobID'] = selectedSensorData['jobID'] ? selectedSensorData['jobID'] : \"\";\n    requestData['sensorProfileData']['sensorName'] = selectedSensorData['sensorName'] ? selectedSensorData['sensorName'] : \"\";\n    requestData['sensorProfileData']['calibrationDate'] = selectedSensorData['calibrationDate'] ? selectedSensorData['calibrationDate'] : \"\";\n    requestData['sensorProfileData']['employee'] = userProfile ?  `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}` : \"\";\n    requestData['sensorProfileData']['sensorDescription'] = selectedSensorData['sensorDescription'] ? selectedSensorData['sensorDescription'] : \"\";\n    requestData['sensorProfileData']['memo'] = selectedSensorData['memo'] ? selectedSensorData['memo'] : \"\";\n    requestData['sensorProfileData']['checkpointPositions'] = selectedCalibrationProfile['data']['checkpointPositions'] ? selectedCalibrationProfile['data']['checkpointPositions'] : [];\n    requestData['sensorProfileData']['checkpointSpeed'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointSpeed'] : \"\";;\n    requestData['sensorProfileData']['checkpointDelay'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointDelay'] : \"\";;\n    requestData['sensorProfileData']['checkpointSampleSize'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointSampleSize'] : \"\";;\n    requestData['sensorProfileData']['checkpointCurrentTargetBuffer'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointCurrentTargetBuffer'] : \"\";\n    //add anchorProfile\n    requestData['anchorProfileData'] = {};\n    for (let key in selectedAnchorData){\n        requestData['anchorProfileData'][key] = selectedAnchorData[key];\n    }\n    //add calibrationData \n    requestData['calibrationData'] = {};\n    let calibrationRequestData = requestData['calibrationData'];\n    //add calibrationData phaseILookUpArray\n    calibrationRequestData['phaseILookUpArray'] = calibrationData['phaseILookupData'];\n    //add calibrationData phaseIICalibratedDataArray\n    calibrationRequestData['phaseIICalibratedDataArray'] = calibrationData['phaseIICalibrationDataValueData'];\n    //add calibrationData phaseIICalibratedCurrentArray\n    calibrationRequestData['phaseIICalibratedCurrentArray'] = calibrationData['phaseIICurrentData'];\n    //add calibrationData phaseIICalibratedSlopeArray\n    calibrationRequestData['phaseIICalibratedSlopeArray'] = calibrationData['phaseIISlopeData'];\n    //add calibrationData phaseIICalibratedOffsetArray\n    calibrationRequestData['phaseIICalibratedOffsetArray'] = calibrationData['phaseIIOffsetData'];\n    console.log(`requestData`);\n    console.log(requestData);\n    return requestData;\n}\n//For V2 ONLY\nexport function buildAndGetDataFormat2(context){\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedCalibrationProfile = context.get('userInputtedData.selectedCalibrationProfile');\n    const selectedSensorData = context.get(\"userInputtedData.selectedSensorData\");\n    const selectedAnchorData = context.get(\"userInputtedData.selectedAnchorData\")\n    //Build Data\n    let requestArr = [];               \n    const batchSensorData = context.get(\"userInputtedData.batchSensorData\");\n\n    for(let i = 1; i <= context.get(\"settingsConfig.BATCH_SENSORS_COUNT\"); i ++){\n        const sensorObj = batchSensorData[i];\n        if(sensorObj != null){\n            let requestData = {}; \n            const sensorData = sensorObj['sensorData'];\n            const sensorCalibrationData = sensorObj['calibrationData'];\n            //add rigProfile ID\n            requestData['selectedRigProfileID'] = Number.parseInt(selectedRigProfile['data']['rigID']);\n            //add calibProfile ID\n            requestData['selectedCalibrationProfileID'] = Number.parseInt(selectedCalibrationProfile['data']['id']);\n            //add sensorProfile \n            requestData['sensorProfileData'] = {};\n            requestData['sensorProfileData']['sensorID'] = sensorData['sensorID'] ? sensorData['sensorID'] : '';    \n            requestData['sensorProfileData']['sensorName'] = sensorData['sensorName'] ? sensorData['sensorName'] : \"\";\n            requestData['sensorProfileData']['calibrationDate'] = sensorData['calibrationDate'] ? sensorData['calibrationDate'] : \"\";\n            requestData['sensorProfileData']['sensorDescription'] = sensorData['sensorDescription'] ? sensorData['sensorDescription'] : \"\";\n            requestData['sensorProfileData']['validationID'] = sensorData[\"packObj\"] ? sensorData[\"packObj\"]['validationId'] : null;\n\n\n            requestData['sensorProfileData']['channels'] = selectedCalibrationProfile['data']['channels'] ? Number.parseInt(selectedCalibrationProfile['data']['channels']) : 0;\n            requestData['sensorProfileData']['rigID'] = selectedRigProfile['data']['rigID'] ? Number.parseInt(selectedRigProfile['data']['rigID']) : 0;\n            requestData['sensorProfileData']['rigIP'] = selectedRigProfile ? selectedRigProfile['data']['rigIP'] : \"\";\n            requestData['sensorProfileData']['rigName'] = selectedRigProfile ? selectedRigProfile['data']['rigName'] : \"\";\n            requestData['sensorProfileData']['unit'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['unit'] : \"\";\n            requestData['sensorProfileData']['typeID'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['typeID'] : \"\";\n            requestData['sensorProfileData']['jobID'] = selectedSensorData['jobID'] ? selectedSensorData['jobID'] : \"\";\n            requestData['sensorProfileData']['employee'] = userProfile ?  `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}` : \"\";\n            requestData['sensorProfileData']['memo'] = selectedSensorData['memo'] ? selectedSensorData['memo'] : \"\";\n            requestData['sensorProfileData']['checkpointPositions'] = selectedCalibrationProfile['data']['checkpointPositions'] ? selectedCalibrationProfile['data']['checkpointPositions'] : [];\n            requestData['sensorProfileData']['checkpointSpeed'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointSpeed'] : \"\";;\n            requestData['sensorProfileData']['checkpointDelay'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointDelay'] : \"\";;\n            requestData['sensorProfileData']['checkpointSampleSize'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointSampleSize'] : \"\";;\n            requestData['sensorProfileData']['checkpointCurrentTargetBuffer'] = selectedCalibrationProfile ? selectedCalibrationProfile['data']['checkpointCurrentTargetBuffer'] : \"\";\n            \n            //add anchorProfile\n            requestData['anchorProfileData'] = {};\n            for (let key in selectedAnchorData){\n                requestData['anchorProfileData'][key] = selectedAnchorData[key];\n            }\n            //add calibrationData \n            requestData['calibrationData'] = {};\n            let calibrationRequestData = requestData['calibrationData'];\n            //add calibrationData phaseILookUpArray\n            calibrationRequestData['phaseILookUpArray'] = sensorCalibrationData['lookupData'];\n            //add calibrationData phaseIICalibratedDataArray\n            calibrationRequestData['phaseIICalibratedDataArray'] = sensorCalibrationData['calibrationDataData'];\n            //add calibrationData phaseIICalibratedCurrentArray\n            calibrationRequestData['phaseIICalibratedCurrentArray'] = sensorCalibrationData['currentData'];\n            //add calibrationData phaseIICalibratedSlopeArray\n            calibrationRequestData['phaseIICalibratedSlopeArray'] = sensorCalibrationData['slopeData'];\n            //add calibrationData phaseIICalibratedOffsetArray\n            calibrationRequestData['phaseIICalibratedOffsetArray'] = sensorCalibrationData['offsetData'];\n            \n            requestArr.push(requestData)\n        }\n    }\n    console.log(`requestArr`);\n    console.log(requestArr);\n    return requestArr;\n}\nexport function hasPermission(context, permissionCodeArray){\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n        if(userProfile){\n            let failedPermissions = []\n            if(userProfile['profile']['is_superuser']){\n                return true;\n            }else{\n                permissionCodeArray.forEach((value, index)=>{\n                    if(userProfile['permissions'].includes(value)){\n                        //Do Nothing\n                    }else{\n                        failedPermissions.push(`What you are trying to do requires ${value} permission`);\n                    }\n                });\n                if(failedPermissions.length > 0){\n                    Ember.run.scheduleOnce('afterRender', context, () => {\n                        showPopup(failedPermissions, 'error', 1);\n                        console.log(failedPermissions.toString())\n                    });\n                    return false;\n                }else{\n                    return true;\n                }\n            }\n        }else{\n            return false;\n        }\n}","define(\"geotechnical-data-platform-new/helpers/cancel-all\", [\"exports\", \"ember-concurrency/helpers/cancel-all\"], function (_exports, _cancelAll) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _cancelAll.default;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport default Ember.Helper.helper(function([refAnchor, anchorNumber]) {\n  let result = refAnchor.toString() === anchorNumber.toString();\n  console.log(`**************refAnchor: ${refAnchor}, anchorNumber: ${anchorNumber}, result: ${result}`);\n  return result;\n});\n","import { helper } from '@ember/component/helper';\nimport moment from 'moment';\n\nexport default helper(function currentDate(params/*, hash*/) {\n    return moment().format(params[0]);\n});\n","define(\"geotechnical-data-platform-new/helpers/did-insert\", [\"exports\", \"ember-render-helpers/helpers/did-insert\"], function (_exports, _didInsert) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _didInsert.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/did-update\", [\"exports\", \"ember-render-helpers/helpers/did-update\"], function (_exports, _didUpdate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _didUpdate.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/div-icon\", [\"exports\", \"ember-leaflet/helpers/div-icon\"], function (_exports, _divIcon) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _divIcon.default;\n    }\n  });\n  Object.defineProperty(_exports, \"divIcon\", {\n    enumerable: true,\n    get: function () {\n      return _divIcon.divIcon;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/element\", [\"exports\", \"ember-element-helper/helpers/element\"], function (_exports, _element) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _element.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/ember-leaflet-assign-to\", [\"exports\", \"ember-leaflet/helpers/ember-leaflet-assign-to\"], function (_exports, _emberLeafletAssignTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletAssignTo.default;\n    }\n  });\n  Object.defineProperty(_exports, \"emberLeafletAssignTo\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletAssignTo.emberLeafletAssignTo;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/ember-leaflet-eq\", [\"exports\", \"ember-leaflet/helpers/ember-leaflet-eq\"], function (_exports, _emberLeafletEq) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletEq.default;\n    }\n  });\n  Object.defineProperty(_exports, \"emberLeafletEq\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletEq.emberLeafletEq;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/ember-leaflet-hash\", [\"exports\", \"ember-leaflet/helpers/ember-leaflet-hash\"], function (_exports, _emberLeafletHash) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletHash.default;\n    }\n  });\n  Object.defineProperty(_exports, \"emberLeafletHash\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletHash.emberLeafletHash;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/ember-leaflet-or\", [\"exports\", \"ember-leaflet/helpers/ember-leaflet-or\"], function (_exports, _emberLeafletOr) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletOr.default;\n    }\n  });\n  Object.defineProperty(_exports, \"emberLeafletOr\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeafletOr.emberLeafletOr;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/ensure-safe-component\", [\"exports\", \"@embroider/util\"], function (_exports, _util) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _util.EnsureSafeComponentHelper;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/eq\", [\"exports\", \"ember-truth-helpers/helpers/equal\"], function (_exports, _equal) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _equal.default;\n    }\n  });\n  Object.defineProperty(_exports, \"equal\", {\n    enumerable: true,\n    get: function () {\n      return _equal.equal;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport function formatNumber(params) {\n    return parseFloat(params[0]).toFixed(params[1]);\n}\n\nexport default Ember.Helper.helper(formatNumber);\n","\nexport function textLibrary(key) {\n    \n    switch(key){\n        //General\n        case \"-\":\n            return \"-\";\n        //Discretion Texts\n        case \"red_warning_clipping_discretion_1\":\n            return \"Clipping has been detected in RAW data, thus FFT computation is invalid!\"\n        case \"red_warning_clipping_discretion_2\":\n            return \"If you still wish to use data in Acceleration/Velocity/Displacement, proceed with caution!\"\n        \n            //Graph Titles\n        case \"raw_raw_xyz_axis_focus_null_title\":\n            return \"RAW XYZ Points\";\n        case \"raw_x_axis_focus_null_title\":\n            return \"RAW X Points\";\n        case \"raw_y_axis_focus_null_title\":\n            return \"RAW Y Points\";\n        case \"raw_z_axis_focus_null_title\":\n            return \"RAW Z Points\";\n\n        case \"acceleration_sub_acceleration_linear_regression_sub_sub_xyz_axis_focus_title\":\n            return \"Acceleration XYZ Points (Linear Regression)\";\n        case \"acceleration_sub_acceleration_linear_regression_sub_sub_x_axis_focus_title\":\n            return \"Acceleration X Points (Linear Regression)\";\n        case \"acceleration_sub_acceleration_linear_regression_sub_sub_y_axis_focus_title\":\n            return \"Acceleration Y Points (Linear Regression)\";\n        case \"acceleration_sub_acceleration_linear_regression_sub_sub_z_axis_focus_title\":\n            return \"Acceleration Z Points (Linear Regression)\";\n\n        case \"acceleration_sub_acceleration_fft_sub_sub_x_axis_focus_title\":\n            return \"Acceleration X Points (FFT)\";\n        case \"acceleration_sub_acceleration_fft_sub_sub_y_axis_focus_title\":\n            return \"Acceleration Y Points (FFT)\";\n        case \"acceleration_sub_acceleration_fft_sub_sub_z_axis_focus_title\":\n            return \"Acceleration Z Points (FFT)\";\n\n        case \"velocity_sub_velocity_linear_regression_sub_sub_xyz_axis_focus_title\":\n            return \"Velocity XYZ Points (Linear Regression)\";\n        case \"velocity_sub_velocity_linear_regression_sub_sub_x_axis_focus_title\":\n            return \"Velocity X Points (Linear Regression)\";\n        case \"velocity_sub_velocity_linear_regression_sub_sub_y_axis_focus_title\":\n            return \"Velocity Y Points (Linear Regression)\";\n        case \"velocity_sub_velocity_linear_regression_sub_sub_z_axis_focus_title\":\n            return \"Velocity Z Points (Linear Regression)\";\n\n        case \"velocity_sub_velocity_fft_sub_sub_x_axis_focus_title\":\n            return \"Velocity X Points (FFT)\";\n        case \"velocity_sub_velocity_fft_sub_sub_y_axis_focus_title\":\n            return \"Velocity Y Points (FFT)\";\n        case \"velocity_sub_velocity_fft_sub_sub_z_axis_focus_title\":\n            return \"Velocity Z Points (FFT)\";\n\n        case \"displacement_sub_displacement_linear_regression_sub_sub_xyz_axis_focus_title\":\n            return \"Displacement XYZ Points (Linear Regression)\";\n        case \"displacement_sub_displacement_linear_regression_sub_sub_x_axis_focus_title\":\n            return \"Displacement X Points (Linear Regression)\";\n        case \"displacement_sub_displacement_linear_regression_sub_sub_y_axis_focus_title\":\n            return \"Displacement Y Points (Linear Regression)\";\n        case \"displacement_sub_displacement_linear_regression_sub_sub_z_axis_focus_title\":\n            return \"Displacement Z Points (Linear Regression)\";\n\n        case \"displacement_sub_displacement_fft_sub_sub_x_axis_focus_title\":\n            return \"Displacement X Points (FFT)\";\n        case \"displacement_sub_displacement_fft_sub_sub_y_axis_focus_title\":\n            return \"Displacement Y Points (FFT)\";\n        case \"displacement_sub_displacement_fft_sub_sub_z_axis_focus_title\":\n            return \"Displacement Z Points (FFT)\";\n\n        //Graph Control Guides\n        case \"controls_guide_1\":\n            return \"Right-click and drag to rotate. Left-click and drag to pan. Scroll to zoom in/out.\";\n        case \"controls_guide_2\":\n            return \"Left-click and drag to rotate. Scroll to zoom in/out.\";\n                        \n    }\n}","import ENV from \"geotechnical-data-platform-new/config/environment\";\nimport * as echarts from 'echarts';\nimport 'echarts-gl';\nimport { textLibrary} from '../helpers/frequency-event-language-library';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\n//notification COmponent\nexport async function  buildRedWarningNotificationBoard(context, profile_obj){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n    const analytics = profile_obj['analytics']\n    Ember.run.scheduleOnce('afterRender', context, () => {\n        const masterPopupContent = document.getElementById('notificationPopupContentBody');\n        if(masterPopupContent){\n\n            masterPopupContent.innerHTML = '';\n\n            // Main Title\n            const mainTitle = document.createElement('div');\n            mainTitle.style.marginTop = '10px';\n            mainTitle.style.fontSize = 'larger';\n            mainTitle.style.color = 'red';\n            mainTitle.style.fontWeight = 'bold';\n            mainTitle.textContent = `Warning ${profile_obj['id']}`;\n            masterPopupContent.appendChild(mainTitle);\n            \n            const defaultTabIndex = 10;\n            if(analytics['clippingData'].length > 0){\n                //Clipping Data Title \n                const clippingDataSection = document.createElement('div');\n                clippingDataSection.style.marginLeft = `${defaultTabIndex}px`;\n                clippingDataSection.style.fontWeight = 'bold';\n                clippingDataSection.textContent = \"- Clipping Detected!\"\n                masterPopupContent.appendChild(clippingDataSection);\n\n                //Clipping Data Discretion 1\n                const clippingDiscretionSection1 = document.createElement('div');\n                clippingDiscretionSection1.style.marginLeft = `${2 * defaultTabIndex}px`;\n                clippingDiscretionSection1.textContent = `- ${textLibrary(\"red_warning_clipping_discretion_1\")}`\n                masterPopupContent.appendChild(clippingDiscretionSection1);\n\n                //Clipping Data Discretion 2\n                const clippingDiscretionSection2 = document.createElement('div');\n                clippingDiscretionSection2.style.marginLeft = `${2 * defaultTabIndex}px`;\n                clippingDiscretionSection2.textContent = `- ${textLibrary(\"red_warning_clipping_discretion_2\")}`\n                masterPopupContent.appendChild(clippingDiscretionSection2);\n\n                //Clipping Data Expand Breakdown button\n                const clippingBreakDownExandButton = document.createElement('div');\n                clippingBreakDownExandButton.style.alignSelf= 'center';\n                clippingBreakDownExandButton.style.textDecoration = `underline`;\n                clippingBreakDownExandButton.style.color = 'blue';\n                clippingBreakDownExandButton.style.cursor = `pointer`;\n                clippingBreakDownExandButton.textContent = `View Details`\n                masterPopupContent.appendChild(clippingBreakDownExandButton);\n\n                //Clipping Data Breakdown Section\n                const clippingBreakdownSection = document.createElement('div');\n                clippingBreakdownSection.style.display = 'none';\n                clippingBreakdownSection.style.marginLeft = `${4 * defaultTabIndex}px`;\n                masterPopupContent.appendChild(clippingBreakdownSection);\n\n                for(let i = 0; i < analytics['clippingData'].length - 1; i++ ){\n                    const clippingEvent = analytics['clippingData'][i];\n                    const clippingBreakdownRow2 = document.createElement('div');\n                    clippingBreakdownRow2.style.marginLeft = `${2 * defaultTabIndex}px`;\n                    clippingBreakdownRow2.textContent=`- Data: ${clippingEvent['category'].toUpperCase()} | Axis: ${clippingEvent['axis'].toUpperCase()} | Point: ${JSON.stringify(clippingEvent['value'], null, 2)}`\n                    clippingBreakdownSection.appendChild(clippingBreakdownRow2);\n\n                }\n\n                // Toggle Clipping Data Breakdown visibility\n                clippingBreakDownExandButton.addEventListener('click', () => {\n                    if (clippingBreakdownSection.style.display === 'none') {\n                        clippingBreakdownSection.style.display = 'block';\n                        clippingBreakDownExandButton.textContent = 'Hide Details';\n                    } else {\n                        clippingBreakdownSection.style.display = 'none';\n                        clippingBreakDownExandButton.textContent = 'View Details';\n                    }\n                });\n\n            }\n            \n            //Display and setup Ok Button notificationRefreshButton\n            const okButtonComponent = document.getElementById('notificationOkButton');\n            okButtonComponent.style.display = \"block\";\n            okButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n        }\n    });\n}\n\n//ECharts Component\nexport function applyGraphScaling(context) {\n    const zGraphScaling = document.getElementById(\"zGraphScaling\");\n    const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n    if (!chartDom) return;\n\n    const chartInstance = echarts.getInstanceByDom(chartDom);\n    if (!chartInstance) return;\n\n    const { x, y, z } = context.graphScaling;\n    // console.log(`x min:${x.min}, x max:${x.max}, y min:${y.min}, y max:${y.max}, z min:${z.min}, z max:${z.max},`)\n    if(zGraphScaling.style.display === \"none\"){//Only for 2D Graphs\n        chartInstance.setOption({\n            xAxis: { min: x.min, max: x.max },\n            yAxis: { min: y.min, max: y.max },\n        });\n    }else{//Only for 3D graphs\n        chartInstance.setOption({\n            xAxis3D: { min: x.min, max: x.max },\n            yAxis3D: { min: y.min, max: y.max },\n            zAxis3D: { min: z.min, max: z.max },\n        });\n    }\n    // context.rebuildEChartsComponent();\n}\nexport async function buildECharts3DBarForBluVibe(context, data, decorationParameters = {}) {\n    const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n\n\n    if (chartDom != null) {\n        Ember.run.scheduleOnce('afterRender', context, () => {\n\n            const chartInstance = echarts.init(chartDom);\n\n            const { x, y, z } = context.graphScaling;\n            // Transform data into 3D coordinates: [x, dummy, z] eg. [frequency, dummy, amplitude]\n            const seriesData = data.y.map((yValue, i) => [\n                data.x[i],    // X-axis: Frequency\n                data.y[i],   // Y-axis: Dummy filled value, preset to 0\n                data.z[i]    // Z-axis: Amplitude\n            ]);\n            //seriesData = [[x,0,z],[x,0,z],[x,0,z]....]\n            const option = {\n                tooltip: {\n                    backgroundColor: 'rgba(50,50,50,0.7)',\n                    textStyle: {\n                        color: '#fff',\n                        fontSize: 12\n                    },\n                    formatter: function (params) {\n                        const [x, y, z] = params.value;\n                        return `\n                        ${decorationParameters[\"xAxisLabel\"] || \"X\"}: <b>${x}</b><br>\n                        ${decorationParameters[\"zAxisLabel\"] || \"Z\"}: <b>${z}</b><br>\n                        `;\n                    }\n                },\n\n                grid3D: {\n                    boxWidth: 500,\n                    boxHeight: 200,\n                    boxDepth: 200,\n                    viewControl: {\n                        projection: 'perspective',         // or 'orthographic'\n                        autoRotate: false,\n                        panSensitivity: 1,\n                        rotateSensitivity: 1,\n                        zoomSensitivity: 1,\n\n                        // Enable free movement\n                        damping: 0.8,                      // Smoother motion\n                        alpha: 30,                         // Default vertical angle\n                        beta: 60,                          // Default horizontal angle\n                        minAlpha: -90,\n                        maxAlpha: 90,\n                        minBeta: -180,\n                        maxBeta: 180,\n\n                        center: [0, 0, 0],                 // Pivot point\n                        distance: 300,                     // Default camera distance\n                        minDistance: 40,\n                        maxDistance: 500,\n\n                        panMouseButton: 'left',           // Enable pan with left-click\n                        rotateMouseButton: 'right',       // Right-click to rotate\n                        zoomMouseButton: 'middle'         // Middle button or scroll to zoom\n                    }\n                },\n                xAxis3D: {\n                    type: 'value',\n                    name: decorationParameters.xAxisLabel || 'Frequency (Hz)',\n                    data: data.x,\n                    min: x.min,\n                    max: x.max,\n                },\n                yAxis3D: {\n                    type: 'category',\n                    data: [''],\n                    name: decorationParameters.yAxisLabel || 'Y',\n                    min: y.min,\n                    max: y.max,\n                },\n                zAxis3D: {\n                    type: 'value',\n                    name: decorationParameters.zAxisLabel || 'Amplitude',\n                    min: z.min,\n                    max: z.max,\n                },\n                visualMap: {\n                    max: Math.max(...data.y),\n                    inRange: {\n                        color: ['#87CEFA', '#4169E1', '#000080'] // Blue gradient\n                    }\n                },\n                dataZoom: [\n                    {\n                        type: 'inside',\n                        start: 0,\n                        end: 100\n                    },\n                    {\n                        type: 'slider',\n                        start: 0,\n                        end: 100\n                    }\n                ],\n                series: [\n                    {\n                        type: 'bar3D',\n                        data: seriesData,\n                        shading: 'lambert',\n                        barSize: 1\n                    }\n                ]\n            };\n\n            chartInstance.setOption(option);\n            window.addEventListener('resize', () => chartInstance.resize());\n        });\n    }\n}\nexport async function buildECharts2DBarForBluVibe(context, data, decorationParameters = {}) {\n    const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n\n    if (chartDom != null) {\n\n        Ember.run.scheduleOnce('afterRender', context, () => {\n\n            const chartInstance = echarts.init(chartDom);\n\n            const { x, y } = context.graphScaling;\n\n            const option = {\n                tooltip: {\n                    backgroundColor: 'rgba(50,50,50,0.7)',\n                    textStyle: {\n                        color: '#fff',\n                        fontSize: 12\n                    },\n                    formatter: function (params) {\n                        return `\n                        ${decorationParameters[\"xAxisLabel\"] || \"X\"}: <b>${params.name}</b><br>\n                        ${decorationParameters[\"yAxisLabel\"] || \"Y\"}: <b>${params.value}</b><br>\n                        `;\n                    }\n                },\n                grid: {\n                    containLabel: true\n                },\n                legend: {\n                    data: ['X', 'Y', 'Z']\n                },\n                xAxis: [\n                    {\n                        type: 'category',\n                        name: decorationParameters.xAxisLabel || 'X',\n                        data: data[\"x\"],\n                        axisTick: {\n                            alignWithLabel: true\n                        },\n                        min: x.min,\n                        max: x.max,\n                    }\n                ],\n                yAxis: [\n                    {\n                        type: 'value',\n                        name: decorationParameters.yAxisLabel || 'Y',\n                        min: y.min,\n                        max: y.max,\n                    }\n                ],\n\n                dataZoom: [\n                    {\n                        type: 'inside',\n                        start: 0,\n                        end: 100\n                    },\n                    {\n                        type: 'slider',\n                        start: 0,\n                        end: 100\n                    }\n                ],\n                series: [\n                    {\n                        name: decorationParameters.xDataLabel || 'Y',\n                        type: 'bar',\n                        barWidth: '25%',\n                        data: data[\"y\"]\n                    },\n                ]\n            };\n\n            chartInstance.setOption(option);\n\n            window.addEventListener('resize', () => {\n                chartInstance.resize();\n            });\n        });\n    }\n}\nexport async function buildEChartsXFocusYFocusZFocus2DLineForBluVibe(context, data, decorationParameters = {}) {\n    const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n    if (!chartDom) return;\n\n    const chartInstance = echarts.init(chartDom);\n    const { x, y } = context.graphScaling;\n\n    const lineData = data.map(d => [d.x, d.y]);\n\n    // Collect clipping points for markPoint\n    const clippingPoints = data\n        .filter(d =>\n            (d.hasOwnProperty('isXClipping') && d.isXClipping === true) ||\n            (d.hasOwnProperty('isYClipping') && d.isYClipping === true) ||\n            (d.hasOwnProperty('isZClipping') && d.isZClipping === true)\n        )\n        .map(d => ({\n            name: 'Clipping Event',\n            coord: [d.x, d.y],\n            symbol: 'circle',      // Could be 'pin', 'diamond', etc.\n            symbolSize: 8,\n            itemStyle: {\n                color: 'red'\n            }\n        }));\n\n\n    const option = {\n        tooltip: {\n            backgroundColor: 'rgba(50,50,50,0.7)',\n            textStyle: {\n                color: '#fff',\n                fontSize: 12\n            },\n            formatter: function (params) {\n                let xVal, yVal;\n                let label = '';\n\n                if (Array.isArray(params.value)) {\n                    // Regular data point\n                    [xVal, yVal] = params.value;\n                } else if (params.data && Array.isArray(params.data.coord)) {\n                    // markPoint\n                    [xVal, yVal] = params.data.coord;\n                    label = params.data.name ? `<b>${params.data.name}</b><br>` : '';\n                } else {\n                    return ''; // Fallback\n                }\n\n                return `\n                    ${label}\n                    ${decorationParameters[\"xAxisLabel\"] || \"X\"}: <b>${xVal}</b><br>\n                    ${decorationParameters[\"yAxisLabel\"] || \"Y\"}: <b>${yVal}</b><br>\n                `;\n            }\n        },\n        xAxis: {\n            type: 'value',\n            name: decorationParameters[\"xAxisLabel\"] || \"X\",\n            axisLabel: { fontSize: 12 },\n            min: x.min,\n            max: x.max,\n        },\n        yAxis: {\n            type: 'value',\n            name: decorationParameters[\"yAxisLabel\"] || \"Y\",\n            axisLabel: { fontSize: 12 },\n            min: y.min,\n            max: y.max,\n        },\n        dataZoom: [\n            { type: 'inside', start: 0, end: 100 },\n            { type: 'slider', start: 0, end: 100 }\n        ],\n        series: [{\n            type: 'line',\n            symbol: 'circle',\n            sampling: 'lttb',\n            symbolSize: 4,\n            data: lineData,\n            smooth: true,\n            lineStyle: { width: 2 },\n            itemStyle: { color: '#4A6A9C' },\n            markPoint: {\n                symbolKeepAspect: true,\n                data: clippingPoints\n            }\n        }]\n    };\n\n    chartInstance.setOption(option);\n    window.addEventListener('resize', () => chartInstance.resize());\n}\nexport async function buildEChartsXFocusYFocusZFocus3DLineForBluVibe(context, data, decorationParameters = {}) {\n    const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n\n    if (chartDom != null) {\n        const chartInstance = echarts.init(chartDom);\n\n        const { x, y, z } = context.graphScaling;\n\n        // Surface requires a 2D array of rows (y-direction), each row being [x, y, z]\n        // We'll make 2 \"ribbons\" with small Y-offset to simulate thickness\n        const surfaceData = [];\n        const thickness = 1; // how much to offset in Y-axis\n\n        for (let yOffset = 0; yOffset <= thickness; yOffset += 0.1) {\n            const row = data.map(d => [d.x, yOffset, d.z]);\n            surfaceData.push(row);\n        }\n        const flatData = surfaceData.flat();\n\n        // Extract all Z values\n        const zValues = flatData.map(point => point[2]);\n\n        // Calculate min and max\n        const zMin = Math.min(...zValues);\n        const zMax = Math.max(...zValues);\n\n        const option = {\n            tooltip: {\n                backgroundColor: 'rgba(50,50,50,0.7)',\n                textStyle: {\n                    color: '#fff',\n                    fontSize: 12\n                },\n                formatter: function (params) {\n                    const [x, y, z] = params.value;\n                    return `\n                    Time (s): <b>${x}</b><br>\n                    ${decorationParameters.zAxisLabel || 'Z'}: <b>${z}</b>\n                    `;\n                }\n            },\n            visualMap: {\n                show: false,\n                dimension: 2,\n                min: zMin,\n                max: zMax,\n                inRange: {\n                    color: ['#87CEFA', '#4169E1', '#000080'] // Blue gradient\n                }\n            },\n            xAxis3D: {\n                type: 'value',\n                name: decorationParameters.xAxisLabel || 'X',\n                min: x.min,\n                max: x.max,\n            },\n            yAxis3D: {\n                type: 'value',\n                name: decorationParameters.yAxisLabel || 'Y',\n                min: y.min,\n                max: y.max,\n            },\n            zAxis3D: {\n                type: 'value',\n                name: decorationParameters.zAxisLabel || 'Z',\n                min: z.min,\n                max: z.max,\n            },\n            grid3D: {\n                boxWidth: 200,\n                boxHeight: 200,\n                boxDepth: 200,\n                viewControl: {\n                    projection: 'orthographic',\n                    autoRotate: false\n                }\n            },\n            series: [{\n                type: 'surface',\n                name: decorationParameters.dataName || '',\n                wireframe: {\n                    show: true\n                },\n                shading: 'color',\n                data: surfaceData.flat()\n            }]\n        };\n\n        chartInstance.setOption(option);\n        window.addEventListener('resize', () => chartInstance.resize());\n    }\n}\nexport async function buildEChartsXYZFocus3DLineForBluVibe(context, dataObj, decorationParameters = {}) {\n    const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n\n    if (!chartDom) return;\n\n    Ember.run.scheduleOnce('afterRender', context, () => {\n        const chartInstance = echarts.init(chartDom);\n\n        const { x, y, z } = context.graphScaling;\n        const { xData, yData, zData } = dataObj;\n\n        const xSeriesData = xData.map(p => [p.x, p.y, p.z]);\n        const ySeriesData = yData.map(p => [p.x, p.y, p.z]);\n        const zSeriesData = zData.map(p => [p.x, p.y, p.z]);\n\n        const getClippingPoints = (dataArr) =>\n            dataArr\n                .filter(d => d.isXClipping || d.isYClipping || d.isZClipping)\n                .map(d => [d.x, d.y, d.z]);\n\n        const xClippingPoints = getClippingPoints(xData);\n        const yClippingPoints = getClippingPoints(yData);\n        const zClippingPoints = getClippingPoints(zData);\n\n        const option = {\n            legend: {\n                orient: 'vertical',\n                left: 10,\n                top: 'middle',\n                textStyle: { color: '#000', fontSize: 12 },\n                data: [\n                    decorationParameters.xDataLabel || 'X',\n                    decorationParameters.yDataLabel || 'Y',\n                    decorationParameters.zDataLabel || 'Z',\n                    'X Clipping', 'Y Clipping', 'Z Clipping'\n                ]\n            },\n            tooltip: {\n                backgroundColor: 'rgba(50,50,50,0.7)',\n                textStyle: { color: '#fff', fontSize: 12 },\n                formatter: function (params) {\n                    const [time, axisIdx, accel] = params.value || [];\n                    return `\n                        <b>${params.seriesName}</b><br>\n                        Time (s): <b>${time}</b><br>\n                        Axis Index: <b>${axisIdx}</b><br>\n                        Value: <b>${accel}</b>\n                    `;\n                }\n            },\n            xAxis3D: { type: 'value', name: decorationParameters.xAxisLabel || 'Time (s)', min: x.min, max: x.max },\n            yAxis3D: { type: 'value', name: decorationParameters.yAxisLabel || 'Axis Index', min: y.min, max: y.max },\n            zAxis3D: { type: 'value', name: decorationParameters.zAxisLabel || 'Acceleration', min: z.min, max: z.max },\n            grid3D: {\n                boxWidth: 200,\n                boxHeight: 200,\n                boxDepth: 200,\n                viewControl: { projection: 'perspective', autoRotate: false }\n            },\n            series: [\n                { name: decorationParameters.xDataLabel || 'X', type: 'line3D', data: xSeriesData, itemStyle: { color: 'red' } },\n                { name: decorationParameters.yDataLabel || 'Y', type: 'line3D', data: ySeriesData, itemStyle: { color: 'green' } },\n                { name: decorationParameters.zDataLabel || 'Z', type: 'line3D', data: zSeriesData, itemStyle: { color: 'blue' } },\n\n                { name: `${decorationParameters.xDataLabel || 'X'} Clipping Event`, type: 'scatter3D', symbol: 'circle', symbolSize: 5, itemStyle: { color: 'red' }, data: xClippingPoints },\n                { name: `${decorationParameters.yDataLabel || 'Y'} Clipping Event`, type: 'scatter3D', symbol: 'circle', symbolSize: 5, itemStyle: { color: 'red' }, data: yClippingPoints },\n                { name: `${decorationParameters.zDataLabel || 'Z'} Clipping Event`, type: 'scatter3D', symbol: 'circle', symbolSize: 5, itemStyle: { color: 'red' }, data: zClippingPoints }\n            ]\n        };\n\n        chartInstance.setOption(option);\n        window.addEventListener('resize', () => chartInstance.resize());\n    });\n}\n// export async function buildEChartsBluVibeSimulation(context, data, decorationParameters = {}) {\n//     const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n//     if (!chartDom || !data || data.length === 0) return;\n//     console.log(data)\n//     const chartInstance = echarts.init(chartDom);\n\n//     const pathData = data.map(d => [d.x, d.y, d.z]);\n//     const xVals = pathData.map(p => p[0]);\n//     const yVals = pathData.map(p => p[1]);\n//     const zVals = pathData.map(p => p[2]);\n\n//     const xMin = Math.min(...xVals);\n//     const xMax = Math.max(...xVals);\n//     const yMin = Math.min(...yVals);\n//     const yMax = Math.max(...yVals);\n//     const zMin = Math.min(...zVals);\n//     const zMax = Math.max(...zVals);\n//     const xRange = xMax - xMin || 1;\n//     const yRange = yMax - yMin || 1;\n//     const zRange = zMax - zMin || 1;\n\n//     const xArrowLength = xRange * 0.15;\n//     const yArrowLength = yRange * 0.15;\n//     const zArrowLength = zRange * 0.15;\n\n//     let index = 0;\n\n//     function getOrientationArrows(point, pitchDeg, rollDeg, yawDeg, lengths) {\n//         const { lx, ly, lz } = lengths;\n//         const pitch = pitchDeg * Math.PI / 180;\n//         const roll  = rollDeg  * Math.PI / 180;\n//         const yaw   = yawDeg   * Math.PI / 180;\n\n//         let xVec = [lx, 0, 0];\n//         let yVec = [0, ly, 0];\n//         let zVec = [0, 0, lz];\n\n//         function rotate(vec, axis, angle) {\n//             const [x, y, z] = vec;\n//             if (axis === 'x') {\n//                 return [x, y * Math.cos(angle) - z * Math.sin(angle), y * Math.sin(angle) + z * Math.cos(angle)];\n//             } else if (axis === 'y') {\n//                 return [x * Math.cos(angle) + z * Math.sin(angle), y, -x * Math.sin(angle) + z * Math.cos(angle)];\n//             } else if (axis === 'z') {\n//                 return [x * Math.cos(angle) - y * Math.sin(angle), x * Math.sin(angle) + y * Math.cos(angle), z];\n//             }\n//             return vec;\n//         }\n\n//         // Apply yaw → pitch → roll\n//         xVec = rotate(rotate(rotate(xVec, 'z', yaw), 'y', pitch), 'x', roll);\n//         yVec = rotate(rotate(rotate(yVec, 'z', yaw), 'y', pitch), 'x', roll);\n//         zVec = rotate(rotate(rotate(zVec, 'z', yaw), 'y', pitch), 'x', roll);\n\n//         return [\n//             [point, [point[0] + xVec[0], point[1] + xVec[1], point[2] + xVec[2]]],\n//             [point, [point[0] + yVec[0], point[1] + yVec[1], point[2] + yVec[2]]],\n//             [point, [point[0] + zVec[0], point[1] + zVec[1], point[2] + zVec[2]]]\n//         ];\n//     }\n\n//     function getOrientationPanel(point, pitchDeg, rollDeg, yawDeg, lengths) {\n//         const { lx, ly } = lengths;\n//         const sizeX = lx * 0.7;\n//         const sizeY = ly * 0.7;\n\n//         const pitch = pitchDeg * Math.PI / 180;\n//         const roll  = rollDeg  * Math.PI / 180;\n//         const yaw   = yawDeg   * Math.PI / 180;\n\n//         let corners = [\n//             [-sizeX/2, -sizeY/2, 0],\n//             [ sizeX/2, -sizeY/2, 0],\n//             [ sizeX/2,  sizeY/2, 0],\n//             [-sizeX/2,  sizeY/2, 0],\n//             [-sizeX/2, -sizeY/2, 0]\n//         ];\n\n//         function rotate(vec, axis, angle) {\n//             const [x, y, z] = vec;\n//             if (axis === 'x') {\n//                 return [x, y * Math.cos(angle) - z * Math.sin(angle), y * Math.sin(angle) + z * Math.cos(angle)];\n//             } else if (axis === 'y') {\n//                 return [x * Math.cos(angle) + z * Math.sin(angle), y, -x * Math.sin(angle) + z * Math.cos(angle)];\n//             } else if (axis === 'z') {\n//                 return [x * Math.cos(angle) - y * Math.sin(angle), x * Math.sin(angle) + y * Math.cos(angle), z];\n//             }\n//             return vec;\n//         }\n\n//         let rotatedCorners = corners.map(v =>\n//             rotate(rotate(rotate(v, 'z', yaw), 'y', pitch), 'x', roll)\n//         );\n\n//         return rotatedCorners.map(([dx, dy, dz]) => [\n//             point[0] + dx,\n//             point[1] + dy,\n//             point[2] + dz\n//         ]);\n//     }\n\n//     function normalizeAngle(angle) {\n//         return ((angle + 180) % 360 + 360) % 360 - 180;\n//     }\n\n//     const initialPitch = data[0].pitch || 0;\n//     const initialRoll  = data[0].roll  || 0;\n//     const initialYaw   = data[0].yaw   || 0;\n\n//     function updatePosition(i) {\n//         const point = pathData[i];\n//         const pitch = normalizeAngle((data[i].pitch || 0) - initialPitch);\n//         const roll  = normalizeAngle((data[i].roll  || 0) - initialRoll);\n//         const yaw   = normalizeAngle((data[i].yaw   || 0) - initialYaw);\n\n//         const lengths = { lx: xArrowLength, ly: yArrowLength, lz: zArrowLength };\n\n//         const [xArrow, yArrow, zArrow] = getOrientationArrows(point, pitch, roll, yaw, lengths);\n//         const panel = getOrientationPanel(point, pitch, roll, yaw, lengths);\n\n//         chartInstance.setOption({\n//             series: [\n//                 { id: 'main-point', data: [point] },\n//                 { id: 'x-arrow', data: xArrow },\n//                 { id: 'y-arrow', data: yArrow },\n//                 { id: 'z-arrow', data: zArrow },\n//                 { id: 'orientation-panel', data: panel }\n//             ]\n//         });\n//     }\n\n//     const option = {\n//         tooltip: {\n//             formatter: (params) => {\n//                 const [x, y, z] = params.value;\n//                 return `X: <b>${Number(x).toPrecision(5)}</b><br>Y: <b>${Number(y).toPrecision(5)}</b><br>Z: <b>${Number(z).toPrecision(5)}</b><br>`;\n//             }\n//         },\n//         grid3D: {\n//             boxWidth: 200,\n//             boxHeight: 200,\n//             boxDepth: 200,\n//             viewControl: {\n//                 projection: 'perspective',\n//                 autoRotate: false,\n//                 damping: 0.8,\n//                 alpha: 30,\n//                 beta: 60,\n//                 center: [0, 0, 0],\n//                 distance: 400,\n//                 zoomSensitivity: 5\n//             }\n//         },\n//         xAxis3D: { type: 'value', name: decorationParameters.xAxisLabel, min: xMin, max: xMax },\n//         yAxis3D: { type: 'value', name: decorationParameters.yAxisLabel, min: yMin, max: yMax },\n//         zAxis3D: { type: 'value', name: decorationParameters.zAxisLabel, min: zMin, max: zMax },\n//         series: [\n//             { type: 'line3D', data: pathData, lineStyle: { width: 2, color: '#6c757d' } },\n//             { id: 'main-point', type: 'scatter3D', data: [pathData[0]], symbolSize: 12, itemStyle: { color: '#0056b3' } },\n//             { id: 'x-arrow', type: 'line3D', data: [], lineStyle: { width: 2, color: '#dc3545' } },\n//             { id: 'y-arrow', type: 'line3D', data: [], lineStyle: { width: 2, color: '#6610f2' } },\n//             { id: 'z-arrow', type: 'line3D', data: [], lineStyle: { width: 2, color: '#343a40' } },\n//             { id: 'orientation-panel', type: 'line3D', data: [], lineStyle: { width: 2, color: '#0056b3' } }\n//         ]\n//     };\n\n//     chartInstance.setOption(option);\n\n//     const scrubber = document.getElementById('playBackGraphSettings');\n//     if (!scrubber) return;\n\n//     scrubber.min = 0;\n//     scrubber.max = pathData.length - 1;\n//     scrubber.value = 0;\n\n//     let playing = false;\n//     let animationFrame;\n\n//     scrubber.addEventListener('input', (e) => {\n//         index = parseInt(e.target.value);\n//         updatePosition(index);\n//     });\n\n//     function animate(startTime) {\n//         if (!playing) return;\n//         const speed = context.get(\"playbackOptions.playbackSpeed\") || 1;\n//         const loop = context.get(\"playbackOptions.isPlayLoop\");\n//         const currentTime = performance.now();\n//         if (!startTime) startTime = currentTime;\n\n//         const elapsed = ((currentTime - startTime) / 1000) * speed;\n//         const frameTime = (data[1]?.time || 1) - (data[0]?.time || 0);\n//         index = Math.floor(elapsed / frameTime);\n\n//         if (index >= data.length) {\n//             if (loop) {\n//                 index = 0;\n//                 startTime = currentTime;\n//             } else {\n//                 playing = false;\n//                 return;\n//             }\n//         }\n//         scrubber.value = index;\n//         updatePosition(index);\n//         animationFrame = requestAnimationFrame(() => animate(startTime));\n//     }\n\n//     document.getElementById('playPauseSettings').onclick = () => {\n//         playing = !playing;\n//         if (playing) animate();\n//         else cancelAnimationFrame(animationFrame);\n//     };\n\n//     updatePosition(0);\n//     window.addEventListener('resize', () => chartInstance.resize());\n// }\nexport async function buildEChartsBluVibeSimulation(context, data, decorationParameters = {}) {\n    const chartDom = document.getElementById('bluvibe_frequency_event_echarts');\n    if (!chartDom) return;\n    const chartInstance = echarts.init(chartDom);\n\n    // Transform data into ECharts 3D format\n    const pathData = data.map(d => [d.x, d.y, d.z]);\n\n    const option = {\n        tooltip: {\n            backgroundColor: 'rgba(50,50,50,0.7)',\n            textStyle: {\n                color: '#fff',\n                fontSize: 12\n            },\n            formatter: function (params) {\n                const [x, y, z] = params.value;\n                return `\n                X: <b>${x}</b><br>\n                Y: <b>${y}</b><br>\n                Z: <b>${z}</b><br>\n                `;\n            }\n        },\n        grid3D: {\n            boxWidth: 200,\n            boxHeight: 200,\n            boxDepth: 200,\n            viewControl: {\n                projection: 'perspective',         // or 'orthographic'\n                autoRotate: false,\n                panSensitivity: 1,\n                rotateSensitivity: 1,\n                zoomSensitivity: 1,\n\n                // Enable free movement\n                damping: 0.8,                      // Smoother motion\n                alpha: 30,                         // Default vertical angle\n                beta: 60,                          // Default horizontal angle\n                minAlpha: -90,\n                maxAlpha: 90,\n                minBeta: -180,\n                maxBeta: 180,\n\n                center: [0, 0, 0],                 // Pivot point\n                distance: 400,                     // Default camera distance\n                minDistance: 40,\n                maxDistance: 500,\n\n                panMouseButton: 'left',           // Enable pan with left-click\n                rotateMouseButton: 'right',       // Right-click to rotate\n                zoomMouseButton: 'middle'         // Middle button or scroll to zoom\n            }\n        },\n        xAxis3D: { type: 'value', name: decorationParameters.xAxisLabel, },\n        yAxis3D: { type: 'value', name: decorationParameters.yAxisLabel, },\n        zAxis3D: { type: 'value', name: decorationParameters.zAxisLabel, },\n        series: [\n            {\n                type: 'line3D',\n                data: pathData,\n                lineStyle: {\n                    width: 2,\n                    color: '#007bff'\n                }\n            },\n            {\n                type: 'scatter3D',\n                data: [pathData[0]],\n                symbolSize: 12,\n                itemStyle: { color: '#ff0000' }\n            }\n        ]\n    };\n\n    chartInstance.setOption(option);\n\n    const scrubber = document.getElementById('playBackGraphSettings');\n    if (!scrubber) {\n        console.warn(\"Scrubber element not found!\");\n        return;\n    }\n\n    scrubber.min = 0;\n    scrubber.max = pathData.length - 1;\n    scrubber.value = 0;\n\n    let index = 0;\n    let playing = false;\n    let animationFrame;\n\n    // Update scatter position based on slider\n    function updatePosition(frameIndex) {\n        option.series[1].data = [pathData[frameIndex]];\n        chartInstance.setOption(option);\n    }\n\n    // Scrubber event listener\n    scrubber.addEventListener('input', (e) => {\n        index = parseInt(e.target.value);\n        updatePosition(index);\n    });\n\n    // Play animation function\n    function animate(startTime) {\n        if (!playing) return;\n\n        const playbackSpeed = context.get(\"playbackOptions.playbackSpeed\"); // 1, 0.75, 0.5, 0.25\n        const isInfPlayback = context.get(\"playbackOptions.isPlayLoop\");\n\n        const currentTime = performance.now();\n        if (!startTime) startTime = currentTime;\n\n        const elapsedSeconds = ((currentTime - startTime) / 1000) * playbackSpeed;\n\n        // Calculate index based on elapsed time and frame time step\n        const frameTime = data[1].time - data[0].time; // e.g. 0.002s\n        index = Math.floor(elapsedSeconds / frameTime);\n\n        if (index >= data.length) {\n            if (isInfPlayback) {\n                index = 0;\n                startTime = currentTime;\n            } else {\n                playing = false;\n                return;\n            }\n        }\n\n        scrubber.value = index;\n        updatePosition(index);\n\n        animationFrame = requestAnimationFrame(() => animate(startTime));\n    }\n\n    // Play/pause button\n    const playButton = document.getElementById('playPauseSettings');\n    playButton.onclick = () => {\n        playing = !playing;\n        if (playing) animate();\n        else cancelAnimationFrame(animationFrame);\n    };\n\n\n    window.addEventListener('resize', () => chartInstance.resize());\n}\n//Make POST & PATCH requests \nexport function sendGETRequest(endpoint, queryParams = {}) {\n    return new Promise(async (resolve, reject) => {\n        try {\n            let url = `${getApiBaseUrl()}/${endpoint}`;\n            const queryString = new URLSearchParams(queryParams).toString();\n            if (queryString) {\n                url += `?${queryString}`;\n            }\n\n            const response = await fetch(url, {\n                method: 'GET',\n                headers: {\n                    'Content-Type': 'application/json',\n                    Authorization: 'Bearer ' + localStorage.token\n                }\n            });\n\n            if (response.status === 401 || response.status === 403) {\n                showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n                return reject(new Error(`${response.status}: ${response.statusText}`));\n            }\n\n            if (response.ok) { // covers 200–299\n                const responseData = await response.json();\n                const newData = convertKeysToCamelCase(responseData);\n                return resolve(newData);\n            } else {\n                return reject(new Error(`${response.status}: ${response.statusText}`));\n            }\n        } catch (error) {\n            console.error('Error submitting data:', error);\n            reject(error);\n        }\n    });\n}\nfunction convertKeysToCamelCase(obj) {\n    /**\n        context helper function is a generic helper function used to convert kebab-case to camelCase, so that I can take the obj and see it as normal JSON object \n        const inputFrom = {\n            'sensor-name': 'Temperature Sensor',\n            'sensor-id': 12345,\n            'nested-data': {\n            'calibration-date': '2024-12-15',\n            'sensor-details': [\n                { 'sensor-value': 100, 'sensor-unit': 'C' },\n                { 'sensor-value': 200, 'sensor-unit': 'F' }\n            ]\n            }\n        };\n        const inputTo =  {\n            sensorName: 'Temperature Sensor',\n            sensorId: 12345,\n            nestedData: {\n            calibrationDate: '2024-12-15',\n            sensorDetails: [\n                { sensorValue: 100, sensorUnit: 'C' },\n                { sensorValue: 200, sensorUnit: 'F' }\n            ]\n            }\n        }\n    */\n\n    if (Array.isArray(obj)) {\n      return obj.map(v => convertKeysToCamelCase(v));\n    } else if (obj !== null && typeof obj === 'object') {\n      return Object.fromEntries(\n        Object.entries(obj).map(([key, value]) => [\n          key.replace(/-([a-z])/g, (_, char) => char.toUpperCase()), // Convert kebab-case to camelCase\n          convertKeysToCamelCase(value)\n        ])\n      );\n    }\n    return obj;\n}\nexport async function sendPOSTRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendPOSTRequest2(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return responseData; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return null;\n}\nexport async function sendPATCHRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'PATCH',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendDELETERequest(endpoint){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'DELETE',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n  \n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\n\n//General Utilities\nexport function get3DAnimationData(context, data, pitchRollYawData){\n    try {\n        let newData = []\n        console.log(pitchRollYawData)\n        data.forEach((dataObj, index)=>{\n            dataObj = dataObj[\"attributes\"];\n            let pitchRollYawDataObj = pitchRollYawData[index][\"attributes\"];\n            // console.log(dataObj);\n            newData.push({\n                time: dataObj['x']['time'],\n                x: dataObj['x']['displacement'],\n                y: dataObj['y']['displacement'],\n                z: dataObj['z']['displacement'],\n                pitch: pitchRollYawDataObj['x']['pitch'], //Data is hardcode secretly put in x:{} of the pitchRollYawDataObj\n                roll:  pitchRollYawDataObj['x']['roll'], //Data is hardcode secretly put in x:{} of the pitchRollYawDataObj\n                yaw:   pitchRollYawDataObj['x']['yaw'], //Data is hardcode secretly put in x:{} of the pitchRollYawDataObj\n\n            })\n        });\n        return newData;\n    } catch (error) {\n        console.error('Error in get3DAnimationData:', error.message);\n        console.error(error.stack);\n    }\n}\nexport function parseDataForEChartsXYZFocus3DLine(context, data,xAxisDataKey, yAxisDataKey){\n    /**\n     * Return data:\n     * xData:[\n     *  {\n     *      x: timeValue,\n     *      y: 0,\n     *      z: xValue,\n     *      isXClipping:     \n     *      isYClipping: \n     *      isZClipping: \n     *  },...\n     * ],\n     * yData:[\n     *  {\n     *      x: timeValue,\n     *      y: 1,\n     *      z: yValue,\n     *      isXClipping:     \n     *      isYClipping: \n     *      isZClipping: \n     *  },...\n     * ],\n     * zData:[\n     *  {\n     *      x: timeValue,\n     *      y: 2,\n     *      z: zValue,\n     *      isXClipping:     \n     *      isYClipping: \n     *      isZClipping: \n     *  },...\n     * ]\n     */\n    let dataCollection = {xData:[], yData:[],zData:[]};\n    data.forEach((dataObj, index)=>{\n        dataObj = dataObj[\"attributes\"];\n        // console.log(dataObj)\n        //BUILD DATA FOR GRAPH\n        //Handle x hard code y=0\n        dataCollection.xData.push({\n            x:dataObj[\"x\"][xAxisDataKey],\n            y:0,\n            z:dataObj[\"x\"][yAxisDataKey],\n            isXClipping:(dataObj[\"data\"].hasOwnProperty(`isXClipping`)) && (dataObj[\"data\"][\"isXClipping\"] == true) ? true : false,\n        })\n        //Handle y hard code y=1\n        dataCollection.yData.push({\n            x:dataObj[\"y\"][xAxisDataKey],\n            y:0.5,\n            z:dataObj[\"y\"][yAxisDataKey],\n            isYClipping:(dataObj[\"data\"].hasOwnProperty(`isYClipping`)) && (dataObj[\"data\"][\"isYClipping\"] == true) ? true : false,\n        })\n\n        //Handle z hard code y=2\n        dataCollection.zData.push({\n            x:dataObj[\"z\"][xAxisDataKey],\n            y:1,\n            z:dataObj[\"z\"][yAxisDataKey],\n            isZClipping:(dataObj[\"data\"].hasOwnProperty(`isZClipping`)) && (dataObj[\"data\"][\"isZClipping\"] == true) ? true : false,\n        })\n    });\n    return dataCollection;\n}\nexport function parseDataForEChartsXFocusYFocusZFocus2DLine(context, data, axisFocus, yAxisDataKey){\n    /**\n     * [\n     *  {\n     *  x: timeValue,\n     *  y: xValue,\n     *  isXClipping\n     *  },...\n     * or\n     *  {\n     *  x: timeValue,\n     *  y: yValue,\n     *  isYClipping\n     *  },...\n     * or\n     *  {\n     *  x: timeValue,\n     *  y: zValue,\n     *  isZClipping\n     *  },...\n     * ]\n     * axisFocus is either: x/y/z,\n     * yAxisDataKey: value/acceleration/velocty/displacement\n     */\n    let result = [];\n    data.forEach((dataObj, index)=>{\n        dataObj=dataObj[\"attributes\"];\n        let obj = {};\n        obj[\"x\"] = dataObj[axisFocus][\"time\"];\n        obj[\"y\"] = dataObj[axisFocus][yAxisDataKey];\n        if((dataObj[\"data\"].hasOwnProperty(`is${axisFocus.toUpperCase()}Clipping`)) && (dataObj[\"data\"][`is${axisFocus.toUpperCase()}Clipping`] == true)){\n            // console.log(`found one! is${axisFocus.toUpperCase()}Clipping: ${dataObj[\"data\"][`is${axisFocus.toUpperCase()}Clipping`]}`)\n            obj[`is${axisFocus.toUpperCase()}Clipping`] = dataObj[\"data\"][`is${axisFocus.toUpperCase()}Clipping`];\n        }\n        result.push(obj);\n    });\n    return result;\n}\nexport function parseDataForEChartsXFocusYFocusZFocus3DLine(context, data, axisFocus, yAxisDataKey){\n    /**\n     * axisFocus is either: x/y/z,\n     * yAxisDataKey: value/acceleration/velocty/displacement\n     */\n    let result = [];\n    data.forEach((dataObj, index)=>{\n        dataObj=dataObj[\"attributes\"];\n        let obj = {};\n        obj[\"x\"] = dataObj[axisFocus][\"time\"];\n        obj[\"y\"] = 0;\n        obj[\"z\"] = dataObj[axisFocus][yAxisDataKey];\n        result.push(obj);\n\n    });\n    return result;\n}\nexport function parseDataForEChartsXFocusYFocusZFocus2DBar(context, data, axisFocus, xAxisDataKey, yAxisDataKey){\n    let result = {x:[], y:[]};\n\n    data.forEach((dataObj, index)=>{\n        dataObj=dataObj[\"attributes\"];\n        result['x'].push(dataObj[axisFocus][xAxisDataKey]);\n        result['y'].push(dataObj[axisFocus][yAxisDataKey]);\n\n    });\n    return result;\n}\nexport function parseDataForEChartsXFocusYFocusZFocus3DBar(context, data, axisFocus, xAxisDataKey, yAxisDataKey){\n    /**\n     * [\n     *  {\n     *      x:xAxisDataKey,\n     *      y:0,\n     *      z: yAxisDataKey\n     *  },..\n     * ]\n     */\n    let result = {x:[], y:[],z:[]};\n    data.forEach((dataObj, index)=>{\n        dataObj=dataObj[\"attributes\"];\n        result[\"x\"].push(dataObj[axisFocus][xAxisDataKey]);\n        result[\"y\"].push(0);\n        result[\"z\"].push(dataObj[axisFocus][yAxisDataKey]);\n\n    });\n    return result;\n}\nexport function getGraphUnit(category){\n    switch(category){\n        case \"acceleration\":\n            return \"mm/s\\u00B2\";\n        case \"velocity\":\n            return \"mm/s\";\n        case \"time\":\n            return \"s\";\n        case \"distance\":\n            return \"mm\";\n        case \"displacement\":\n            return \"mm\";\n        case \"frequency\":\n            return \"Hz\";\n        default:\n            return \"Value\";\n    }\n}","import ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { textLibrary} from '../helpers/frequency-event-language-library';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\n\n//Popup & Notification Section\nexport async function  buildFrequencyEventsOverviewBoard(context, profile_obj){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n\n    let responseData = await sendGETRequest(`bluvibev2/`,{profileID:profile_obj.id});\n    const responseObj = responseData['data'][0];\n    const analytics = responseObj['analytics']\n    Ember.run.scheduleOnce('afterRender', context, () => {\n        const masterPopupContent = document.getElementById('notificationPopupContentBody');\n        if(masterPopupContent){\n\n            masterPopupContent.innerHTML = '';\n\n            // Main Title\n            const mainTitle = document.createElement('div');\n            mainTitle.style.marginTop = '10px';\n            mainTitle.style.fontSize = 'large';\n            mainTitle.style.textDecoration = 'underline';\n            mainTitle.style.fontWeight = 'bold';\n            mainTitle.textContent = `Event ${responseObj['id']}`;\n            masterPopupContent.appendChild(mainTitle);\n\n            //Row: Overview\n            const row1 = document.createElement('div');\n            row1.style.marginTop = '10px';\n            row1.style.marginLeft = '10px';\n            row1.style.fontWeight = 'bold';\n            row1.textContent = `Overview`;\n            masterPopupContent.appendChild(row1);\n\n            //Row: Timestamp, Sensor ID\n            const row2 = document.createElement('div');\n            row2.style.marginTop = '10px';\n            row2.style.marginLeft = '10px';\n            row2.style.fontSize = 'medium';\n            row2.style.fontWeight = 'bold';\n            row2.style.display = 'flex';\n            row2.style.flexDirection = 'row';\n            row2.style.justifyContent = 'space-evenly';\n            masterPopupContent.appendChild(row2);\n            //SensorID Section\n            const sensorIDSection = document.createElement('div');\n            sensorIDSection.style.fontWeight = 'normal';\n            sensorIDSection.style.fontSize= `small`;\n            sensorIDSection.textContent = `Sensor ID: ${responseObj['parent']['id']}`;\n            row2.appendChild(sensorIDSection);\n            //Timestamp Section\n            const timestampSection = document.createElement('div');\n            timestampSection.style.fontWeight = 'normal';\n            timestampSection.style.fontSize= `small`;\n            timestampSection.textContent = `Timestamp: ${responseObj['timestamp']}`;\n            row2.appendChild(timestampSection);\n\n\n            //Row: Technical Overview\n            const row3 = document.createElement('div');\n            row3.style.marginTop = '10px';\n            row3.style.marginLeft = '10px';\n            row3.style.fontWeight = 'bold';\n            row3.textContent = `Technical Overview`;\n            masterPopupContent.appendChild(row3);\n            //Row: Range, Sample, Trigger\n            const row4 = document.createElement('div');\n            row4.style.marginTop = '10px';\n            row4.style.marginLeft = '10px';\n            row4.style.fontSize = 'medium';\n            row4.style.fontWeight = 'bold';\n            row4.style.display = 'flex';\n            row4.style.flexDirection = 'row';\n            row4.style.justifyContent = 'space-evenly';\n            masterPopupContent.appendChild(row4);\n            //Range Section\n            const rangeSection = document.createElement('div');\n            rangeSection.style.fontWeight = 'normal';\n            rangeSection.style.fontSize= `small`;\n            rangeSection.textContent = `Range: ${responseObj['range']}`;\n            row4.appendChild(rangeSection);\n            //Duration Section\n            const durationSection = document.createElement('div');\n            durationSection.style.fontWeight = 'normal';\n            durationSection.style.fontSize= `small`;\n            durationSection.textContent = `Duration: ${responseObj['duration']}`;\n            row4.appendChild(durationSection);\n            //Sample Section\n            const sampleSection = document.createElement('div');\n            sampleSection.style.fontWeight = 'normal';\n            sampleSection.style.fontSize= `small`;\n            sampleSection.textContent = `Sample: ${responseObj['sample']}`;\n            row4.appendChild(sampleSection);\n            //Trigger Section\n            const triggerSection = document.createElement('div');\n            triggerSection.style.fontWeight = 'normal';\n            triggerSection.style.fontSize= `small`;\n            triggerSection.textContent = `Trigger: ${responseObj['trigger']}`;\n            row4.appendChild(triggerSection);\n\n            // XYZ & Freq/Amp/PPV/PPA Table\n            const table = document.createElement('table');\n            table.style.marginTop=\"10px\"\n            table.style.marginLeft = '20px';\n            \n            //Columns\n            const thead = document.createElement('thead');\n            thead.style.borderBottom= ``;\n            const trColumns = document.createElement('tr');\n\n            const  row1HeaderObject = [\n                {key:\"axis\",label:\"Axis\",},\n                {key:\"frequency\",label:\"Frequency\",},\n                {key:\"amplitude\",label:\"Amplitude\",},\n                {key:\"ppv\",label:\"PPV\",},\n                {key:\"ppa\",label:\"PPA\",},\n            ]\n            const axisArray = [\"X\", \"Y\", \"Z\"];\n            row1HeaderObject.forEach((columnObject, index)=>{\n                const thColumn = document.createElement('th');\n                thColumn.style.fontSize= `small`;\n                thColumn.style.border= `solid`;\n                thColumn.style.borderWidth= `1px`;\n                thColumn.style.borderColor= `black`;\n                thColumn.style.textAlign ='center';\n                thColumn.textContent= `${columnObject['label']}`;\n                trColumns.appendChild(thColumn);\n            });\n\n            thead.appendChild(trColumns);\n            table.appendChild(thead);\n            //Rows\n            const tbody = document.createElement('tbody');\n            for(let i=0;i < axisArray.length;i++){\n                const trRows = document.createElement('tr');\n                row1HeaderObject.forEach((columnObject, index)=>{\n                    const tdRowData = document.createElement('td');\n                    tdRowData.style.fontSize= `small`;\n                    tdRowData.style.border= `solid`;\n                    tdRowData.style.borderWidth= `1px`;\n                    tdRowData.style.textAlign ='center';\n                    switch(columnObject['key']){\n                        case \"axis\":\n                            tdRowData.textContent= `${axisArray[i]}`;\n                            break;\n                        default:\n                            tdRowData.textContent= `${responseObj[columnObject['key']] ? responseObj[columnObject['key']][i] : \"N/A\"}`;\n                            break;\n\n                    }\n\n                    trRows.appendChild(tdRowData);\n                });\n                tbody.appendChild(trRows);\n            }\n\n            table.appendChild(tbody);\n\n\n\n            //Row: Additional\n            const row5 = document.createElement('div');\n            row5.style.marginTop = '10px';\n            row5.style.marginLeft = '10px';\n            row5.style.fontWeight = 'bold';\n            row5.textContent = `Additonal`;\n            masterPopupContent.appendChild(row5);\n                        \n            const defaultTabIndex = 10;\n            if(analytics.hasOwnProperty(`clippingData`) && analytics['clippingData'].length > 0){\n                //Clipping Data Title \n                const clippingDataSection = document.createElement('div');\n                clippingDataSection.style.marginLeft = `${3 * defaultTabIndex}px`;\n                clippingDataSection.style.fontWeight = 'bold';\n                clippingDataSection.style.fontSize= `small`;\n                clippingDataSection.textContent = \"- Clipping Detected!\"\n                masterPopupContent.appendChild(clippingDataSection);\n            }\n\n\n            // masterPopupContent.appendChild(table);\n    \n            //Display and setup Ok Button notificationRefreshButton\n            const okButtonComponent = document.getElementById('notificationOkButton');\n            okButtonComponent.style.display = \"block\";\n            okButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n        }\n    });\n}\nexport async function  buildDeleteWarningBoard(context, profile_obj){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n\n    Ember.run.scheduleOnce('afterRender', context, () => {\n        const masterPopupContent = document.getElementById('notificationPopupContentBody');\n        if(masterPopupContent){\n\n            masterPopupContent.innerHTML = '';\n\n            // Main Title\n            const mainTitle = document.createElement('div');\n            mainTitle.style.marginTop = '10px';\n            mainTitle.style.fontSize = 'large';\n            mainTitle.style.textDecoration = 'underline';\n            mainTitle.style.fontWeight = 'bold';\n            mainTitle.textContent = `Delete ${profile_obj.id}`;\n            masterPopupContent.appendChild(mainTitle);\n            // Warning\n            const warning1Section = document.createElement('div');\n            warning1Section.style.alignSelf = \"center\";\n            warning1Section.textContent = `Are you sure you want to delete this event profile ${profile_obj.id}?`;\n            masterPopupContent.appendChild(warning1Section);\n            // Warning\n            const warning2Section = document.createElement('div');\n            warning2Section.style.alignSelf = \"center\";\n            warning2Section.style.fontWeight = 'bold';\n            warning2Section.textContent = `Deletion cannot be undone, you will lose all data associated with it!`;\n            masterPopupContent.appendChild(warning2Section);\n    \n            const yesButtonComponent = document.getElementById('notificationYesButton');\n            yesButtonComponent.style.display = \"block\";\n            yesButtonComponent.style.marginRight = \"10px\";\n            yesButtonComponent.onclick = async () => {\n                if (await sendDELETERequest(`bluvibev2/${profile_obj.id}`)){\n                    window.location.reload();\n\n                }else{\n                };\n                \n            };\n            const cancelButtonComponent = document.getElementById('notificationCancelButton');\n            cancelButtonComponent.style.display = \"block\";\n            cancelButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n        }\n    });\n\n    \n}\nexport async function  buildFrequencyEventsEditBoard(context, profile_obj){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n\n    let responseData = await sendGETRequest(`bluvibev2/`,{profileID:profile_obj.id});\n    const data = responseData['data'];\n    if(data.length == 1){\n        Ember.run.scheduleOnce('afterRender', context, () => {\n            let responseObj = data[0];\n            const masterPopupContent = document.getElementById('notificationPopupContentBody');\n            if(masterPopupContent){\n\n                masterPopupContent.innerHTML = '';\n\n                // Main Title\n                const mainTitle = document.createElement('div');\n                mainTitle.style.marginTop = '10px';\n                mainTitle.style.fontSize = 'large';\n                mainTitle.style.textDecoration = 'underline';\n                mainTitle.style.fontWeight = 'bold';\n                mainTitle.textContent = `Edit Event ${profile_obj.id}`;\n                masterPopupContent.appendChild(mainTitle);\n\n                //Row: Sample, Range, Trigger\n                const row1 = document.createElement('div');\n                row1.style.display = 'flex';\n                row1.style.flexDirection = 'row';\n                row1.style.justifyContent = 'space-evenly';\n                masterPopupContent.appendChild(row1);\n                //Sample Section\n                const sampleSection = document.createElement('div');\n                sampleSection.style.display=\"flex\";\n                sampleSection.style.alignItems=\"center\"\n                sampleSection.textContent = `Sample:`;\n                const sampleElement = document.createElement('td');\n                sampleElement.classList.add('input');\n                const inputSampleElement = document.createElement('input');\n                inputSampleElement.classList.add('form-control'); \n                inputSampleElement.setAttribute('type', 'number');\n                inputSampleElement.id=`frequency_events-sample`;\n                inputSampleElement.value = profile_obj.sample;\n\n                sampleElement.appendChild(inputSampleElement);\n                sampleSection.appendChild(sampleElement);\n                row1.appendChild(sampleSection);\n                //Range Section\n                const rangeSection = document.createElement('div');\n                rangeSection.style.display=\"flex\";\n                rangeSection.style.alignItems=\"center\"\n                rangeSection.textContent = `Range:`;\n                const rangeElement = document.createElement('td');\n                rangeElement.classList.add('input');\n                const inputRangeElement = document.createElement('input');\n                inputRangeElement.classList.add('form-control'); \n                inputRangeElement.setAttribute('type', 'number');\n                inputRangeElement.id=`frequency_events-range`;\n                inputRangeElement.value = profile_obj.range;\n\n                rangeElement.appendChild(inputRangeElement);\n                rangeSection.appendChild(rangeElement);\n                row1.appendChild(rangeSection);\n                //Trigger Section\n                const triggerSection = document.createElement('div');\n                triggerSection.style.display=\"flex\";\n                triggerSection.style.alignItems=\"center\"\n                triggerSection.textContent = `Trigger:`;\n                const triggerElement = document.createElement('td');\n                triggerElement.classList.add('input');\n                const inputTriggerElement = document.createElement('input');\n                inputTriggerElement.classList.add('form-control'); \n                inputTriggerElement.setAttribute('type', 'number');\n                inputTriggerElement.id=`frequency_events-trigger`;\n                inputTriggerElement.value = profile_obj.trigger;\n\n                triggerElement.appendChild(inputTriggerElement);\n                triggerSection.appendChild(triggerElement);\n                row1.appendChild(triggerSection);\n            \n        \n                const saveButtonComponent = document.getElementById('notificationSaveButton');\n                saveButtonComponent.style.display = \"block\";\n                saveButtonComponent.style.marginRight = \"10px\";\n                saveButtonComponent.onclick = async () => {\n                    try{\n                        const tbIDs = [\"frequency_events-sample\", \"frequency_events-range\", \"frequency_events-trigger\"];\n                        let objBody = {};\n                        tbIDs.forEach(id=>{\n                            objBody[id.split(\"-\")[1]] = parseInt(document.getElementById(id).value);\n                        })\n                        if (await sendPATCHRequest(`bluvibev2/${profile_obj.id}`, objBody)){\n                            context.send('closeNotificationPopup'); \n                            window.location.reload();\n    \n                        }else{\n                        };\n                                                    \n                    }catch(err){\n                        console.log(`Error in buildFrequencyEventsEditBoard Save button: ${err.message}`);\n                        \n                    }\n                };\n                const cancelButtonComponent = document.getElementById('notificationCancelButton');\n                cancelButtonComponent.style.display = \"block\";\n                cancelButtonComponent.onclick = () => {\n                    context.send('closeNotificationPopup'); \n                };\n            }\n        });\n\n    }\n}\n//Make POST & PATCH requests \nexport async function sendGETRequest(endpoint, queryParams = {}){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint;\n        const queryString = new URLSearchParams(queryParams).toString();\n        if (queryString) {\n          url += `?${queryString}`;\n        }\n        const response = await fetch(url, {\n          method: 'GET',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response['status'] == 200) || (response['status'] == 201)) {\n            const responseData = await response.json();\n            const newData = convertKeysToCamelCase(responseData);\n            return newData; // Return true if status code is 201\n        } \n         \n    } \n    catch (error) {\n    console.error('Error submitting data:', error);\n    }\n    return false;\n}\nfunction convertKeysToCamelCase(obj) {\n    /**\n        This helper function is a generic helper function used to convert kebab-case to camelCase, so that I can take the obj and see it as normal JSON object \n        const inputFrom = {\n            'sensor-name': 'Temperature Sensor',\n            'sensor-id': 12345,\n            'nested-data': {\n            'calibration-date': '2024-12-15',\n            'sensor-details': [\n                { 'sensor-value': 100, 'sensor-unit': 'C' },\n                { 'sensor-value': 200, 'sensor-unit': 'F' }\n            ]\n            }\n        };\n        const inputTo =  {\n            sensorName: 'Temperature Sensor',\n            sensorId: 12345,\n            nestedData: {\n            calibrationDate: '2024-12-15',\n            sensorDetails: [\n                { sensorValue: 100, sensorUnit: 'C' },\n                { sensorValue: 200, sensorUnit: 'F' }\n            ]\n            }\n        }\n    */\n\n    if (Array.isArray(obj)) {\n      return obj.map(v => convertKeysToCamelCase(v));\n    } else if (obj !== null && typeof obj === 'object') {\n      return Object.fromEntries(\n        Object.entries(obj).map(([key, value]) => [\n          key.replace(/-([a-z])/g, (_, char) => char.toUpperCase()), // Convert kebab-case to camelCase\n          convertKeysToCamelCase(value)\n        ])\n      );\n    }\n    return obj;\n}\nexport async function sendPOSTRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendPOSTRequest2(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return responseData; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return null;\n}\nexport async function sendPATCHRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'PATCH',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendDELETERequest(endpoint){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'DELETE',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n  \n        if (response.status == 401 || response.status == 403) {\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\n","import Ember from 'ember';\n\nexport function freqEventsValidateForRedWarning(params) {\n    if(params[0] == null)\n        return false\n    const profileObj = params[0];\n    if(profileObj[\"analytics\"].hasOwnProperty(`clippingData`) && profileObj[\"analytics\"][\"clippingData\"].length > 0)\n        return true;\n    //For Future: Check for .... Data, immediately trigger red warning\n    return false;\n\n}\n\nexport default Ember.Helper.helper(freqEventsValidateForRedWarning\n    \n);\n","import Ember from 'ember';\n\nexport function getArrayElement(params/*, hash*/) {\n  if (params[0] && typeof params[1] !== undefined) {\n        let index = params[1];\n        return params[0][ index ];\n    }\n}\n\nexport default Ember.Helper.helper(getArrayElement);\n","import Ember from 'ember';\n\nexport function getArrayValue(array, idx) {\n  try {\n    // console.log(array);\n    // console.log(idx);\n    return array[idx];\n  } catch {\n    return false;\n  }\n}\n \n\nexport default Ember.Helper.helper(getArrayValue);\n","import Ember from 'ember';\n\nexport function getPacksValidationProgression(packProfile) {\n    // console.log(packProfile[0]);\n    packProfile = packProfile[0];\n    let p1Progression = 0;\n    let p2Progression = 0;\n    if(packProfile != null && packProfile['progression'] != null){\n        if(packProfile['progression']['phase1_stage1'] != null && packProfile['progression']['phase1_stage1']['is_complete'] != null && packProfile['progression']['phase1_stage1']['is_complete']){\n            p1Progression += 1;\n        }\n        if(packProfile['progression']['phase1_stage2'] != null && packProfile['progression']['phase1_stage2']['is_complete'] != null && packProfile['progression']['phase1_stage2']['is_complete']){\n            p1Progression += 1;\n        }\n        if(packProfile['progression']['phase2_stage1'] != null && packProfile['progression']['phase2_stage1']['is_complete'] != null && packProfile['progression']['phase2_stage1']['is_complete']){\n            p2Progression += 1;\n        }\n        if(packProfile['progression']['phase2_stage2'] != null && packProfile['progression']['phase2_stage2']['is_complete'] != null && packProfile['progression']['phase2_stage2']['is_complete']){\n            p2Progression += 1;\n        }\n        if(packProfile['progression']['phase2_stage3'] != null && packProfile['progression']['phase2_stage3']['is_complete'] != null && packProfile['progression']['phase2_stage3']['is_complete']){\n            p2Progression += 1;\n        }\n        if(packProfile['progression']['phase2_stage4'] != null && packProfile['progression']['phase2_stage4']['is_complete'] != null && packProfile['progression']['phase2_stage4']['is_complete']){\n            p2Progression += 1;\n        }\n\n    }\n    return `P1:${p1Progression}/2 P2:${p2Progression}/4`;\n}\n\nexport default Ember.Helper.helper(getPacksValidationProgression);\n","import Ember from 'ember';\n\nexport function getPacksValidationProgression(packProfile) {\n\n    let packData = packProfile[0]['validationData'];\n    // console.log(packData);\n    //P1 validity Row\n    let phase1VerdictString = \"\";\n    let phase2VerdictString = \"\";\n    const isAllDataProvided1 = packData != null && packData['phase1LoadData'] != null && packData['phase1LoadData'].length > 0 &&\n    packData['phase1UnloadData'] != null && packData['phase1UnloadData'].length > 0 \n\n    if(packData != null &&  isAllDataProvided1 && packData['phase1ValidityData'] != null){\n        phase1VerdictString = `${packData['phase1ValidityData']['final'] ? \"PASS\" : \"FAIL\"}`;\n    }else{\n        phase1VerdictString = \"N/A\"\n    }\n    const isAllDataProvided = packData != null &&  packData['phase2LoadData1'] != null && packData['phase2LoadData1'].length > 0 &&\n    packData['phase2LoadData2'] != null && packData['phase2LoadData2'].length > 0 &&\n    packData['phase2UnloadData1'] != null && packData['phase2UnloadData1'].length > 0 &&\n    packData['phase2UnloadData2'] != null && packData['phase2UnloadData2'].length > 0\n\n    if(packData != null &&  isAllDataProvided && packData['phase2ValidityData'] != null){\n        phase2VerdictString = `${packData['phase2ValidityData']['final'] ? \"PASS\" : \"FAIL\"}`;\n    }else{\n        phase2VerdictString = \"N/A\"\n    }\n    return `P1:${phase1VerdictString} P2:${phase2VerdictString}`;\n}\n\nexport default Ember.Helper.helper(getPacksValidationProgression);\n","define(\"geotechnical-data-platform-new/helpers/gt\", [\"exports\", \"ember-truth-helpers/helpers/gt\"], function (_exports, _gt) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _gt.default;\n    }\n  });\n  Object.defineProperty(_exports, \"gt\", {\n    enumerable: true,\n    get: function () {\n      return _gt.gt;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/gte\", [\"exports\", \"ember-truth-helpers/helpers/gte\"], function (_exports, _gte) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _gte.default;\n    }\n  });\n  Object.defineProperty(_exports, \"gte\", {\n    enumerable: true,\n    get: function () {\n      return _gte.gte;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/icon\", [\"exports\", \"ember-leaflet/helpers/icon\"], function (_exports, _icon) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _icon.default;\n    }\n  });\n  Object.defineProperty(_exports, \"icon\", {\n    enumerable: true,\n    get: function () {\n      return _icon.icon;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport function ifEmptyStringOrNull(params/*, hash*/) {\n    if (typeof params[0] !== undefined) {\n        if (params[0] === null || params[0] === '' || params[0] === ' ') {\n            return true;\n        }\n    }\n}\n\nexport default Ember.Helper.helper(ifEmptyStringOrNull);\n","import Ember from 'ember';\n\n\nexport function ifMeetSubModelRequirement(params) {\n    if(params[0] == null || params[1] == null){\n        return false;\n    }\n    \n    let instr = params[0];\n    let actionType = params[1];\n\n    // console.log(\"instr\")\n    // console.log(instr)\n    // console.log(\"actionType\")\n    // console.log(actionType)\n\n    switch(instr[\"instrumentType\"][\"title\"]){\n        case \"BluVibe\":\n            let subModelA = [\"viewData\", \"tGraph\", \"fGraph\"];\n            let subModelB = [ \"fEvent\"];\n            switch(instr[\"subModel\"]){\n                case \"A\":\n                    return subModelA.includes(actionType);\n                case \"B\":\n                    return subModelB.includes(actionType);\n                default:\n                    return true;\n            }\n        default:\n            return true;\n    }\n    // return true;     \n}\n\nexport default Ember.Helper.helper(ifMeetSubModelRequirement);\n","define(\"geotechnical-data-platform-new/helpers/ignore-children\", [\"exports\", \"ember-modal-dialog/helpers/ignore-children\"], function (_exports, _ignoreChildren) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ignoreChildren.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-after\", [\"exports\", \"ember-moment/helpers/is-after\"], function (_exports, _isAfter) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isAfter.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-array\", [\"exports\", \"ember-truth-helpers/helpers/is-array\"], function (_exports, _isArray) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isArray.default;\n    }\n  });\n  Object.defineProperty(_exports, \"isArray\", {\n    enumerable: true,\n    get: function () {\n      return _isArray.isArray;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-before\", [\"exports\", \"ember-moment/helpers/is-before\"], function (_exports, _isBefore) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isBefore.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-between\", [\"exports\", \"ember-moment/helpers/is-between\"], function (_exports, _isBetween) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isBetween.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-empty\", [\"exports\", \"ember-truth-helpers/helpers/is-empty\"], function (_exports, _isEmpty) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isEmpty.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-equal\", [\"exports\", \"ember-truth-helpers/helpers/is-equal\"], function (_exports, _isEqual) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isEqual.default;\n    }\n  });\n  Object.defineProperty(_exports, \"isEqual\", {\n    enumerable: true,\n    get: function () {\n      return _isEqual.isEqual;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport function isGreaterThan(params) {\n    if (params[0] && params[1]) {\n        return params[0] > params[1];\n    }\n}\n\nexport default Ember.Helper.helper(isGreaterThan);\n","import Ember from 'ember';\n\nexport function isInstrumentAnchorsSet([instrumentAnchors]) {\n\n    let instrumentAnchorsDistances = instrumentAnchors.map(function(obj){\n        return obj.get('distance') !== '' && obj.get('distance') !== null;\n    });\n\n    if (instrumentAnchorsDistances.indexOf(false) > -1 || instrumentAnchorsDistances.length === 0) {\n        return false;\n    } else {\n        return true;\n    }\n}\n\nexport default Ember.Helper.helper(isInstrumentAnchorsSet);\n","define(\"geotechnical-data-platform-new/helpers/is-same-or-after\", [\"exports\", \"ember-moment/helpers/is-same-or-after\"], function (_exports, _isSameOrAfter) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isSameOrAfter.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-same-or-before\", [\"exports\", \"ember-moment/helpers/is-same-or-before\"], function (_exports, _isSameOrBefore) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isSameOrBefore.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/is-same\", [\"exports\", \"ember-moment/helpers/is-same\"], function (_exports, _isSame) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _isSame.default;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport function isStrokeLengthRequiredAndSet(instrument) {    \n\n    let type = instrument[0].get('instrumentTypeID');\n    let stroke = instrument[0].get('strokeLength');\n\n    //console.log(stroke);\n\n    switch(type) {\n        case 1:\n        case 2:\n        case 4:\n        case 5:\n            if (stroke === null || stroke === 0) {\n                return false;\n            } else {\n                return true;\n            }\n            break;\n        default:\n            return true;\n    }\n}\n\nexport default Ember.Helper.helper(isStrokeLengthRequiredAndSet);\n","define(\"geotechnical-data-platform-new/helpers/lat-lng-bounds\", [\"exports\", \"ember-leaflet/helpers/lat-lng-bounds\"], function (_exports, _latLngBounds) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _latLngBounds.default;\n    }\n  });\n  Object.defineProperty(_exports, \"latLngBounds\", {\n    enumerable: true,\n    get: function () {\n      return _latLngBounds.latLngBounds;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/loc\", [\"exports\", \"@ember/string/helpers/loc\"], function (_exports, _loc) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _loc.default;\n    }\n  });\n  Object.defineProperty(_exports, \"loc\", {\n    enumerable: true,\n    get: function () {\n      return _loc.loc;\n    }\n  });\n});\n","import { helper } from '@ember/component/helper';\n\nexport function logger([obj]) {\n    console.log(\"LOGGING START::::::::::::::::::::::\")\n    console.log(obj);\n    console.log(\"LOGGING END ::::::::::::::::::::::\")\n    return ''; // Helpers must return a value to be rendered, but we don't want to render anything\n}\n\nexport default helper(logger);","define(\"geotechnical-data-platform-new/helpers/lt\", [\"exports\", \"ember-truth-helpers/helpers/lt\"], function (_exports, _lt) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _lt.default;\n    }\n  });\n  Object.defineProperty(_exports, \"lt\", {\n    enumerable: true,\n    get: function () {\n      return _lt.lt;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/lte\", [\"exports\", \"ember-truth-helpers/helpers/lte\"], function (_exports, _lte) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _lte.default;\n    }\n  });\n  Object.defineProperty(_exports, \"lte\", {\n    enumerable: true,\n    get: function () {\n      return _lte.lte;\n    }\n  });\n});\n","export function makeTimestampGlobalFormatAware(params) {\n    if(params[0] == null || params[1] == null){\n        return \"\";\n    }\n    let timestamp = params[0];\n    let globalDatetimeFormat = params[1];\n    const standardizedFormat = \"YYYY-MM-DD HH:mm:ss.SSS\";\n    const parsed = moment(timestamp, standardizedFormat, true);\n    let convertedTimestamp = globalDatetimeFormat ? parsed.format(`${globalDatetimeFormat}.SSS`) : parsed.format(standardizedFormat);\n    return convertedTimestamp;\n\n     \n}\n\nexport default Ember.Helper.helper(makeTimestampGlobalFormatAware);","define(\"geotechnical-data-platform-new/helpers/moment-add\", [\"exports\", \"ember-moment/helpers/moment-add\"], function (_exports, _momentAdd) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentAdd.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-calendar\", [\"exports\", \"ember-moment/helpers/moment-calendar\"], function (_exports, _momentCalendar) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentCalendar.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-diff\", [\"exports\", \"ember-moment/helpers/moment-diff\"], function (_exports, _momentDiff) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentDiff.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-duration\", [\"exports\", \"ember-moment/helpers/moment-duration\"], function (_exports, _momentDuration) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentDuration.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-format\", [\"exports\", \"ember-moment/helpers/moment-format\"], function (_exports, _momentFormat) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentFormat.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-from-now\", [\"exports\", \"ember-moment/helpers/moment-from-now\"], function (_exports, _momentFromNow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentFromNow.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-from\", [\"exports\", \"ember-moment/helpers/moment-from\"], function (_exports, _momentFrom) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentFrom.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-subtract\", [\"exports\", \"ember-moment/helpers/moment-subtract\"], function (_exports, _momentSubtract) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentSubtract.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-to-date\", [\"exports\", \"ember-moment/helpers/moment-to-date\"], function (_exports, _momentToDate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentToDate.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-to-now\", [\"exports\", \"ember-moment/helpers/moment-to-now\"], function (_exports, _momentToNow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentToNow.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-to\", [\"exports\", \"ember-moment/helpers/moment-to\"], function (_exports, _momentTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _momentTo.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment-unix\", [\"exports\", \"ember-moment/helpers/unix\"], function (_exports, _unix) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _unix.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/moment\", [\"exports\", \"ember-moment/helpers/moment\"], function (_exports, _moment) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _moment.default;\n    }\n  });\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\n\nexport async function sendGETRequest(endpoint){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint;\n        const response = await fetch(url, {\n          method: 'GET',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n        if(response){\n            const responseData = await response.json();\n            return responseData\n        }     \n    } catch (error) {\n    console.error('Error sendGETRequest:', error);\n    return false;\n    }\n}\nexport async function sendPOSTRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint;\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if(response){\n            const responseData = await response.json();\n            return responseData\n\n        }\n         \n    } catch (error) {\n        console.error('Error sendPOSTRequest:', error);\n        return false;\n    }\n}\nexport async function sendPATCHRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint;\n        const response = await fetch(url, {\n          method: 'PATCH',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if(response){\n            const responseData = await response.json();\n            return responseData;\n        }\n        \n    } catch (error) {\n        console.error('Error sendPATCHRequest:', error);\n        return null;\n    }\n}\nexport async function sendDELETERequest(endpoint){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint;\n        const response = await fetch(url, {\n          method: 'DELETE',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n        \n        if(response){\n            const responseData = await response.json();\n            return responseData\n        }\n    } catch (error) {\n        console.error('Error in sendDELETERequest:', error);\n        return null;\n    }\n}","define(\"geotechnical-data-platform-new/helpers/not-eq\", [\"exports\", \"ember-truth-helpers/helpers/not-equal\"], function (_exports, _notEqual) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _notEqual.default;\n    }\n  });\n  Object.defineProperty(_exports, \"notEqualHelper\", {\n    enumerable: true,\n    get: function () {\n      return _notEqual.notEqualHelper;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/not\", [\"exports\", \"ember-truth-helpers/helpers/not\"], function (_exports, _not) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _not.default;\n    }\n  });\n  Object.defineProperty(_exports, \"not\", {\n    enumerable: true,\n    get: function () {\n      return _not.not;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/now\", [\"exports\", \"ember-moment/helpers/now\"], function (_exports, _now) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _now.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/on-document\", [\"exports\", \"ember-on-helper/helpers/on-document\"], function (_exports, _onDocument) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _onDocument.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/on-window\", [\"exports\", \"ember-on-helper/helpers/on-window\"], function (_exports, _onWindow) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _onWindow.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/on\", [\"exports\", \"ember-on-helper/helpers/on\"], function (_exports, _on) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _on.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/or\", [\"exports\", \"ember-truth-helpers/helpers/or\"], function (_exports, _or) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _or.default;\n    }\n  });\n  Object.defineProperty(_exports, \"or\", {\n    enumerable: true,\n    get: function () {\n      return _or.or;\n    }\n  });\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport Chart from 'chart.js/auto';\nimport printJS from 'print-js';\nimport {sendGETRequest} from \"../helpers/network-library\"\n\nexport async function refreshMainChartData(context){\n    let endpoint = \"packs_validation_analytics/?\"\n    Object.entries(context.get(\"requestParams\")).forEach(([key, value], index) => {\n        if(value != null){\n            endpoint += `${key}=${value}&`;\n        }\n      });\n    endpoint = endpoint.slice(0, -1); //Remove the last& symbol\n    const requestData = await sendGETRequest(endpoint);\n    context.set(\"mainChartData\", requestData['data']);\n    updateChart(context);\n}\n\nexport function resetDataAndSearch(context){\n    //reset main data component\n    const mainDataComp = document.getElementById(\"mainDataSelect\");\n    mainDataComp.value=\"0\";\n    //reset date data component\n    const dateDataSelectComp = document.getElementById(\"dateDataSelect\");\n    dateDataSelectComp.value=\"0\";\n    //reset date range components\n    const startRangeDateComponent = document.getElementById(\"startRangeDateComponent\");\n    startRangeDateComponent.value=null;\n    const endRangeDateComponent = document.getElementById(\"endRangeDateComponent\");\n    endRangeDateComponent.value=null;\n    //reset isDistinct component \n    const isDistinctCheckBoxComp = document.getElementById(\"isDistinctCheckBox\");\n    isDistinctCheckBoxComp.checked=false;\n    //reset employee group component\n    const employeeGroupDataSelectComp = document.getElementById(\"employeeGroupDataSelect\");\n    employeeGroupDataSelectComp.value=\"0\";\n    //reset requestParams\n    context.set(\"requestParams\",{\n        y:\"validationID\", \n        x:\"phase1ValidationDate\", \n        is_distinct:\"false\", \n        secondary:\"all\", \n        date_min:null, \n        date_max:null\n    })\n    //empty main data array \n    context.set(\"mainChartData\",[])\n    //refresh main chart data\n    refreshMainChartData(context)\n}\n\nexport function renderChart(context) {\n    let chartContainer = document.getElementById(\"mainChartSection\");\n\n    if (!chartContainer) {\n        console.error(\"mainChartSection not found in the DOM\");\n        return;\n    }\n\n    // Clear previous chart if it exists\n    chartContainer.innerHTML = `<canvas id=\"mainChartCanvas\"></canvas>`;\n\n    const ctx = document.getElementById(\"mainChartCanvas\").getContext(\"2d\");\n\n    if (!ctx) {\n        console.error(\"mainChartCanvas not found in the DOM\");\n        return;\n    }\n\n    // Initialize the chart\n    context.chart = new Chart(ctx, {\n        type: \"bar\",\n        data: {\n            labels: [],\n            datasets: []\n        },\n        options: {\n            responsive: true,\n            maintainAspectRatio: false,\n            scales: {\n                x: {\n                    title: { display: true, text: \"\" },\n                    barPercentage: 0.6,  \n                    categoryPercentage: 0.8,  \n                    maxBarThickness: 20, \n                },\n                y: {\n                    title: { display: true, text: \"\" },\n                    beginAtZero: true\n                }\n            },\n            plugins: {\n                legend: {\n                    display: false, \n                    position: \"top\",\n                    labels: {\n                        usePointStyle: true,\n                        font: { size: 10, family: \"Arial\", weight: \"bold\" },\n                        color: \"black\",\n                        boxWidth: 10,\n                        boxHeight: 10,\n                        padding: 5,\n                    }\n                },\n                tooltip: {\n                    enabled: true\n                }\n            },\n            elements: {\n                point: { radius: 0 }\n            }\n        }\n    });\n\n    // Populate chart with initial data\n    updateChart(context);\n}\n\nexport function buildChartDataSet(context, dataArray) {\n    const type = context.get('requestParams.y');\n    const xParam = context.get('requestParams.x');\n    const colorPalette = [\n        \"#AEC6CF\", \"#FFB7C5\", \"#B39EB5\", \"#FFDAC1\", \"#E2F0CB\", \"#C9C9FF\", \"#FDFD96\",\n        \"#FFABAB\", \"#B5EAD7\", \"#C7CEEA\", \"#E8DFF5\", \"#FF9AA2\", \"#FFAAA6\", \"#FFD3B6\",\n        \"#D4A5A5\", \"#FFC3A0\", \"#FF677D\", \"#DFF8EB\", \"#D9BF77\", \"#B0E0E6\", \"#D291BC\",\n        \"#FFDFD3\", \"#F6EAC2\", \"#E0BBE4\", \"#C2EABD\", \"#C2F0FC\", \"#FFDEE9\", \"#B3DEE2\",\n        \"#F9CB9C\", \"#F2D7D9\", \"#C0DED9\", \"#FAC8CD\", \"#E7F0C3\", \"#C8E6C9\", \"#F1CBFF\",\n        \"#ECCEF5\", \"#CDF0EA\", \"#FAD0C4\", \"#CDE4F2\", \"#FCE1E4\", \"#EAE4C5\", \"#F7E1D7\",\n        \"#D9EEE1\", \"#FFD6E0\", \"#D8E2DC\", \"#FFEFD3\", \"#F3EAC2\", \"#DFD3C3\", \"#C7F0DB\",\n        \"#F6D6AD\"\n    ];\n\n    let datasets = [];\n    let labels = [];\n    let xAxisLabel=\"\";\n    context.get(\"mainDataSelectionLabels\").forEach((dataObj, index)=>{\n        if(dataObj['key'] == type){\n            xAxisLabel = dataObj['value'];\n        }\n    })\n    switch (type) {\n        case \"rigID\":\n        case \"packID\":\n        case \"company\":\n        case \"packType\":\n        case \"phase1Employee\":\n        case \"phase2Employee\":\n        case \"phase2OverruleEmployee\":\n\n            if (xParam == null) {\n                labels = dataArray.map(entry => entry[type]);\n                datasets.push({\n                    label: 'Count',\n                    maxBarThickness: 50,\n                    data: dataArray.map(entry => entry.count),\n                    backgroundColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                    borderColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                    borderWidth: 1\n                });\n                context.chart.options.scales.y.title ={ display: true, text: `Count` };\n                context.chart.options.scales.x.title ={ display: true, text: `${xAxisLabel}` };\n            } else {\n                labels = [...new Set(dataArray.map(entry => entry.date))].sort();\n                const groupedData = {};\n                dataArray.forEach(entry => {\n                    const groupValue = entry[type] || \"Unknown\";\n                    if (!groupedData[groupValue]) groupedData[groupValue] = {};\n                    groupedData[groupValue][entry.date] = (groupedData[groupValue][entry.date] || 0) + entry.count;\n                });\n\n                datasets = Object.keys(groupedData).map((groupValue, index) => ({\n                    label: groupValue,\n                    maxBarThickness: 50,\n                    data: labels.map(date => groupedData[groupValue][date] || 0),\n                    backgroundColor: colorPalette[index % colorPalette.length],\n                    borderColor: colorPalette[index % colorPalette.length],\n                    borderWidth: 1\n                }));\n                context.chart.options.scales.y.title ={ display: true, text: `Count` };\n                context.chart.options.scales.x.title ={ display: true, text: `Date` }\n            }\n            break;\n\n        case \"redos\":\n            labels = dataArray.map(entry => entry.packID);\n            datasets.push({\n                label: \"Redos\",\n                data: dataArray.map(entry => entry.count),\n                backgroundColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                borderColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                borderWidth: 1\n            });\n            context.chart.options.scales.y.title ={ display: true, text: `Count` };\n            context.chart.options.scales.x.title ={ display: true, text: `Pack ID` }\n            break;\n        case \"general_overruled_count\":\n        case \"phase1_count\":\n        case \"phase2_count\":\n        case \"phase_both\":\n        case \"validationID\":\n            labels = dataArray.map(entry => entry.date);\n            datasets.push({\n                label: \"Count\",\n                maxBarThickness: 50,\n                data: dataArray.map(entry => entry.count),\n                backgroundColor: \"#4A6A9C\",\n                borderColor: \"#4A6A9C\",\n                borderWidth: 1\n            });\n            context.chart.options.scales.y.title ={ display: true, text: `Count` };\n            context.chart.options.scales.x.title ={ display: true, text: `Date` }\n\n            break;\n        default:\n            console.warn(\"Unhandled type:\", type);\n            break;\n    }\n    return { datasets, labels };\n}\n\nexport function getYAxisScaleMax(context){\n    // setTimeout(() => {\n        const chartInstance = context.get('chart'); // Get the chart instance\n        if (chartInstance) {\n            const yAxisScale = chartInstance.scales[\"y\"].max;\n            return yAxisScale;\n        } else {\n            console.log(\"Chart instance not available yet.\");\n        }\n    // }, 750);\n}\n\nexport function updateChart(context) {\n    try{\n        if (!context.chart) return;\n    \n        let dataArray = context.get(\"mainChartData\") || [];\n    \n        // Extract labels (x-axis: Dates) and data points (y-axis: Counts)\n        const { datasets, labels } = buildChartDataSet(context, dataArray);\n        // Update chart data\n        context.chart.data.labels = labels;\n        context.chart.data.datasets = datasets  ; \n        console.log(datasets)\n        console.log(`datasets length :${datasets.length}`)\n    \n        context.chart.update(); // Refresh the chart with new data\n    \n        const yScaleMax = getYAxisScaleMax(context);\n        //Update the Max Y Axis Value text box \n        const yAxisMaxComponent = document.getElementById('yAxisScale');\n        yAxisMaxComponent.value = yScaleMax;\n        yAxisMaxComponent.min=`${yScaleMax}`\n        context.set(\"options.chartYAxisOriginal\", Number.parseInt(yScaleMax));\n\n    }\n\n    catch (error) {\n        console.error('Error updateChart:', error);\n      }\n}\n\nexport function manageCustomUIDateData(context, mainDataObj, dateDataObj,employeeDataObj, isDistinctBooleanComp, startDateRng, endDateRng){\n    const dateDataSelectComp = document.getElementById('dateDataSelect');\n    const dateDataSectionComp = document.getElementById('dateDataSection');\n    let x = null;\n    let y = null;\n    switch(mainDataObj['key']){\n        case \"redos\":\n        case \"phase1_count\":\n        case \"phase2_count\":\n        case \"phase_both\":\n        case \"general_overruled_count\":\n            dateDataSelectComp.value=\"-1\";\n            dateDataSectionComp.style.display='none';\n            x = null;\n            y = mainDataObj['key'];\n            break;\n        default:\n            dateDataSectionComp.style.display='flex';\n            x = dateDataObj ? dateDataObj['key'] : null;\n            y = mainDataObj['key'];\n\n            break;\n\n    }\n\n    //Update Date Range visibilty depending on certain Main Data and Date Data\n    const dateRangeSection = document.getElementById('dateRangeSection');\n    switch(mainDataObj['key']){\n        case \"validationID\":\n        case \"packID\":\n        case \"company\":\n        case \"phase1Employee\":\n        case \"phase2Employee\":\n        case \"phase2OverruleEmployee\":\n        case \"rigID\":\n            if(dateDataObj == null){\n                dateRangeSection.style.display=\"none\";\n            }else{\n                dateRangeSection.style.display=\"flex\";\n            }\n            break;\n        case \"phase_both\":\n        case \"phase1_count\":\n        case \"phase2_count\":\n        case \"general_overruled_count\":\n            dateRangeSection.style.display=\"flex\";\n            break;\n        default:\n            dateRangeSection.style.display=\"none\";\n            break;\n\n    }\n    \n    let isDistinctCheckbox = false;\n    //Update is_distinct\n    if(isDistinctBooleanComp != null){\n        isDistinctCheckbox = isDistinctBooleanComp.target.checked;\n    }\n    context.set(\"requestParams\",{\n        y:y, \n        x:x, \n        is_distinct:isDistinctCheckbox, \n        secondary:employeeDataObj.key, \n        date_min:startDateRng, \n        date_max:endDateRng\n    })\n}\n//bar Chart Helper functions\nexport function disableEnableBarChartLengend(context, isShowLegend){\n    if(context.chart && context.chart.options && context.chart.options.plugins){\n        // Update the legend visibility\n        context.chart.options.plugins.legend.display = isShowLegend;\n\n        // Trigger chart update to reflect changes\n        context.chart.update();\n    } else {\n        console.error(\"Chart instance or options.plugins is not defined\");\n    }\n}","\nexport function assistiveToolTipLibrary(key) {\n    switch(key){\n        case 'packTypeFormChannelsTooltip':\n            return \"Total number of channels for the pack. Your value needs to include temperature channel.\\nThis is not number of coils!\\nNo need to consider units.\";\n        case 'packTypeFormMinLimitTooltip':\n            return \"Minimum limit for pack. In other words, minimum length for packs's stroke length.\\nNo need to consider units.\";\n        case 'packTypeFormMaxLimitTooltip':\n            return \"Maximum limit for pack. In other words, maximum length for pack's stroke length.\\nNo need to consider units.\";\n\n        case 'packTypeFormP1UnloadMin':\n            return \"Minimum value accepted directly from pack.\\nFor Phase 1 unload.\\nNo need to consider units.\";\n        case 'packTypeFormP1UnloadMax':\n            return \"Maximum value accepted directly from pack.\\nFor Phase 1 unload.\\nNo need to consider units.\";\n            \n        case 'packTypeFormP1LoadMin':\n            return \"Minimum value accepted directly from pack.\\nFor Phase 1 load.\\nNo need to consider units.\";\n        case 'packTypeFormP1LoadMax':\n            return \"Maximum value accepted directly from pack.\\nFor Phase 1 load.\\nNo need to consider units.\";\n\n        case 'packTypeFormP2Load2Min':\n            return \"Minimum value accepted directly from pack.\\nFor Phase 2 load 2.\\nNo need to consider units.\";\n        case 'packTypeFormP2Load2Max':\n            return \"Maximum value accepted directly from pack.\\nFor Phase 2 load 2.\\nNo need to consider units.\";\n\n        case 'packTypeFormP2Unload2Min':\n            return \"Minimum value accepted directly from pack.\\nFor Phase 2 unload 2.\\nNo need to consider units.\";\n        case 'packTypeFormP2Unload2Max':\n            return \"Maximum value accepted directly from pack.\\nFor Phase 2 unload 2.\\nNo need to consider units.\";\n        case 'packTypeFormUnloadAcceptedVariance':\n            return \"Boundary used to determine if unload step is successful or failure.\\nDefault value is 300.\\nFor all unload stages.\\nNo need to consider units.\";\n        case 'packTypeFormLoadAcceptedVariance':\n            return \"Boundary used to determine if load step is successful or failure.\\nDefault value is 850.\\nFor all load stages.\\nNo need to consider units.\";\n        case 'rigFormRigIPTooltip':\n            return \"It is the IP address associated with this and only this rig. When connecting to websocket, it will use this IP value.\";        \n        case 'rigFormRigNameTooltip':\n            return \"This is used for labeling this rig. At no point will the name be used in any areas of the calibration phases.\\nIt is purely for verbally identifying each rig.\";        \n        case 'rigFormRigCategoryTooltip':\n            return \"This is to identify the specific type of rig.\\nCurrently the only supported types are: PUMP & STEPPER.\";\n        case 'rigFormReferenceIDTooltip':\n            return \"This is the serial number associated with the attached sensor.\";\n        case 'rigFormReferenceCalibrationValueTooltip':\n            return \"This is the certificate ID or certificate serial number associated with the attached sensor.\";\n        case 'rigFormReferenceCalibrationDateTooltip':\n            return \"This is the date of certificate associated with the attached sensor.\";\n        case 'packTypeFormTotalCoilsCount':\n            return \"This is the total number of coils on the board.\\nIt does not refer to the total number of coils being used.\\nMaximum for current board is 8 coils.\";\n        case 'packTypeFormActiveCoilsCount':\n            return \"This is total number of coils being used on the board.\\nThere is a chance that not all coils on the board will be occupied.\\nThis is very important to know exactly what you will be inputting.\\nIf you are sure, please contact your superiors.\\nNo need to consider temperature.\"\n        case 'packTypeFormGeneralCoilsPositions':\n            return \"This is for the position of active coils.\\nThis is not index, so in laymen's terms, what is the position for each coil?\\nDo not consider coil(s) which is unfilled.\\n eg. If I have 8-Pack, then it will be 1,2,3,4,5,6,7 and 8 unfilled.\\nNo need to consider temperature.\";\n        case 'packTypeFormReferenceUnfilledCoilsPositions':\n            return \"This is for the position of unfilled coils.\\nThis is not index, so in laymen's terms, what is the position for unfilled coil(s)?\\nDo not consider coil(s) which is filled.\\nNo need to consider temperature.\"\n                                        \n    }\n}","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport Chart from 'chart.js/auto';\nimport printJS from 'print-js';\nimport { getApiBaseUrl } from \"../utils/api-config\";\n\n//Status Code & Incoming & Outgoing Libraries\n//  Allocate 500-549\nexport function connectionStatusLibrary(code) {\n    let statusObject = {\n        key:code,\n        value:\"\",\n        color:\"\",\n    }\n    switch(code){\n        case 500:\n            statusObject[\"value\"] = \"Not Connected\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 501:\n            statusObject[\"value\"] = \"Connecting...\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 502:\n            statusObject[\"value\"] = \"Connected\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n    }\n}\n//  Allocate 550-599\nexport function packStatusLibrary(code) {\n    let statusObject = {\n        key:code,\n        value:\"\",\n        color:\"\",\n    }\n    switch(code){\n        case 550:\n            statusObject[\"value\"] = \"Error\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 551:\n            statusObject[\"value\"] = \"Idle\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 552:\n            statusObject[\"value\"] = \"Emergency Stopping...\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 553:\n            statusObject[\"value\"] = \"Phase I: Emergency Stopped\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 554:\n            statusObject[\"value\"] = \"Phase II: Emergency Stopped\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 555:\n            statusObject[\"value\"] = \"Phase I: Soft Resetting\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 559:\n            statusObject[\"value\"] = \"Phase II: Soft Resetting\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 560:\n            statusObject[\"value\"] = \"Delay\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 561:\n            statusObject[\"value\"] = \"Hard Resetting\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 562:\n            statusObject[\"value\"] = \"Phase I: Require Unload I!\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 563:\n            statusObject[\"value\"] = \"Phase I: Require Load I!\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 564:\n            statusObject[\"value\"] = \"Phase II: Require Unload I!\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 565:\n            statusObject[\"value\"] = \"Phase II: Require Load I!\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 566:\n            statusObject[\"value\"] = \"Phase II: Require Load II!\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 567:\n            statusObject[\"value\"] = \"Phase II: Require Unload II!\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 568:\n            statusObject[\"value\"] = \"Phase I: Sampling....\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 569:\n            statusObject[\"value\"] = \"Phase II: Sampling....\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 570:\n            statusObject[\"value\"] = \"Phase I: Validating....\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 572:\n            statusObject[\"value\"] = \"Phase I: Complete\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 573:\n            statusObject[\"value\"] = \"Phase II: Complete\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 574:\n            statusObject[\"value\"] = \"Phase II: Reflash!\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n        case 575:\n            statusObject[\"value\"] = \"Stage Delay\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 576:\n            statusObject[\"value\"] = \"Coils Stabilizing....\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 577:\n            statusObject[\"value\"] = \"Coils Stabilization Failed\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 578:\n            statusObject[\"value\"] = \"Phase I: Sending CMDs..\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 579:\n            statusObject[\"value\"] = \"Phase II: Sending CMDs..\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n    }\n}\n//  Allocate 600-649\nexport function generalStatusLibrary(code) {\n    let statusObject = {\n        key:code,\n        value:\"\",\n        color:\"\",\n    }\n    switch(code){\n        case 600:\n            statusObject[\"value\"] = \"-\",\n            statusObject[\"color\"] = \"black\"\n            return statusObject;\n        case 601:\n            statusObject[\"value\"] = \"Unavailable\",\n            statusObject[\"color\"] = \"orange\"\n            return statusObject;\n        case 602:\n            statusObject[\"value\"] = \"Need Validation\",\n            statusObject[\"color\"] = \"red\"\n            return statusObject;\n        case 603:\n            statusObject[\"value\"] = \"Validated\",\n            statusObject[\"color\"] = \"green\"\n            return statusObject;\n    }\n}\nexport function incomingMessageLibrary(context, key,value){\n    switch(key){\n        case \"notification\":\n            const rigProfile = context.get(\"userInputtedData.selectedRigProfile\");\n            if(rigProfile != null && context.get(\"frontendData.rigNotificationData\").hasOwnProperty(rigProfile['data']['rigID'])){\n                context.get(\"frontendData.rigNotificationData\")[rigProfile['data']['rigID']]['messages'].push(`(${getCurrentDateTime()})-${value}`);\n            }\n            break;\n        case \"sensorData\":\n            let parsedData = '';\n            if(value.includes(\"YP\")){\n                parsedData = parseMessage2(value);\n            }else{\n                parsedData = parseMessage1(value);\n            }\n            // console.log(parsedData);\n            // console.log(`parsedData1:${parsedData}`);\n            //Update Anchor Live View Section\n            updateAnchorBoardLiveViewData(parsedData);\n            //Update Anchor Live Chart\n            updateAnchorChartLiveViewData(parsedData);\n            //Handle sampling if it is on\n            if(context.get(\"packValidationIsSamplingData\")[\"isPhaseISampling\"]){\n                handleSampleValidityPhaseIModule(context, parsedData);\n            }\n            else if(context.get(\"packValidationIsSamplingData\")[\"isPhaseIISampling\"]){\n                handleSampleValidityPhaseIIModule(context, parsedData);\n            }\n            return;\n    }\n}\nexport async function outgoingMessageLibrary(context, cmd, value, type=null){\n    //Check if websocket is still alive, if so send the command, attach type of cmds if needed in the switch case\n    let msg = null;\n    console.log(`cmd:${cmd}, value:${value}`);\n    switch(cmd){\n        //For cmd not needing type such as \"setStepper 22.2\"\n        case \"setTarget\":\n            const calibProfile = context.get(\"userInputtedData.selectedPackType\");\n            if(calibProfile != null && calibProfile['data'] != null ){\n                const data = calibProfile['data'];\n                const checkpointSpeed = data['checkpointSpeed'];\n                const customStatusObj2 = {};\n                customStatusObj2[\"value\"] = value;\n                customStatusObj2[\"color\"] = \"black\";\n                context.set(\"dashboardStatusBarData.target\",customStatusObj2);\n                msg = `WS+MOV=${value},${checkpointSpeed}`;\n                break;\n            }\n        case \"manualStepper\":\n        // case \"manualPump\":\n            msg = `WS+JOG=${value},1`;\n            break;\n        case 'emergencyStop':\n            msg = 'WS+STOP=1';\n            break;\n        //For control panel hotkeys\n        case \"stepperInit\":\n            msg = `WS+SETHOME=1`;\n            break; \n        case \"stepper0\":\n            msg = `WS+MOVHOME=1`;\n            break; \n        case \"getRigActivity\":\n            console.log(`trigger easter egg`);\n            break;\n        case \"setMode\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=0\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"getDetails\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=6\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break; \n        case \"setChannels\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=1\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setStroke\":  \n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=2\", `WS+COMMAND=${value}00`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setSensorID\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=3\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setType\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=4\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setDescription\":\n            await sendBatchCommands(context, [\"WS+COMMAND_MODE=1\", \"WS+COMMAND=5\", `WS+COMMAND=${value}`, \"WS+COMMAND=9\"]);\n            break;\n        case \"setExit\":\n            await sendBatchCommands(context, [\"WS+COMMAND=9\"]);\n            break;\n        default:\n            msg = `${type ? type : \"\"} ${cmd} ${value}`;\n            break;\n    }\n    if(context.ws != null){\n        if (msg){\n            appendLiveLog(context,msg, 'outgoing');\n            showPopup([`Message sent: ${msg}`],'success');\n            console.log(`Sending message:${msg}`);\n            context.ws.send(msg);\n        }\n    }else{\n        showPopup([`Cannot send command!`, `Please connect to a rig first!`],'error');\n\n    }\n    \n}\nexport function generalPermissionLibrary(code) {\n    switch(code){\n        case 'validateButton':\n            return ['add_calibrationinstrumentprofile', 'add_calibrationcalibratedinstrumentdata', 'add_calibrationcalibratedinstrumentlookupdata',\n                'view_calibrationinstrumentprofile','view_calibrationinstrumentdata','view_calibrationinstrumentlookup',\n                'change_calibrationinstrumentprofile','change_calibrationinstrumentdata','change_calibrationinstrumentlookup'\n            ];\n        case 'getRigsList':\n            return ['view_calibrationrigprofile'];\n        case 'saveRigButton':\n            return ['add_calibrationrigprofile'];\n        case 'deleteRigButton':\n            return ['delete_calibrationrigprofile'];\n        case 'editRigButton':\n            return ['change_calibrationrigprofile'];\n        case 'getCalibProfileList':\n            return ['view_calibrationcalibrationprofile'];\n        case 'saveCalibProfileButton':\n            return ['add_calibrationcalibrationprofile'];\n        case 'deleteCalibProfileButton':\n            return ['delete_calibrationcalibrationprofile'];\n        case 'editCalibProfileButton':\n            return ['change_calibrationcalibrationprofile'];\n        case 'calibratedInstrumentTable':\n            return ['view_calibrationinstrumentprofile','view_calibrationcalibratedinstrumentdata', 'view_calibrationcalibratedinstrumentlookupdata'];\n    }\n}\n//Popup & Notification Section\nexport async function showPopup(messageArray, mode = 'standard', seconds = 1) {\n    const popup = document.getElementById('popupMessageSection');\n    const popupBody = document.getElementById('popupMessageBody');\n\n    // Define color based on mode\n    let color = '';\n    switch (mode) {\n        case \"success\":\n            color = \"green\";\n            break;\n        case \"warning\":\n            color = \"orange\";\n            break;\n        case \"notification\":\n            color = \"#4A6A9C\";\n            break;\n        case \"error\":\n            color = \"red\";\n            break;\n        case \"standard\":\n            color = \"black\";\n            break;\n    }\n\n    // Remove existing animation styles\n    const existingStyles = document.querySelectorAll(\"[id^='pulse-border-']\");\n    existingStyles.forEach((styleElement) => styleElement.remove());\n\n    // Define new animation name and style\n    const animationName = `pulse-border-${color.replace(/[^a-zA-Z0-9]/g, '')}`;\n    const styleSheet = document.createElement('style');\n    styleSheet.type = 'text/css';\n    styleSheet.id = animationName;\n\n    styleSheet.innerHTML = `\n        @keyframes ${animationName} {\n            0% {\n                border-color: white;\n            }\n            5% {\n                border-color: ${color};\n            }\n            100% {\n                border-color: white;\n            }\n        }\n    `;\n    document.head.appendChild(styleSheet);\n\n    // Apply the new animation dynamically\n    popup.style.animation = 'none'; // Reset animation\n    popup.offsetHeight; // Trigger reflow\n    popup.style.animation = `${animationName} 1s infinite linear`;\n\n    // Reset border color explicitly\n    popup.style.borderColor = color;\n\n    // Display the popup\n    popup.style.visibility = 'visible';\n    popup.style.opacity = 1;\n\n    // Clear previous messages and populate new messages\n    popupBody.innerHTML = '';\n    messageArray.forEach((message) => {\n        const subtitleSection = document.createElement('div');\n        subtitleSection.style.fontSize = \"small\";\n        subtitleSection.style.textAlign = \"left\";\n        subtitleSection.textContent = message;\n        subtitleSection.style.overflowWrap = 'break-word'\n        popupBody.appendChild(subtitleSection);\n    });\n    let fadeOutTimeout;\n\n    const closeButton = document.createElement('div');\n    closeButton.style.fontSize = \"small\";\n    closeButton.style.textAlign = \"center\";\n    closeButton.style.cursor = \"pointer\";\n    closeButton.textContent = 'Close';\n    closeButton.style.color = 'darkgrey'\n    closeButton.style.textDecoration='underline'\n    closeButton.onclick = () => {\n        popup.style.visibility = 'hidden';\n        popup.style.animation = 'none'; // Stop the animation on hide\n        popup.style.borderColor = 'white'; // Reset border color\n        clearTimeout(fadeOutTimeout);\n\n    };\n    popupBody.appendChild(closeButton);\n\n    // Fade-out logic\n    fadeOutTimeout =  setTimeout(() => {\n        let opacity = 1;\n        const fadeOut = setInterval(() => {\n            opacity -= 0.25;\n            if (opacity <= 0) {\n                clearInterval(fadeOut);\n                popup.style.visibility = 'hidden';\n                popup.style.animation = 'none'; // Stop the animation on hide\n                popup.style.borderColor = 'white'; // Reset border color\n            }\n            popup.style.opacity = opacity;\n        }, 50);\n    }, seconds * 1000);\n}\nexport async function buildRigActivityNotificationBoard(context){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n    // const rigProfileList = context.get('rigProfileList');\n    // console.log(rigProfileList);\n    let responseData = await sendGETRequest(`rig_profile_activity_view/`);\n    const data = responseData['data'];\n    Ember.run.scheduleOnce('afterRender', context, () => {\n\n        const masterPopupContent = document.getElementById('notificationPopupContentBody');\n        if(masterPopupContent){\n\n            masterPopupContent.innerHTML = '';\n\n            // Rigs Activity Label\n            const calibTableTitle = document.createElement('div');\n            calibTableTitle.style.marginTop = '10px';\n            calibTableTitle.style.fontSize = 'medium';\n            calibTableTitle.style.textDecoration = 'underline';\n            calibTableTitle.style.fontWeight = 'bold';\n            calibTableTitle.textContent = `Rig Activity Snapshots`;\n            masterPopupContent.appendChild(calibTableTitle);\n            const table = document.createElement('table');\n            table.style.marginTop=\"10px\"\n            // Rigs Activity Table\n            //Columns\n            const thead = document.createElement('thead');\n            thead.style.borderBottom= ``;\n            const trColumns = document.createElement('tr');\n\n            const  row1HeaderObject = [{key:\"rigID\",label:\"ID\",},{key:\"rigIP\",label:\"IP\",},\n                {key:\"rigName\",label:\"Name\",},\n                {key:\"rigCategory\",label:\"Category\",},\n                {key:\"latestDate\",label:\"Last Update\",},\n                {key:\"status\",label:\"Validation Status\",},\n                {key:\"connection\",label:\"Connection Status\",},\n                {key:\"activity\",label:\"Activity Status\",},\n                {key:\"activeUser\",label:\"User\",},\n                {key:\"company\",label:\"Company\",},\n                {key:\"connectedTo\",label:\"Sensor Connected\",},\n            ]\n            row1HeaderObject.forEach((columnObject, index)=>{\n                const thColumn = document.createElement('th');\n                thColumn.style.fontSize= `small`;\n                thColumn.style.border= `solid`;\n                thColumn.style.borderWidth= `1px`;\n                thColumn.style.borderColor= `black`;\n                thColumn.style.textAlign ='center';\n                thColumn.textContent= `${columnObject['label']}`;\n                trColumns.appendChild(thColumn);\n            });\n\n            thead.appendChild(trColumns);\n            table.appendChild(thead);\n            //Rows\n            const tbody = document.createElement('tbody');\n            for(let i=0;i< data.length;i++){\n                const rigProfile = data[i]\n                const rigID = rigProfile['rigID']\n                const activityJSON = rigProfile['activityJSON']\n                const trRows = document.createElement('tr');\n                row1HeaderObject.forEach((columnObject, index)=>{\n                    const tdRowData = document.createElement('td');\n                    tdRowData.style.fontSize= `small`;\n                    tdRowData.style.border= `solid`;\n                    tdRowData.style.borderWidth= `1px`;\n                    tdRowData.style.textAlign ='center';\n                    switch(columnObject['key']){\n                        case \"status\":\n                            tdRowData.textContent= `${generalStatusLibrary(activityJSON[columnObject['key']]) ? generalStatusLibrary(activityJSON[columnObject['key']]).value : \"\"}`;\n                            break;\n                        case \"connection\":\n                            tdRowData.textContent= `${connectionStatusLibrary(activityJSON[columnObject['key']]) ? connectionStatusLibrary(activityJSON[columnObject['key']]).value : \"\"}`;\n                            break;\n                        case \"activity\":\n                            tdRowData.textContent= `${packStatusLibrary(activityJSON[columnObject['key']]) ? packStatusLibrary(activityJSON[columnObject['key']]).value : \"\"}`;\n                            break;\n                        default:\n                            tdRowData.textContent= `${activityJSON[columnObject['key']] ? activityJSON[columnObject['key']] : \"N/A\"}`;\n                            break;\n\n                    }\n                    trRows.appendChild(tdRowData);\n                });\n                tbody.appendChild(trRows);\n            }\n\n            table.appendChild(tbody);\n            masterPopupContent.appendChild(table);\n\n    \n            //Display and setup Ok Button notificationRefreshButton\n            const refreshButtonComponent = document.getElementById('notificationRefreshButton');\n            refreshButtonComponent.style.display = \"block\";\n            refreshButtonComponent.style.marginRight = \"10px\";\n            refreshButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n                buildRigActivityNotificationBoard(context);\n            };\n            const okButtonComponent = document.getElementById('notificationOkButton');\n            okButtonComponent.style.display = \"block\";\n            okButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n        }\n    });\n}\nexport function buildRigNotificationNotificationBoard(context){\n    context.set(\"isShowConfig.isShowPopupNotification\", true);\n    Ember.run.scheduleOnce('afterRender', context, () => {\n\n        const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n        if(popupContentSectionComponent){\n\n            popupContentSectionComponent.innerHTML = '';\n    \n            //Phase I label Section\n            Object.entries(context.get(\"frontendData.rigNotificationData\")).forEach(([key, rigObject]) => {\n                const messagesArray = rigObject['messages'];\n                const data = rigObject['data'];\n\n                const rigLabelSection = document.createElement('div');\n                rigLabelSection.id=`rigLabelSection${data['rigID']}`\n                rigLabelSection.style.fontSize = \"small\";\n                rigLabelSection.textContent = `${data['rigName']} Messages:`;\n                rigLabelSection.style.paddingLeft = \"15px\";\n\n                // Add a long press event listener\n                let pressTimer; // Variable to track the timer for each component\n            \n                // Listen for mouse down (start the timer)\n                rigLabelSection.addEventListener('mousedown', (event) => {\n                    pressTimer = setTimeout(() => {\n                        showPopup([`Notifications for Rig ${data['rigName']} has been cleared.`, 'standard'])\n                        context.set(\"frontendData.rigNotificationData\",{...context.get(\"frontendData.rigNotificationData\"), [data['rigID']]: {data:data, messages:[]} });\n                        context.send('closeNotificationPopup'); \n                        context.send('viewRigNotifications'); \n                        \n                    }, 1500); // 2.5 seconds\n                });\n            \n                // Listen for mouse up (cancel the timer if the user releases the mouse early)\n                rigLabelSection.addEventListener('mouseup', () => {\n                    clearTimeout(pressTimer);\n                });\n            \n                // Listen for mouse leave (cancel the timer if the user moves the mouse away early)\n                rigLabelSection.addEventListener('mouseleave', () => {\n                    clearTimeout(pressTimer);\n                });\n\n                popupContentSectionComponent.appendChild(rigLabelSection);\n\n                messagesArray.forEach((message, index)=>{\n                    const rigMessage = document.createElement('div');\n                    rigMessage.style.fontSize = \"small\";\n                    rigMessage.textContent = `${message}`;\n                    rigMessage.style.paddingLeft = \"30px\";\n                    rigLabelSection.appendChild(rigMessage);\n\n                });\n              });\n    \n            //Display and setup Ok Button\n            const okButtonComponent = document.getElementById('notificationOkButton');\n            okButtonComponent.style.display = \"block\";\n            okButtonComponent.onclick = () => {\n                context.send('closeNotificationPopup'); \n            };\n    \n            // if(context.get(\"packsValidationData\")['phase1UnloadData']\n        }\n    });\n}\nexport function reflashPopup(context){\n    /**\n     * Case sensitive \n     */\n    return new Promise((resolve) => {\n        try{\n            context.set(\"isShowConfig.isShowPopupNotification\", true);\n            Ember.run.scheduleOnce('afterRender', context, () => {\n                const masterPopupContent = document.getElementById('notificationPopupContentBody');\n                if(masterPopupContent){\n                    //X Cloe Button \n                    const xButtonComponent = document.getElementById('closeXButton');\n                    xButtonComponent.style.display ='none';\n                    //Main Title\n                    const mainComponent = document.createElement('div');\n                    mainComponent.style.alignSelf = 'center';\n                    mainComponent.style.fontSize = ' x-large';\n                    mainComponent.style.fontWeight = 'bold';\n                    mainComponent.style.color = 'red';\n                    mainComponent.textContent = `Please reflash your pack!`;\n                    masterPopupContent.appendChild(mainComponent);\n                    //Timer Warning message 3\n                    const reflashWarningComponent1 = document.createElement('div');\n                    reflashWarningComponent1.style.alignSelf = 'center';\n                    reflashWarningComponent1.style.fontSize = 'medium';\n                    reflashWarningComponent1.textContent = `When you are done reflashing and ready, please click Ready!`;\n                    masterPopupContent.appendChild(reflashWarningComponent1);\n    \n                    const readyButtonComponent = document.getElementById('notificationReadyButton');\n                    readyButtonComponent.style.display = \"block\";\n                    readyButtonComponent.style.marginRight = \"10px\";\n                    const closePopupAndResolve = () => {\n                        xButtonComponent.style.display = 'block';\n                        context.send('closeNotificationPopup');\n                        resolve(true); \n                        document.removeEventListener('keydown', enterKeyHandler);\n                    };\n\n                    readyButtonComponent.onclick = closePopupAndResolve;\n                    const enterKeyHandler = (event) => {\n                        if (event.key === \"Enter\") {\n                            closePopupAndResolve();\n                        }\n                    };\n                    document.addEventListener('keydown', enterKeyHandler);\n                    const abortButtonComponent = document.getElementById('notificationAbortButton');\n                    abortButtonComponent.style.display = \"block\";\n                    abortButtonComponent.style.backgroundColor = \"red\"; \n                    abortButtonComponent.style.borderColor = \"red\"; \n                    const abortResolve = () => {\n                        xButtonComponent.style.display = 'block';\n                        context.send('closeNotificationPopup');\n                        document.removeEventListener('keydown', enterKeyHandler);\n                        context.get(\"emergencyController\").abort();\n                        resolve(false)\n                    };\n                    abortButtonComponent.onclick = abortResolve;\n    \n                }\n            });\n    \n        }catch (error) {\n            console.error('Error reflashPopup:', error);\n            resolve(false);\n            document.removeEventListener('keydown', enterKeyHandler);\n\n        }\n    });\n}\nexport function unloadLoadPopup(context, phaseText){\n    /**\n     * phaseText is either 'unload' or 'load'. \n     * Case sensitive \n     */\n    return new Promise((resolve) => {\n        try{\n            let timer = 300;\n            context.set(\"isShowConfig.isShowPopupNotification\", true);\n            Ember.run.scheduleOnce('afterRender', context, () => {\n                const masterPopupContent = document.getElementById('notificationPopupContentBody');\n                if(masterPopupContent){\n                    //X Cloe Button \n                    const xButtonComponent = document.getElementById('closeXButton');\n                    xButtonComponent.style.display ='none';\n                    //Main Title\n                    const mainComponent = document.createElement('div');\n                    mainComponent.style.alignSelf = 'center';\n                    mainComponent.style.fontSize = ' x-large';\n                    mainComponent.style.fontWeight = 'bold';\n                    mainComponent.textContent = `Please ${phaseText} your pack!`;\n                    masterPopupContent.appendChild(mainComponent);\n                    //Timer Warning message 1\n                    const timerWarningComponent1 = document.createElement('div');\n                    timerWarningComponent1.style.alignSelf = 'center';\n                    timerWarningComponent1.style.fontSize = 'medium';\n                    timerWarningComponent1.style.color = 'red';\n                    timerWarningComponent1.style.fontWeight = 'bold';\n                    const interval = setInterval(() => {\n                        timerWarningComponent1.textContent = `You have ${timer} seconds to ${phaseText} the pack!`;\n                        const progressBarSection = document.getElementById('packsProgressionPopupViewSection');\n                        const progressBarFill = document.getElementById('packsProgressionPopupViewBar');\n                        let progressPercentage = ((300 - timer) / 300) * 100;\n                        progressPercentage = Math.min(progressPercentage, 100); // Ensures max is 100%\n                        progressBarSection.style.display = \"flex\"; \n                    \n                        progressBarFill.style.width = `${progressPercentage}%`;\n                        timer -= 1;\n                        if(timer < 0){\n                            const xButtonComponent = document.getElementById('closeXButton');\n                            xButtonComponent.style.display ='block';\n                            clearInterval(interval);\n                            context.send('closeNotificationPopup'); \n                            resolve(true);\n                        }\n                    }, 1000); \n                    masterPopupContent.appendChild(timerWarningComponent1);\n                    //Timer Bar Section\n                    const timerBarSection = document.createElement('div');\n                    timerBarSection.id='packsProgressionPopupViewSection'\n                    timerBarSection.class='packsProgressionViewSection'\n                    //Timer Bar \n                    const timerBarBar = document.createElement('div');\n                    timerBarBar.id='packsProgressionPopupViewBar'\n                    timerBarBar.className='packsProgressionBar'\n                    //Timer Bar Value\n                    const timerBarValue = document.createElement('div');\n                    timerBarValue.id='packsProgressionPopupViewValue'\n                    timerBarValue.className='packsProgressionValue'\n    \n                    timerBarSection.appendChild(timerBarBar);\n                    masterPopupContent.appendChild(timerBarSection);\n                    //Timer Warning message 2\n                    const timerWarningComponent2 = document.createElement('div');\n                    timerWarningComponent2.style.alignSelf = 'center';\n                    timerWarningComponent2.style.fontSize = 'medium';\n                    timerWarningComponent2.textContent = `If you do not meet the time, operation will continue regardless.`;\n                    masterPopupContent.appendChild(timerWarningComponent2);\n                    //Timer Warning message 3\n                    const timerWarningComponent3 = document.createElement('div');\n                    timerWarningComponent3.style.alignSelf = 'center';\n                    timerWarningComponent3.style.fontSize = 'small';\n                    timerWarningComponent3.textContent = `If you are ready before the counter, please click the button below.`;\n                    masterPopupContent.appendChild(timerWarningComponent3);\n    \n                    const readyButtonComponent = document.getElementById('notificationReadyButton');\n                    readyButtonComponent.style.display = \"block\";\n                    readyButtonComponent.style.marginRight = \"10px\";\n                    const closePopupAndResolve = () => {\n                        clearInterval(interval);\n                        xButtonComponent.style.display = 'block';\n                        context.send('closeNotificationPopup');\n                        resolve(true); \n                        document.removeEventListener('keydown', enterKeyHandler);\n                    };\n\n                    readyButtonComponent.onclick = closePopupAndResolve;\n                    const enterKeyHandler = (event) => {\n                        if (event.key === \"Enter\") {\n                            closePopupAndResolve();\n                        }\n                    };\n                    document.addEventListener('keydown', enterKeyHandler);\n                    const abortButtonComponent = document.getElementById('notificationAbortButton');\n                    abortButtonComponent.style.display = \"block\";\n                    abortButtonComponent.style.backgroundColor = \"red\"; \n                    abortButtonComponent.style.borderColor = \"red\"; \n                    const abortResolve = () => {\n                        clearInterval(interval);\n                        xButtonComponent.style.display = 'block';\n                        context.send('closeNotificationPopup');\n                        document.removeEventListener('keydown', enterKeyHandler);\n                        context.get(\"emergencyController\").abort();\n                        resolve(false)\n                    };\n                    abortButtonComponent.onclick = abortResolve;\n    \n                }\n            });\n    \n        }catch (error) {\n            console.error('Error unloadLoadPopup:', error);\n            resolve(false);\n            document.removeEventListener('keydown', enterKeyHandler);\n\n        }\n    });\n}\nexport function packValidationConclusion(context, phaseText, packID = null){\n    /**\n     * phaseText is either 'phaseI' or 'phaseII'. \n     * Case sensitive \n     */\n    try{\n        const title = phaseText === 'phaseI' ? \"Phase 1\" : \"Phase 2\";\n        let timer = 30;\n        context.set(\"isShowConfig.isShowPopupNotification\", true);\n        Ember.run.scheduleOnce('afterRender', context, () => {\n            const masterPopupContent = document.getElementById('notificationPopupContentBody');\n            if(masterPopupContent){\n                //X Close Button \n                const xButtonComponent = document.getElementById('closeXButton');\n                xButtonComponent.style.display ='none';\n                //Main Title\n                const mainComponent = document.createElement('div');\n                mainComponent.style.alignSelf = 'center';\n                mainComponent.style.fontSize = ' x-large';\n                mainComponent.style.fontWeight = 'bold';\n                mainComponent.textContent = `Did you pass ${title}?`;\n                masterPopupContent.appendChild(mainComponent);\n                //PackID Title\n                if(packID != null ){\n                    const packIDComponent = document.createElement('div');\n                packIDComponent.style.alignSelf = 'center';\n                packIDComponent.style.fontSize = 'large';\n                packIDComponent.textContent = `Pack ID: ${packID}`;\n                masterPopupContent.appendChild(packIDComponent);}\n                if(phaseText === 'phaseI'){\n                    //Row 1A\n                    const row1A = document.createElement('div');\n                    row1A.style.display='flex';\n                    row1A.style.flexDirection='row';\n                    row1A.style.alignItems='center';\n                    row1A.style.justifyContent='space-between';\n                    //Data Value for Unload\n                    const dataValueUnload = document.createElement('div');\n                    dataValueUnload.style.fontSize = 'medium';\n                    dataValueUnload.style.marginRight = '10px';\n                    dataValueUnload.textContent = `Unload Data: [${context.get('packsValidationData.phase1UnloadData')[0].toString()}]`;\n                    //Data Validity for Unload\n                    const dataValidityUnload = document.createElement('div');\n                    dataValidityUnload.style.fontSize = 'large';\n                    dataValidityUnload.style.fontWeight = 'bold';\n                    dataValidityUnload.style.color = context.get('packsValidationData.phase1ValidityData.unload') ? 'green' : 'red';\n                    dataValidityUnload.textContent = context.get('packsValidationData.phase1ValidityData.unload') ? 'PASS' : 'FAIL';\n                    //Append to Row 1A\n                    row1A.appendChild(dataValueUnload);\n                    row1A.appendChild(dataValidityUnload);\n                    masterPopupContent.appendChild(row1A);\n\n                    //Row 1B\n                    const row1B = document.createElement('div');\n                    row1B.style.display='flex';\n                    row1B.style.flexDirection='row';\n                    row1B.style.alignItems='center';\n                    row1B.style.justifyContent='space-between';\n                    //Data Value for Load\n                    const dataValueLoad = document.createElement('div');\n                    dataValueLoad.style.fontSize = 'medium';\n                    dataValueLoad.style.marginRight = '10px';\n                    dataValueLoad.textContent = `Load Data: [${context.get('packsValidationData.phase1LoadData')[0].toString()}]`;\n                    //Data Validity for Load\n                    const dataValidityLoad = document.createElement('div');\n                    dataValidityLoad.style.fontSize = 'large';\n                    dataValidityLoad.style.fontWeight = 'bold';\n                    dataValidityLoad.style.color = context.get('packsValidationData.phase1ValidityData.load') ? 'green' : 'red';\n                    dataValidityLoad.textContent = context.get('packsValidationData.phase1ValidityData.load') ? 'PASS' : 'FAIL';\n                    //Append to Row 1B\n                    row1B.appendChild(dataValueLoad);\n                    row1B.appendChild(dataValidityLoad);\n                    row1B.appendChild(dataValidityLoad);\n                    masterPopupContent.appendChild(row1B);\n\n                    //Conclusion Validity\n                    const conclusionValidity = document.createElement('div');\n                    conclusionValidity.style.alignSelf = 'center';\n                    conclusionValidity.style.fontSize = 'xx-large';\n                    conclusionValidity.style.fontWeight = 'bold';\n                    conclusionValidity.style.color = context.get('packsValidationData.phase1ValidityData.final') == null ? \"black\" : context.get('packsValidationData.phase1ValidityData.final') ? 'green' : 'red';\n                    conclusionValidity.textContent = context.get('packsValidationData.phase1ValidityData.final') == null ? \"N/A\" : context.get('packsValidationData.phase1ValidityData.final') ? 'PASS' : 'FAIL';\n                    masterPopupContent.appendChild(conclusionValidity);\n                }else{\n                    //Row 2A\n                    const row2A = document.createElement('div');\n                    row2A.style.display='flex';\n                    row2A.style.flexDirection='row';\n                    row2A.style.alignItems='center';\n                    row2A.style.justifyContent='space-between';\n                    //Data Value for Unload1\n                    const dataValueUnload1 = document.createElement('div');\n                    dataValueUnload1.style.fontSize = 'medium';\n                    dataValueUnload1.style.marginRight = '10px';\n                    dataValueUnload1.textContent = `Unload Part 1 Data: [${context.get('packsValidationData.phase2UnloadData1')[0].toString()}]`;\n                    masterPopupContent.appendChild(dataValueUnload1);\n                    //Data Validity for Unload1\n                    const dataValidityUnload1 = document.createElement('div');\n                    dataValidityUnload1.style.fontSize = 'large';\n                    dataValidityUnload1.style.fontWeight = 'bold';\n                    dataValidityUnload1.style.color = context.get('packsValidationData.phase2ValidityData.unload1') ? 'green' : 'red';\n                    dataValidityUnload1.textContent = context.get('packsValidationData.phase2ValidityData.unload1') ? 'PASS' : 'FAIL';\n                    //Append to Row 2A\n                    row2A.appendChild(dataValueUnload1);\n                    row2A.appendChild(dataValidityUnload1);\n                    masterPopupContent.appendChild(row2A);\n                    \n                    //Row 2B\n                    const row2B = document.createElement('div');\n                    row2B.style.display='flex';\n                    row2B.style.flexDirection='row';\n                    row2B.style.alignItems='center';\n                    row2B.style.justifyContent='space-between';\n                    //Data Value for Load1\n                    const dataValueLoad1 = document.createElement('div');\n                    dataValueLoad1.style.fontSize = 'medium';\n                    dataValueLoad1.style.marginRight = '10px';\n                    dataValueLoad1.textContent = `Load Part 1 Data: [${context.get('packsValidationData.phase2LoadData1')[0].toString()}]`;\n                    masterPopupContent.appendChild(dataValueLoad1);\n                    //Data Validity for Load1\n                    const dataValidityLoad1 = document.createElement('div');\n                    dataValidityLoad1.style.fontSize = 'large';\n                    dataValidityLoad1.style.fontWeight = 'bold';\n                    dataValidityLoad1.style.color = context.get('packsValidationData.phase2ValidityData.load1') ? 'green' : 'red';\n                    dataValidityLoad1.textContent = context.get('packsValidationData.phase2ValidityData.load1') ? 'PASS' : 'FAIL';\n                    //Append to Row 2B\n                    row2B.appendChild(dataValueLoad1);\n                    row2B.appendChild(dataValidityLoad1);\n                    masterPopupContent.appendChild(row2B);\n                    \n                    //Row 2C\n                    const row2C = document.createElement('div');\n                    row2C.style.display='flex';\n                    row2C.style.flexDirection='row';\n                    row2C.style.alignItems='center';\n                    row2C.style.justifyContent='space-between';\n                    //Data Value for Load2\n                    const dataValueLoad2 = document.createElement('div');\n                    dataValueLoad2.style.fontSize = 'medium';\n                    dataValueLoad2.style.marginRight = '10px';\n                    dataValueLoad2.textContent = `Load Part 2 Data: [${context.get('packsValidationData.phase2LoadData2')[0].toString()}]`;\n                    //Data Validity for Load2\n                    const dataValidityLoad2 = document.createElement('div');\n                    dataValidityLoad2.style.fontSize = 'large';\n                    dataValidityLoad2.style.fontWeight = 'bold';\n                    dataValidityLoad2.style.color = context.get('packsValidationData.phase2ValidityData.load2') ? 'green' : 'red';\n                    dataValidityLoad2.textContent = context.get('packsValidationData.phase2ValidityData.load2') ? 'PASS' : 'FAIL';\n                    //Append to Row 2B\n                    row2C.appendChild(dataValueLoad2);\n                    row2C.appendChild(dataValidityLoad2);\n                    masterPopupContent.appendChild(row2C);\n                    \n                    //Row 2D\n                    const row2D = document.createElement('div');\n                    row2D.style.display='flex';\n                    row2D.style.flexDirection='row';\n                    row2D.style.alignItems='center';\n                    row2D.style.justifyContent='space-between';\n                    //Data Value for Unload2\n                    const dataValueUnload2 = document.createElement('div');\n                    dataValueUnload2.style.fontSize = 'medium';\n                    dataValueUnload2.style.marginRight = '10px';\n                    dataValueUnload2.textContent = `Unload Part 2 Data: [${context.get('packsValidationData.phase2UnloadData2')[0].toString()}]`;\n                    //Data Validity for Unload2\n                    const dataValidityUnload2 = document.createElement('div');\n                    dataValidityUnload2.style.fontSize = 'large';\n                    dataValidityUnload2.style.fontWeight = 'bold';\n                    dataValidityUnload2.style.color = context.get('packsValidationData.phase2ValidityData.unload2') ? 'green' : 'red';\n                    dataValidityUnload2.textContent = context.get('packsValidationData.phase2ValidityData.unload2') ? 'PASS' : 'FAIL';\n                    //Append to Row 2B\n                    row2D.appendChild(dataValueUnload2);\n                    row2D.appendChild(dataValidityUnload2);\n                    masterPopupContent.appendChild(row2D);\n                    \n                    //Conclusion Validity\n                    const conclusionValidity = document.createElement('div');\n                    conclusionValidity.style.alignSelf = 'center';\n                    conclusionValidity.style.fontSize = 'xx-large';\n                    conclusionValidity.style.fontWeight = 'bold';\n                    conclusionValidity.style.color = context.get('packsValidationData.phase2ValidityData.final') == null ? 'black' : context.get('packsValidationData.phase2ValidityData.final') ? 'green' : 'red';\n                    conclusionValidity.textContent = context.get('packsValidationData.phase2ValidityData.final') == null ? 'N/A' : context.get('packsValidationData.phase2ValidityData.final') ? 'PASS' : 'FAIL';\n                    masterPopupContent.appendChild(conclusionValidity);\n                    \n                    if(phaseText === 'phaseII' && context.get('packsValidationData.phase2ValidityData.final') != null &&!context.get('packsValidationData.phase2ValidityData.final')){\n                        //Row 2E\n                        const row2E = document.createElement('div');\n                        row2E.style.display='flex';\n                        row2E.style.flexDirection='row';\n                        row2E.style.alignItems='center';\n                        row2E.style.marginTop='25px';\n                        //OVerrule Username Text\n                        const overruleUsernameText = document.createElement('div');\n                        overruleUsernameText.style.fontSize = 'medium';\n                        overruleUsernameText.style.marginRight = '10px';\n                        overruleUsernameText.textContent = `Username:`;\n                        //Overrule Username Textbox\n                        const tdUsernameElement = document.createElement('td');\n                        tdUsernameElement.classList.add('input');\n                        const inputUsernameElement = document.createElement('input');\n                        inputUsernameElement.classList.add('form-control'); \n                        inputUsernameElement.setAttribute('type', 'text');\n                        inputUsernameElement.id=`overruleEmployeeUserName`;\n                        inputUsernameElement.style.fontSize = \"medium\";\n                        inputUsernameElement.style.padding = \"0px\";\n                        tdUsernameElement.appendChild(inputUsernameElement);\n                        //Overrule Password Text\n                        const overrulePasswordText = document.createElement('div');\n                        overrulePasswordText.style.fontSize = 'medium';\n                        overrulePasswordText.style.marginRight = '10px';\n                        overrulePasswordText.textContent = `Password:`;\n                        //Overrule Password Textbox\n                        const tdPassowrdElement = document.createElement('td');\n                        tdPassowrdElement.classList.add('input');\n                        const inputPasswordElement = document.createElement('input');\n                        inputPasswordElement.classList.add('form-control'); \n                        inputPasswordElement.setAttribute('type', 'password');\n                        inputPasswordElement.id=`overruleEmployeePassword`;\n                        inputPasswordElement.style.fontSize = \"medium\";\n                        inputPasswordElement.style.padding = \"0px\";\n                        tdPassowrdElement.appendChild(inputPasswordElement);\n                        //Append to Row 2E\n                        row2E.appendChild(overruleUsernameText);\n                        row2E.appendChild(tdUsernameElement);\n                        row2E.appendChild(overrulePasswordText);\n                        row2E.appendChild(tdPassowrdElement);\n                        masterPopupContent.appendChild(row2E);\n                        //Row 2F\n                        const row2F = document.createElement('div');\n                        row2F.style.display='flex';\n                        row2F.style.flexDirection='row';\n                        row2F.style.alignItems='center';\n                        row2F.style.marginTop='25px';\n                        //Phase 2 Memo\n                        \n                        const phase2SectionLabel = document.createElement('div');\n                        phase2SectionLabel.style.fontSize = 'medium';\n                        phase2SectionLabel.style.marginRight = '10px';\n                        phase2SectionLabel.textContent = `Phase 2 Memo:`;\n                        const td = document.createElement('td');\n                        td.classList.add('input');\n                        const phase2SectionValue = document.createElement('textarea');\n                        phase2SectionValue.classList.add('form-control');\n                        phase2SectionValue.id = 'phase2Memo';\n                        phase2SectionValue.style.fontSize = 'small';\n                        phase2SectionValue.style.minHeight = '120px';\n                        phase2SectionValue.style.padding = '0px';\n                        phase2SectionValue.textContent=context.get(\"userInputtedData.selectedPackData.phase2Memo\")\n                        phase2SectionValue.addEventListener('input', function(event) {\n                            try{\n                                const key = event.target.id;\n                                const value = event.target.value;\n                                context.set(\"userInputtedData.selectedPackData.phase2Memo\", value)\n                            }catch(err){\n                                console.log(`Error in packValidationConclusion: ${err.message}`);\n                                \n                            }\n                        });\n                        \n                        td.appendChild(phase2SectionValue);\n                        row2F.appendChild(phase2SectionLabel);\n                        row2F.appendChild(td);\n                        masterPopupContent.appendChild(row2F);\n                    }\n                }\n\n                const okButtonComponent = document.getElementById('notificationOkButton');\n                okButtonComponent.style.display = \"block\";\n                okButtonComponent.style.marginRight = \"10px\";\n                okButtonComponent.onclick = () => {\n                    //X Close Button \n                    const xButtonComponent = document.getElementById('closeXButton');\n                    xButtonComponent.style.display ='none';\n                    context.send('closeNotificationPopup'); \n                };\n\n                if(phaseText === 'phaseII' && context.get('packsValidationData.phase2ValidityData.final') != null && !context.get('packsValidationData.phase2ValidityData.final')){\n                    const overrruleButtonComponent = document.getElementById('notificationOverruleButton');\n                    overrruleButtonComponent.style.display = \"block\";\n                    overrruleButtonComponent.style.marginRight = \"10px\";\n                    overrruleButtonComponent.onclick = async function () {\n                        if(document.getElementById('overruleEmployeeUserName') != null && document.getElementById('overruleEmployeeUserName').value.length > 0 &&\n                        document.getElementById('overruleEmployeePassword') != null && document.getElementById('overruleEmployeePassword').value.length > 0 ){\n                            let overruleResult = await overrulePhaseIIConclusion(context, document.getElementById('overruleEmployeeUserName').value, document.getElementById('overruleEmployeePassword').value)\n                            if(overruleResult){\n                                //X Close Button \n                                const xButtonComponent = document.getElementById('closeXButton');\n                                xButtonComponent.style.display ='block';\n                                context.send('closeNotificationPopup'); \n                                context.set('packsValidationData.phase2ValidityData.final', true);\n                                showPopup(['Overrule Successful!', 'Bear in mind, you have only overruled final decision.','Decision for each sample have not been overruled!'], 'success',5);\n                            }else{\n                                showPopup(['Overrule Failed!'], 'error',5);\n\n                            }\n                        }\n                    };\n\n                }\n\n            }\n        });\n\n    }catch (error) {\n        console.error('Error unloadLoadPopup:', error);\n    }\n}\nexport async function packProfileDetailBoard(context, allowPrint, packProfile, rigProfile, packType, packData){\n    try{\n        context.set(\"isShowConfig.isShowPopupNotification\", true);\n        Ember.run.scheduleOnce('afterRender', context, () => {\n            console.log(packProfile);\n            console.log(rigProfile);\n            console.log(packType);\n            console.log(packData);\n            const popupContentSectionComponent = document.getElementById('notificationPopupContentBody');\n            if(popupContentSectionComponent){\n                popupContentSectionComponent.innerHTML = '';\n\n                //Report Title\n                const reportTitleSection = document.createElement('div');\n                reportTitleSection.style.fontSize = \"large\";\n                reportTitleSection.style.alignSelf = \"center\";\n                reportTitleSection.style.textDecoration = \"underline\";\n                reportTitleSection.textContent = `${packProfile['packName']} Report`;\n                reportTitleSection.style.fontWeight = \"bold\";\n\n                //Validity Title\n                let  finalVerdictSection = null\n                if(packData != null){\n                    let phase1VerdictString = \"\";\n                    let phase2VerdictString = \"\";\n                    const isAllDataProvided1 = packData['phase1LoadData'] != null && packData['phase1LoadData'].length > 0 &&\n                    packData['phase1UnloadData'] != null && packData['phase1UnloadData'].length > 0 \n                \n                    if(isAllDataProvided1 && packData['phase1ValidityData'] != null){\n                        phase1VerdictString = `${packData['phase1ValidityData']['final'] ? \"PASS\" : \"FAIL\"}`;\n                    }else{\n                        phase1VerdictString = \"N/A\"\n                    }\n                    const isAllDataProvided = packData['phase2LoadData1'] != null && packData['phase2LoadData1'].length > 0 &&\n                    packData['phase2LoadData2'] != null && packData['phase2LoadData2'].length > 0 &&\n                    packData['phase2UnloadData1'] != null && packData['phase2UnloadData1'].length > 0 &&\n                    packData['phase2UnloadData2'] != null && packData['phase2UnloadData2'].length > 0\n                \n                    if(isAllDataProvided && packData['phase2ValidityData'] != null){\n                        phase2VerdictString = `${packData['phase2ValidityData']['final'] ? \"PASS\" : \"FAIL\"}`;\n                    }else{\n                        phase2VerdictString = \"N/A\"\n                    }\n                    const finalVerdict1= `P1-${phase1VerdictString}`;\n                    const finalVerdict2= `P2-${phase2VerdictString}`;\n                    finalVerdictSection = document.createElement('div');\n                    finalVerdictSection.style.flexDirection = \"row\";\n                    finalVerdictSection.style.alignSelf = \"center\";\n                    finalVerdictSection.style.display = \"flex\";\n                    const p1VerdictSection = document.createElement('div');\n                    p1VerdictSection.style.fontSize = \"medium\";\n                    p1VerdictSection.style.fontWeight = \"bold\";\n                    p1VerdictSection.style.color = phase1VerdictString === \"PASS\" ? \"green\": phase1VerdictString === \"FAIL\" ? \"red\" : \"black\";\n                    p1VerdictSection.textContent = finalVerdict1;\n                    const verdictBufferSection = document.createElement('div');\n                    verdictBufferSection.style.width=\"10px\";\n                    const p2VerdictSection = document.createElement('div');\n                    p2VerdictSection.style.fontSize = \"medium\";\n                    p2VerdictSection.style.fontWeight = \"bold\";\n                    p2VerdictSection.style.color = phase2VerdictString === \"PASS\" ? \"green\": phase2VerdictString === \"FAIL\" ? \"red\" : \"black\";\n                    p2VerdictSection.textContent = finalVerdict2;\n\n                    finalVerdictSection.appendChild(p1VerdictSection);\n                    finalVerdictSection.appendChild(verdictBufferSection);\n                    finalVerdictSection.appendChild(p2VerdictSection);\n                    popupContentSectionComponent.appendChild(finalVerdictSection);\n                    \n                }\n                //Overruled Title\n                let  overruledWarningSection = null\n                if (packProfile['phase2OverruleEmployee'] != null && packProfile['phase2OverruleEmployee'] != \"\") {\n                    overruledWarningSection = document.createElement('div');\n                    overruledWarningSection.style.fontSize = \"medium\";\n                    overruledWarningSection.style.color = \"red\";\n                    overruledWarningSection.style.alignSelf = \"center\";\n                    overruledWarningSection.style.textDecoration = \"underline\";\n                    overruledWarningSection.textContent = `*This pack has been overruled*`;\n                    overruledWarningSection.style.fontWeight = \"bold\";\n                    overruledWarningSection.style.cursor=\"pointer\";\n                    overruledWarningSection.addEventListener('click', () => {\n                        showPopup(['Bear in mind, you have only overruled final decision.','Decision for each sample have not been overruled!'], 'warning',5);\n\n                    });\n\n                } \n                //Quick Detail Title\n                const quickDetailTitleSection = document.createElement('div');\n                quickDetailTitleSection.style.fontSize = \"small\";\n                quickDetailTitleSection.textContent = \"Quick Detail:\";\n                quickDetailTitleSection.style.fontWeight = \"bold\";\n                quickDetailTitleSection.style.textDecoration = \"underline\";\n                //Row 1A==========================================================\n                const row1ASection = document.createElement('div');\n                row1ASection.style.display = \"flex\";\n                row1ASection.style.flexDirection = \"row\";\n                row1ASection.style.marginLeft = \"25px\";\n                //Validation ID\n                const validationIDSection = document.createElement('div');\n                validationIDSection.style.display = \"flex\";\n                validationIDSection.style.flexDirection = \"row\";\n                validationIDSection.style.alignItems = \"center\";\n                validationIDSection.style.width = \"33%\";\n                const validationIDLabelSection = document.createElement('div');\n                validationIDLabelSection.style.fontSize = \"small\";\n                validationIDLabelSection.textContent = \"Validation ID:\";\n                validationIDLabelSection.style.fontWeight = \"bold\";\n                const validationIDValueSection = document.createElement('div');\n                validationIDValueSection.style.fontSize = \"small\";\n                validationIDValueSection.textContent = `${packProfile['validationID']}`;\n                validationIDValueSection.style.paddingLeft = \"5px\";\n                validationIDSection.appendChild(validationIDLabelSection);\n                validationIDSection.appendChild(validationIDValueSection);\n                //Pack ID\n                const packIDSection = document.createElement('div');\n                packIDSection.style.display = \"flex\";\n                packIDSection.style.flexDirection = \"row\";\n                packIDSection.style.alignItems = \"center\";\n                packIDSection.style.width = \"33%\";\n                const packIDLabelSection = document.createElement('div');\n                packIDLabelSection.style.fontSize = \"small\";\n                packIDLabelSection.textContent = \"Pack ID:\";\n                packIDLabelSection.style.fontWeight = \"bold\";\n                const packIDValueSection = document.createElement('div');\n                packIDValueSection.style.fontSize = \"small\";\n                packIDValueSection.textContent = packProfile['packID'] ? `${packProfile['packID']}` : \"\";\n                packIDValueSection.style.paddingLeft = \"5px\";\n                packIDSection.appendChild(packIDLabelSection);\n                packIDSection.appendChild(packIDValueSection);\n                //Company\n                const companySection = document.createElement('div');\n                companySection.style.display = \"flex\";\n                companySection.style.flexDirection = \"row\";\n                companySection.style.alignItems = \"center\";\n                companySection.style.width = \"33%\";\n                const companyLabelSection = document.createElement('div');\n                companyLabelSection.style.fontSize = \"small\";\n                companyLabelSection.textContent = \"Company:\";\n                companyLabelSection.style.fontWeight = \"bold\";\n                const companyValueSection = document.createElement('div');\n                companyValueSection.style.fontSize = \"small\";\n                companyValueSection.textContent = packProfile['company'] ? `${packProfile['company']}` : \"\";\n                companyValueSection.style.paddingLeft = \"5px\";\n                companySection.appendChild(companyLabelSection);\n                companySection.appendChild(companyValueSection);\n\n                //Row 1B==========================================================\n                const row1BSection = document.createElement('div');\n                row1BSection.style.display = \"flex\";\n                row1BSection.style.flexDirection = \"row\";\n                row1BSection.style.marginLeft = \"25px\";\n                //phase1Employee\n                const phase1EmployeeSection = document.createElement('div');\n                phase1EmployeeSection.style.display = \"flex\";\n                phase1EmployeeSection.style.flexDirection = \"row\";\n                phase1EmployeeSection.style.alignItems = \"center\";\n                phase1EmployeeSection.style.width = \"33%\";\n                const phase1EmployeeLabelSection = document.createElement('div');\n                phase1EmployeeLabelSection.style.fontSize = \"small\";\n                phase1EmployeeLabelSection.textContent = \"P1 Employee:\";\n                phase1EmployeeLabelSection.style.fontWeight = \"bold\";\n                const phase1EmployeeValueSection = document.createElement('div');\n                phase1EmployeeValueSection.style.fontSize = \"small\";\n                phase1EmployeeValueSection.textContent = packProfile['phase1Employee'] ? `${packProfile['phase1Employee']}` : '';\n                phase1EmployeeValueSection.style.paddingLeft = \"5px\";\n                phase1EmployeeSection.appendChild(phase1EmployeeLabelSection);\n                phase1EmployeeSection.appendChild(phase1EmployeeValueSection);\n                //phase1ValidationDate\n                const phase1ValidationDateSection = document.createElement('div');\n                phase1ValidationDateSection.style.display = \"flex\";\n                phase1ValidationDateSection.style.flexDirection = \"row\";\n                phase1ValidationDateSection.style.alignItems = \"center\";\n                phase1ValidationDateSection.style.width = \"33%\";\n                const phase1ValidationDateLabelSection = document.createElement('div');\n                phase1ValidationDateLabelSection.style.fontSize = \"small\";\n                phase1ValidationDateLabelSection.textContent = \"P1 Date:\";\n                phase1ValidationDateLabelSection.style.fontWeight = \"bold\";\n                const phase1ValidationDateValueSection = document.createElement('div');\n                phase1ValidationDateValueSection.style.fontSize = \"small\";\n                phase1ValidationDateValueSection.textContent = packProfile['phase1ValidationDate'] ? `${packProfile['phase1ValidationDate']}` : \"\";\n                phase1ValidationDateValueSection.style.paddingLeft = \"5px\";\n                phase1ValidationDateSection.appendChild(phase1ValidationDateLabelSection);\n                phase1ValidationDateSection.appendChild(phase1ValidationDateValueSection);\n\n                //Row 1C==========================================================\n                const row1CSection = document.createElement('div');\n                row1CSection.style.display = \"flex\";\n                row1CSection.style.flexDirection = \"row\";\n                row1CSection.style.marginLeft = \"25px\";\n                //phase2Employee\n                const phase2EmployeeSection = document.createElement('div');\n                phase2EmployeeSection.style.display = \"flex\";\n                phase2EmployeeSection.style.flexDirection = \"row\";\n                phase2EmployeeSection.style.alignItems = \"center\";\n                phase2EmployeeSection.style.width = \"33%\";\n                const phase2EmployeeLabelSection = document.createElement('div');\n                phase2EmployeeLabelSection.style.fontSize = \"small\";\n                phase2EmployeeLabelSection.textContent = \"P2 Employee:\";\n                phase2EmployeeLabelSection.style.fontWeight = \"bold\";\n                const phase2EmployeeValueSection = document.createElement('div');\n                phase2EmployeeValueSection.style.fontSize = \"small\";\n                phase2EmployeeValueSection.textContent = packProfile['phase2Employee'] ? `${packProfile['phase2Employee']}` : \"\";\n                phase2EmployeeValueSection.style.paddingLeft = \"5px\";\n                phase2EmployeeSection.appendChild(phase2EmployeeLabelSection);\n                phase2EmployeeSection.appendChild(phase2EmployeeValueSection);\n                //phase2ValidationDate\n                const phase2ValidationDateSection = document.createElement('div');\n                phase2ValidationDateSection.style.display = \"flex\";\n                phase2ValidationDateSection.style.flexDirection = \"row\";\n                phase2ValidationDateSection.style.alignItems = \"center\";\n                phase2ValidationDateSection.style.width = \"33%\";\n                const phase2ValidationDateLabelSection = document.createElement('div');\n                phase2ValidationDateLabelSection.style.fontSize = \"small\";\n                phase2ValidationDateLabelSection.textContent = \"P2 Date:\";\n                phase2ValidationDateLabelSection.style.fontWeight = \"bold\";\n                const phase2ValidationDateValueSection = document.createElement('div');\n                phase2ValidationDateValueSection.style.fontSize = \"small\";\n                phase2ValidationDateValueSection.textContent = packProfile['phase2ValidationDate'] ? `${packProfile['phase2ValidationDate']}` : '';\n                phase2ValidationDateValueSection.style.paddingLeft = \"5px\";\n                phase2ValidationDateSection.appendChild(phase2ValidationDateLabelSection);\n                phase2ValidationDateSection.appendChild(phase2ValidationDateValueSection);\n                \n                //Appending to Row 1A==========================================================\n                popupContentSectionComponent.appendChild(reportTitleSection);\n                if(finalVerdictSection){\n                    popupContentSectionComponent.appendChild(finalVerdictSection);\n                }\n                if(overruledWarningSection){\n                    popupContentSectionComponent.appendChild(overruledWarningSection);\n                }\n                popupContentSectionComponent.appendChild(quickDetailTitleSection);\n                popupContentSectionComponent.appendChild(row1ASection);\n                row1ASection.appendChild(validationIDSection);\n                row1ASection.appendChild(packIDSection);\n                row1ASection.appendChild(companySection);\n                //Appending to Row 1B==========================================================\n                popupContentSectionComponent.appendChild(row1BSection);\n                row1BSection.appendChild(phase1EmployeeSection);\n                row1BSection.appendChild(phase1ValidationDateSection);\n                //Appending to Row 1C==========================================================\n                popupContentSectionComponent.appendChild(row1CSection);\n                row1CSection.appendChild(phase2EmployeeSection);\n                row1CSection.appendChild(phase2ValidationDateSection);\n                \n                if(rigProfile != null){\n                    //Row 2 IF THERE IS RIG DATA==========================================================\n                    const row2ASection = document.createElement('div');\n                    row2ASection.style.display = \"flex\";\n                    row2ASection.style.flexDirection = \"row\";\n                    row2ASection.style.marginLeft = \"25px\";\n                    //Rig Detail Title\n                    const rigTitleSection = document.createElement('div');\n                    rigTitleSection.style.fontSize = \"small\";\n                    rigTitleSection.textContent = \"Rig Detail:\";\n                    rigTitleSection.style.fontWeight = \"bold\";\n                    rigTitleSection.style.textDecoration = \"underline\";\n                    //Rig ID\n                    const rigIDSection = document.createElement('div');\n                    rigIDSection.style.display = \"flex\";\n                    rigIDSection.style.flexDirection = \"row\";\n                    rigIDSection.style.alignItems = \"center\";\n                    rigIDSection.style.width = \"33%\";\n                    const rigIDLabelSection = document.createElement('div');\n                    rigIDLabelSection.style.fontSize = \"small\";\n                    rigIDLabelSection.textContent = \"Rig ID:\";\n                    rigIDLabelSection.style.fontWeight = \"bold\";\n                    const rigIDValueSection = document.createElement('div');\n                    rigIDValueSection.style.fontSize = \"small\";\n                    rigIDValueSection.textContent = `${rigProfile['rigID']}`;\n                    rigIDValueSection.style.paddingLeft = \"5px\";\n                    rigIDSection.appendChild(rigIDLabelSection);\n                    rigIDSection.appendChild(rigIDValueSection);\n                    //Rig Name\n                    const rigNameSection = document.createElement('div');\n                    rigNameSection.style.display = \"flex\";\n                    rigNameSection.style.flexDirection = \"row\";\n                    rigNameSection.style.alignItems = \"center\";\n                    rigNameSection.style.width = \"33%\";\n                    const rigNameLabelSection = document.createElement('div');\n                    rigNameLabelSection.style.fontSize = \"small\";\n                    rigNameLabelSection.textContent = \"Name:\";\n                    rigNameLabelSection.style.fontWeight = \"bold\";\n                    const rigNameValueSection = document.createElement('div');\n                    rigNameValueSection.style.fontSize = \"small\";\n                    rigNameValueSection.textContent = `${rigProfile['rigName']}`;\n                    rigNameValueSection.style.paddingLeft = \"5px\";\n                    rigNameSection.appendChild(rigNameLabelSection);\n                    rigNameSection.appendChild(rigNameValueSection);\n                    //Rig IP\n                    const rigIPSection = document.createElement('div');\n                    rigIPSection.style.display = \"flex\";\n                    rigIPSection.style.flexDirection = \"row\";\n                    rigIPSection.style.alignItems = \"center\";\n                    rigIPSection.style.width = \"33%\";\n                    const rigIPLabelSection = document.createElement('div');\n                    rigIPLabelSection.style.fontSize = \"small\";\n                    rigIPLabelSection.textContent = \"IP:\";\n                    rigIPLabelSection.style.fontWeight = \"bold\";\n                    const rigIPValueSection = document.createElement('div');\n                    rigIPValueSection.style.fontSize = \"small\";\n                    rigIPValueSection.textContent = `${rigProfile['rigIP']}`;\n                    rigIPValueSection.style.paddingLeft = \"5px\";\n                    rigIPSection.appendChild(rigIPLabelSection);\n                    rigIPSection.appendChild(rigIPValueSection);\n\n                    //Appending to Row 2A==========================================================\n                    popupContentSectionComponent.appendChild(rigTitleSection);\n                    popupContentSectionComponent.appendChild(row2ASection);\n                    row2ASection.appendChild(rigIDSection);\n                    row2ASection.appendChild(rigNameSection);\n                    row2ASection.appendChild(rigIPSection);\n                    \n                }\n                //Row 3A==========================================================\n                const row3ASection = document.createElement('div');\n                row3ASection.style.display = \"flex\";\n                row3ASection.style.flexDirection = \"row\";\n                row3ASection.style.alignItems = \"center\";\n                row3ASection.style.marginLeft = \"25px\";\n                //Pack Detail Title\n                const packDetailTitleSection = document.createElement('div');\n                packDetailTitleSection.style.fontSize = \"small\";\n                packDetailTitleSection.textContent = \"Pack Detail:\";\n                packDetailTitleSection.style.fontWeight = \"bold\";\n                packDetailTitleSection.style.textDecoration = \"underline\";\n                popupContentSectionComponent.append(packDetailTitleSection);\n                if(packType != null){\n                    //Pack Name\n                    const packNameSection = document.createElement('div');\n                    packNameSection.style.display = \"flex\";\n                    packNameSection.style.flexDirection = \"row\";\n                    packNameSection.style.alignItems = \"center\";\n                    packNameSection.style.width = \"25%\";\n                    const packNameLabelSection = document.createElement('div');\n                    packNameLabelSection.style.fontSize = \"small\";\n                    packNameLabelSection.textContent = \"Name:\";\n                    packNameLabelSection.style.fontWeight = \"bold\";\n                    const packNameValueSection = document.createElement('div');\n                    packNameValueSection.style.fontSize = \"small\";\n                    packNameValueSection.textContent = packType['name'] ;\n                    packNameValueSection.style.paddingLeft = \"5px\";\n                    packNameSection.appendChild(packNameLabelSection);\n                    packNameSection.appendChild(packNameValueSection);\n                    row3ASection.appendChild(packNameSection);\n                }\n                //Pack Overruled\n                const overruleSection = document.createElement('div');\n                overruleSection.style.display = \"flex\";\n                overruleSection.style.flexDirection = \"row\";\n                overruleSection.style.alignItems = \"center\";\n                overruleSection.style.width = \"25%\";\n                const overruleLabelSection = document.createElement('div');\n                overruleLabelSection.style.fontSize = \"small\";\n                overruleLabelSection.textContent = \"Overruler:\";\n                overruleLabelSection.style.fontWeight = \"bold\";\n                const overruleValueSection = document.createElement('div');\n                overruleValueSection.style.fontSize = \"small\";\n                overruleValueSection.textContent = (packProfile['phase2OverruleEmployee'] != null && packProfile['phase2OverruleEmployee'] != '') ? `${packProfile['phase2OverruleEmployee']}` : \"No\";\n                overruleValueSection.style.paddingLeft = \"5px\";\n                overruleSection.appendChild(overruleLabelSection);\n                overruleSection.appendChild(overruleValueSection);\n                row3ASection.appendChild(overruleSection);\n\n                //Progression\n                const progressionSection = document.createElement('div');\n                progressionSection.style.display = \"flex\";\n                progressionSection.style.flexDirection = \"row\";\n                progressionSection.style.alignItems = \"center\";\n                progressionSection.style.width = \"25%\";\n                const progressionLabelSection = document.createElement('div');\n                progressionLabelSection.style.fontSize = \"small\";\n                progressionLabelSection.textContent = \"Progression:\";\n                progressionLabelSection.style.fontWeight = \"bold\";\n                const progressionValueSection = document.createElement('div');\n                progressionValueSection.style.fontSize = \"small\";\n                let p1Progression = 0;\n                let p2Progression = 0;\n                if(packProfile['progression']['phase1_stage1']['is_complete']){\n                    p1Progression += 1;\n                }\n                if(packProfile['progression']['phase1_stage2']['is_complete']){\n                    p1Progression += 1;\n                }\n                if(packProfile['progression']['phase2_stage1']['is_complete']){\n                    p2Progression += 1;\n                }\n                if(packProfile['progression']['phase2_stage2']['is_complete']){\n                    p2Progression += 1;\n                }\n                if(packProfile['progression']['phase2_stage3']['is_complete']){\n                    p2Progression += 1;\n                }\n                if(packProfile['progression']['phase2_stage4']['is_complete']){\n                    p2Progression += 1;\n                }\n                packProfile['progression']\n                progressionValueSection.textContent = `P1:${p1Progression}/2 P2:${p2Progression}/4`;\n                progressionValueSection.style.paddingLeft = \"5px\";\n                progressionSection.appendChild(progressionLabelSection);\n                progressionSection.appendChild(progressionValueSection);\n                row3ASection.appendChild(progressionSection);\n\n                popupContentSectionComponent.appendChild(row3ASection );\n\n                //Row 3B==========================================================\n                const row3BSection = document.createElement('div');\n                row3BSection.style.display = \"flex\";\n                row3BSection.style.flexDirection = \"row\";\n                row3BSection.style.alignItems = \"center\";\n                row3BSection.style.marginLeft = \"25px\";\n                if(packType != null){\n                    //Active number of Coils \n                    let activeCoilsCountSection = document.createElement('div');\n                    activeCoilsCountSection.style.display = \"flex\";\n                    activeCoilsCountSection.style.flexDirection = \"row\";\n                    activeCoilsCountSection.style.alignItems = \"center\";\n                    activeCoilsCountSection.style.width = \"25%\";\n                    const activeCoilsCountLabelSection = document.createElement('div');\n                    activeCoilsCountLabelSection.style.fontSize = \"small\";\n                    activeCoilsCountLabelSection.textContent = \"Act. # Coils:\";\n                    activeCoilsCountLabelSection.style.fontWeight = \"bold\";\n                    const activeCoilsCountValueSection = document.createElement('div');\n                    activeCoilsCountValueSection.style.fontSize = \"small\";\n                    activeCoilsCountValueSection.textContent = `${packType['coilsProfile']['activeCoilsCount']}`;\n                    activeCoilsCountValueSection.style.paddingLeft = \"5px\";\n                    activeCoilsCountSection.appendChild(activeCoilsCountLabelSection);\n                    activeCoilsCountSection.appendChild(activeCoilsCountValueSection);\n\n                    row3BSection.appendChild(activeCoilsCountSection);\n\n\n                    //Total number Coils \n                    let totalCoilsCountSection = document.createElement('div');\n                    totalCoilsCountSection.style.display = \"flex\";\n                    totalCoilsCountSection.style.flexDirection = \"row\";\n                    totalCoilsCountSection.style.alignItems = \"center\";\n                    totalCoilsCountSection.style.width = \"25%\";\n                    const totalCoilsCountLabelSection = document.createElement('div');\n                    totalCoilsCountLabelSection.style.fontSize = \"small\";\n                    totalCoilsCountLabelSection.textContent = \"Total # Coils:\";\n                    totalCoilsCountLabelSection.style.fontWeight = \"bold\";\n                    const totalCoilsCountValueSection = document.createElement('div');\n                    totalCoilsCountValueSection.style.fontSize = \"small\";\n                    totalCoilsCountValueSection.textContent = `${packType['coilsProfile']['totalCoilsCount']}`;\n                    totalCoilsCountValueSection.style.paddingLeft = \"5px\";\n                    totalCoilsCountSection.appendChild(totalCoilsCountLabelSection);\n                    totalCoilsCountSection.appendChild(totalCoilsCountValueSection);\n\n                    row3BSection.appendChild(totalCoilsCountSection);\n\n                    //Active Coils Positions \n                    let activeCoilsPositionsSection = document.createElement('div');\n                    activeCoilsPositionsSection.style.display = \"flex\";\n                    activeCoilsPositionsSection.style.flexDirection = \"row\";\n                    activeCoilsPositionsSection.style.alignItems = \"center\";\n                    activeCoilsPositionsSection.style.width = \"25%\";\n                    const activeCoilsPositionsLabelSection = document.createElement('div');\n                    activeCoilsPositionsLabelSection.style.fontSize = \"small\";\n                    activeCoilsPositionsLabelSection.textContent = \"Act. Coils Pos.:\";\n                    activeCoilsPositionsLabelSection.style.fontWeight = \"bold\";\n                    const activeCoilsPositionsValueSection = document.createElement('div');\n                    activeCoilsPositionsValueSection.style.fontSize = \"small\";\n                    activeCoilsPositionsValueSection.textContent = `[${packType['coilsProfile']['generalCoilsPositions'].toString()}]`;\n                    activeCoilsPositionsValueSection.style.paddingLeft = \"5px\";\n                    activeCoilsPositionsSection.appendChild(activeCoilsPositionsLabelSection);\n                    activeCoilsPositionsSection.appendChild(activeCoilsPositionsValueSection);\n\n                    row3BSection.appendChild(activeCoilsPositionsSection);\n\n                    //Unfilled Coils Positions \n                    let unfilledCoilsPositionsSection = document.createElement('div');\n                    unfilledCoilsPositionsSection.style.display = \"flex\";\n                    unfilledCoilsPositionsSection.style.flexDirection = \"row\";\n                    unfilledCoilsPositionsSection.style.alignItems = \"center\";\n                    unfilledCoilsPositionsSection.style.width = \"25%\";\n                    const unfilledCoilsPositionsLabelSection = document.createElement('div');\n                    unfilledCoilsPositionsLabelSection.style.fontSize = \"small\";\n                    unfilledCoilsPositionsLabelSection.textContent = \"Unfilled Coils Pos.:\";\n                    unfilledCoilsPositionsLabelSection.style.fontWeight = \"bold\";\n                    const unfilledCoilsPositionsValueSection = document.createElement('div');\n                    unfilledCoilsPositionsValueSection.style.fontSize = \"small\";\n                    unfilledCoilsPositionsValueSection.textContent = `[${packType['coilsProfile']['referenceUnfilledCoilsPositions'].toString()}]`;\n                    unfilledCoilsPositionsValueSection.style.paddingLeft = \"5px\";\n                    unfilledCoilsPositionsSection.appendChild(unfilledCoilsPositionsLabelSection);\n                    unfilledCoilsPositionsSection.appendChild(unfilledCoilsPositionsValueSection);\n\n                    row3BSection.appendChild(unfilledCoilsPositionsSection);\n                    \n                }\n                popupContentSectionComponent.appendChild(row3BSection);\n\n                //Row 3C==========================================================\n                const row3CSection = document.createElement('div');\n                row3CSection.style.display = \"flex\";\n                row3CSection.style.flexDirection = \"row\";\n                row3CSection.style.alignItems = \"center\";\n                row3CSection.style.marginLeft = \"25px\";\n                if(packType != null){\n                    //Pack Type ID \n                    let typeIDSection = document.createElement('div');\n                    typeIDSection.style.display = \"flex\";\n                    typeIDSection.style.flexDirection = \"row\";\n                    typeIDSection.style.alignItems = \"center\";\n                    typeIDSection.style.width = \"25%\";\n                    const typeIDLabelSection = document.createElement('div');\n                    typeIDLabelSection.style.fontSize = \"small\";\n                    typeIDLabelSection.textContent = \"Type ID:\";\n                    typeIDLabelSection.style.fontWeight = \"bold\";\n                    const typeIDValueSection = document.createElement('div');\n                    typeIDValueSection.style.fontSize = \"small\";\n                    typeIDValueSection.textContent = `${packType['id']}`;\n                    typeIDValueSection.style.paddingLeft = \"5px\";\n                    typeIDSection.appendChild(typeIDLabelSection);\n                    typeIDSection.appendChild(typeIDValueSection);\n                    row3CSection.appendChild(typeIDSection);\n\n                    //Pack Type \n                    let typeSection = document.createElement('div');\n                    typeSection.style.display = \"flex\";\n                    typeSection.style.flexDirection = \"row\";\n                    typeSection.style.alignItems = \"center\";\n                    typeSection.style.width = \"25%\";\n                    const typeLabelSection = document.createElement('div');\n                    typeLabelSection.style.fontSize = \"small\";\n                    typeLabelSection.textContent = \"Type:\";\n                    typeLabelSection.style.fontWeight = \"bold\";\n                    const typeValueSection = document.createElement('div');\n                    typeValueSection.style.fontSize = \"small\";\n                    typeValueSection.textContent = `${packType['packType']}`;\n                    typeValueSection.style.paddingLeft = \"5px\";\n                    typeSection.appendChild(typeLabelSection);\n                    typeSection.appendChild(typeValueSection);\n                    row3CSection.appendChild(typeSection);\n                }\n                popupContentSectionComponent.appendChild(row3CSection);\n\n                //Row 3D==========================================================\n                const row3DSection = document.createElement('div');\n                row3DSection.style.display = \"flex\";\n                row3DSection.style.flexDirection = \"row\";\n                row3DSection.style.alignItems = \"center\";\n                row3DSection.style.marginLeft = \"25px\";\n\n                if(packType != null){\n                    //Limit Range\n                    let limitSection = document.createElement('div');\n                    limitSection.style.display = \"flex\";\n                    limitSection.style.flexDirection = \"row\";\n                    limitSection.style.alignItems = \"center\";\n                    limitSection.style.width = \"25%\";\n                    const limitLabelSection = document.createElement('div');\n                    limitLabelSection.style.fontSize = \"small\";\n                    limitLabelSection.textContent = \"Gen. Rng.(Inc.):\";\n                    limitLabelSection.style.fontWeight = \"bold\";\n                    const limitValueSection = document.createElement('div');\n                    limitValueSection.style.fontSize = \"small\";\n                    limitValueSection.textContent = `${packType['min']} to ${packType['max']}`;\n                    limitValueSection.style.paddingLeft = \"5px\";\n                    limitSection.appendChild(limitLabelSection);\n                    limitSection.appendChild(limitValueSection);\n                    row3DSection.appendChild(limitSection);\n                    //Accepted Load Variance\n                    let acceptedLoadVarianceSection = document.createElement('div');\n                    acceptedLoadVarianceSection.style.display = \"flex\";\n                    acceptedLoadVarianceSection.style.flexDirection = \"row\";\n                    acceptedLoadVarianceSection.style.alignItems = \"center\";\n                    acceptedLoadVarianceSection.style.width = \"25%\";\n                    const acceptedLoadVarianceLabelSection = document.createElement('div');\n                    acceptedLoadVarianceLabelSection.style.fontSize = \"small\";\n                    acceptedLoadVarianceLabelSection.textContent = \"Acct. Load Margin:\";\n                    acceptedLoadVarianceLabelSection.style.fontWeight = \"bold\";\n                    const acceptedLoadVarianceValueSection = document.createElement('div');\n                    acceptedLoadVarianceValueSection.style.fontSize = \"small\";\n                    acceptedLoadVarianceValueSection.textContent = packType['acceptedLoadVariance'];\n                    acceptedLoadVarianceValueSection.style.paddingLeft = \"5px\";\n                    acceptedLoadVarianceSection.appendChild(acceptedLoadVarianceLabelSection);\n                    acceptedLoadVarianceSection.appendChild(acceptedLoadVarianceValueSection);\n                    row3DSection.appendChild(acceptedLoadVarianceSection);\n                    //Accepted Unload Variance\n                    let acceptedUnloadVarianceSection = document.createElement('div');\n                    acceptedUnloadVarianceSection.style.display = \"flex\";\n                    acceptedUnloadVarianceSection.style.flexDirection = \"row\";\n                    acceptedUnloadVarianceSection.style.alignItems = \"center\";\n                    acceptedUnloadVarianceSection.style.width = \"25%\";\n                    const acceptedUnloadVarianceLabelSection = document.createElement('div');\n                    acceptedUnloadVarianceLabelSection.style.fontSize = \"small\";\n                    acceptedUnloadVarianceLabelSection.textContent = \"Acct. Unload Margin:\";\n                    acceptedUnloadVarianceLabelSection.style.fontWeight = \"bold\";\n                    const acceptedUnloadVarianceValueSection = document.createElement('div');\n                    acceptedUnloadVarianceValueSection.style.fontSize = \"small\";\n                    acceptedUnloadVarianceValueSection.textContent = `${packType['min']} to ${packType['max']}`;\n                    acceptedUnloadVarianceValueSection.style.paddingLeft = \"5px\";\n                    acceptedUnloadVarianceSection.appendChild(acceptedUnloadVarianceLabelSection);\n                    acceptedUnloadVarianceSection.appendChild(acceptedUnloadVarianceValueSection);\n                    row3DSection.appendChild(acceptedUnloadVarianceSection);\n\n                }\n\n                popupContentSectionComponent.appendChild(row3DSection);\n\n                //Row 3E==========================================================\n                const row3ESection = document.createElement('div');\n                row3ESection.style.display = \"flex\";\n                row3ESection.style.flexDirection = \"row\";\n                row3ESection.style.alignItems = \"center\";\n                row3ESection.style.marginLeft = \"25px\";\n                if(packType != null){\n                    //Phase 1 Load Range\n                    let phase1LoadSection = document.createElement('div');\n                    phase1LoadSection.style.display = \"flex\";\n                    phase1LoadSection.style.flexDirection = \"row\";\n                    phase1LoadSection.style.alignItems = \"center\";\n                    phase1LoadSection.style.width = \"25%\";\n                    const phase1LoadLabelSection = document.createElement('div');\n                    phase1LoadLabelSection.style.fontSize = \"small\";\n                    phase1LoadLabelSection.textContent = \"P1 Load Rng.(Inc.):\";\n                    phase1LoadLabelSection.style.fontWeight = \"bold\";\n                    const phase1LoadValueSection = document.createElement('div');\n                    phase1LoadValueSection.style.fontSize = \"small\";\n                    phase1LoadValueSection.textContent = `${packType['phase1LoadMinRange']} to ${packType['phase1LoadMaxRange']}`;\n                    phase1LoadValueSection.style.paddingLeft = \"5px\";\n                    phase1LoadSection.appendChild(phase1LoadLabelSection);\n                    phase1LoadSection.appendChild(phase1LoadValueSection);\n                    row3ESection.appendChild(phase1LoadSection);\n                    //Phase 1 Unload Range\n                    let phase1UnloadSection = document.createElement('div');\n                    phase1UnloadSection.style.display = \"flex\";\n                    phase1UnloadSection.style.flexDirection = \"row\";\n                    phase1UnloadSection.style.alignItems = \"center\";\n                    phase1UnloadSection.style.width = \"25%\";\n                    const phase1UnloadLabelSection = document.createElement('div');\n                    phase1UnloadLabelSection.style.fontSize = \"small\";\n                    phase1UnloadLabelSection.textContent = \"P1 Unload Rng.(Inc.):\";\n                    phase1UnloadLabelSection.style.fontWeight = \"bold\";\n                    const phase1UnloadValueSection = document.createElement('div');\n                    phase1UnloadValueSection.style.fontSize = \"small\";\n                    phase1UnloadValueSection.textContent = `${packType['phase1UnloadMaxRange']} to ${packType['phase1UnloadMinRange']}`;\n                    phase1UnloadValueSection.style.paddingLeft = \"5px\";\n                    phase1UnloadSection.appendChild(phase1UnloadLabelSection);\n                    phase1UnloadSection.appendChild(phase1UnloadValueSection);\n                    row3ESection.appendChild(phase1UnloadSection);\n                    //Phase 2 Load 2 Range\n                    let phase2Load2Section = document.createElement('div');\n                    phase2Load2Section.style.display = \"flex\";\n                    phase2Load2Section.style.flexDirection = \"row\";\n                    phase2Load2Section.style.alignItems = \"center\";\n                    phase2Load2Section.style.width = \"25%\";\n                    const phase2Load2LabelSection = document.createElement('div');\n                    phase2Load2LabelSection.style.fontSize = \"small\";\n                    phase2Load2LabelSection.textContent = \"P1 Unload Rng.(Inc.):\";\n                    phase2Load2LabelSection.style.fontWeight = \"bold\";\n                    const phase2Load2ValueSection = document.createElement('div');\n                    phase2Load2ValueSection.style.fontSize = \"small\";\n                    phase2Load2ValueSection.textContent = `${packType['phase2LoadMinRange2']} to ${packType['phase2LoadMaxRange2']}`;\n                    phase2Load2ValueSection.style.paddingLeft = \"5px\";\n                    phase2Load2Section.appendChild(phase2Load2LabelSection);\n                    phase2Load2Section.appendChild(phase2Load2ValueSection);\n                    row3ESection.appendChild(phase2Load2Section);\n                    //Phase 2 Unload 2 Range\n                    let phase2Unload2Section = document.createElement('div');\n                    phase2Unload2Section.style.display = \"flex\";\n                    phase2Unload2Section.style.flexDirection = \"row\";\n                    phase2Unload2Section.style.alignItems = \"center\";\n                    phase2Unload2Section.style.width = \"25%\";\n                    const phase2Unload2LabelSection = document.createElement('div');\n                    phase2Unload2LabelSection.style.fontSize = \"small\";\n                    phase2Unload2LabelSection.textContent = \"P1 Unload Rng.(Inc.):\";\n                    phase2Unload2LabelSection.style.fontWeight = \"bold\";\n                    const phase2Unload2ValueSection = document.createElement('div');\n                    phase2Unload2ValueSection.style.fontSize = \"small\";\n                    phase2Unload2ValueSection.textContent = `${packType['phase2UnloadMinRange2']} to ${packType['phase2UnloadMaxRange2']}`;\n                    phase2Unload2ValueSection.style.paddingLeft = \"5px\";\n                    phase2Unload2Section.appendChild(phase2Unload2LabelSection);\n                    phase2Unload2Section.appendChild(phase2Unload2ValueSection);\n                    row3ESection.appendChild(phase2Unload2Section);\n\n                }\n                popupContentSectionComponent.appendChild(row3ESection);\n\n                //Watermark==========================================================\n                const watermark = document.createElement('div');\n                watermark.textContent = \"UNOFFICIAL DOCUMENT\";\n                watermark.style.cssText = `\n                    position: fixed; /* Fixed instead of absolute */\n                    top: 50%; /* Centered vertically */\n                    left: 50%; /* Centered horizontally */\n                    transform: translate(-50%, -50%) rotate(-45deg); /* Center and rotate */\n                    color: rgba(255, 0, 0, 0.6); /* Semi-transparent red */\n                    font-size: 100px;\n                    font-weight: bold;\n                    width: 100%;\n                    text-align: center;\n                    pointer-events: none; /* Click through */\n                    z-index: 1000;\n                `;\n                // Adjust position to ensure it covers the entire content area\n                watermark.style.top = '50%';\n                watermark.style.left = '50%';\n                popupContentSectionComponent.style.position = 'relative';\n                // popupContentSectionComponent.appendChild(watermark);\n\n                if(packData != null){\n                    //Phase I TitlepackData\n                    const phaseITitleSection = document.createElement('div');\n                    phaseITitleSection.style.fontSize = \"small\";\n                    phaseITitleSection.textContent = \"Phase 1 Detail:\";\n                    phaseITitleSection.style.fontWeight = \"bold\";\n                    phaseITitleSection.style.cursor = \"pointer\";\n                    phaseITitleSection.style.color = \"blue\";\n                    phaseITitleSection.style.textDecoration = \"underline\";\n                    phaseITitleSection.addEventListener('click', () => {\n                        row4ASection.style.display = row4ASection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row4BSection.style.display = row4BSection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row4CSection.style.display = row4CSection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row4DSection.style.display = row4DSection.style.display === \"none\" ? \"flex\" : \"none\";\n                    });\n                    \n                    //Row 4A==========================================================\n                    const row4ASection = document.createElement('div');\n                    row4ASection.id = 'row4ASection';\n                    row4ASection.style.display = \"none\";\n                    row4ASection.style.flexDirection = \"column\";\n                    row4ASection.style.alignItems = \"center\";\n                    row4ASection.style.marginLeft = \"25px\";\n                    //phase1UnloadData Row\n                    const phase1UnloadDataSection = document.createElement('div');\n                    phase1UnloadDataSection.style.display = \"flex\";\n                    phase1UnloadDataSection.style.flexDirection = \"row\";\n                    phase1UnloadDataSection.style.alignItems = \"center\";\n                    phase1UnloadDataSection.style.width = \"100%\";\n                    const phase1UnloadDataLabelSection = document.createElement('div');\n                    phase1UnloadDataLabelSection.style.fontSize = \"small\";\n                    phase1UnloadDataLabelSection.textContent = \"Unload Data:\";\n                    phase1UnloadDataLabelSection.style.fontWeight = \"bold\";\n                    const phase1UnloadDataValueSection = document.createElement('div');\n                    phase1UnloadDataValueSection.style.fontSize = \"small\";\n                    phase1UnloadDataValueSection.textContent = packData['phase1UnloadData'] ? `${packData['phase1UnloadData'].toString()}` : \"\";\n                    phase1UnloadDataValueSection.style.paddingLeft = \"5px\";\n                    phase1UnloadDataSection.appendChild(phase1UnloadDataLabelSection);\n                    phase1UnloadDataSection.appendChild(phase1UnloadDataValueSection);\n\n                    //Row 4B==========================================================\n                    const row4BSection = document.createElement('div');\n                    row1BSection.id='row4BSection';\n                    row4BSection.style.display = \"none\";\n                    row4BSection.style.flexDirection = \"column\";\n                    row4BSection.style.alignItems = \"center\";\n                    row4BSection.style.marginLeft = \"25px\";\n                    //phase1LoadData Row\n                    const phase1LoadDataSection = document.createElement('div');\n                    phase1LoadDataSection.style.display = \"flex\";\n                    phase1LoadDataSection.style.flexDirection = \"row\";\n                    phase1LoadDataSection.style.alignItems = \"center\";\n                    phase1LoadDataSection.style.width = \"100%\";\n                    const phase1LoadDataLabelSection = document.createElement('div');\n                    phase1LoadDataLabelSection.style.fontSize = \"small\";\n                    phase1LoadDataLabelSection.textContent = \"Load Data:\";\n                    phase1LoadDataLabelSection.style.fontWeight = \"bold\";\n                    const phase1LoadDataValueSection = document.createElement('div');\n                    phase1LoadDataValueSection.style.fontSize = \"small\";\n                    phase1LoadDataValueSection.textContent = packData['phase1LoadData'] ? `${packData['phase1LoadData'].toString()}` : \"\";\n                    phase1LoadDataValueSection.style.paddingLeft = \"5px\";\n                    phase1LoadDataSection.appendChild(phase1LoadDataLabelSection);\n                    phase1LoadDataSection.appendChild(phase1LoadDataValueSection);\n\n                    //Row 4C==========================================================\n                    const row4CSection = document.createElement('div');\n                    row4CSection.id='row4CSection';\n                    row4CSection.style.display = \"none\";\n                    row4CSection.style.flexDirection = \"column\";\n                    row4CSection.style.alignItems = \"center\";\n                    row4CSection.style.marginLeft = \"25px\";\n                    //P1 validity Row\n                    let p1ValidityString = \"\";\n                    let phase1VerdictString = \"\";\n                    const isAllDataProvided1 = packData['phase1LoadData'] != null && packData['phase1LoadData'].length > 0 &&\n                    packData['phase1UnloadData'] != null && packData['phase1UnloadData'].length > 0 \n\n                    if(isAllDataProvided1 && packData['phase1ValidityData'] != null){\n                        p1ValidityString += `Unload: ${packData['phase1ValidityData']['unload'] ? \"PASS\" : \"FAIL\"} | `;\n                        p1ValidityString += `Load: ${packData['phase1ValidityData']['load'] ? \"PASS\" : \"FAIL\"}`;\n                        phase1VerdictString = `${packData['phase1ValidityData']['final'] ? \"PASS\" : \"FAIL\"}`;\n                    }else{\n                        p1ValidityString = \"N/A\";\n                        phase1VerdictString = \"N/A\"\n                    }\n\n                    const phase1LoadValiditySection = document.createElement('div');\n                    phase1LoadValiditySection.style.display = \"flex\";\n                    phase1LoadValiditySection.style.flexDirection = \"row\";\n                    phase1LoadValiditySection.style.alignItems = \"center\";\n                    phase1LoadValiditySection.style.width = \"100%\";\n                    const phase1LoadValidityLabelSection = document.createElement('div');\n                    phase1LoadValidityLabelSection.style.fontSize = \"small\";\n                    phase1LoadValidityLabelSection.textContent = \"Validity:\";\n                    phase1LoadValidityLabelSection.style.fontWeight = \"bold\";\n                    const phase1LoadValidityValueSection = document.createElement('div');\n                    phase1LoadValidityValueSection.style.fontSize = \"small\";\n                    phase1LoadValidityValueSection.textContent = p1ValidityString;\n                    phase1LoadValidityValueSection.style.paddingLeft = \"5px\";\n                    phase1LoadValiditySection.appendChild(phase1LoadValidityLabelSection);\n                    phase1LoadValiditySection.appendChild(phase1LoadValidityValueSection);\n\n                    //Row 4D==========================================================\n                    const row4DSection = document.createElement('div');\n                    row4DSection.id='row4DSection';\n                    row4DSection.style.display = \"none\";\n                    row4DSection.style.flexDirection = \"column\";\n                    row4DSection.style.alignItems = \"center\";\n                    row4DSection.style.marginLeft = \"25px\";\n                    //P1 Final validity Row\n                    \n                    const phase1FinalValiditySection = document.createElement('div');\n                    phase1FinalValiditySection.style.display = \"flex\";\n                    phase1FinalValiditySection.style.flexDirection = \"row\";\n                    phase1FinalValiditySection.style.alignItems = \"center\";\n                    phase1FinalValiditySection.style.width = \"100%\";\n                    const phase1FinalValidityLabelSection = document.createElement('div');\n                    phase1FinalValidityLabelSection.style.fontSize = \"small\";\n                    phase1FinalValidityLabelSection.textContent = \"Verdict:\";\n                    phase1FinalValidityLabelSection.style.fontWeight = \"bold\";\n                    const phase1FinalValidityValueSection = document.createElement('div');\n                    phase1FinalValidityValueSection.style.fontSize = \"large\";\n                    phase1FinalValidityValueSection.textContent = phase1VerdictString;\n                    phase1FinalValidityValueSection.style.paddingLeft = \"5px\";\n                    phase1FinalValiditySection.appendChild(phase1FinalValidityLabelSection);\n                    phase1FinalValiditySection.appendChild(phase1FinalValidityValueSection);\n\n                    //Appending to Row 4==========================================================\n                    popupContentSectionComponent.appendChild(phaseITitleSection);\n                    popupContentSectionComponent.appendChild(row4ASection);\n                    popupContentSectionComponent.appendChild(row4BSection);\n                    popupContentSectionComponent.appendChild(row4CSection);\n                    popupContentSectionComponent.appendChild(row4DSection);\n                    row4ASection.appendChild(phase1UnloadDataSection);\n                    row4BSection.appendChild(phase1LoadDataSection);\n                    row4CSection.appendChild(phase1LoadValiditySection);\n                    row4DSection.appendChild(phase1FinalValiditySection);\n\n                    //Phase II Title\n                    const phaseIITitleSection = document.createElement('div');\n                    phaseIITitleSection.style.fontSize = \"small\";\n                    phaseIITitleSection.textContent = \"Phase 2 Detail:\";\n                    phaseIITitleSection.style.fontWeight = \"bold\";\n                    phaseIITitleSection.style.cursor = \"pointer\";\n                    phaseIITitleSection.style.color = \"blue\";\n                    phaseIITitleSection.style.textDecoration = \"underline\";\n                    phaseIITitleSection.addEventListener('click', () => {\n                        row5ASection.style.display = row5ASection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row5BSection.style.display = row5BSection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row5CSection.style.display = row5CSection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row5DSection.style.display = row5DSection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row5ESection.style.display = row5ESection.style.display === \"none\" ? \"flex\" : \"none\";\n                        row5FSection.style.display = row5FSection.style.display === \"none\" ? \"flex\" : \"none\";\n                    });\n\n                    //Row 5A==========================================================\n                    const row5ASection = document.createElement('div');\n                    row5ASection.id='row5ASection';\n                    row5ASection.style.display = \"none\";\n                    row5ASection.style.flexDirection = \"column\";\n                    row5ASection.style.alignItems = \"center\";\n                    row5ASection.style.marginLeft = \"25px\";\n                    \n                    //phase2UnloadData1 Row\n                    const phase2UnloadData1Section = document.createElement('div');\n                    phase2UnloadData1Section.style.display = \"flex\";\n                    phase2UnloadData1Section.style.flexDirection = \"row\";\n                    phase2UnloadData1Section.style.alignItems = \"center\";\n                    phase2UnloadData1Section.style.width = \"100%\";\n                    const phase2UnloadData1LabelSection = document.createElement('div');\n                    phase2UnloadData1LabelSection.style.fontSize = \"small\";\n                    phase2UnloadData1LabelSection.textContent = \"Unload 1 Data:\";\n                    phase2UnloadData1LabelSection.style.fontWeight = \"bold\";\n                    const phase2UnloadData1ValueSection = document.createElement('div');\n                    phase2UnloadData1ValueSection.style.fontSize = \"small\";\n                    phase2UnloadData1ValueSection.textContent = packData['phase2UnloadData1'] ? `${packData['phase2UnloadData1'].toString()}` : \"\";\n                    phase2UnloadData1ValueSection.style.paddingLeft = \"5px\";\n                    phase2UnloadData1Section.appendChild(phase2UnloadData1LabelSection);\n                    phase2UnloadData1Section.appendChild(phase2UnloadData1ValueSection);\n                    \n                    //Row 5B==========================================================\n                    const row5BSection = document.createElement('div');\n                    row5BSection.id='row5BSection';\n                    row5BSection.style.display = \"none\";\n                    row5BSection.style.flexDirection = \"column\";\n                    row5BSection.style.alignItems = \"center\";\n                    row5BSection.style.marginLeft = \"25px\";\n                    //phase2LoadData1 Row\n                    const phase2LoadData1Section = document.createElement('div');\n                    phase2LoadData1Section.style.display = \"flex\";\n                    phase2LoadData1Section.style.flexDirection = \"row\";\n                    phase2LoadData1Section.style.alignItems = \"center\";\n                    phase2LoadData1Section.style.width = \"100%\";\n                    const phase2LoadData1LabelSection = document.createElement('div');\n                    phase2LoadData1LabelSection.style.fontSize = \"small\";\n                    phase2LoadData1LabelSection.textContent = \"Load 1 Data:\";\n                    phase2LoadData1LabelSection.style.fontWeight = \"bold\";\n                    const phase2LoadData1ValueSection = document.createElement('div');\n                    phase2LoadData1ValueSection.style.fontSize = \"small\";\n                    phase2LoadData1ValueSection.textContent = packData['phase2LoadData1'] ? `${packData['phase2LoadData1'].toString()}` : \"\";\n                    phase2LoadData1ValueSection.style.paddingLeft = \"5px\";\n                    phase2LoadData1Section.appendChild(phase2LoadData1LabelSection);\n                    phase2LoadData1Section.appendChild(phase2LoadData1ValueSection);\n\n                    //Row 5C==========================================================\n                    const row5CSection = document.createElement('div');\n                    row5CSection.id='row5CSection';\n                    row5CSection.style.display = \"none\";\n                    row5CSection.style.flexDirection = \"column\";\n                    row5CSection.style.alignItems = \"center\";\n                    row5CSection.style.marginLeft = \"25px\";\n                    //phase2LoadData2 Row\n                    const phase2LoadData2Section = document.createElement('div');\n                    phase2LoadData2Section.style.display = \"flex\";\n                    phase2LoadData2Section.style.flexDirection = \"row\";\n                    phase2LoadData2Section.style.alignItems = \"center\";\n                    phase2LoadData2Section.style.width = \"100%\";\n                    const phase2LoadData2LabelSection = document.createElement('div');\n                    phase2LoadData2LabelSection.style.fontSize = \"small\";\n                    phase2LoadData2LabelSection.textContent = \"Load 2 Data:\";\n                    phase2LoadData2LabelSection.style.fontWeight = \"bold\";\n                    const phase2LoadData2ValueSection = document.createElement('div');\n                    phase2LoadData2ValueSection.style.fontSize = \"small\";\n                    phase2LoadData2ValueSection.textContent = packData['phase2LoadData2'] ? `${packData['phase2LoadData2'].toString()}` : \"\";\n                    phase2LoadData2ValueSection.style.paddingLeft = \"5px\";\n                    phase2LoadData2Section.appendChild(phase2LoadData2LabelSection);\n                    phase2LoadData2Section.appendChild(phase2LoadData2ValueSection);\n\n                    //Row 5D==========================================================\n                    const row5DSection = document.createElement('div');\n                    row5DSection.id='row5DSection';\n                    row5DSection.style.display = \"none\";\n                    row5DSection.style.flexDirection = \"column\";\n                    row5DSection.style.alignItems = \"center\";\n                    row5DSection.style.marginLeft = \"25px\";\n                    //phase2UnloadData2 Row\n                    const phase2UnloadData2Section = document.createElement('div');\n                    phase2UnloadData2Section.style.display = \"flex\";\n                    phase2UnloadData2Section.style.flexDirection = \"row\";\n                    phase2UnloadData2Section.style.alignItems = \"center\";\n                    phase2UnloadData2Section.style.width = \"100%\";\n                    const phase2UnloadData2LabelSection = document.createElement('div');\n                    phase2UnloadData2LabelSection.style.fontSize = \"small\";\n                    phase2UnloadData2LabelSection.textContent = \"Unload 2 Data:\";\n                    phase2UnloadData2LabelSection.style.fontWeight = \"bold\";\n                    const phase2UnloadData2ValueSection = document.createElement('div');\n                    phase2UnloadData2ValueSection.style.fontSize = \"small\";\n                    phase2UnloadData2ValueSection.textContent = packData['phase2UnloadData2'] ? `${packData['phase2UnloadData2'].toString()}` : \"\";\n                    phase2UnloadData2ValueSection.style.paddingLeft = \"5px\";\n                    phase2UnloadData2Section.appendChild(phase2UnloadData2LabelSection);\n                    phase2UnloadData2Section.appendChild(phase2UnloadData2ValueSection);\n\n                    //Row 5E==========================================================\n                    const row5ESection = document.createElement('div');\n                    row5ESection.id='row5ESection';\n                    row5ESection.style.display = \"none\";\n                    row5ESection.style.flexDirection = \"column\";\n                    row5ESection.style.alignItems = \"center\";\n                    row5ESection.style.marginLeft = \"25px\";\n                    //P2 validity Row\n                    let phase2ValidityString = \"\";\n                    let phase2VerdictString = \"\";\n                    const isAllDataProvided = packData['phase2LoadData1'] != null && packData['phase2LoadData1'].length > 0 &&\n                    packData['phase2LoadData2'] != null && packData['phase2LoadData2'].length > 0 &&\n                    packData['phase2UnloadData1'] != null && packData['phase2UnloadData1'].length > 0 &&\n                    packData['phase2UnloadData2'] != null && packData['phase2UnloadData2'].length > 0\n\n                    if(isAllDataProvided && packData['phase2ValidityData'] != null){\n                        phase2ValidityString += `Load 1: ${packData['phase2ValidityData']['load1'] ? \"PASS\" : \"FAIL\"} | `;\n                        phase2ValidityString += `Unload 1: ${packData['phase2ValidityData']['unload1'] ? \"PASS\" : \"FAIL\"} | `;\n                        phase2ValidityString += `Load 2: ${packData['phase2ValidityData']['load2'] ? \"PASS\" : \"FAIL\"} | `;\n                        phase2ValidityString += `Unload 2: ${packData['phase2ValidityData']['unload2'] ? \"PASS\" : \"FAIL\"}`;\n                        phase2VerdictString = `${packData['phase2ValidityData']['final'] ? \"PASS\" : \"FAIL\"}`;\n                    }else{\n                        phase2ValidityString = \"N/A\";\n                        phase2VerdictString = \"N/A\"\n                    }\n                    const phase2ValiditySection = document.createElement('div');\n                    phase2ValiditySection.style.display = \"flex\";\n                    phase2ValiditySection.style.flexDirection = \"row\";\n                    phase2ValiditySection.style.alignItems = \"center\";\n                    phase2ValiditySection.style.width = \"100%\";\n                    const phase2ValidityLabelSection = document.createElement('div');\n                    phase2ValidityLabelSection.style.fontSize = \"small\";\n                    phase2ValidityLabelSection.textContent = \"Validity:\";\n                    phase2ValidityLabelSection.style.fontWeight = \"bold\";\n                    const phase2ValidityValueSection = document.createElement('div');\n                    phase2ValidityValueSection.style.fontSize = \"small\";\n                    phase2ValidityValueSection.textContent = phase2ValidityString;\n                    phase2ValidityValueSection.style.paddingLeft = \"5px\";\n                    phase2ValiditySection.appendChild(phase2ValidityLabelSection);\n                    phase2ValiditySection.appendChild(phase2ValidityValueSection);\n\n                    //Row 5F==========================================================\n                    const row5FSection = document.createElement('div');\n                    row5FSection.id='row5FSection';\n                    row5FSection.style.display = \"none\";\n                    row5FSection.style.flexDirection = \"column\";\n                    row5FSection.style.alignItems = \"center\";\n                    row5FSection.style.marginLeft = \"25px\";\n                    //P2 Final validity Row\n                    const phase2FinalValiditySection = document.createElement('div');\n                    phase2FinalValiditySection.style.display = \"flex\";\n                    phase2FinalValiditySection.style.flexDirection = \"row\";\n                    phase2FinalValiditySection.style.alignItems = \"center\";\n                    phase2FinalValiditySection.style.width = \"100%\";\n                    const phase2FinalValidityLabelSection = document.createElement('div');\n                    phase2FinalValidityLabelSection.style.fontSize = \"small\";\n                    phase2FinalValidityLabelSection.textContent = \"Verdict:\";\n                    phase2FinalValidityLabelSection.style.fontWeight = \"bold\";\n                    const phase2FinalValidityValueSection = document.createElement('div');\n                    phase2FinalValidityValueSection.style.fontSize = \"large\";\n                    phase2FinalValidityValueSection.textContent = phase2VerdictString;\n                    phase2FinalValidityValueSection.style.paddingLeft = \"5px\";\n                    phase2FinalValiditySection.appendChild(phase2FinalValidityLabelSection);\n                    phase2FinalValiditySection.appendChild(phase2FinalValidityValueSection);\n                    \n                    //Appending to Row 5==========================================================\n                    popupContentSectionComponent.appendChild(phaseIITitleSection);\n                    popupContentSectionComponent.appendChild(row5ASection);\n                    popupContentSectionComponent.appendChild(row5BSection);\n                    popupContentSectionComponent.appendChild(row5CSection);\n                    popupContentSectionComponent.appendChild(row5DSection);\n                    popupContentSectionComponent.appendChild(row5ESection);\n                    popupContentSectionComponent.appendChild(row5FSection);\n                    row5ASection.appendChild(phase2UnloadData1Section);\n                    row5BSection.appendChild(phase2LoadData1Section);\n                    row5CSection.appendChild(phase2LoadData2Section);\n                    row5DSection.appendChild(phase2UnloadData2Section);\n                    row5ESection.appendChild(phase2ValiditySection);\n                    row5FSection.appendChild(phase2FinalValiditySection);\n                }\n\n                // phase1Memo Row==========================================================\n                const phase1MemoLabelSection = document.createElement('div');\n                phase1MemoLabelSection.style.fontSize = \"small\";\n                phase1MemoLabelSection.textContent = \"P1 Memo:\";\n                phase1MemoLabelSection.style.fontWeight = \"bold\";\n                phase1MemoLabelSection.style.textDecoration = \"underline\";\n                const phase1MemoValueSection = document.createElement('div');\n                phase1MemoValueSection.style.fontSize = \"small\";\n                phase1MemoValueSection.style.width = \"100%\";\n                phase1MemoValueSection.textContent = `${packProfile['phase1Memo'] ? packProfile['phase1Memo'] : \"\"}`;\n                phase1MemoValueSection.style.paddingLeft = \"25px\";\n                phase1MemoValueSection.style.whiteSpace = \"pre\"; \n\n                // phase2Memo Row==========================================================\n                const phase2MemoLabelSection = document.createElement('div');\n                phase2MemoLabelSection.style.fontSize = \"small\";\n                phase2MemoLabelSection.textContent = \"P2 Memo:\";\n                phase2MemoLabelSection.style.fontWeight = \"bold\";\n                phase2MemoLabelSection.style.textDecoration = \"underline\";\n                const phase2MemoValueSection = document.createElement('div');\n                phase2MemoValueSection.style.fontSize = \"small\";\n                phase2MemoValueSection.style.width = \"100%\";\n                phase2MemoValueSection.textContent = `${packProfile['phase2Memo'] ? packProfile['phase2Memo'] : \"\"}`;\n                phase2MemoValueSection.style.paddingLeft = \"25px\";\n                phase2MemoValueSection.style.whiteSpace = \"pre\"; \n\n                //Appending Memos==========================================================\n                popupContentSectionComponent.appendChild(phase1MemoLabelSection);\n                popupContentSectionComponent.appendChild(phase1MemoValueSection);\n                popupContentSectionComponent.appendChild(phase2MemoLabelSection);\n                popupContentSectionComponent.appendChild(phase2MemoValueSection);\n        \n                //Display and setup Ok Button\n                const okButtonComponent = document.getElementById('notificationOkButton');\n                okButtonComponent.style.display = \"block\";\n                okButtonComponent.style.marginRight = \"10px\";\n                okButtonComponent.onclick = () => {\n                    context.send('closeNotificationPopup'); \n                };\n                if(allowPrint){\n                    const printButtonComponent = document.getElementById('notificationPrintButton');\n                    printButtonComponent.style.display = \"block\";\n                    printButtonComponent.onclick = () => {\n                        const popupContent = document.getElementById('notificationPopupContentBody');\n                        if (!popupContent) {\n                            console.error(\"Popup content body not found\");\n                            return;\n                        }\n    \n                        popupContent.style.overflowX = \"visible\";\n                        const row4ASection = document.getElementById('row4ASection');\n                        const row4BSection = document.getElementById('row4BSection');\n                        const row4CSection = document.getElementById('row4CSection');\n                        const row4DSection = document.getElementById('row4DSection');\n                        const row5ASection = document.getElementById('row5ASection');\n                        const row5BSection = document.getElementById('row5BSection');\n                        const row5CSection = document.getElementById('row5CSection');\n                        const row5DSection = document.getElementById('row5DSection');\n                        const row5ESection = document.getElementById('row5ESection');\n                        const row5FSection = document.getElementById('row5FSection');\n                        row4ASection.style.display = \"flex\";\n                        row4BSection.style.display = \"flex\";\n                        row4CSection.style.display = \"flex\";\n                        row4DSection.style.display = \"flex\";\n                        row5ASection.style.display = \"flex\";\n                        row5BSection.style.display = \"flex\";\n                        row5CSection.style.display = \"flex\";\n                        row5DSection.style.display = \"flex\";\n                        row5ESection.style.display = \"flex\";\n                        row5FSection.style.display = \"flex\";\n                        const inlineStyles = `\n                        @media print {\n                            .pagebreak { page-break-before: always; } /* page-break-after works, as well */\n                            body {\n                                -webkit-print-color-adjust: exact;\n                                -moz-print-color-adjust: exact;\n                                -ms-print-color-adjust: exact;\n                                print-color-adjust: exact;\n                            }\n                        }\n                        #notificationPopupContentBody {\n                            overflow-x: visible;\n                            overflow-y: visible;\n                            padding-bottom: 10px;\n                            padding-left: 20px;\n                            display: flex;\n                            flex-direction: column;\n                            justify-content: space-between;\n                            width: 100%;\n                            padding-right: 20px;\n                        }\n                        `;\n                        printJS({ \n                            printable: popupContent,\n                            type: 'html',\n                            style: inlineStyles,\n                            scanStyles: false,\n                        });\n                        row4ASection.style.display = \"none\";\n                        row4BSection.style.display = \"none\";\n                        row4CSection.style.display = \"none\";\n                        row4DSection.style.display = \"none\";\n                        row5ASection.style.display = \"none\";\n                        row5BSection.style.display = \"none\";\n                        row5CSection.style.display = \"none\";\n                        row5DSection.style.display = \"none\";\n                        row5ESection.style.display = \"none\";\n                        row5FSection.style.display = \"none\";\n                        \n                    };\n                }\n        \n                // if(context.get(\"packsValidationData\")['phase1UnloadData']\n            }\n            \n    \n        });\n    }catch (error) {\n        console.error('Error buildSensorProfileNotificationBoard:', error);\n    }\n\n}\nexport function showHelpNotificationBoard(context){\n    /**\n     * Case sensitive \n     */\n    return new Promise((resolve) => {\n        try{\n            context.set(\"isShowConfig.isShowPopupNotification\", true);\n            Ember.run.scheduleOnce('afterRender', context, () => {\n                const masterPopupContent = document.getElementById('notificationPopupContentBody');\n                if(masterPopupContent){\n                    //Main Title\n                    const mainComponent = document.createElement('div');\n                    mainComponent.style.alignSelf = 'center';\n                    mainComponent.style.fontSize = 'x-large';\n                    mainComponent.style.fontWeight = 'bold';\n                    mainComponent.textContent = `Help`;\n                    masterPopupContent.appendChild(mainComponent);\n                    // Title 1\n                    const rawCodeSubTitleComponent = document.createElement('div');\n                    rawCodeSubTitleComponent.style.fontSize = 'medium';\n                    rawCodeSubTitleComponent.style.fontWeight = 'bold';\n                    rawCodeSubTitleComponent.textContent = `Configure Board's Settings:`;\n                    masterPopupContent.appendChild(rawCodeSubTitleComponent);\n                    //Subtitle 1\n                    const subsection1Component = document.createElement('div');\n                    subsection1Component.style.marginLeft = \"15px\";\n                    //SubCode 1\n                    const subRawCode1 = document.createElement('div');\n                    subRawCode1.style.fontSize = 'smaller';\n                    subRawCode1.style.fontWeight = 'bold';\n                    subRawCode1.textContent = `1) Set Command Mode`;\n                    subsection1Component.appendChild(subRawCode1);\n                    //Subsubtitle 1\n                    const subsubsection1Component = document.createElement('div');\n                    subsubsection1Component.style.marginLeft = \"30px\";\n                    //Command Mode\n                    const commandMode = document.createElement('div');\n                    commandMode.style.fontSize = 'smaller';\n                    commandMode.textContent = `- Set to Command Mode: WS+COMMAND_MODE=1`;\n                    subsubsection1Component.appendChild(commandMode);\n\n                    subsection1Component.appendChild(subsubsection1Component);\n                    //SubCode 2\n                    const subRawCode2 = document.createElement('div');\n                    subRawCode2.style.fontSize = 'smaller';\n                    subRawCode2.style.fontWeight = 'bold';\n                    subRawCode2.textContent = `2) Set Desired Setting`;\n                    subsection1Component.appendChild(subRawCode2);\n                    //Subsubtitle 2\n                    const subsubsection2Component = document.createElement('div');\n                    subsubsection2Component.style.marginLeft = \"30px\";\n                    //Mode Setting \n                    const modeSettingComponent = document.createElement('div');\n                    modeSettingComponent.style.fontSize = 'smaller';\n                    modeSettingComponent.textContent = `- Mode Setting: WS+COMMAND=0`;\n                    subsubsection2Component.appendChild(modeSettingComponent);\n                    //Channels Setting\n                    const channelsSettingComponent = document.createElement('div');\n                    channelsSettingComponent.style.fontSize = 'smaller';\n                    channelsSettingComponent.textContent = `- Channels Setting: WS+COMMAND=1`;\n                    subsubsection2Component.appendChild(channelsSettingComponent);\n                    //Stroke Setting\n                    const strokeSettingComponent = document.createElement('div');\n                    strokeSettingComponent.style.fontSize = 'smaller';\n                    strokeSettingComponent.textContent = `- Stroke Setting: WS+COMMAND=2`;\n                    subsubsection2Component.appendChild(strokeSettingComponent);\n                    //ID Setting\n                    const idSettingComponent = document.createElement('div');\n                    idSettingComponent.style.fontSize = 'smaller';\n                    idSettingComponent.textContent = `- ID Setting: WS+COMMAND=3`;\n                    subsubsection2Component.appendChild(idSettingComponent);\n                    //Type Setting\n                    const typeSettingComponent = document.createElement('div');\n                    typeSettingComponent.style.fontSize = 'smaller';\n                    typeSettingComponent.textContent = `- Type Setting: WS+COMMAND=4`;\n                    subsubsection2Component.appendChild(typeSettingComponent);\n                    //Description Setting\n                    const descriptionSettingComponent = document.createElement('div');\n                    descriptionSettingComponent.style.fontSize = 'smaller';\n                    descriptionSettingComponent.textContent = `- Description Setting: WS+COMMAND=5`;\n                    subsubsection2Component.appendChild(descriptionSettingComponent);\n                    //Table to ROM Setting\n                    const tableToROMSettingComponent = document.createElement('div');\n                    tableToROMSettingComponent.style.fontSize = 'smaller';\n                    tableToROMSettingComponent.textContent = `- Table to ROM Setting: WS+COMMAND=7`;\n                    subsubsection2Component.appendChild(tableToROMSettingComponent);\n                    //ROM to Table\n                    const romToTableSettingComponent = document.createElement('div');\n                    romToTableSettingComponent.style.fontSize = 'smaller';\n                    romToTableSettingComponent.textContent = `- ROM to Table Setting: WS+COMMAND=8`;\n                    subsubsection2Component.appendChild(romToTableSettingComponent);\n                    //Exit Setting\n                    const exitSettingComponent = document.createElement('div');\n                    exitSettingComponent.style.fontSize = 'smaller';\n                    exitSettingComponent.textContent = `- Exit Setting: WS+COMMAND=9`;\n                    subsubsection2Component.appendChild(exitSettingComponent);\n\n                    subsection1Component.appendChild(subsubsection2Component);\n                    //SubCode 3\n                    const subRawCode3 = document.createElement('div');\n                    subRawCode3.style.fontSize = 'smaller';\n                    subRawCode3.style.fontWeight = 'bold';\n                    subRawCode3.textContent = `3) Set Desired Value for Setting`;\n                    subsection1Component.appendChild(subRawCode3);\n                    //Subsubtitle 3\n                    const subsubsection3Component = document.createElement('div');\n                    subsubsection3Component.style.marginLeft = \"30px\";\n                    //Command Mode\n                    const setValueComponent = document.createElement('div');\n                    setValueComponent.style.fontSize = 'smaller';\n                    setValueComponent.textContent = `- Set Value: WS+COMMAND_MODE=XXXX`;\n                    subsubsection3Component.appendChild(setValueComponent);\n\n                    subsection1Component.appendChild(subsubsection3Component);\n                    masterPopupContent.appendChild(subsection1Component);\n\n    \n                }\n            });\n    \n        }catch (error) {\n            console.error('Error reflashPopup:', error);\n            resolve(false);\n            document.removeEventListener('keydown', enterKeyHandler);\n\n        }\n    });\n}\n//Make POST & PATCH requests \nexport async function sendGETRequest(endpoint, queryParams = {}){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint;\n        const queryString = new URLSearchParams(queryParams).toString();\n        if (queryString) {\n          url += `?${queryString}`;\n        }\n        const response = await fetch(url, {\n          method: 'GET',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response['status'] == 200) || (response['status'] == 201)) {\n            const responseData = await response.json();\n            const newData = convertKeysToCamelCase(responseData);\n            return newData; // Return true if status code is 201\n        } \n         \n    } \n    catch (error) {\n    console.error('Error submitting data:', error);\n    }\n    return false;\n}\nfunction convertKeysToCamelCase(obj) {\n    /**\n        This helper function is a generic helper function used to convert kebab-case to camelCase, so that I can take the obj and see it as normal JSON object \n        const inputFrom = {\n            'sensor-name': 'Temperature Sensor',\n            'sensor-id': 12345,\n            'nested-data': {\n            'calibration-date': '2024-12-15',\n            'sensor-details': [\n                { 'sensor-value': 100, 'sensor-unit': 'C' },\n                { 'sensor-value': 200, 'sensor-unit': 'F' }\n            ]\n            }\n        };\n        const inputTo =  {\n            sensorName: 'Temperature Sensor',\n            sensorId: 12345,\n            nestedData: {\n            calibrationDate: '2024-12-15',\n            sensorDetails: [\n                { sensorValue: 100, sensorUnit: 'C' },\n                { sensorValue: 200, sensorUnit: 'F' }\n            ]\n            }\n        }\n    */\n\n    if (Array.isArray(obj)) {\n      return obj.map(v => convertKeysToCamelCase(v));\n    } else if (obj !== null && typeof obj === 'object') {\n      return Object.fromEntries(\n        Object.entries(obj).map(([key, value]) => [\n          key.replace(/-([a-z])/g, (_, char) => char.toUpperCase()), // Convert kebab-case to camelCase\n          convertKeysToCamelCase(value)\n        ])\n      );\n    }\n    return obj;\n}\nexport async function sendPOSTRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            // console.log('Data submitted successfully:', responseData);\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendPOSTRequest2(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'POST',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            // console.log('Data submitted successfully:', responseData);\n            return responseData; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return null;\n}\nexport async function sendPATCHRequest(endpoint, data){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'PATCH',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n          body: JSON.stringify(data),\n        });\n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            // console.log('Data submitted successfully:', responseData);\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\nexport async function sendDELETERequest(endpoint){\n    try {\n        let url = getApiBaseUrl() + \"/\" + endpoint + \"/\";\n        const response = await fetch(url, {\n          method: 'DELETE',\n          headers: {\n              'Content-Type': 'application/json',\n              Authorization: 'Bearer ' + localStorage.token  \n          },\n        });\n  \n        if (response.status == 401 || response.status == 403) {\n            console.log(response)\n            showPopup([`${url}`, `${response.status}: ${response.statusText}`], 'error', 4);\n        }\n        else if ((response.status == 200) || (response.status == 201)) {\n            const responseData = await response.json();\n            // console.log('Data submitted successfully:', responseData);\n            return true; // Return true if status code is 201\n        } \n         \n      } catch (error) {\n        console.error('Error submitting data:', error);\n      }\n      return false;\n}\n\n//Profile & Form & Data Section\nexport function resetProfile(context, mode){\n    switch (mode){\n        case \"rig\":\n            resetProfileForm(mode);\n            context.set(\"formRigData\",{});\n        case \"packType\":\n            resetProfileForm(mode);\n            context.set(\"formPackTypeData\",{});\n    }\n\n}\nexport function resetProfileForm(mode){\n    switch(mode){\n        case \"rig\":\n            const rigIPComponent = document.getElementById(\"rigIP\");\n            if(rigIPComponent){\n                rigIPComponent.value = null;\n            }\n            const rigNameComponent = document.getElementById(\"rigName\");\n            if(rigNameComponent){\n                rigNameComponent.value = null;\n            }\n            const rigCategoryComponent = document.getElementById(\"rigCategory\");\n            if(rigCategoryComponent){\n                rigCategoryComponent.value = '';\n            }\n        case \"packType\":\n            const comp1 = document.getElementById(\"calibType\");\n            if(comp1){\n                comp1.value = \"\";\n            }\n            const comp2 = document.getElementById(\"channels\");\n            if(comp2){\n                comp2.value = null;\n            }\n            const comp3 = document.getElementById(\"minLimit\");\n            if(comp3){\n                comp3.value = null;\n            }\n            const comp4 = document.getElementById(\"maxLimit\");\n            if(comp4){\n                comp4.value = null;\n            }\n            const comp5 = document.getElementById(\"checkpointSampleSize\");\n            if(comp5){\n                comp5.value = null;\n            }\n            const comp6 = document.getElementById(\"checkpointSpeed\");\n            if(comp6){\n                comp6.value = null;\n            }\n            const comp7 = document.getElementById(\"checkpointDelay\");\n            if(comp7){\n                comp7.value = null;\n            }\n            const comp8 = document.getElementById(\"checkpointPositions\");\n            if(comp8){\n                comp8.value = null;\n            }\n            const comp9 = document.getElementById(\"packTypeCreationEmployee\");\n            if(comp9){\n                comp9.value = null;\n            }\n\n    }\n}\nexport function resetDataRigProfile(context){\n    console.log(\"resetDataRigProfile\");\n    //Clear live log console\n    const chatBox = document.getElementById('streamingTextBox');\n    if(chatBox){\n        chatBox.innerHTML = \"\";\n    }\n    // //Reset Calib Profile Selection\n    // const calibProfile = document.getElementById(\"selectedPackType\");\n    // calibProfile.value=\"0\";\n    // context.set(\"userInputtedData.selectedPackType\", 0);\n    //Disable Stepper motor & pump sections\n    const stepperComponent = document.getElementById('stepperMotorSection');\n    stepperComponent.style.pointerEvents=\"none\";\n    stepperComponent.style.opacity=\"0.5\";\n    const pumpComponent = document.getElementById('pressurePumpSection');\n    pumpComponent.style.pointerEvents=\"none\";\n    pumpComponent.style.opacity=\"0.5\";\n    //Reset Rig Profile Selection\n    context.set(\"userInputtedData.selectedRigProfile\", null);\n}\nexport function resetDataSelectedPackTypeProfile(context){\n    //Reset to Require Validation\n    context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n    destroyAndClearAnchorLiveView(context);\n    //Clear Selected Calib Profile\n    context.set(\"userInputtedData.selectedPackType\", null);\n    context.set(\"completedPackProfile\", null);\n    \n}\nexport function resetDataCompletedPackTypeProfile(context){\n    //Reset to Require Validation\n    context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n    destroyAndClearAnchorLiveView(context);\n    //Clear Selected Calib Profile\n    context.set(\"manufacturedPackType\", null);\n    \n}\nfunction updateAnchorBoardLiveViewData(data){\n    const parsedData = data; // Parse your incoming message\n    // console.log(`parsedData2:${parsedData}`);\n    const chart = Chart.getChart('myChart'); // Get the Chart instance\n    if (chart && chart.data && chart.data.datasets.length > 0) {\n\n        for(let i=0;i<chart.data.datasets.length; i++){\n            if(i == 0){\n                const tempLabel = document.getElementById('T0');\n                if(tempLabel){\n                    tempLabel.textContent=`T:${parsedData[i]}`\n                }\n            }else{\n                const dispLabel = document.getElementById(`CH${i}`);\n                if(dispLabel){\n                    dispLabel.textContent=`CH${i}:${parsedData[i]}`\n                }\n            }\n        }\n    }\n\n}\nfunction updateAnchorChartLiveViewData (data) {\n    const parsedData = data; // Parse your incoming message\n    const chart = Chart.getChart('myChart'); // Get the Chart instance\n    if (chart && chart.data && chart.data.datasets.length > 0) {\n        const currentIndex = chart.data.labels.length;\n\n        // Add the new x-axis label (counter value)\n        chart.data.labels.push(currentIndex);\n\n        // Add the new y-axis data (parsed displacement value)\n        for(let i=0;i<chart.data.datasets.length; i++){\n            chart.data.datasets[i].data.push(parsedData[i]);\n        }\n\n        const maxDataPoints = 60; // max\n        if (chart.data.labels.length > maxDataPoints) {\n            chart.data.labels.shift(); // Remove the oldest x-axis label\n            for(let i=0;i<chart.data.datasets.length; i++){\n                chart.data.datasets[i].data.shift();\n            }\n        }\n\n        chart.update('none'); // Update the chart to reflect the new data\n\n    }\n}\nexport async function validateAllForms(context){\n    //When Building a validator, there are only 3 types validation state:\n    //Missing-Red Neutral-Orange Passed-Green\n    const failedState = \"Missing-Red\";\n    const neutralState = \"Neutral-Orange\";\n    const labelState = \"Label-Black\";\n    const passedState = \"Passed-Green\"\n    //When Building a validator, there are only 3 levels of indentation:\n    const indent = 12; //supposed to represent 10px, setting numbers here because I can use it for multiples\n\n    //What is the structure for failedObjects? \n    //Label Text-Value Text-Value Text Color-# of indents\n    let failedObjects={};\n\n    //Check Permissions\n    let responseData = await sendGETRequest(`validation_pack_validate/`);\n    const data = responseData;\n    if(data['status'] != 200){\n        failedObjects[\"validation_pack_validate\"] = `Permissions-${failedState}-${0 * indent}px`;\n    }else{\n        failedObjects[\"validation_pack_validate\"] = `Permissions-${passedState}-${0 * indent}px`;\n    } \n    //Check for selected pack type(Phase I only) & completed pack type(Phase II only)\n    if(context.get('settingsConfig.phaseENV.phase') === 1){\n        if(context.get('isRepairing')){\n            if(context.get(\"userInputtedData.selectedPackType\") == '0' || context.get(\"userInputtedData.selectedPackType\") == '' || context.get(\"userInputtedData.selectedPackType\") == null){\n                failedObjects[\"selectedPackType\"] = `Repair Pack-${failedState}-${0 * indent}px`;\n            }else{\n                failedObjects[\"selectedPackType\"] = `Repair Pack-${passedState}-${0 * indent}px`;\n            }\n        }else{\n            if(context.get(\"userInputtedData.selectedPackType\") == '0' || context.get(\"userInputtedData.selectedPackType\") == '' || context.get(\"userInputtedData.selectedPackType\") == null){\n                failedObjects[\"selectedPackType\"] = `Pack Type-${failedState}-${0 * indent}px`;\n            }else{\n                failedObjects[\"selectedPackType\"] = `Pack Type-${passedState}-${0 * indent}px`;\n            }\n\n        }\n    }else{\n        if(context.get(\"manufacturedPackType\") == '0' || context.get(\"manufacturedPackType\") == '' || context.get(\"manufacturedPackType\") == null){\n            failedObjects[\"manufacturedPackType\"] = `Completed Pack-${failedState}-${0 * indent}px`;\n        }else{\n            failedObjects[\"manufacturedPackType\"] = `Completed Pack-${passedState}-${0 * indent}px`;\n        }\n    }\n    //Final Check\n    for (const key in failedObjects) {\n        \n        const value = failedObjects[key];\n\n        // Check if the value contains the keyword (case-insensitive)\n        if (typeof value === 'string' && (value.includes(failedState))) {\n            //When it contains at least one \"Missing\" key word, it fails the check, needs to show notification popup\n            context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(602));\n\n            return context.buildValidationPopupContent(failedObjects);\n        }else{\n        }\n        \n    }\n    //When it passes, don't need to show notification popup. Directly jump to Calibration Daashboard \n    const element = document.getElementById(\"dashboardTitle\");\n    if (element) {\n        element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n        console.log(context.get(\"userInputtedData.selectedRigProfile\"));\n        console.log(context.get(\"userInputtedData.selectedPackType\"));\n        console.log(context.get(\"userInputtedData.selectedPackData\"));\n        context.set(\"dashboardStatusBarData.status\",generalStatusLibrary(603));\n    }\n\n}\n\n//Web Socket Section\nexport function initializeConnection(context, ip){\n    // console.log(\"called initializeConnection\");\n    //initialize websock component\n    resetLog(context, 'live');\n    context.ws = new WebSocket(`wss://${ip}:888`);\n\n    if(context.ws.readyState === WebSocket.CONNECTING){\n        context.set(\"dashboardStatusBarData.connection\",connectionStatusLibrary(501));\n        showPopup(['Connecting... Please wait until connection has been updated!'], 'warning', 4)\n    }\n    context.ws.onopen = () => {\n        // console.log(\"opened wss\");\n        // console.log(context.ws);\n        context.set(\"dashboardStatusBarData.connection\",connectionStatusLibrary(502));\n\n    };\n\n    context.ws.onmessage = event => {\n        if(event.data != null){\n            // console.log(event.data.trim());\n            appendLiveLog(context,event.data.trim(), 'incoming');\n        }\n    };\n\n    context.ws.onerror = error => {\n        console.log(\"error\");\n        console.log(error);\n        context.set(\"dashboardStatusBarData.connection\", connectionStatusLibrary(500));\n    };\n\n    context.ws.onclose = () => {\n        context.set(\"dashboardStatusBarData.connection\", connectionStatusLibrary(500));\n        resetDataRigProfile(context);\n    };    \n    window.addEventListener('beforeunload', function () {\n        const component = document.getElementById('selectedRigIP');\n        component.value = \"0\";\n        context.set(\"selectedRigDP\", \"0\");\n    });\n}\nexport function webSocketDisconnect(context){\n    if(context.ws){\n        context.set(\"dashboardStatusBarData.connection\",connectionStatusLibrary(500));\n        resetLog(context, 'live');\n        context.ws.onopen = null;\n        context.ws.onmessage = null;\n        context.ws.onerror = null;\n        context.ws.onclose = null;\n        context.ws.close();\n        context.ws = null;\n        console.log(\"Disconnected to websocket\")\n    }\n}\nexport function websocketReconnect(context){\n    if(context.ws){\n        webSocketDisconnect(context);\n    }\n    if(context.get(\"userInputtedData.selectedRigProfile\")){\n        initializeConnection(context, context.get(\"userInputtedData.selectedRigProfile\")['data']['rigIP']);\n        showPopup(['Successfully reconnected Websocket'], 'success');\n    }\n}\n\n//Live & Phase I Log & Phase II Log & Control Panel Section  \nexport function updateRigActivity(context){\n    /**\n     * {\n            \"activityJSON\": {\n                \"status\": 602,\n                \"connection\": 500,\n                \"activity\": 551,\n                \"activeUser\": \"Steven Fu\",\n                \"connectedTo\": \"240471999\",\n                \"company\": \"YieldPoint Epiroc\",\n                \"latestDate\": \"2024-01-8 01:00:00\"\n            }\n        }\n     */\n    const dashboardStatusObj    = context.get(\"dashboardStatusBarData\");\n    const formSensorData    = context.get(\"userInputtedData.selectedPackData\");\n    const formRigData    = context.get(\"userInputtedData.selectedRigProfile\");\n    const calibrationObj        = dashboardStatusObj['calibration'];\n    const connectionObj         = dashboardStatusObj['connection'];\n    const currentObj            = dashboardStatusObj['current'];\n    const statusObj             = dashboardStatusObj['status'];\n    const targetObj             = dashboardStatusObj['target'];\n    const latestDateTime        = getCurrentDateTime();\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n\n    if(userProfile != null && formRigData){\n        let activityLog = {};\n        activityLog['status'] = statusObj['key'];\n        activityLog['connection'] = connectionObj['key'];\n        activityLog['activity'] = calibrationObj['key'];\n        activityLog['activeUser'] = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n        activityLog['connectedTo'] = formSensorData['sensorID'] ? formSensorData['sensorID'] : null;\n        activityLog['company'] = `${userProfile['profile']['company']}`;\n        activityLog['latestDate'] = latestDateTime;\n        // console.log(activityLog);\n        sendPATCHRequest(`rig_profile_activity_view/${formRigData['data']['rigID']}`, {'activityJSON':activityLog});\n    }\n}\nexport function appendLiveLog(context, newMessage, direction) {\n    //Update Live Log TB\n    const chatBox = document.getElementById('streamingTextBox');\n    if (chatBox) {\n        if(newMessage.includes(\"current\") || newMessage.includes('target')){\n        }else{\n            chatBox.textContent += `${direction == \"incoming\" ? \">>\" : \"<<\"}${newMessage}\\n`;\n            const lines = chatBox.textContent.split('\\n');\n            const maxNumLines = 300;\n            if (lines.length > maxNumLines) {\n                chatBox.textContent = lines.slice(lines.length - maxNumLines).join('\\n');\n            }\n        }\n\n        // Scroll to the bottom if chat is locked\n        if (context.get('settingsConfig.chatLocked.streamingTextBox')) {\n            chatBox.scrollTop = chatBox.scrollHeight;\n        }\n    }\n    //Used for when the message is in standard structure\n\n    //This is for v1.0 only. \n    //Why this manual add of sensorData? \n    //it is because during phaseI, with blank boards, the readings coming in from rigs do not container sensorData= tags and the software will not work if it does not have the tag\n    //It is not cared for in phaseII, because by then the blank board would be flashed and the reading coming in, it will contain the tag\n    if(context.get(\"settingsConfig.internalVersion\") === \"v1.0\" &&\n        ((newMessage[0] === \"+\") || (newMessage[0] === \"-\"))\n    ){\n        newMessage = `sensorData=${newMessage}`\n    }\n    // console.log(`raw message:${newMessage}`);\n    if(newMessage.includes(\"=\") && newMessage.split(\"=\").length == 2){\n        // console.log(`${newMessage}`);\n        incomingMessageLibrary(context, newMessage.split(\"=\")[0], newMessage.split(\"=\")[1]);\n    }\n    \n}\nexport function updateStepperPressureControlPanel(context,value){\n    console.log(context.get(\"userInputtedData.selectedRigProfile\")['data']);\n    const stepperPanelComponent = document.getElementById(\"stepperMotorSection\");\n    const pumpPanelComponent = document.getElementById(\"pressurePumpSection\");\n    if(value == null){\n        stepperPanelComponent.style.pointerEvents=\"none\";\n        stepperPanelComponent.style.opacity=\"0.5\";\n        pumpPanelComponent.style.pointerEvents=\"none\";\n        pumpPanelComponent.style.opacity=\"0.5\";\n    }else if (value == \"STEPPER\"){\n        stepperPanelComponent.style.pointerEvents=\"visible\";\n        stepperPanelComponent.style.opacity=\"1\";\n        pumpPanelComponent.style.pointerEvents=\"none\";\n        pumpPanelComponent.style.opacity=\"0.5\";\n\n    }else if (value == \"PUMP\"){\n        stepperPanelComponent.style.pointerEvents=\"none\";\n        stepperPanelComponent.style.opacity=\"0.5\";\n        pumpPanelComponent.style.pointerEvents=\"visible\";\n        pumpPanelComponent.style.opacity=\"1\";\n\n    }\n}\nexport function resetLog(context, typeOfLog){\n    switch(typeOfLog){\n        case \"live\":\n            const liveChatBox = document.getElementById('streamingTextBox');\n            if(liveChatBox){\n                liveChatBox.innerHTML=\"\";\n            }\n    }\n}\n//Phase I && II Schematics\n//Phase I && II Schematics\nexport async function getPacksValidationPhaseISchematics(context, type){\n    const packTypeProfile = context.get(\"userInputtedData.selectedPackType\");\n    // console.log(packTypeProfile);\n    const websocket = context.ws;\n    try{\n        if(websocket != null && packTypeProfile != null && packTypeProfile['data'] != null){\n            const phase1Steps = ['phase1UnloadData','phase1LoadData'];\n            const checkpointDelay = packTypeProfile['data']['checkpointDelay'];\n            switch(type){\n                default:\n                    //Soft Reset\n                    console.log(\"Soft Resetting\");\n                    softResetPhaseIModule(context);\n\n                    //Start to send unique batch of commands to prior to start calibration FOR V2.0 ONLY \n                    if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n                        updatePacksValidationStatusModule(context, 578);\n                        await outgoingMessageLibrary(context, \"setMode\", \"2\");\n                    }\n\n                    for (let i=0;i<phase1Steps.length; i ++) {\n                        const stepIndexValue = phase1Steps[i]\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered.For loop, section 1\");\n                        //Prompt user based off of step label & Start to Sample\n                        if (stepIndexValue === \"phase1UnloadData\"){\n                            emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 2\");\n                            //Unload Popup\n                            updatePacksValidationStatusModule(context, 562);//Require Unload I Status\n                            let popupResult = await unloadLoadPopup(context, \"unload\");\n                            if(!popupResult){\n                                updatePacksValidationStatusModule(context, 553);\n                                return;\n                            }\n\n                            //CheckPoint Delay\n                            updatePacksValidationStatusModule(context, 575);\n                            await delayTimeModule(context,checkpointDelay)\n\n                            updatePacksValidationStatusModule(context, 568);//Sampling Status\n                            emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 3\");\n                            const phaseISampleResultUnload = await phaseISampleModule(context, stepIndexValue,  \"unload\");\n                            if(!phaseISampleResultUnload){\n                                updatePacksValidationStatusModule(context, 553);\n                                return;\n                            }\n\n                            //Verify Coils within range\n                            updatePacksValidationStatusModule(context, 575);\n                            const isCoilsWithinRange = verifyAcceptedRange(context, stepIndexValue);\n                            if(!isCoilsWithinRange){\n                                postPhaseProceduralModule(context, 'phaseI');\n                                return;\n\n                            }\n                        }\n                        else if (stepIndexValue === \"phase1LoadData\"){\n                            emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 4\");\n                            //Load Popup\n                            updatePacksValidationStatusModule(context, 563); //Require Load I Status\n                            let popupResult = await unloadLoadPopup(context, \"load\");\n                            if(!popupResult){\n                                updatePacksValidationStatusModule(context, 553);\n                                return;\n                            }\n\n                            //CheckPoint Delay\n                            updatePacksValidationStatusModule(context, 575);\n                            await delayTimeModule(context,checkpointDelay)\n\n                            updatePacksValidationStatusModule(context, 568);//Sampling Status\n                            emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 5\");\n                            const phaseISampleResultUnload = await phaseISampleModule(context, stepIndexValue,  \"load\");\n                            if(!phaseISampleResultUnload){\n                                updatePacksValidationStatusModule(context, 553);\n                                return;\n                            }\n\n                            //Verify Coils within range\n                            updatePacksValidationStatusModule(context, 575);\n                            const isCoilsWithinRange = verifyAcceptedRange(context, stepIndexValue);\n                            if(!isCoilsWithinRange){\n                                postPhaseProceduralModule(context, 'phaseI');\n                                return;\n\n                            }\n                        }\n                        emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 6\");\n                    }\n                    console.log(context.get(\"packsValidationData\")[\"phase1UnloadData\"]);\n                    emergencyCheckOrThrow(context, \"Phase I emergency triggered. For loop, section 7\");\n\n                    //Post Phase I\n                    postPhaseProceduralModule(context, 'phaseI');\n                    break;\n            }\n        }else{\n            showPopup(['Missing pack profile!'], 'warning', 2); \n        }\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            updatePacksValidationStatusModule(context, 553);\n            showPopup([`Error in getPacksValidationPhaseISchematics: ${err.message}`], 'error', 15);\n        } else {\n            showPopup([`Error in getPacksValidationPhaseISchematics: ${err.message}`], 'error', 15);\n        }\n        return;\n    }\n}\nexport async function getPacksValidationPhaseIISchematics(context, type){\n    const packTypeProfile = context.get(\"manufacturedPackType\");\n    const websocket = context.ws;\n    try{\n        if(websocket != null && packTypeProfile != null && packTypeProfile['data'] != null){\n            const phase2Steps = ['phase2UnloadData1','phase2LoadData1','phase2LoadData2','phase2UnloadData2'];\n            const checkpointDelay = packTypeProfile['data']['packTypeObj']['checkpointDelay'];\n            console.log(`checkpoint delay:${checkpointDelay}`)\n            console.log(packTypeProfile)\n            switch(type){\n                default:\n                    //Soft Reset\n                    console.log(\"Soft Resetting\");\n                    softResetPhaseIIModule(context);\n\n                    for (let i=0;i<phase2Steps.length; i ++) {\n                        const stepIndexValue = phase2Steps[i]\n                        const stepIndexValueID = stepIndexValue.slice(-1)\n                        emergencyCheckOrThrow(context, \"Phase II emergency triggered.For loop, section 1\");\n\n                        //Prompt user based off of step label & Start to Sample\n                        if ((stepIndexValue === \"phase2UnloadData1\")){\n                            //Start to send unique batch of commands to prior to start calibration FOR V2.0 ONLY \n                            if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n                                updatePacksValidationStatusModule(context, 579);\n                                await outgoingMessageLibrary(context, \"setMode\", \"2\");\n                            }\n\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 2\");\n                            //Unload Popup\n                            updatePacksValidationStatusModule(context, 564);//Require Phase II Unload I Status\n                            let popupResult = await unloadLoadPopup(context, \"unload 1\");\n                            if(!popupResult){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //CheckPoint Delay\n                            updatePacksValidationStatusModule(context, 575);\n                            await delayTimeModule(context,checkpointDelay)\n\n                            updatePacksValidationStatusModule(context, 569);//Phase II Sampling Status\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 3\");\n                            const phaseIISampleResultUnload = await phaseIISampleModule(context, stepIndexValue, `unload${stepIndexValueID}`);\n                            if(!phaseIISampleResultUnload){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //Verify Coils within range\n                            updatePacksValidationStatusModule(context, 575);\n                            const isCoilsWithinRange = verifyAcceptedRange(context, stepIndexValue);\n                            if(!isCoilsWithinRange){\n                                postPhaseProceduralModule(context, 'phaseI');\n                                return;\n                            }\n                        }else if ((stepIndexValue === \"phase2LoadData1\")){\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 4\");\n                            //Load Popup\n                            updatePacksValidationStatusModule(context, 565);//Require Phase II Load I Status\n                            let popupResult = await unloadLoadPopup(context, \"load 1\");\n                            if(!popupResult){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //CheckPoint Delay\n                            updatePacksValidationStatusModule(context, 575);\n                            await delayTimeModule(context,checkpointDelay)\n\n                            updatePacksValidationStatusModule(context, 569);//Sampling Status\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 5\");\n                            const phaseISampleResultUnload = await phaseIISampleModule(context, stepIndexValue, `load${stepIndexValueID}`);\n                            if(!phaseISampleResultUnload){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //Verify Coils within range\n                            updatePacksValidationStatusModule(context, 575);\n                            const isCoilsWithinRange = verifyAcceptedRange(context, stepIndexValue);\n                            if(!isCoilsWithinRange){\n                                postPhaseProceduralModule(context, 'phaseI');\n                                return;\n                            }\n                        }else if ((stepIndexValue === \"phase2LoadData2\")){\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 4\");\n\n                            //  clear & rebuild anchor live view\n                            const manufacturedPackTypeData = packTypeProfile['data'];\n                            const channels = manufacturedPackTypeData['packTypeObj']['coilsProfile']['totalCoilsCount'] + 1;\n                            destroyAndClearAnchorLiveView(context);\n                            initializeAndCreateAnchorLiveView(context, channels);\n\n                            //Start to send unique batch of commands to prior to start calibration FOR V2.0 ONLY \n                            if(context.get(\"settingsConfig.internalVersion\") === \"v2.0\"){\n                                updatePacksValidationStatusModule(context, 579);\n                                await outgoingMessageLibrary(context, \"setMode\", \"1\");\n                            }else{\n                                // FOR V1.0 Show the reflash popup\n                                //Special Case. Transition Environ because the sensorData is different after the user flashed the boards             \n                                updatePacksValidationStatusModule(context, 574); //Reflash! Status\n                                let reflashResult = await reflashPopup(context);\n                                if(!reflashResult){\n                                    updatePacksValidationStatusModule(context, 554);\n                                    return;\n                                }\n                            }\n                            \n                            //Load Popup\n                            updatePacksValidationStatusModule(context, 566);//Require Phase II Load II Status\n                            let popupResult = await unloadLoadPopup(context, \"load 2\");\n                            if(!popupResult){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //CheckPoint Delay\n                            updatePacksValidationStatusModule(context, 575);\n                            await delayTimeModule(context,checkpointDelay)\n\n                            updatePacksValidationStatusModule(context, 569);//Sampling Status\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 5\");\n                            const phaseISampleResultUnload = await phaseIISampleModule(context, stepIndexValue, `load${stepIndexValueID}`);\n                            if(!phaseISampleResultUnload){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //Verify Coils within range\n                            updatePacksValidationStatusModule(context, 575);\n                            const isCoilsWithinRange = verifyAcceptedRange(context, stepIndexValue);\n                            if(!isCoilsWithinRange){\n                                postPhaseProceduralModule(context, 'phaseI');\n                                return;\n                            }\n\n                        }else if ((stepIndexValue === \"phase2UnloadData2\")){\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 2\");\n                            //Unload Popup\n                            updatePacksValidationStatusModule(context, 567);//Require Phase II Unload II Status\n                            let popupResult = await unloadLoadPopup(context, \"unload 2\");\n                            if(!popupResult){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //CheckPoint Delay\n                            updatePacksValidationStatusModule(context, 575);\n                            await delayTimeModule(context,checkpointDelay)\n\n                            updatePacksValidationStatusModule(context, 569);//Sampling Status\n                            emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 3\");\n                            const phaseISampleResultUnload = await phaseIISampleModule(context, stepIndexValue, `unload${stepIndexValueID}`);\n                            if(!phaseISampleResultUnload){\n                                updatePacksValidationStatusModule(context, 554);\n                                return;\n                            }\n\n                            //Verify Coils within range\n                            updatePacksValidationStatusModule(context, 576);\n                            const isCoilsWithinRange = verifyAcceptedRange(context, stepIndexValue);\n                            if(!isCoilsWithinRange){\n                                updatePacksValidationStatusModule(context, 577);\n                                postPhaseProceduralModule(context, 'phaseI');\n                                return;\n\n                            }\n                        }\n                        emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 6\");\n                    }\n                    // console.log(context.get(\"packsValidationData\")[\"phase1UnloadData\"]);\n                    emergencyCheckOrThrow(context, \"Phase II emergency triggered. For loop, section 7\");\n\n                    //Post Phase II\n                    postPhaseProceduralModule(context, 'phaseII');\n                    break;\n            }\n        }else{\n            showPopup(['Missing pack profile!'], 'warning', 2); \n        }\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            updatePacksValidationStatusModule(context, 553);\n            showPopup([`Error in getPacksValidationPhaseIISchematics: ${err.message}`], 'error', 15);\n        } else {\n            showPopup([`Error in getPacksValidationPhaseIISchematics: ${err.message}`], 'error', 15);\n        }\n        return;\n    }\n}\n//Phase Modules\nfunction verifyAcceptedRange(context, stepIndexValue){\n    try{\n        let data = null;\n    \n        if(context.get('settingsConfig.phaseENV.phase') == 1){\n            const selectedPackType = context.get('userInputtedData.selectedPackType');\n            data = selectedPackType['data'];\n        }else{\n            const manufacturedPackType = context.get('manufacturedPackType');\n            data = manufacturedPackType['data']['packTypeObj'];\n        }\n\n        const phase1UnloadDataArray = context.get('packsValidationData.phase1UnloadData')[0];\n        const phase1LoadDataArray = context.get('packsValidationData.phase1LoadData')[0];\n        const phase2UnloadData1Array = context.get('packsValidationData.phase2UnloadData1')[0];\n        const phase2LoadData1Array = context.get('packsValidationData.phase2LoadData1')[0];\n        const phase2UnloadData2Array = context.get('packsValidationData.phase2UnloadData2')[0];\n        const phase2LoadData2Array = context.get('packsValidationData.phase2LoadData2')[0];\n\n        const activeCoilsCount = data['coilsProfile']['activeCoilsCount']\n        const totalCoilsCount = data['coilsProfile']['totalCoilsCount']\n        const referenceUnfilledCoilsPositions = data['coilsProfile']['referenceUnfilledCoilsPositions']\n        const generalCoilsPositions = data['coilsProfile']['generalCoilsPositions']\n\n\n        let referenceUnfilledCoilsIndices = [];\n        let generalCoilsIndices = [];\n\n\n        referenceUnfilledCoilsPositions.forEach((value, index)=>{\n            if((value - 1) > 0){\n                referenceUnfilledCoilsIndices.push(value-1);\n            }\n        })\n        generalCoilsPositions.forEach((value, index)=>{\n            if((value - 1) > 0){\n                generalCoilsIndices.push(value-1);\n            }\n        })\n\n        const phase1UnloadMaxRange = data['phase1UnloadMaxRange'];\n        const phase1UnloadMinRange = data['phase1UnloadMinRange'];\n        const phase1LoadMaxRange = data['phase1LoadMaxRange']; \n        const phase1LoadMinRange = data['phase1LoadMinRange'];\n        const phase2LoadMaxRange2 = data['phase2LoadMaxRange2'];\n        const phase2LoadMinRange2 = data['phase2LoadMinRange2'];\n        const phase2UnloadMaxRange2 = data['phase2UnloadMaxRange2'];\n        const phase2UnloadMinRange2 = data['phase2UnloadMinRange2'];\n        console.log(`stepIndexValue:${stepIndexValue}, \n            phase1Unload Range:[${phase1UnloadMinRange},${phase1UnloadMaxRange}],\n            phase1Load Range:[${phase1LoadMinRange},${phase1LoadMaxRange}],\n            phase2Unload2 Range:[${phase2UnloadMinRange2},${phase2UnloadMaxRange2}],\n            phase2Load2 Range:[${phase2LoadMinRange2},${phase2LoadMaxRange2}]\n            `)\n        console.log(\"in verifyAcceptedRange\");\n        console.log(\"packsValidationData\");\n        console.log(context.get('packsValidationData'));\n        console.log(\"selectedPackType\");\n        console.log(JSON.stringify(data));\n\n        switch(stepIndexValue){\n            case \"phase1UnloadData\":\n                //Do include the unfilled coil\n                const indices1 = [...generalCoilsIndices, ...referenceUnfilledCoilsIndices];\n                let isValid1 = true;\n                indices1.forEach((coilIndex, i)=>{\n                    if(!(phase1UnloadMinRange <= phase1UnloadDataArray[coilIndex] && phase1UnloadDataArray[coilIndex] <= phase1UnloadMaxRange)){\n                        isValid1 = false;\n                    }\n                })\n                console.log(`${stepIndexValue} is in range ? ${!isValid1}`)\n                return isValid1;\n            case \"phase1LoadData\":\n                //Do not include the unfilled coil\n                const indices2 = [...generalCoilsIndices];\n                let isValid2 = true;\n                indices2.forEach((coilIndex, i)=>{\n                    if(!(phase1LoadMinRange <= phase1LoadDataArray[coilIndex] && phase1LoadDataArray[coilIndex] <= phase1LoadMaxRange)){\n                        isValid2 = false;\n                    }\n                })\n                console.log(`${stepIndexValue} is in range ? ${!isValid2}`)\n                return isValid2;\n            case \"phase2LoadData2\":\n                const isOutOfRange3 = phase2LoadData2Array.some(value =>\n                    !(phase2LoadMinRange2 <= value && value <= phase2LoadMaxRange2)\n                );\n                console.log(`${stepIndexValue} is in range ? ${!isOutOfRange3}`)\n                return !isOutOfRange3;\n            case \"phase2UnloadData2\":\n                const isOutOfRange4 = phase2UnloadData2Array.some(value =>\n                    !(phase2UnloadMinRange2 <= value && value <= phase2UnloadMaxRange2)\n                );\n                console.log(`${stepIndexValue} is in range ? ${!isOutOfRange4}`)\n                return !isOutOfRange4;\n            default:\n                return true;\n        }\n\n    }catch(err){\n        console.log(`Error in verifyAcceptedRange: ${err.message}`);\n        return;\n    }\n}\nasync function postPhaseProceduralModule(context, phase){\n    try{\n        switch(phase){\n            case \"phaseI\":                            \n                updatePacksValidationStatusModule(context, 572); //Phase Load I Complete Status\n                console.log('Final Data')\n                console.log('phase1UnloadData')\n                console.log(context.get('packsValidationData.phase1UnloadData').toString())\n                console.log('phase1LoadData')\n                console.log(context.get('packsValidationData.phase1LoadData').toString())\n                //ADDITIONAL CALC & DATA MODIFICATIONS\n                checkFinalValidity(context, 'phaseI');\n                const response = await saveAndSendPhaseIData(context);\n                if(response == null){\n                    showPopup(['Error in saveAndSendPhaseIData'], 'error', 20);\n                    break;\n                }\n                const newPackID = response['data']['new_pack_id'];\n                packValidationConclusion(context, phase, newPackID)\n                //RESET and CLEAR\n                context.set(\"packValidationIsSamplingData.isPhaseISampling\",false);\n                context.set(\"packValidationIsSamplingData.currentStage\",null);\n                // outgoingMessageLibrary(context, rigResetCMD, '');\n                updatePacksValidationStatusModule(context, 551); //Idle \n                showPopup(['Phase I is complete and tidied up.'], 'success', 20);\n                break;\n    \n            case \"phaseII\":\n                updatePacksValidationStatusModule(context, 573); //Phase Load II Complete Status\n                console.log('Final Data')\n                console.log('phase2UnloadData1')\n                console.log(context.get('packsValidationData.phase2UnloadData1').toString())\n                console.log('phase2LoadData1')\n                console.log(context.get('packsValidationData.phase2LoadData1').toString())\n                console.log('phase2UnloadData2')\n                console.log(context.get('packsValidationData.phase2UnloadData2').toString())\n                console.log('phase2LoadData2')\n                console.log(context.get('packsValidationData.phase2LoadData2').toString())\n                //ADDITIONAL CALC & DATA MODIFICATIONS\n                checkFinalValidity(context, 'phaseII');\n                const response2 = await saveAndPatchPhaseIIData(context);\n                if(response2 == null){\n                    showPopup(['Error in saveAndSendPhaseIData'], 'error', 20);\n                    break;\n                }\n                const newPackID2 = context.get('manufacturedPackType.data.packID');\n                packValidationConclusion(context, phase, newPackID2)\n                //RESET and CLEAR\n                context.set(\"packValidationIsSamplingData.isPhaseIISampling\",false); \n                context.set(\"packValidationIsSamplingData.currentStage\",null);\n                // outgoingMessageLibrary(context, rigResetCMD, '');\n                updatePacksValidationStatusModule(context, 551); //Idle \n                showPopup(['Phase 2 is complete is tidied up.'], 'success', 20);\n                break;\n        }\n\n    }catch(err){\n        console.log(`Error in postPhaseProceduralModule: ${err.message}`);\n        return;\n    }\n} \nasync function saveAndSendPhaseIData(context){\n\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedPackType = context.get('userInputtedData.selectedPackType');\n    if(selectedRigProfile != null && selectedPackType != null){\n        //First Create a Pack Profile and Initilize Pack Profile Data  \n        let requestData = null\n        if(context.get('settingsConfig.phaseENV.isRepairing')){\n            requestData = buildAndGetDataFormat5(context);\n        }else{\n            requestData = buildAndGetDataFormat1(context); \n        }\n        const response = await sendPOSTRequest2(\"validation_pack_profile\", requestData)\n        //send request\n        if (response != null){\n            //Second PATCH phase I data to the newly created pack profile\n            const requestData2 = buildAndGetDataFormat4(context); \n            if(await sendPATCHRequest(`validation_pack_data/${response['data']['new_validation_id']}`, requestData2)){\n                showPopup([\"Pack Profile Created Successfully!\"],'success',3);\n                // window.location.reload();\n                return response;\n            }\n        }else{\n            showPopup([\"Pack Profile Creation Failed!\"],'error', 3);\n            return null;\n        };\n    \n    }\n\n}\nasync function saveAndPatchPhaseIIData(context){\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const manufacturedPackType = context.get('manufacturedPackType');\n    if(selectedRigProfile != null && manufacturedPackType != null){\n        //First Update Pack Profile for Phase II related columns\n        const requestData = buildAndGetDataFormat3(context); \n        const response = await sendPATCHRequest(`validation_pack_profile/${manufacturedPackType['data']['validationID']}`, requestData)\n        //send request\n        if (response != null){\n            const requestData2 = buildAndGetDataFormat2(context); \n            const response2 = await sendPATCHRequest(`validation_pack_data/${manufacturedPackType['data']['validationID']}`, requestData2);\n            if (response2 != null){\n                showPopup([\"Pack Profile Created Successfully!\"],'success',3);\n                // window.location.reload();\n                return response;\n            }\n        }else{\n            showPopup([\"Pack Profile Creation Failed!\"],'error', 3);\n            return null;\n        };\n    \n    }\n\n}\nasync function overrulePhaseIIConclusion(context, username, password){\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const manufacturedPackType = context.get('manufacturedPackType');\n    if(selectedRigProfile != null && manufacturedPackType != null){\n        //First get unique token to verify overrule employee\n        //use the token + username/pwd creds + unique overrule endpoint \n        //if overrule is successful, the backend will update the pack profile overrudeEmployee column + send 200 \n        //if overrule has failed, return 400\n\n        try {\n            let packProfileData = manufacturedPackType['data'];\n            let url = getApiBaseUrl()  + \"/api/token/\";\n            const credentials = btoa(`${username}:${password}`);\n\n            const response1 = await fetch(url, {\n            method: 'POST',\n            headers: {\n                'Content-Type': 'application/json',\n                Authorization: `Basic ${credentials}`  \n            },\n            });\n            if (response1.status == 400) {\n                console.log(response1)\n                showPopup([`Overrule Attempt with: ${username} Step 1}`,`FAILED`], 'error', 5);\n            }\n            else if ((response1['status'] == 200)) {\n                try {\n                    const data = {\n                        'phase2OverruleEmployee':username,\n                        'phase2OverruleDate':getCurrentDateTime(),\n                    }\n                    const response1Data = await response1.json(); //contains access and reload token\n                    let url = getApiBaseUrl() + `/validation_pack_request_overrule/${packProfileData['validationID']}`;\n                    const response2 = await fetch(url, {\n                    method: 'PATCH',\n                    headers: {\n                        'Content-Type': 'application/json',\n                        Authorization: 'Bearer ' + response1Data['access']  \n                    },\n                    body: JSON.stringify(data),\n                    });\n                    if (response2.status == 400) {\n                        console.log(response2)\n                        showPopup([`Overrule Attempt with: ${username} Step 2}`,`FAILED`], 'error', 5);\n                    }\n                    else if ((response2.status == 200)) {\n                        let requestData = {};\n                        requestData['phase2Memo'] = context.get(\"userInputtedData.selectedPackData.phase2Memo\");\n\n                        let url =  getApiBaseUrl() + `/validation_pack_profile/${packProfileData['validationID']}`;\n                        const response2 = await fetch(url, {\n                        method: 'PATCH',\n                        headers: {\n                            'Content-Type': 'application/json',\n                            Authorization: 'Bearer ' + response1Data['access']  \n                        },\n                        body: JSON.stringify(requestData),\n                        });\n                        if (response2.status == 400) {\n                            console.log(response2)\n                            showPopup([`Overrule Attempt with: ${username} Step 2}`,`FAILED`], 'error', 5);\n                        }\n                        else if ((response2.status == 200)) {\n                            return true; // Return true if status code is 201\n                        } \n                    } \n                    \n                } catch (error) {\n                    console.error('Error submitting data:', error);\n                }\n                \n            } \n            \n        } \n        catch (error) {\n            console.error('Error submitting data:', error);\n        }\n    }\n    return false;\n\n}\nexport function updatePacksValidationStatusModule(context, statusCode){\n    context.set(\"dashboardStatusBarData.calibration\",packStatusLibrary(statusCode));\n}\nasync function phaseISampleModule(context,stepIndexValue,stepUnloadOrLoad){\n    //Turn on Sampling\n    let stepENV = {};\n    stepENV['stepIndexValue'] = stepIndexValue;\n    stepENV['stepUnloadOrLoad'] = stepUnloadOrLoad;\n    context.set(\"packValidationIsSamplingData.isPhaseISampling\", true);\n    context.set(\"packValidationIsSamplingData.currentStage\", stepENV);\n    let timeoutCounter = 0;\n    try{\n        while (true){\n            emergencyCheckOrThrow(context,`Emergency triggered at phaseISampleModule`);\n\n            if(timeoutCounter % 20 == 0){\n                console.log(`Waiting on sampling. Waiting...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}. `);\n            }\n            if(!context.get(\"packValidationIsSamplingData\")[\"isPhaseISampling\"]){\n                return true;\n            }else if (timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                throw new Error(\"In phaseISampleModule: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORTING phase I\");\n            }\n            timeoutCounter+= 1;\n            await delayTimeModule(context, 0.1);\n        }\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updatePacksValidationStatusModule(context, 553);\n            showPopup([`${err.message}`], 'error', 15);\n        }\n        context.set(\"packValidationIsSamplingData.isPhaseISampling\", false);\n        return false;\n    }\n}\nasync function phaseIISampleModule(context,stepIndexValue,stepUnloadOrLoad){\n    //Turn on Sampling\n    let stepENV = {};\n    stepENV['stepIndexValue'] = stepIndexValue;\n    stepENV['stepUnloadOrLoad'] = stepUnloadOrLoad;\n    context.set(\"packValidationIsSamplingData.isPhaseIISampling\", true);\n    context.set(\"packValidationIsSamplingData.currentStage\", stepENV);\n    let timeoutCounter = 0;\n    try{\n        while (true){\n            emergencyCheckOrThrow(context,`Emergency triggered at phaseIISampleModule`);\n\n            if(timeoutCounter % 20 == 0){\n                console.log(`Waiting on sampling. Waiting...${timeoutCounter}/${context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')}. `);\n            }\n            if(!context.get(\"packValidationIsSamplingData\")[\"isPhaseIISampling\"]){\n                return true;\n            }else if (timeoutCounter > context.get('settingsConfig.MAX_TIMEOUT_AWAITING_SAMPLING')){\n                throw new Error(\"In phaseIISampleModule: Exceed MAX_TIMEOUT_AWAITING_SAMPLING, ABORTING phase II\");\n            }\n            timeoutCounter+= 1;\n            await delayTimeModule(context, 0.1);\n        }\n    }catch(err){\n        if (err.name === \"AbortError\") {\n            showPopup([`${err.message}`], 'error', 15);\n        } else {\n            updatePacksValidationStatusModule(context, 554);\n            showPopup([`${err.message}`], 'error', 15);\n        }\n        context.set(\"packValidationIsSamplingData.isPhaseIISampling\", false);\n        return false;\n    }\n}\nfunction handleSampleValidityPhaseIModule(context, sensorData){\n    try{\n        /***\n         * // first three values from sensor data: \n         * 25.0,19.67,19.60,19.41,19.41,19.01,19.83 -> 19.67,19.60,19.41,19.41,19.01,19.83\n         */\n        const trimmedSensorData = sensorData.slice(1); \n        const currentStage = context.get('packValidationIsSamplingData.currentStage');\n        const stepIndexValue = currentStage['stepIndexValue'];\n        if(context.get(\"packsValidationData\")[stepIndexValue].length < 2){\n            const updatedSampleArr = context.get(\"packsValidationData\")[stepIndexValue];\n            updatedSampleArr.push(trimmedSensorData)\n            context.set(\"packsValidationData\",{...context.get(\"packsValidationData\"), [stepIndexValue]: updatedSampleArr}); \n            updatePackProgressionBar(context);\n        }\n        if(context.get(\"packsValidationData\")[stepIndexValue].length === 1){\n            updatePacksValidationStatusModule(context, 570); //P1 Validating Status\n            // console.log(context.get(\"packsValidationData\")[stepIndexValue]);\n            console.log(`Phase I: Sampled & Validation Complete`);\n            //Stop sampling, move on\n            context.set(\"packValidationIsSamplingData.isPhaseISampling\", false);\n            context.set(\"packValidationIsSamplingData.currentStage\", null);\n        }\n        \n    }catch(err){\n        console.log(`Error in handleSampleValidityPhaseIModule: ${err.message}`);\n        context.set(\"packValidationIsSamplingData.isPhaseISampling\", false);\n        context.set(\"packValidationIsSamplingData.currentStage\", null);\n    }\n}\nfunction handleSampleValidityPhaseIIModule(context, sensorData){\n    try{\n        /***\n         * // first three values from sensor data: \n         * 25.0,19.67,19.60,19.41,19.41,19.01,19.83 -> 19.67,19.60,19.41,19.41,19.01,19.83\n         */\n        const trimmedSensorData = sensorData.slice(1); \n        const currentStage = context.get('packValidationIsSamplingData.currentStage');\n        const stepIndexValue = currentStage['stepIndexValue'];\n\n        if(context.get(\"packsValidationData\")[stepIndexValue].length < 2){\n            updatePacksValidationStatusModule(context, 568); //P2 Sampling Status\n            const updatedSampleArr = context.get(\"packsValidationData\")[stepIndexValue];\n            updatedSampleArr.push(trimmedSensorData)\n            context.set(\"packsValidationData\",{...context.get(\"packsValidationData\"), [stepIndexValue]: updatedSampleArr}); \n            updatePackProgressionBar(context);\n        }\n        if(context.get(\"packsValidationData\")[stepIndexValue].length === 1){\n            updatePacksValidationStatusModule(context, 570); //P2 Validating Status\n            console.log(context.get(\"packsValidationData\")[stepIndexValue]);\n            //Handle Validation\n            console.log(`Phase II: Sampled & Validation Complete`);\n            //Stop sampling, move on\n            context.set(\"packValidationIsSamplingData.isPhaseIISampling\", false);\n            context.set(\"packValidationIsSamplingData.currentStage\", null);\n        }\n        \n    }catch(err){\n        console.log(`Error in handleSampleValidityPhaseIModule: ${err.message}`);\n        context.set(\"packValidationIsSamplingData.isPhaseIISampling\", false);\n        context.set(\"packValidationIsSamplingData.currentStage\", null);\n    }\n}\nexport function checkFinalValidity(context, phase){\n    let data = null;\n\n    if(context.get('settingsConfig.phaseENV.phase') == 1){\n        const selectedPackType = context.get('userInputtedData.selectedPackType');\n        data = selectedPackType['data'];\n    }else{\n        const manufacturedPackType = context.get('manufacturedPackType');\n        data = manufacturedPackType['data']['packTypeObj'];\n\n    }\n    let phase1LoadMinRange= data['phase1LoadMinRange'];\n    let phase1LoadMaxRange = data['phase1LoadMaxRange'] ;\n    let phase1UnloadMinRange = data['phase1UnloadMinRange'] ;\n    let phase1UnloadMaxRange = data['phase1UnloadMaxRange'] ;\n    let phase2LoadMinRange2 = data['phase2LoadMinRange2'] ;\n    let phase2LoadMaxRange2 = data['phase2LoadMaxRange2'] ;\n    let phase2UnloadMinRange2 = data['phase2UnloadMinRange2'] ;\n    let phase2UnloadMaxRange2 = data['phase2UnloadMaxRange2'] ;\n\n    let activeCoilsCount = data['coilsProfile']['activeCoilsCount'] ;\n    let totalCoilsCount = data['coilsProfile']['totalCoilsCount'] ;\n    let referenceUnfilledCoilsPositions = data['coilsProfile']['referenceUnfilledCoilsPositions'] ;\n    let generalCoilsPositions = data['coilsProfile']['generalCoilsPositions'] ;\n\n    let referenceUnfilledCoilsIndices = [];\n    referenceUnfilledCoilsPositions.forEach((value, index)=>{\n        if((value - 1) >= 0){\n            referenceUnfilledCoilsIndices.push(value-1);\n        }\n    })\n    // console.log(\"referenceUnfilledCoilsIndices:\");\n    // console.log(referenceUnfilledCoilsIndices);\n\n    let generalCoilsIndices = [];\n    generalCoilsPositions.forEach((value, index)=>{\n        if((value - 1) >= 0){\n            generalCoilsIndices.push(value-1);\n        }\n    })\n    // console.log(\"generalCoilsIndices:\");\n    // console.log(generalCoilsIndices);\n\n    let unloadCONST = data['acceptedUnloadVariance'] ;\n    let loadCONST = data['acceptedLoadVariance'] ;\n    switch(phase){\n        case \"phaseI\":\n            //Check for UNLOAD Validity\n            const phase1UnloadData = context.get('packsValidationData.phase1UnloadData')[0];//[45562,45549,44924,45050,45021,44975,45779,60349]\n            if(phase1UnloadData.length > 0){\n                //  Find Max(Include last value) & Find Min(Include last value) & Get Spread\n                const minValue1 = Math.min(...buildArrayForValidation(context,false,phase1UnloadData, generalCoilsIndices, referenceUnfilledCoilsIndices));\n                const maxValue1 = Math.max(...buildArrayForValidation(context,false,phase1UnloadData, generalCoilsIndices, referenceUnfilledCoilsIndices));\n                const spread1 = maxValue1 - minValue1;\n                const check1 = (phase1UnloadMinRange <= minValue1) && (maxValue1 <= phase1UnloadMaxRange)\n                //Check if min and max are within accepted rng\n                if(!check1){\n                    console.log(`Either max:${maxValue1} or min:${minValue1} are NOT within the ranges between ${phase1UnloadMinRange} and ${phase1UnloadMaxRange}`);\n                    context.set(\"packsValidationData.phase1ValidityData.unload\", false); \n                }else{\n                    const result = check1 && (spread1 < unloadCONST);\n                    console.log(`UNLOAD max:${maxValue1} min:${minValue1} spread:${spread1} unloadCONST:${unloadCONST}. Final Result:${result.toString()}`);\n                    //  Store Results\n                    context.set(\"packsValidationData.phase1ValidityData.unload\", result); \n                }\n            }else{\n                context.set(\"packsValidationData.phase1ValidityData.unload\", false); \n            }\n\n            //Check for LOAD Validity\n            const phase1LoadData = context.get('packsValidationData.phase1LoadData')[0];//[45562,45549,44924,45050,45021,44975,45779,60349]\n            if(phase1UnloadData.length > 0){\n                //  Find Max(Include last value) & Find Min(Include last value) & Get Spread\n                const minValue2 = Math.min(...buildArrayForValidation(context,true,phase1LoadData, generalCoilsIndices, referenceUnfilledCoilsIndices));\n                const maxValue2 = Math.max(...buildArrayForValidation(context,true,phase1LoadData, generalCoilsIndices, referenceUnfilledCoilsIndices)); \n                const spread2 = maxValue2 - minValue2;\n                const check2 = (phase1LoadMinRange <= minValue2) && (maxValue2 <= phase1LoadMaxRange)\n                //Check if min and max are within accepted rng\n                if(!check2){\n                    console.log(`Either max:${maxValue2} or min:${minValue2} are NOT within the ranges between ${phase1LoadMinRange} and ${phase1LoadMaxRange}`);\n                    context.set(\"packsValidationData.phase1ValidityData.load\", false); \n                }else{\n                    const result2 = check2 && (spread2 < loadCONST);\n                    //  Store Results\n                    console.log(`LOAD max:${maxValue2} min:${minValue2} spread:${spread2} loadCONST:${loadCONST}. Final Result:${result2.toString()}`);\n                    context.set(\"packsValidationData.phase1ValidityData.load\", result2); \n                }\n            }else{\n                context.set(\"packsValidationData.phase1ValidityData.load\", false); \n            }\n\n            //Check for final Validity\n            context.set(\"packsValidationData.phase1ValidityData.final\", context.get(\"packsValidationData.phase1ValidityData.unload\") && context.get(\"packsValidationData.phase1ValidityData.load\")); \n            break;\n        case \"phaseII\":\n            //Check for UNLOAD 1 Validity\n            const phase2UnloadData1 = context.get('packsValidationData.phase2UnloadData1')[0];//[45562,45549,44924,45050,45021,44975,45779,60349]\n            if(phase2UnloadData1.length > 0){\n                const minValue3 = Math.min(...buildArrayForValidation(context,true,phase2UnloadData1, generalCoilsIndices, referenceUnfilledCoilsIndices));\n                const maxValue3 = Math.max(...buildArrayForValidation(context,true,phase2UnloadData1, generalCoilsIndices, referenceUnfilledCoilsIndices)); \n                const spread3 = maxValue3 - minValue3;\n                const result3 = spread3 < unloadCONST;\n                console.log(`UNLOAD 1 max:${maxValue3} min:${minValue3} spread:${spread3} unloadCONST${unloadCONST}. Final Result:${result3.toString()}`);\n                context.set(\"packsValidationData.phase2ValidityData.unload1\", result3); \n            }else{\n                context.set(\"packsValidationData.phase2ValidityData.unload1\", false); \n            }\n            //Check for LOAD 1 Validity\n            const phase2LoadData1 = context.get('packsValidationData.phase2LoadData1')[0];//[45562,45549,44924,45050,45021,44975,45779,60349]\n            if(phase2LoadData1.length > 0){\n                const minValue4 = Math.min(...buildArrayForValidation(context,true,phase2LoadData1, generalCoilsIndices, referenceUnfilledCoilsIndices));\n                const maxValue4 = Math.max(...buildArrayForValidation(context,true,phase2LoadData1, generalCoilsIndices, referenceUnfilledCoilsIndices)); \n                const spread4 = maxValue4 - minValue4;\n                const result4 = spread4 < loadCONST;\n\n                console.log(`LOAD 1 max:${maxValue4} min:${minValue4} spread:${spread4} loadCONST${loadCONST}. Final Result:${result4.toString()}`);\n                context.set(\"packsValidationData.phase2ValidityData.load1\", result4); \n            }else{\n                context.set(\"packsValidationData.phase2ValidityData.load1\", false); \n\n            }\n            //Check for UNLOAD 2 Validity\n            const phase2UnloadData2 = context.get('packsValidationData.phase2UnloadData2')[0];//[45562,45549,44924,45050,45021,44975,45779,60349]\n            if(phase2UnloadData2.length > 0){\n                const minValue6 = Math.min(...phase2UnloadData2);\n                const maxValue6 = Math.max(...phase2UnloadData2); \n                const spread6 = maxValue6 - minValue6;\n                const check6 = (phase2UnloadMinRange2 <= minValue6) && (maxValue6 <= phase2UnloadMaxRange2)\n                const result6 = check6 && (spread6 < unloadCONST);\n                console.log(`UNLOAD 2 max:${maxValue6} min:${minValue6} spread:${spread6} unloadCONST${unloadCONST}. Final Result:${result6.toString()}`);\n                context.set(\"packsValidationData.phase2ValidityData.unload2\", result6); \n            }else{\n                context.set(\"packsValidationData.phase2ValidityData.unload2\", false); \n\n            }\n            //Check for LOAD 2 Validity\n            const phase2LoadData2 = context.get('packsValidationData.phase2LoadData2')[0];//[45562,45549,44924,45050,45021,44975](NO REF VALUES)\n            if(phase2LoadData2.length > 0){\n                const minValue5 = Math.min(...phase2LoadData2);\n                const maxValue5 = Math.max(...phase2LoadData2); \n                const spread5 = maxValue5 - minValue5;\n                const check5 = (phase2LoadMinRange2 <= minValue5) && (maxValue5 <= phase2LoadMaxRange2)\n                const result5 = check5 && (spread5 < loadCONST);\n                console.log(`LOAD 2 max:${maxValue5} min:${minValue5} spread:${spread5} loadCONST${loadCONST}. Final Result:${result5.toString()}`);\n                context.set(\"packsValidationData.phase2ValidityData.load2\", result5); \n            }else{\n                context.set(\"packsValidationData.phase2ValidityData.load2\", false); \n\n            }\n            //Check for final Validity\n            context.set(\"packsValidationData.phase2ValidityData.final\", context.get(\"packsValidationData.phase2ValidityData.unload1\") && context.get(\"packsValidationData.phase2ValidityData.load1\") && context.get(\"packsValidationData.phase2ValidityData.unload2\") && context.get(\"packsValidationData.phase2ValidityData.load2\")); \n            break;\n    }\n\n}\nfunction delayTimeModule(context, numberSeconds){\n    /***\n     * Call delay by \"await delayTimeModule(2);\"\n     */\n    return new Promise((resolve) => {\n        setTimeout(resolve, numberSeconds * 1000);\n      });\n}\nfunction softResetPhaseIModule(context){\n\n    updatePacksValidationStatusModule(context, 555);\n    resetPackProgressionBar(context);\n    const chatBox = document.getElementById('phaseITextbox');\n    if(chatBox){\n        chatBox.innerHTML=\"\";\n    }\n    context.set(\"packsValidationData.phase1LoadData\", []);\n    context.set(\"packsValidationData.phase1UnloadData\", []);\n    context.set(\"packsValidationData.phase1ValidityData\", {unload:false,load:false,final:false});\n    context.set(\"packValidationIsSamplingData.isPhaseISampling\",false);\n    context.set(\"packValidationIsSamplingData.currentStage\",null);\n}\nfunction softResetPhaseIIModule(context){\n\n    updatePacksValidationStatusModule(context, 559);\n\n    resetPackProgressionBar(context);\n    const chatBox = document.getElementById('phaseIITextbox');\n    if(chatBox){\n        chatBox.innerHTML=\"\";\n    }\n    context.set(\"packsValidationData.phase2UnloadData1\", []);\n    context.set(\"packsValidationData.phase2LoadData1\", []);\n    context.set(\"packsValidationData.phase2LoadData2\", []);\n    context.set(\"packsValidationData.phase2UnloadData2\", []);\n    context.set(\"packsValidationData.phase2ValidityData\", {unload1:false, load1:false, load2:false,unload2:false, final:false});\n    context.set(\"packValidationIsSamplingData.isPhaseIISampling\",false);\n}\nexport function hardResetModule(context){\n\n    context.set(\"packsValidationData\",{phase1LoadDataSampleData:[],\n        phase1LoadData:[],\n        phase1UnloadDataSampleData:[],\n        phase1UnloadData:[],\n        phase2LoadData1SampleData:[],\n        phase2LoadData1:[],\n        phase2UnloadData1SampleData:[],\n        phase2UnloadData1:[],\n        phase2UnloadData2SampleData:[],\n        phase2UnloadData2:[],\n        phase2LoadData2SampleData:[],\n        phase2LoadData2:[],\n        phase1ValidityData:{unload:false,load:false,final:false, },\n        phase2ValidityData:{load1:false, unload1:false, unload2:false, load2:false,final:false}\n    });\n    context.set(\"packValidationIsSamplingData\",{currentStage:null,isPhaseISampling:false, isPhaseIISampling:false});\n    const rigProfile = document.getElementById(\"selectedRigIP\");\n    rigProfile.value=\"0\";\n    context.set(\"selectedRigDP\", \"0\");\n    const calibProfile = document.getElementById(\"selectedPackType\");\n    calibProfile.value=\"0\";\n    context.set(\"selectedCalibDP\", \"0\");\n\n}\nfunction emergencyCheckOrThrow(context, message, errCategory=null){\n    if (context.get(\"emergencyController\")['signal']['aborted']) {\n        throw new DOMException(message, errCategory == null ? \"AbortError\" : errCategory);\n    }\n\n}\n//General utilities and Tools Section\nexport async function sendBatchCommands(context, cmdValueArray){\n    for (let cmdValueString of cmdValueArray) {\n        const [cmd, value] = cmdValueString.split(' ');\n        await outgoingMessageLibrary(\n            context,\n            cmd ? cmd : \"\",\n            value ? value : \"\"\n        );\n\n        // Wait 4 seconds before the next iteration\n        await new Promise(resolve => setTimeout(resolve, 5000));\n    }\n\n}\nfunction buildArrayForValidation(context,requireTrim, sampledArray, generalCoilsIndices, referenceUnfilledCoilsIndices){\n    /**\n     * sampledArray: assume it does not have temeprature \n     * eg: generalCoilsIndices:[0,1,2,3,4,5,6,8] \n     * eg: referenceUnfilledCoilsIndices:[7]\n     */\n    let finalArray = [];\n    console.log('in buildArrayForValidation')\n    console.log('in requireTrim')\n    console.log(requireTrim)\n    console.log('in sampledArray')\n    console.log(sampledArray)\n    console.log('in generalCoilsIndices')\n    console.log(generalCoilsIndices)\n    console.log('in referenceUnfilledCoilsIndices')\n    console.log(referenceUnfilledCoilsIndices)\n    if(requireTrim){\n        generalCoilsIndices.forEach((indexValue, index)=>{\n            finalArray.push(sampledArray[indexValue]);\n        });\n    }else{\n        generalCoilsIndices.forEach((indexValue, index)=>{\n            finalArray.push(sampledArray[indexValue]);\n        });\n        referenceUnfilledCoilsIndices.forEach((indexValue, index)=>{\n            finalArray.push(sampledArray[indexValue]);\n        });\n    }\n    console.log('in finalArray')\n    console.log(finalArray)\n    return finalArray;\n    \n}\nexport function destroyAndClearAnchorLiveView(context){\n    //Clear Anchor Live Section\n    if(document.getElementById('anchorLiveViewSections')){\n        document.getElementById('anchorLiveViewSections').innerHTML = '';\n    }\n    //Clear Live Log Charts Dataset\n    if (context.chart) {\n        context.chart.data.datasets = [];\n        context.chart.data.labels = []\n        context.chart.update();\n    }\n}\nexport function initializeAndCreateAnchorLiveView(context, numberOfSections){\n    //Build TBs for Anchor Live View \n    context.buildAnchorLiveViews(numberOfSections);\n    console.log(numberOfSections)\n    //First clear the inital dataset\n    if (context.chart) {\n        context.chart.data.labels = [];\n        context.chart.data.datasets = [];\n        context.chart.update();\n    }\n\n    let datasetArr = [];\n    for(let i=0; i<numberOfSections;i++){\n        datasetArr.push({\n            label:`CH${i}`,\n            borderColor : getDataSetColor(i),\n            borderWidth: 0.5,\n            fill: false,\n            tension: 0.1,\n        })\n    }        \n    \n    if (context.chart) {\n        context.chart.data.datasets = datasetArr;\n        context.chart.update();\n    }\n}\nexport function resetPackProgressionBar(context) {\n    const progressBarSection = document.getElementById('packsProgressionViewSection');\n    const progressBarFill = document.getElementById('packsProgressionBar');\n    const progressValueText = document.getElementById('packsProgressionValue');\n    progressBarFill.style.width = \"0%\";\n    progressValueText.textContent = ``;\n    progressBarSection.style.display = \"none\";\n\n}\nexport function updatePackProgressionBar(context) {\n    const progressBarSection = document.getElementById('packsProgressionViewSection');\n    const progressBarFill = document.getElementById('packsProgressionBar');\n    const progressValueText = document.getElementById('packsProgressionValue');\n\n    if (!progressBarSection || !progressBarFill || !progressValueText) {\n        console.error(\"Progress bar elements not found in DOM.\");\n        return;\n    }\n\n    let maxProgress = 0; // Total number of steps\n    let currentProgress = 0\n    if(context.get('settingsConfig.phaseENV.phase') == 1){\n        maxProgress = 2;\n        if(context.get(\"packsValidationData.phase1LoadData\").length > 0){\n            currentProgress += 1;\n        }\n        if(context.get(\"packsValidationData.phase1UnloadData\").length > 0){\n            currentProgress += 1;\n        }\n    }else{\n        maxProgress = 4;\n        if(context.get(\"packsValidationData.phase2UnloadData1\").length > 0){\n            currentProgress += 1;\n        }\n        if(context.get(\"packsValidationData.phase2LoadData1\").length > 0){\n            currentProgress += 1;\n        }\n        if(context.get(\"packsValidationData.phase2LoadData2\").length > 0){\n            currentProgress += 1;\n        }\n        if(context.get(\"packsValidationData.phase2UnloadData2\").length > 0){\n            currentProgress += 1;\n        }\n    }\n\n    let progressPercentage = (currentProgress / maxProgress) * 100;\n    progressPercentage = Math.min(progressPercentage, 100); // Ensures max is 100%\n\n    // Make the progress bar visible\n    progressBarSection.style.display = \"flex\";\n\n    // Smooth animation effect: update the width of the progress bar with a delay\n    setTimeout(() => {\n        progressBarFill.style.width = `${progressPercentage}%`;\n    }, 100); // Small delay to allow transition effect\n    progressValueText.textContent = `${progressPercentage}%`;\n}\nfunction getRandomNumber(min, max) {\n    // Generate a random number between 20 and 23\n    let randomNumber = Math.random() * (max - min) + min;\n    // Round to two decimal places\n    return randomNumber.toFixed(0);\n}\nexport function phase1TestMessage(context) {\n    const interval = setInterval(() => {\n        appendLiveLog(context, `sensorData=+ 22.5,${getRandomNumber(27600,27700)},${getRandomNumber(27600,27700)},${getRandomNumber(27600,27700)},${getRandomNumber(27600,27700)},${getRandomNumber(27600,27700)},${getRandomNumber(27600,27700)},${getRandomNumber(27600,27700)},${getRandomNumber(27600,27700)}`, 'incoming')\n    }, 2000); // Logs \"test\" every 2 seconds\n    \n    // Stop after 30 seconds (optional)\n    setTimeout(() => clearInterval(interval), 1200000);\n\n}\nexport function roundToDecimalPlaces(value, decimalPlaces) {\n    const scale = Math.pow(10, decimalPlaces);\n    const roundedValue = Math.round(value * scale) / scale;\n\n    // Ensure the result has exactly the specified number of decimal places\n    return roundedValue.toFixed(decimalPlaces);\n}\nfunction parseMessage1(message) {\n    /**\n     * Used for processing message structure of:\n     * + 22.5,27606,27620,27633,27613,27680,27635,27579,27651 ---> [ 22.5,27606,27620,27633,27613,27680,27635,27579,27651]\n     */\n    const data = message.split(',');\n    // Ensure the array has at least the first 2 elements\n    if (data.length < 2) {\n      throw new Error(\"Array must have at least 2 elements.\");\n    }\n  \n    // Extract the temperature value (1st element in the array)\n    let temperatureValue;\n    try {\n      temperatureValue = parseFloat(data[0].replace(\"+\", \"\").trim()); // Clean and convert to float\n    } catch (error) {\n      throw new Error(\"Temperature value is not valid.\");\n    }\n  \n    // Initialize array for displacement values\n    const displacementValues = [];\n  \n    // Process the remaining elements in pairs (displacementValue, displacementUnit)\n    for (let i = 1; i < data.length; i += 1) {\n      let displacementValue = data[i]?.trim()?.replace(/\\s+/g, \"0\") || null; // Remove spaces\n      try {\n        if(displacementValue != null){\n            displacementValues.push(parseFloat(displacementValue));\n        }\n      } catch (error) {\n        // Skip invalid displacement values\n        console.warn(`Invalid displacement value at index ${i}:`, data[i]);\n      }\n    }\n  \n    // Return as an array\n    const finalArr = [temperatureValue];\n    displacementValues.forEach((value)=>{\n        finalArr.push(value);\n    })\n    // console.log(finalArr);\n    return finalArr;\n}\nfunction parseMessage2(message) {\n    /**\n     * Used for processing message structure of:\n     * YP,240571999,6EXTO,71, + 22.0,0,29980,ms, 29923,ms, 29992, ms,29988,ms, 29970, ms, 29936,ms, --->  [22.5,27606,27620,27633,27613,27680,27635,27579,27651]\n     */\n    const data = message.split(',');\n    // Ensure the array has at least the first 5 elements\n    if (data.length < 5) {\n      throw new Error(\"Array must have at least 5 elements.\");\n    }\n  \n  \n    // Extract the temperature value (5th element in the array)\n    let temperatureValue;\n    try {\n      temperatureValue = parseFloat(data[4].replace(\"+\", \"\").trim()); // Clean and convert to float\n    } catch (error) {\n      throw new Error(\"Temperature value is not valid.\");\n    }\n  \n    // Initialize array for displacement values\n    const displacementValues = [];\n  \n    // Process the remaining elements in pairs (displacementValue, displacementUnit)\n    for (let i = 6; i < data.length; i += 2) {\n      let displacementValue = data[i]?.trim()?.replace(/\\s+/g, \"0\") || null; // Remove spaces\n      try {\n        if(displacementValue != null){\n            // console.log('displacementValue')\n            // console.log(displacementValue)\n            displacementValues.push(parseFloat(displacementValue));\n        }\n      } catch (error) {\n        // Skip invalid displacement values\n        console.warn(`Invalid displacement value at index ${i}:`, data[i]);\n      }\n    }\n  \n    // Return as an array\n    const finalArr = [ temperatureValue];\n    displacementValues.forEach((value)=>{\n        finalArr.push(value);\n    })\n    // console.log(finalArr);\n\n    return finalArr;\n}\nexport function getDataSetColor(index) {\n    const colors = [\n        '#FF0000', // Red\n        '#00FF00', // Green\n        '#0000FF', // Blue\n        '#FFFF00', // Yellow\n        '#FF00FF', // Magenta\n        '#00FFFF', // Cyan\n        '#FF7F00', // Orange\n        '#7F00FF', // Violet\n        '#00FF7F', // Spring Green\n        '#7FFF00', // Chartreuse\n        '#FF007F', // Rose\n        '#007FFF', // Azure\n        '#7F7F7F', // Grey\n        '#FFAA00', // Amber\n        '#AAFF00', // Lime\n        '#00AAFF', // Cerulean\n        '#AA00FF', // Purple\n        '#FF00AA', // Fuchsia\n        '#00FFAA', // Aqua\n        '#AAFFAA', // Pastel Green\n        '#AAFF7F', // Light Green\n        '#7F7FFF', // Lavender\n        '#FF5555', // Soft Red\n        '#55FF55', // Soft Green\n        '#5555FF', // Soft Blue\n    ];\n\n    // Cycle through the colors if there are more datasets than predefined colors\n    return colors[index % colors.length];\n}\nexport function getCurrentDateTime () {\n    const now = new Date();\n\n    const year = now.getFullYear();\n    const month = String(now.getMonth() + 1).padStart(2, '0'); // Months are 0-based\n    const day = String(now.getDate()).padStart(2, '0');\n\n    const hours = String(now.getHours()).padStart(2, '0');\n    const minutes = String(now.getMinutes()).padStart(2, '0');\n    const seconds = String(now.getSeconds()).padStart(2, '0');\n    const milliseconds = String(now.getMilliseconds()).padStart(3, '0');\n\n    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;\n}\nfunction areNumbersEqual(num1, num2, epsilon = 0.005) {\n    return Math.abs(num1 - num2) < epsilon;\n}\nexport function formatDateTimeFromInputField(dateTimeString) {\n    // Convert the input datetime-local string to the desired format\n    const [date, time] = dateTimeString.split('T');\n    console.log(`date:${date} time:${time}`);\n    return `${date} ${time}:00`; // Append milliseconds as .000\n}\nexport function convertDBDateToTableDate(DBDate){\n    const date = new Date (DBDate);\n    let year = date.getFullYear();\n    let month = String(date.getMonth() + 1).padStart(2, '0');\n    let day = String(date.getDate()).padStart(2, '0');\n    let hours = String(date.getHours()).padStart(2, '0');\n    let minutes = String(date.getMinutes()).padStart(2, '0');\n    let seconds = String(date.getSeconds()).padStart(2, '0');\n    \n    return(`${year}-${month}-${day} ${hours}:${minutes}:${seconds}`) ;\n\n}\n/**\n * Build request data for end of phase I for pack profile table\n */\nexport function buildAndGetDataFormat1(context){\n    const selectedRigProfile = context.get('userInputtedData.selectedRigProfile');\n    const selectedPackType = context.get('userInputtedData.selectedPackType'); \n    const selectedPackData = context.get(\"userInputtedData.selectedPackData\"); //User inputted meta data of the pack such as packname and memo\n    const packsValidationData = context.get('packsValidationData');\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    console.log(\"in buildAndGetDataFormat1\")\n    console.log(selectedRigProfile)\n    console.log(selectedPackType)\n    console.log(selectedPackData)\n    console.log(packsValidationData)\n    console.log(userProfile)\n    //Build Data\n    let requestData = {};\n    //add sensorProfile \n    requestData['rigID'] = selectedRigProfile['data']['rigID'] ? Number.parseInt(selectedRigProfile['data']['rigID']) : 0;\n    requestData['company'] = `${userProfile['profile']['company']}`;\n    requestData['phase1Employee'] = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n    requestData['packName'] = selectedPackData != null && selectedPackData['packName'] ? selectedPackData['packName'] : null;\n    requestData['phase1Memo'] = selectedPackData != null && selectedPackData['phase1Memo'] ? selectedPackData['phase1Memo'] : null;\n    requestData['max'] = `${selectedPackType != null && selectedPackType['data']['max'] ? selectedPackType['data']['max'] : \"\"}`;\n    requestData['min'] = `${selectedPackType != null && selectedPackType['data']['min'] ? selectedPackType['data']['min'] : \"\"}`;\n    requestData['channels'] = `${selectedPackType != null && selectedPackType['data']['channels'] ? selectedPackType['data']['channels'] : \"\"}`;\n    requestData['packType'] = `${selectedPackType != null && selectedPackType['dbID'] ? Number.parseInt(selectedPackType['dbID']): \"\"}`;\n    requestData['phase1ValidationDate'] = getCurrentDateTime();\n\n    // console.log(`requestData`);\n    // console.log(requestData);\n    return requestData;\n}\n/**\n * Build request data for end of phase II for pack profile data table\n */\nexport function buildAndGetDataFormat2(context){\n    const packsValidationData = context.get('packsValidationData');\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    console.log(packsValidationData)\n    //Build Data\n    let requestData = {};\n    //add sensorProfile \n    requestData['phase2UnloadData1'] = packsValidationData['phase2UnloadData1'][0];\n    requestData['phase2LoadData1']   = packsValidationData['phase2LoadData1'][0];\n    requestData['phase2UnloadData2'] = packsValidationData['phase2UnloadData2'][0];\n    requestData['phase2LoadData2']   = packsValidationData['phase2LoadData2'][0];\n    requestData['phase2ValidityData']   = packsValidationData['phase2ValidityData'];\n\n    // console.log(`requestData`);\n    // console.log(requestData);\n    return requestData;\n}\n/**\n * Build request data for end of phase II for pack profile table\n */\nexport function buildAndGetDataFormat3(context){\n    const selectedPackData = context.get(\"userInputtedData.selectedPackData\"); //User inputted meta data of the pack such as packname and memo\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    //Build Data\n    let requestData = {};\n    requestData['phase2Employee'] = `${userProfile['profile']['first_name']} ${userProfile['profile']['last_name']}`;\n    requestData['phase2Memo'] = selectedPackData != null && selectedPackData['phase2Memo'] ? selectedPackData['phase2Memo'] : null;\n    requestData['phase2ValidationDate'] = getCurrentDateTime();\n\n    // console.log(`requestData`);\n    // console.log(requestData);\n    return requestData;\n}\n/**\n * Build request data for end of phase I for pack profile data table\n */\nexport function buildAndGetDataFormat4(context){\n    const packsValidationData = context.get('packsValidationData');\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    console.log(packsValidationData)\n    //Build Data\n    let requestData = {};\n    //add sensorProfile \n    requestData['phase1UnloadData'] = packsValidationData['phase1UnloadData'][0];\n    requestData['phase1LoadData']   = packsValidationData['phase1LoadData'][0];\n    requestData['phase1ValidityData']   = packsValidationData['phase1ValidityData'];\n    // console.log(`requestData`);\n    // console.log(requestData);\n    return requestData;\n}\n/**\n * Build request data for end of phase I ONLY IFF ISREPAIRING\n */\nexport function buildAndGetDataFormat5(context){\n    const completedPackProfile = context.get('completedPackProfile');\n    const userProfile = context.get('session').data.authenticated['userProfile'];\n    //Build Data\n    let requestData = {};\n    //add sensorProfile \n    requestData['packID'] = completedPackProfile != null && completedPackProfile['data']['packID'] ? completedPackProfile['data']['packID'] : null;\n    requestData['company'] = `${userProfile['profile']['company']}`;\n    requestData['packName'] = completedPackProfile != null && completedPackProfile['data']['packName'] ? completedPackProfile['data']['packName'] : null;\n    requestData['min'] = completedPackProfile != null && completedPackProfile['data']['min'] ? completedPackProfile['data']['min'] : null;\n    requestData['max'] = completedPackProfile != null && completedPackProfile['data']['max'] ? completedPackProfile['data']['max'] : null;\n    requestData['channels'] = completedPackProfile != null && completedPackProfile['data']['channels'] ? completedPackProfile['data']['channels'] : null;\n    requestData['packType'] = completedPackProfile != null && completedPackProfile['data']['packType'] ? completedPackProfile['data']['packType'] : null;\n    requestData['phase1ValidationDate'] = completedPackProfile != null && completedPackProfile['data']['phase1ValidationDate'] ? completedPackProfile['data']['phase1ValidationDate'] : null;\n    requestData['phase2ValidationDate'] = completedPackProfile != null && completedPackProfile['data']['phase2ValidationDate'] ? completedPackProfile['data']['phase2ValidationDate'] : null;\n    requestData['phase1Memo'] = completedPackProfile != null && completedPackProfile['data']['phase1Memo'] ? completedPackProfile['data']['phase1Memo'] : null;\n    requestData['phase2Memo'] = completedPackProfile != null && completedPackProfile['data']['phase2Memo'] ? completedPackProfile['data']['phase2Memo'] : null;\n    requestData['phase1Employee'] = completedPackProfile != null && completedPackProfile['data']['phase1Employee'] ? completedPackProfile['data']['phase1Employee'] : null;\n    requestData['phase2Employee'] = completedPackProfile != null && completedPackProfile['data']['phase2Employee'] ? completedPackProfile['data']['phase2Employee'] : null;\n    requestData['phase2OverruleEmployee'] = completedPackProfile != null && completedPackProfile['data']['phase2OverruleEmployee'] ? completedPackProfile['data']['phase2OverruleEmployee'] : null;\n    requestData['progression'] = completedPackProfile != null && completedPackProfile['data']['progression'] ? completedPackProfile['data']['progression'] : null;\n    requestData['rigID'] = completedPackProfile != null && completedPackProfile['data']['rigID'] ? completedPackProfile['data']['rigID'] : null;\n    requestData['phase2OverruleDate'] = completedPackProfile != null && completedPackProfile['data']['phase2OverruleDate'] ? completedPackProfile['data']['phase2OverruleDate'] : null;\n    return requestData;\n}","import pageTitle from 'ember-page-title/helpers/page-title';\n\nexport default pageTitle;\n","import { helper } from '@ember/component/helper';\n\nexport function parseint(params/*, hash*/) {\n  return parseInt(params[0]);\n}\n\nexport default helper(parseint);\n\n","define(\"geotechnical-data-platform-new/helpers/perform\", [\"exports\", \"ember-concurrency/helpers/perform\"], function (_exports, _perform) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _perform.default;\n    }\n  });\n});\n","import pluralize from 'ember-inflector/lib/helpers/pluralize';\nexport default pluralize;\n","define(\"geotechnical-data-platform-new/helpers/point\", [\"exports\", \"ember-leaflet/helpers/point\"], function (_exports, _point) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _point.default;\n    }\n  });\n  Object.defineProperty(_exports, \"point\", {\n    enumerable: true,\n    get: function () {\n      return _point.point;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport function range(values) {\n    var start = values[0];\n    var count = values[1];\n  \n    var ret = [];\n    for(var i = 0; i < count; i++) {\n      ret.push(i+start);\n    }\n    return ret;\n}\n\nexport default Ember.Helper.helper(range);\n","define(\"geotechnical-data-platform-new/helpers/ref-to\", [\"exports\", \"ember-ref-bucket/helpers/ref-to\"], function (_exports, _refTo) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _refTo.default;\n    }\n  });\n  Object.defineProperty(_exports, \"refTo\", {\n    enumerable: true,\n    get: function () {\n      return _refTo.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/searchable-select-get\", [\"exports\", \"ember-searchable-select/helpers/searchable-select-get\"], function (_exports, _searchableSelectGet) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _searchableSelectGet.default;\n    }\n  });\n  Object.defineProperty(_exports, \"searchableSelectGet\", {\n    enumerable: true,\n    get: function () {\n      return _searchableSelectGet.searchableSelectGet;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/searchable-select-highlight-match\", [\"exports\", \"ember-searchable-select/helpers/searchable-select-highlight-match\"], function (_exports, _searchableSelectHighlightMatch) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _searchableSelectHighlightMatch.default;\n    }\n  });\n  Object.defineProperty(_exports, \"searchableSelectHighlightMatch\", {\n    enumerable: true,\n    get: function () {\n      return _searchableSelectHighlightMatch.searchableSelectHighlightMatch;\n    }\n  });\n});\n","\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport Chart from 'chart.js/auto';\nimport printJS from 'print-js';\nimport {sendGETRequest} from \"../helpers/network-library\"\n\nexport async function refreshMainChartData(context){\n    let endpoint = \"sensor_calibration_analytics/?\"\n    console.log('request params')\n    console.log(context.get(\"requestParams\"))\n    \n    Object.entries(context.get(\"requestParams\")).forEach(([key, value], index) => {\n        if(value != null){\n            endpoint += `${key}=${value}&`;\n        }\n      });\n    endpoint = endpoint.slice(0, -1); //Remove the last& symbol\n    const requestData = await sendGETRequest(endpoint);\n    context.set(\"mainChartData\", requestData['data']);\n    updateChart(context);\n}\n\nexport function resetDataAndSearch(context){\n    //reset main data component\n    const mainDataComp = document.getElementById(\"mainDataSelect\");\n    mainDataComp.value=\"0\";\n    //reset date range components\n    const startRangeDateComponent = document.getElementById(\"startRangeDateComponent\");\n    startRangeDateComponent.value=null;\n    const endRangeDateComponent = document.getElementById(\"endRangeDateComponent\");\n    endRangeDateComponent.value=null;\n    //reset employee group component\n    const employeeGroupDataSelectComp = document.getElementById(\"employeeGroupDataSelect\");\n    employeeGroupDataSelectComp.value=\"0\";\n    //reset requestParams\n    context.set(\"requestParams\",{\n        y:\"validationID\", \n        x:\"phase1ValidationDate\", \n        is_distinct:\"false\", \n        secondary:\"all\", \n        date_min:null, \n        date_max:null\n    })\n    //empty main data array \n    context.set(\"mainChartData\",[])\n    //refresh main chart data\n    refreshMainChartData(context)\n}\n\nexport function renderChart(context) {\n    let chartContainer = document.getElementById(\"mainChartSection\");\n\n    if (!chartContainer) {\n        console.error(\"mainChartSection not found in the DOM\");\n        return;\n    }\n\n    // Clear previous chart if it exists\n    chartContainer.innerHTML = `<canvas id=\"mainChartCanvas\"></canvas>`;\n\n    const ctx = document.getElementById(\"mainChartCanvas\").getContext(\"2d\");\n\n    if (!ctx) {\n        console.error(\"mainChartCanvas not found in the DOM\");\n        return;\n    }\n\n    // Initialize the chart\n    context.chart = new Chart(ctx, {\n        type: \"bar\",\n        data: {\n            labels: [],\n            datasets: []\n        },\n        options: {\n            responsive: true,\n            maintainAspectRatio: false,\n            scales: {\n                x: {\n                    title: { display: true, text: \"\" },\n                    barPercentage: 0.6,  \n                    categoryPercentage: 0.8,  \n                    maxBarThickness: 20, \n                },\n                y: {\n                    title: { display: true, text: \"\" },\n                    beginAtZero: true\n                }\n            },\n            plugins: {\n                legend: {\n                    display: false, \n                    position: \"top\",\n                    labels: {\n                        usePointStyle: true,\n                        font: { size: 10, family: \"Arial\", weight: \"bold\" },\n                        color: \"black\",\n                        boxWidth: 10,\n                        boxHeight: 10,\n                        padding: 5,\n                    }\n                },\n                tooltip: {\n                    enabled: true\n                }\n            },\n            elements: {\n                point: { radius: 0 }\n            }\n        }\n    });\n\n    // Populate chart with initial data\n    updateChart(context);\n}\n\nexport function buildChartDataSet(context, dataArray) {\n    console.log('buildChartDataSet request params')\n    console.log(context.get('requestParams'))\n    const type = context.get('requestParams.y');\n    const xParam = context.get('requestParams.x');\n    const colorPalette = [\n        \"#AEC6CF\", \"#FFB7C5\", \"#B39EB5\", \"#FFDAC1\", \"#E2F0CB\", \"#C9C9FF\", \"#FDFD96\",\n        \"#FFABAB\", \"#B5EAD7\", \"#C7CEEA\", \"#E8DFF5\", \"#FF9AA2\", \"#FFAAA6\", \"#FFD3B6\",\n        \"#D4A5A5\", \"#FFC3A0\", \"#FF677D\", \"#DFF8EB\", \"#D9BF77\", \"#B0E0E6\", \"#D291BC\",\n        \"#FFDFD3\", \"#F6EAC2\", \"#E0BBE4\", \"#C2EABD\", \"#C2F0FC\", \"#FFDEE9\", \"#B3DEE2\",\n        \"#F9CB9C\", \"#F2D7D9\", \"#C0DED9\", \"#FAC8CD\", \"#E7F0C3\", \"#C8E6C9\", \"#F1CBFF\",\n        \"#ECCEF5\", \"#CDF0EA\", \"#FAD0C4\", \"#CDE4F2\", \"#FCE1E4\", \"#EAE4C5\", \"#F7E1D7\",\n        \"#D9EEE1\", \"#FFD6E0\", \"#D8E2DC\", \"#FFEFD3\", \"#F3EAC2\", \"#DFD3C3\", \"#C7F0DB\",\n        \"#F6D6AD\"\n    ];\n\n    let datasets = [];\n    let labels = [];\n    let xAxisLabel=\"\";\n    context.get(\"mainDataSelectionLabels\").forEach((dataObj, index)=>{\n        if(dataObj['key'] == type){\n            xAxisLabel = dataObj['value'];\n        }\n    })\n    switch (type) {\n        case \"rigID\":\n        case \"type\":\n        case \"employee\":\n            if (xParam == null) {\n                labels = dataArray.map(entry => entry[type]);\n                datasets.push({\n                    label: 'Count',\n                    maxBarThickness: 50,\n                    data: dataArray.map(entry => entry.count),\n                    backgroundColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                    borderColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                    borderWidth: 1\n                });\n                context.chart.options.scales.y.title ={ display: true, text: `Count` };\n                context.chart.options.scales.x.title ={ display: true, text: `${xAxisLabel}` };\n            } else {\n                labels = [...new Set(dataArray.map(entry => entry.date))].sort();\n                const groupedData = {};\n                dataArray.forEach(entry => {\n                    const groupValue = entry[type] || \"Unknown\";\n                    if (!groupedData[groupValue]) groupedData[groupValue] = {};\n                    groupedData[groupValue][entry.date] = (groupedData[groupValue][entry.date] || 0) + entry.count;\n                });\n\n                datasets = Object.keys(groupedData).map((groupValue, index) => ({\n                    label: groupValue,\n                    maxBarThickness: 50,\n                    data: labels.map(date => groupedData[groupValue][date] || 0),\n                    backgroundColor: colorPalette[index % colorPalette.length],\n                    borderColor: colorPalette[index % colorPalette.length],\n                    borderWidth: 1\n                }));\n                context.chart.options.scales.y.title ={ display: true, text: `Count` };\n                context.chart.options.scales.x.title ={ display: true, text: `Date` }\n            }\n            break;\n\n        case \"redos\":\n            labels = dataArray.map(entry => entry.packID);\n            datasets.push({\n                label: \"Redos\",\n                data: dataArray.map(entry => entry.count),\n                backgroundColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                borderColor: labels.map((_, index) => colorPalette[index % colorPalette.length]),\n                borderWidth: 1\n            });\n            context.chart.options.scales.y.title ={ display: true, text: `Count` };\n            context.chart.options.scales.x.title ={ display: true, text: `Sensor ID` }\n            break;\n        case \"calibrationID\":\n        case \"jobID\":\n        case \"sensorID\":\n            labels = dataArray.map(entry => entry.date);\n            datasets.push({\n                label: \"Count\",\n                maxBarThickness: 50,\n                data: dataArray.map(entry => entry.count),\n                backgroundColor: \"#4A6A9C\",\n                borderColor: \"#4A6A9C\",\n                borderWidth: 1\n            });\n            context.chart.options.scales.y.title ={ display: true, text: `Count` };\n            context.chart.options.scales.x.title ={ display: true, text: `Date` }\n\n            break;\n        default:\n            console.warn(\"Unhandled type:\", type);\n            break;\n    }\n    return { datasets, labels };\n}\n\nexport function getYAxisScaleMax(context){\n    // setTimeout(() => {\n        const chartInstance = context.get('chart'); // Get the chart instance\n        if (chartInstance) {\n            const yAxisScale = chartInstance.scales[\"y\"].max;\n            return yAxisScale;\n        } else {\n            console.log(\"Chart instance not available yet.\");\n        }\n    // }, 750);\n}\n\nexport function updateChart(context) {\n    try{\n        if (!context.chart) return;\n    \n        let dataArray = context.get(\"mainChartData\") || [];\n    \n        // Extract labels (x-axis: Dates) and data points (y-axis: Counts)\n        const { datasets, labels } = buildChartDataSet(context, dataArray);\n        // Update chart data\n        context.chart.data.labels = labels;\n        context.chart.data.datasets = datasets  ; \n        console.log(datasets)\n        console.log(`datasets length :${datasets.length}`)\n    \n        context.chart.update(); // Refresh the chart with new data\n    \n        const yScaleMax = getYAxisScaleMax(context);\n        //Update the Max Y Axis Value text box \n        const yAxisMaxComponent = document.getElementById('yAxisScale');\n        yAxisMaxComponent.value = yScaleMax;\n        yAxisMaxComponent.min=`${yScaleMax}`\n        context.set(\"options.chartYAxisOriginal\", Number.parseInt(yScaleMax));\n\n    }\n\n    catch (error) {\n        console.error('Error updateChart:', error);\n      }\n}\n\nexport function manageCustomUIDateData(context, mainDataObj,  dateDataObj, employeeDataObj, isDistinctBooleanComp, startDateRng, endDateRng){\n    const dateDataSelectComp = document.getElementById('dateDataSelect');\n    const dateDataSectionComp = document.getElementById('dateDataSection');\n    let y = null;\n    let x = null;\n    switch(mainDataObj['key']){\n        case \"jobID\":\n        case \"calibrationID\":\n        case \"sensorID\":\n        case \"redos\":\n            dateDataSelectComp.value=\"-1\";\n            dateDataSectionComp.style.display='none';\n            x = null;\n            y = mainDataObj['key'];\n            break;\n        default:\n            dateDataSectionComp.style.display='flex';\n            x = dateDataObj ? dateDataObj['key'] : null;\n            y = mainDataObj['key'];\n\n            break;\n\n    }\n\n    //Update Date Range visibilty depending on certain Main Data and Date Data\n    const dateRangeSection = document.getElementById('dateRangeSection');\n    switch(mainDataObj['key']){\n        case \"type\":\n        case \"rigID\":\n        case \"employee\":\n            if(dateDataObj == null){\n                dateRangeSection.style.display=\"none\";\n            }else{\n                dateRangeSection.style.display=\"flex\";\n            }\n            break;\n        case \"jobID\":\n        case \"calibrationID\":\n        case \"sensorID\":\n        case \"redos\":\n            dateRangeSection.style.display=\"flex\";\n            break;\n        default:\n            dateRangeSection.style.display=\"none\";\n            break;\n\n    }\n    \n    let isDistinctCheckbox = false;\n    //Update is_distinct\n    if(isDistinctBooleanComp != null){\n        isDistinctCheckbox = isDistinctBooleanComp.target.checked;\n    }\n    context.set(\"requestParams\",{\n        y:y, \n        x:x, \n        is_distinct:isDistinctCheckbox, \n        secondary:employeeDataObj.key, \n        date_min:startDateRng, \n        date_max:endDateRng\n    })\n}\n//bar Chart Helper functions\nexport function disableEnableBarChartLengend(context, isShowLegend){\n    if(context.chart && context.chart.options && context.chart.options.plugins){\n        // Update the legend visibility\n        context.chart.options.plugins.legend.display = isShowLegend;\n\n        // Trigger chart update to reflect changes\n        context.chart.update();\n    } else {\n        console.error(\"Chart instance or options.plugins is not defined\");\n    }\n}","import singularize from 'ember-inflector/lib/helpers/singularize';\nexport default singularize;\n","export function sum(params) {\n    return params.reduce((a, b) => {\n      return a + b;\n    });\n  };\n  \n  export default Ember.Helper.helper(sum);\n  ","define(\"geotechnical-data-platform-new/helpers/task\", [\"exports\", \"ember-concurrency/helpers/task\"], function (_exports, _task) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _task.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/unix\", [\"exports\", \"ember-moment/helpers/unix\"], function (_exports, _unix) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _unix.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/utc\", [\"exports\", \"ember-moment/helpers/utc\"], function (_exports, _utc) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _utc.default;\n    }\n  });\n  Object.defineProperty(_exports, \"utc\", {\n    enumerable: true,\n    get: function () {\n      return _utc.utc;\n    }\n  });\n});\n","import Ember from 'ember';\n\nexport function validateDExto(params) {\n    /**\n     * key value displacementObj.values instr @instrument displacementObj structure\n     */\n    let key = params[0];\n    let value = params[1];\n    let displacementObj = params[5];\n    let data = params[2];\n    let tempData = data;\n    data = data.slice(1);\n    let refInstrument = params[3]; //This is each children exto \n    let masterInstrument = params[4]; //This is the multiDExto Insstrument Obj\n    // console.log(\"displacementObj::::\", displacementObj);\n    // console.log(\"refInstrument::::\", refInstrument);\n    // console.log(\"masterInstrument::::\", masterInstrument);\n    let masterDataArray = [];\n    let channels = \"\"\n    let currentInstrIndex = -1\n    let i =0\n    for(const instr_position_index of ['1', '2', '3', '4', '5']){\n        // console.log(\"instr_position_index::::\", instr_position_index)\n\n\n        let instrumenPositionObj = masterInstrument['instrumentPosition'+instr_position_index]\n        if(instrumenPositionObj != null){\n\n            if(instrumenPositionObj.id == refInstrument.instrumentID){\n                currentInstrIndex = Number(instr_position_index);\n            }\n\n            let subExtoID = refInstrument.instrumentID\n    \n            //extract the number of channels \n            if(subExtoID.length == 9){\n                channels = subExtoID[4]\n    \n            }else{\n                channels = subExtoID.slice(4,6)\n            }\n            // console.log(\"This instrument has \", channels, \" channels\");\n            //With the number of channels, build the data array for each instrumentPositionObj\n            let slaveDataArray = [];\n            slaveDataArray.push(0.0);\n            while(i < data.length){\n                if(slaveDataArray.length == channels){\n                    break;\n                }else{\n                    slaveDataArray.push(data[i]);\n                }\n                i++;\n            }\n            masterDataArray.push(slaveDataArray)\n\n            // console.log(\"data array for ::::\", refInstrument.instrumentID, \" with \", channels, \" number of channels. it's data array is:::::\", slaveDataArray)\n\n        }        \n        // console.log(\"masterDataArray::::\", masterDataArray);\n\n        \n    }\n\n    if(key < channels){\n        // console.log(\"currentInstrIndex::::\", currentInstrIndex,\" key::::\", key);\n        // console.log(\"masterDataArray::::\", masterDataArray);\n        return masterDataArray[currentInstrIndex - 1][key];\n    }\n    \n}\n\nexport default Ember.Helper.helper(validateDExto);\n","import Ember from 'ember';\n\nexport function validateInitialChannels(params) {\n    const channelString = 'ch' + params[0];\n    \n    const referenceAnchorObj = params[1];\n    // console.log(\"channelString:\");\n    // console.log(channelString);\n    console.log(\"params:\");\n    console.log(params);\n    console.log(\"referenceAnchorObj:\");\n    console.log(referenceAnchorObj);\n    \n    if (channelString in referenceAnchorObj){\n        return true;\n    }else{\n        return false;\n    }\n}\n\nexport default Ember.Helper.helper(validateInitialChannels);\n","define(\"geotechnical-data-platform-new/helpers/will-destroy\", [\"exports\", \"ember-render-helpers/helpers/will-destroy\"], function (_exports, _willDestroy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _willDestroy.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/helpers/xor\", [\"exports\", \"ember-truth-helpers/helpers/xor\"], function (_exports, _xor) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _xor.default;\n    }\n  });\n  Object.defineProperty(_exports, \"xor\", {\n    enumerable: true,\n    get: function () {\n      return _xor.xor;\n    }\n  });\n});\n","import initializerFactory from 'ember-cli-app-version/initializer-factory';\nimport config from '../config/environment';\n\nlet name, version;\nif (config.APP) {\n  name = config.APP.name;\n  version = config.APP.version;\n}\n\nexport default {\n  name: 'App Version',\n  initialize: initializerFactory(name, version)\n};\n","export default {\n  name: \"ember-breadcrumbs\",\n  initialize: function() {\n    let application = arguments[1] || arguments[0];\n    application.inject(\"component:bread-crumbs\", \"router\", \"router:main\");\n    application.inject(\"component:bread-crumbs\", \"routerService\", \"service:router\");\n  }\n};\n","import ContainerDebugAdapter from 'ember-resolver/resolvers/classic/container-debug-adapter';\n\nexport default {\n  name: 'container-debug-adapter',\n\n  initialize() {\n    let app = arguments[1] || arguments[0];\n\n    app.register('container-debug-adapter:main', ContainerDebugAdapter);\n    app.inject('container-debug-adapter:main', 'namespace', 'application:main');\n  }\n};\n","define(\"geotechnical-data-platform-new/initializers/ember-data-data-adapter\", [\"exports\", \"@ember-data/debug/setup\"], function (_exports, _setup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _setup.default;\n    }\n  });\n});\n","import 'ember-data';\n\nimport setupContainer from 'ember-data/setup-container';\n\n/*\n  This code initializes EmberData in an Ember application.\n\n  It ensures that the `store` service is automatically injected\n  as the `store` property on all routes and controllers.\n*/\nexport default {\n  name: 'ember-data',\n  initialize: setupContainer,\n};\n","import ENV from '../config/environment';\nimport Configuration from 'ember-simple-auth/configuration';\nimport setupSession from 'ember-simple-auth/initializers/setup-session';\nimport setupSessionService from 'ember-simple-auth/initializers/setup-session-service';\nimport setupSessionRestoration from 'ember-simple-auth/initializers/setup-session-restoration';\n\nexport default {\n  name: 'ember-simple-auth',\n\n  initialize(registry) {\n    const config = ENV['ember-simple-auth'] || {};\n    config.rootURL = ENV.rootURL || ENV.baseURL;\n    Configuration.load(config);\n\n    setupSession(registry);\n    setupSessionService(registry);\n    setupSessionRestoration(registry);\n  }\n};\n","import Ember from 'ember';\nimport config from '../config/environment';\n\nexport function initialize() {\n  var application = arguments[1] || arguments[0];\n  if (config.exportApplicationGlobal !== false) {\n    var theGlobal;\n    if (typeof window !== 'undefined') {\n        theGlobal = window;\n    } else if (typeof global !== 'undefined') {\n        theGlobal = global\n    } else if (typeof self !== 'undefined') {\n        theGlobal = self;\n    } else {\n       // no reasonable global, just bail\n       return;\n    }\n\n    var value = config.exportApplicationGlobal;\n    var globalName;\n\n    if (typeof value === 'string') {\n      globalName = value;\n    } else {\n      globalName = Ember.String.classify(config.modulePrefix);\n    }\n\n    if (!theGlobal[globalName]) {\n      theGlobal[globalName] = application;\n\n      application.reopen({\n        willDestroy: function() {\n          this._super.apply(this, arguments);\n          delete theGlobal[globalName];\n        }\n      });\n    }\n  }\n}\n\nexport default {\n  name: 'export-application-global',\n\n  initialize: initialize\n};\n","import config from '../config/environment';\nimport RedirectHandler from 'torii/redirect-handler';\n\nexport default {\n  name: 'torii-callback',\n  before: 'torii',\n  initialize(application) {\n    if (arguments[1]) { // Ember < 2.1\n      application = arguments[1];\n    }\n    if (config.torii && config.torii.disableRedirectInitializer) {\n      return;\n    }\n    application.deferReadiness();\n    RedirectHandler.handle(window).catch(function(){\n      application.advanceReadiness();\n    });\n  }\n};\n","import bootstrapSession from 'torii/bootstrap/session';\nimport { getConfiguration } from 'torii/configuration';\n\nexport default {\n  name: 'torii-session',\n  after: 'torii',\n\n  initialize(application) {\n    if (arguments[1]) { // Ember < 2.1\n      application = arguments[1];\n    }\n    const configuration = getConfiguration();\n    if (!configuration.sessionServiceName) {\n      return;\n    }\n\n    bootstrapSession(application, configuration.sessionServiceName);\n\n    var sessionFactoryName = 'service:' + configuration.sessionServiceName;\n    application.inject('adapter', configuration.sessionServiceName, sessionFactoryName);\n  }\n};\n","import bootstrapTorii from 'torii/bootstrap/torii';\nimport {configure} from 'torii/configuration';\nimport config from '../config/environment';\n \n\nvar initializer = {\n  name: 'torii',\n  initialize(application) {\n    if (arguments[1]) { // Ember < 2.1\n      application = arguments[1];\n    }\n    configure(config.torii || {});\n    bootstrapTorii(application);\n    application.inject('route', 'torii', 'service:torii');\n  }\n};\n\nexport default initializer;\n","define(\"geotechnical-data-platform-new/initializers/leaflet-assets\", [\"exports\", \"ember-leaflet/initializers/leaflet-assets\"], function (_exports, _leafletAssets) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _leafletAssets.default;\n    }\n  });\n  Object.defineProperty(_exports, \"initialize\", {\n    enumerable: true,\n    get: function () {\n      return _leafletAssets.initialize;\n    }\n  });\n});\n","import ENV from '../config/environment';\nimport Config from 'ember-bootstrap/config';\n\nexport function initialize(/* container, application */) {\n  Config.load(ENV['ember-bootstrap'] || {});\n}\n\nexport default {\n  name: 'load-bootstrap-config',\n  initialize,\n};\n","import initialize from 'ember-modal-dialog/instance-initializers/add-modals-container';\n\nexport default {\n  name: 'add-modals-container',\n  initialize,\n};\n","/* exists only for things that historically used \"after\" or \"before\" */\nexport default {\n  name: 'ember-data',\n  initialize() {},\n};\n","// This is only needed for backwards compatibility and will be removed in the\n// next major release of ember-simple-auth. Unfortunately, there is no way to\n// deprecate this without hooking into Ember's internals…\nexport default {\n  name: 'ember-simple-auth',\n\n  initialize() {}\n};\n","/* eslint-disable ember/new-module-imports */\n\nimport Ember from 'ember';\nimport bootstrapRouting from 'torii/bootstrap/routing';\nimport { getConfiguration } from 'torii/configuration';\nimport getRouterInstance from 'torii/compat/get-router-instance';\nimport getRouterLib from 'torii/compat/get-router-lib';\nimport \"torii/router-dsl-ext\";\n\nexport default {\n  name: 'torii-setup-routes',\n  initialize(applicationInstance /*, registry */){\n    const configuration = getConfiguration();\n\n    if (!configuration.sessionServiceName) {\n      return;\n    }\n\n    let router = getRouterInstance(applicationInstance);\n    var setupRoutes = function(){\n      let routerLib = getRouterLib(router);\n      var authenticatedRoutes = routerLib.authenticatedRoutes;\n      var hasAuthenticatedRoutes = !Ember.isEmpty(authenticatedRoutes);\n      if (hasAuthenticatedRoutes) {\n        bootstrapRouting(applicationInstance, authenticatedRoutes);\n      }\n      router.off('willTransition', setupRoutes);\n    };\n    router.on('willTransition', setupRoutes);\n  }\n};\n","import { lookup } from 'torii/lib/container-utils';\nimport { getConfiguration } from 'torii/configuration';\n\nexport default {\n  name: 'torii-walk-providers',\n  initialize(applicationInstance) {\n    let configuration = getConfiguration();\n    // Walk all configured providers and eagerly instantiate\n    // them. This gives providers with initialization side effects\n    // like facebook-connect a chance to load up assets.\n    for (var key in configuration.providers) {\n      if (configuration.providers.hasOwnProperty(key)) {\n        lookup(applicationInstance, 'torii-provider:'+key);\n      }\n    }\n  }\n};\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    selectedCh: DS.attr('string'),\n    alert: DS.belongsTo('alert')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    active: DS.attr('number'),\n    inactive: DS.attr('number'),\n    total: DS.attr('number'),\n    alert: DS.attr('number')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    isPerm: DS.attr('boolean'),\n    isActive: DS.attr('boolean'),\n    isTriggered: DS.attr('boolean'),\n    isHandled: DS.attr('boolean'),\n    repeats: DS.attr('boolean'),\n    repeatWindow: DS.attr('number'),\n    initTriggerStamp: DS.attr(),\n    handleStamp: DS.attr(),\n    metric: DS.attr('string'),\n    direction: DS.attr('string'),\n    value: DS.attr('number'),\n    severity: DS.attr('string'),\n    response: DS.attr('string'),\n    target: DS.attr('string'),\n    inverted: DS.attr('boolean'),\n    refAnchor: DS.attr('string'),\n    message: DS.attr('string'),\n    windowType: DS.attr('string'),\n    windowLength: DS.attr('number'),\n    method: DS.attr('string'),\n    creator: DS.attr('string'),\n    creationDate: DS.attr(),\n    timeReference: DS.attr(),\n    lastStamp: DS.attr(),\n    instrument: DS.belongsTo('instrument', {async: true}),\n    gateway: DS.belongsTo('gateway', {async: false}),\n    anchors: DS.hasMany('alertAnchor', {async: false})\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    number: DS.attr('number'),\n    distance: DS.attr('number'),\n    instrument: DS.belongsTo('instrument')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    timestamp: DS.attr('string', {defaultValue: \"\"}),\n    location: DS.attr('string', {defaultValue: \"\"}),\n    east: DS.attr('number', {defaultValue: null}),\n    north: DS.attr('number', {defaultValue: null}),\n    depth: DS.attr('number', {defaultValue: null}),\n    comments: DS.attr('string', {defaultValue: \"\"}),\n    isVisible: DS.attr('boolean', {defaultValue: true}),\n    delay: DS.attr('string', {defaultValue: 0}),\n    \n    // level: DS.attr('string', {defaultValue: \"\"}),\n    level: DS.belongsTo('lookup', {async: true}),\n    project: DS.belongsTo('lookup', {async: true}),\n    \n    stope: DS.attr('string', {defaultValue: \"\"}),\n    tonnes: DS.attr('number', {defaultValue: 0}),\n    size: DS.attr('number', null),\n    blastType: DS.belongsTo('blast-type', { async: false })\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    title: DS.attr(),\n    blastEvent: DS.hasMany('blast-event')\n});\n","import Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class BluVibeV2DataModel2 extends Model {\n  @attr() x;\n  @attr() y;\n  @attr() z;\n  @attr() data;\n  @belongsTo('blu-vibe-v2-profile-model', { async: false }) parent;\n\n}","import Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class BluVibev2ProfileModel extends Model {\n  @attr('number') sample;\n  @attr('number') range;\n  @attr('number') trigger;\n  @attr('number') duration;\n  @attr('string') timestamp;\n  @attr() analytics;\n  @attr() offset; // This is an array\n  @attr() frequency; // This is an array\n  @attr() amplitude; // This is an array\n  @attr() ppv; // This is an array\n  @attr() ppa; // This is an array\n  @belongsTo('instrument', { async: false }) parent;\n\n}","import Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class BluVibeV2DataModel extends Model {\n  @attr() x;\n  @attr() y;\n  @attr() z;\n  @belongsTo('blu-vibe-v2-profile-model', { async: false }) parent;\n\n}","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class CalibrationCalibrationProfile extends Model {\n  @attr('string') type;\n  @attr('string') typeID;\n  @attr('string') unit;\n  @attr('string') minLimit;\n  @attr('string') maxLimit;\n  @attr() checkpointPositions; \n  @attr('string') creationEmployee;\n  @attr('number') checkpointSpeed;\n  @attr('number') checkpointDelay;\n  @attr('number') checkpointSampleSize;\n  @attr('number') checkpointCurrentTargetBuffer;\n  @attr('number') channels;\n}\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class CalibrationInstrumentDataModel extends Model {\n  @belongsTo('calibration-instrument-profile') calibrationID;\n  @attr('string') value;\n}\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class CalibrationInstrumentLookupModel extends Model {\n  @belongsTo('calibration-instrument-profile') calibrationID;\n  @attr('string') value;\n}\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class CalibrationInstrumentProfileModel extends Model {\n  @attr('string') sensorID;\n  @attr('string') sensorName;\n  @attr('string') sensorType;\n  @attr('string') calibrationID;\n  @attr('date') calibrationDate;\n  @attr('string') employee;\n  @attr('number') minLimit;\n  @attr('number') maxLimit;\n  @attr('string') jobID;\n  @attr('number') channels;\n  @attr('string') rigReferenceID;\n  @attr('string') rigReferenceCalibrationValue;\n  @attr('string') rigReferenceCalibrationDate;\n  @attr('string') type;\n  @attr('string') sensorDescription;\n  @attr('string') anchorDataValue;\n  @attr('string') checkpointPositions;\n}\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class CalibrationTypeModel extends Model {\n  @attr('number') typeID;\n  @attr('string') typeValue;\n  @attr('string') typeCategory;\n}\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    instrument: DS.attr('string'),\n    hasTemp: DS.attr('boolean'),\n    units: DS.attr('string'),\n    temporalDisplacementName: DS.attr('string'),\n    temporalVelocityName: DS.attr(),\n    temporalAccelerationName: DS.attr(),\n    temporalStrainName: DS.attr(),\n    temporalStrainRateName: DS.attr(),\n    temporalLoadName: DS.attr(),\n    spatialDisplacementName: DS.attr(),\n    spatialVelocityName: DS.attr(),\n    spatialAccelerationName: DS.attr(),\n    spatialStrainName: DS.attr(),\n    spatialStrainRateName: DS.attr(),\n    spatialLoadName: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    frequency: DS.attr(),\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    frequency: DS.attr(),\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\n\nexport default DS.Model.extend({\n  parentGateway: DS.belongsTo('gateway', { async: true, inverse: null}),\n  childGateway: DS.belongsTo('gateway', { async: true, inverse: null }),\n  isCurrent: DS.attr('boolean'),\n});","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    intervalValue: DS.attr('number'),\n    intervalName: DS.attr('string'),\n    intervalGroupName: DS.attr('string'),\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    active: DS.attr('number'),\n    inactive: DS.attr('number'),\n    total: DS.attr('number'),\n    alert: DS.attr('number')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    title: DS.attr('string'),\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend( {\n\n  // Add other attributes that match your Django model fields\n  // @belongsTo('gateway', { inverse: 'children' }) parentGateway;\n  // @hasMany('gateway', { inverse: 'parentGateway' }) children;\n  // Define the parentGateway relationship first with undefined inverse\n\n  parentGateway: DS.belongsTo('gateway', { inverse: undefined, async: false }),\n  // Define the children relationship afterward with the correct inverse\n  children: DS.hasMany('gateway', { inverse: 'parentGateway', async: true }),\n  // Set the inverse for parentGateway to match children\n  parentGateway: DS.belongsTo('gateway', { inverse: 'children', async: false }),\n\n  name: DS.attr('text'),\n  gatewayType: DS.belongsTo('gateway-type', {async: false}),\n  project: DS.attr('text'),\n  location: DS.attr('text'),\n  depth: DS.attr('number'),\n  level: DS.attr('text'),\n  installDate: DS.attr(),\n  installedBy: DS.attr('text'),\n  purpose: DS.attr('text'),\n  notes: DS.attr('text'),\n  alerts: DS.hasMany('alert', {async: true, inverse: 'gateway' }),\n  gatewayTypeID: DS.attr(),\n  active: DS.attr('boolean'),\n\n  // childRelations: DS.hasMany('gateway-child-relation', { async: true, inverse: null }),\n  // parentRelations: DS.hasMany('gateway-child-relation', { async: true, inverse: null }),\n  \n  gatewayReadInterval: DS.belongsTo('gateway-interval', {async: false, inverse: null}),\n  gatewayUploadInterval: DS.belongsTo('gateway-interval', {async: false, inverse: null}),\n  gatewayMeshCycleInterval: DS.belongsTo('gateway-interval', {async: false, inverse: null}),\n  gatewayTransmissionPowerInterval: DS.belongsTo('gateway-interval', {async: false, inverse: null}),\n  \n  currentParent: DS.attr('string'),\n\n  targetUrl: DS.attr('text'),\n  lteBand: DS.attr('text'), \n  uploadStatus: DS.attr('boolean'),\n  apn: DS.attr('text'),\n  parentGatewayId: DS.attr(),\n  meshID: DS.attr('number'),\n  hasChildren: DS.attr('boolean'),\n  \n})\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    title: DS.attr('string')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    active: DS.attr('number'),\n    inactive: DS.attr('number'),\n    total: DS.attr('number'),\n    alert: DS.attr('number')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    title: DS.attr('string'),\n    base_unit: DS.attr('string'),\n    vendor: DS.belongsTo('vendor', {async: false}),\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    channelsNum: DS.attr(),\n    subModel: DS.attr('text'),\n    portsNum: DS.attr(),\n    name: DS.attr('text'),\n    zeroTimestamp: DS.attr(),\n    location: DS.attr('text'),\n    east: DS.attr('number'),\n    north: DS.attr('number'),\n    depth: DS.attr('number'),\n    azimuth: DS.attr('text'),\n    dip: DS.attr('text'),\n    // project: DS.attr('text'),\n    // level: DS.attr('text'),\n    project: DS.belongsTo('lookup', {async: true}),\n    level: DS.belongsTo('lookup', {async: true}),\n    borehole: DS.attr('text'),\n    installDate: DS.attr(),\n    installedBy: DS.attr('text'),\n    purpose: DS.attr('text'),\n    notes: DS.attr('text'),\n    anchorCount: DS.attr('digits'),\n    anchors: DS.hasMany('anchor', {async: true}),\n    vwproperty: DS.hasMany('vwproperty', {async: false}),\n    headAt: DS.belongsTo('head-at', {async: false}),\n    instrumentType: DS.belongsTo('instrument-type', {async: false}),\n    alerts: DS.hasMany('alert', {async: false}),\n    instrumentTypeID: DS.attr(),\n    instrumentStiffness: DS.attr('digits'),\n    instrumentLength: DS.attr('digits'),\n    strokeLength: DS.attr('digits'),\n    baseLength: DS.attr('digits'),\n    headExclusionLength: DS.attr('digits'),\n    gaugeLength: DS.attr('digits'),\n    referenceAnchor: DS.attr('text'),\n    bulbed: DS.attr('boolean'),\n    plated: DS.attr('boolean'),\n    stacked: DS.attr('boolean'),\n    active: DS.attr('boolean'),\n    elasticLimitPct: DS.attr('digits'),\n    plasticLimitPct: DS.attr('digits'),\n    ultimateLimitPct: DS.attr('digits'),\n    elasticLimitFce: DS.attr('digits'),\n    plasticLimitFce: DS.attr('digits'),\n    ultimateLimitFce: DS.attr('digits'),\n    youngsModulus: DS.attr('digits'),\n    crossSectionalArea: DS.attr('digits'),\n    boltDiameter: DS.attr('digits'),\n    selectedAnchor: DS.attr('number'),\n    calculatedElasticLimitForce: Ember.computed('elasticLimitPct', 'instrumentStiffness', function() {\n        let elf = 0; //this.get('elasticLimitFce');\n        elf = this.axialStiffness * this.elasticLimitPct;  \n        this.elasticLimitFce = elf.toFixed(2);\n        console.log(\"axialStiffness::: \" + this.axialStiffness);\n        console.log(\"elasticLimitPct::: \" + this.elasticLimitPct);\n        this.elasticLimitFce = elf.toFixed(2);\n                \n        return elf.toFixed(2)\n    }),\n    vendor: DS.belongsTo('vendor', {async: false}),\n\n    axialStiffness: Ember.computed(function() {\n        \n        if(this.crossSectionalArea == null || this.crossSectionalArea == undefined || this.crossSectionalArea == 0){\n            return 0.0; //this.crossSectionalArea = 285.00;\n        }\n        if(this.youngsModulus == null || this.youngsModulus == undefined || this.youngsModulus == 0){\n            this.youngsModulus = 200.00;\n        }\n        let stiffness = ( (this.youngsModulus * this.crossSectionalArea)/100).toFixed(2);\n\n        console.log(\"stiffness Youngs Modulus::: \" + this.youngsModulus);\n        console.log(\"stiffness CrossSection::: \" + this.crossSectionalArea);\n        console.log(\"stiffness: \" + stiffness);\n        // this.elasticLimitFce = stiffness * this.youngsModulus;\n        return stiffness;\n    }),\n    //This bullcrap, why? check Vlok email. \n    instrumentPosition1: DS.belongsTo('instrument', { async: false, inverse: null }),\n    instrumentPosition2: DS.belongsTo('instrument', { async: false, inverse: null }),\n    instrumentPosition3: DS.belongsTo('instrument', { async: false, inverse: null }),\n    instrumentPosition4: DS.belongsTo('instrument', { async: false, inverse: null }),\n    instrumentPosition5: DS.belongsTo('instrument', { async: false, inverse: null }),\n    \n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    isValidKey: DS.attr('boolean'),\n    startDate: DS.attr('string'),\n    endDate: DS.attr('string'),\n    numInst: DS.attr('number'),\n    softwareVersion: DS.attr('string'),\n    companyName: DS.attr('string'),\n    modules: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    isValid: DS.attr('boolean'),\n    withinLimit: DS.attr('boolean'),\n    companyName: DS.attr('string'),\n    modules: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class LogViewerModel extends Model {\n  @attr('date') creationDatetime;\n  @belongsTo('lookup', { async: false }) errorType;\n  @attr('string') deviceType;\n  @attr('string') deviceId;\n  @attr('string') message;\n}\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n  name: DS.attr('string'),\n  type: DS.attr('string'),\n  value: DS.attr('string')\n\n});","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    title: DS.attr('string'),\n    symbol: DS.attr('string'),\n    unit: DS.attr('string')\n});\n","// app/models/oauth-provider.js\nimport DS from 'ember-data';\n\nexport default DS.Model.extend({\n  providerName: DS.attr('string'),\n  apiKey: DS.attr('string'),\n  clientId: DS.attr('string'),\n  clientSecret: DS.attr('string'),\n  authorizationBaseUrl: DS.attr('string'),\n  tokenUrl: DS.attr('string'),\n  redirectUri: DS.attr('string'),\n  // Add more attributes as necessary\n});\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class ValidationPacksProfileModel extends Model {\n  @attr('string') packType;\n  @attr('string') name;\n  @attr('string') min;\n  @attr('string') max;\n  @attr('string') creationEmployee;\n  @attr('number') checkpointDelay;\n  @attr('date') creationDate;\n  @attr('number') channels;\n  @attr('number') phase1LoadMinRange;\n  @attr('number') phase1LoadMaxRange;\n  @attr('number') phase1UnloadMinRange;\n  @attr('number') phase1UnloadMaxRange;\n  @attr('number') phase2LoadMinRange2;\n  @attr('number') phase2LoadMaxRange2;\n  @attr('number') phase2UnloadMinRange2;\n  @attr('number') phase2UnloadMaxRange2;\n  @attr('number') acceptedUnloadVariance;\n  @attr('number') acceptedLoadVariance;\n  @attr('object') coilsProfile;\n}\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    title: DS.attr('string'),\n    isRequired: DS.attr('boolean'),\n    defaultValue: DS.attr('string'),\n    value: DS.attr('string'),\n    valueType: DS.attr('string')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class CalibrationRigModel extends Model {\n  @attr('string') rigID;\n  @attr('string') rigName;\n  @attr('string') rigIP;\n  @attr('string') rigCategory;\n  @attr('string') creationEmployee;\n  @attr('string') creationDate;\n  @attr('string') rigReferenceID;\n  @attr('string') rigReferenceCalibrationValue;\n  @attr('string') rigReferenceCalibrationDate;\n  @attr('object') activityJSON;\n  @attr('string') company;\n}\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    timestamp: DS.attr('string', {defaultValue: \"\"}),\n    location: DS.attr('string', {defaultValue: \"\"}),\n    east: DS.attr('number', {defaultValue: null}),\n    north: DS.attr('number', {defaultValue: null}),\n    depth: DS.attr('number', {defaultValue: null}),\n    comments: DS.attr('string', {defaultValue: \"\"}),\n    isVisible: DS.attr('boolean', {defaultValue: true}),\n    momentMagnitude: DS.attr('number', {defaultValue: 0}),\n    seismicMoment: DS.attr('number', {defaultValue: 0}),\n    sourceRadius: DS.attr('number', {defaultValue: 0}),\n    peakParticleVelocity: DS.attr('number', {defaultValue: 0}),\n    peakParticleAcceleration: DS.attr('number', {defaultValue: 0}),\n    energy: DS.attr('number', {defaultValue: 0}),\n    size: DS.attr('number', null),\n    seismicType: DS.belongsTo('seismic-type', { async: false })\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    title: DS.attr(),\n    seismicEvent: DS.hasMany('seismic-event')\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\n//for temperature in gateway health readings.\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","// app/models/log-viewer.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class ValidationPacksProfileModel extends Model {\n  @attr('number') validationID;\n  @attr('string') packID;\n  @attr('string') company;\n  @attr('string') packName;\n  @attr('string') packType;\n  @attr('string') min;\n  @attr('string') max;\n  @attr('number') channels;\n  @attr('string') manufactureDate;\n  @attr('string') employee;\n}\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","// app/models/vendor.js\nimport Model, { attr, belongsTo } from '@ember-data/model';\n\nexport default class VendorModel extends Model {\n  @attr('string') name;\n  @attr('string') instrumentTitle;\n  @belongsTo('instrument-type', { async: false }) instrumentType;\n  @attr('string') vendorType;\n  @attr('boolean') selected;\n}\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    timestamp: DS.attr('string', {defaultValue: \"\"}),\n    instrument: DS.attr('string', {defaultValue: \"\"}),\n    ch1: DS.attr('number', {defaultValue: null}),\n    trigger01: DS.attr('number', {defaultValue: null}),    \n    frequency01: DS.attr('number', {defaultValue: null}),\n    amplitude01: DS.attr('number', {defaultValue: null}),\n    ppv01: DS.attr('number', {defaultValue: null}),\n    ppa01: DS.attr('number', {defaultValue: null}),\n    duration01: DS.attr('number', {defaultValue: null}),\n    ch2: DS.attr('number', {defaultValue: null}),\n    trigger02: DS.attr('number', {defaultValue: null}),    \n    frequency02: DS.attr('number', {defaultValue: null}),\n    amplitude02: DS.attr('number', {defaultValue: null}),\n    ppv02: DS.attr('number', {defaultValue: null}),\n    ppa02: DS.attr('number', {defaultValue: null}),\n    duration02: DS.attr('number', {defaultValue: null}),\n    ch3: DS.attr('number', {defaultValue: null}),\n    trigger03: DS.attr('number', {defaultValue: null}),    \n    frequency03: DS.attr('number', {defaultValue: null}),\n    amplitude03: DS.attr('number', {defaultValue: null}),\n    ppv03: DS.attr('number', {defaultValue: null}),\n    ppa03: DS.attr('number', {defaultValue: null}),\n    duration03: DS.attr('number', {defaultValue: null}),\n    ch4: DS.attr('number', {defaultValue: null}),\n    trigger04: DS.attr('number', {defaultValue: null}),    \n    frequency04: DS.attr('number', {defaultValue: null}),\n    amplitude04: DS.attr('number', {defaultValue: null}),\n    ppv04: DS.attr('number', {defaultValue: null}),\n    ppa04: DS.attr('number', {defaultValue: null}),\n    duration04: DS.attr('number', {defaultValue: null}),\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    values: DS.attr()\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    modelName: DS.attr(),\n    vwproperty: DS.hasMany('vwproperty', {async: false}),\n    vwvendor: DS.belongsTo('vwvendor', {async: false})\n});\n","import DS from 'ember-data';\nimport { tracked } from '@glimmer/tracking';\n\nexport default DS.Model.extend({\n    port: DS.attr('number'),\n    tempChan: DS.attr(),\n    serial: DS.attr(),\n    calcCoef1: DS.attr('number'),\n    calcCoef2: DS.attr('number'),\n    calcCoef3: DS.attr('number'),\n    calcCoef4: DS.attr('number'),\n    calcCoef5: DS.attr('number'),\n    calcCoef6: DS.attr('number'),\n    calcCoef7: DS.attr('number'),\n    calcCoef8: DS.attr('number'),\n    instrument: DS.belongsTo('instrument', {async: false}),\n    vwmodel: DS.belongsTo('vwmodel', {async: false}),\n\n    // Non-persistent properties\n    vendor: tracked({}),\n    modelTypes: tracked([]),\n});\n","import DS from 'ember-data';\n\nexport default DS.Model.extend({\n    vendorName: DS.attr(),\n    vwmodel: DS.hasMany('vwmodel', {async: false})\n});\n","define(\"geotechnical-data-platform-new/modifiers/create-ref\", [\"exports\", \"ember-ref-bucket/modifiers/create-ref\"], function (_exports, _createRef) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _createRef.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/modifiers/did-insert\", [\"exports\", \"@ember/render-modifiers/modifiers/did-insert\"], function (_exports, _didInsert) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _didInsert.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/modifiers/did-update\", [\"exports\", \"@ember/render-modifiers/modifiers/did-update\"], function (_exports, _didUpdate) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _didUpdate.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/modifiers/focus-trap\", [\"exports\", \"ember-focus-trap/modifiers/focus-trap\"], function (_exports, _focusTrap) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _focusTrap.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/modifiers/style\", [\"exports\", \"ember-style-modifier/modifiers/style\"], function (_exports, _style) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _style.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/modifiers/will-destroy\", [\"exports\", \"@ember/render-modifiers/modifiers/will-destroy\"], function (_exports, _willDestroy) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _willDestroy.default;\n    }\n  });\n});\n","import EmberRouter from '@ember/routing/router';\nimport config from './config/environment';\n\nexport default class Router extends EmberRouter {\n  location = config.locationType;\n  rootURL = config.rootURL;\n}\n\nRouter.map(function () {\n  this.route('login');\n  this.route('register');\n  this.route('my-profile');\n  this.route('forgot-password');\n  this.route('reset-password', { path: '/reset-password/:token' });\n  this.route('index', { path: '/' });\n  this.route('instruments');\n  this.route('create-instrument');\n  this.route('edit-instrument', { path: '/instrument/:instrument_id' });\n  this.route('gateway');\n  this.route('create-gateway');\n  this.route('edit-gateway', { path: '/gateway/:gateway_id' });\n  \n  this.route('log-viewer');\n\n  this.route('raw-gateway-data', { path: '/gateway/:gateway_id/raw-gateway-data' });\n  this.route('settings');\n  this.route('create-alert');\n  this.route('create-gateway-alert');\n  this.route('edit-alert', { path: '/alert/:alert_id' });\n  this.route('edit-gateway-alert', { path: '/gateway-alert/:alert_id' });\n  this.route('alerts');\n  this.route('seismic-events');\n  this.route('blast-events');\n  this.route('vibration-events');\n  this.route('keys');\n  this.route('list-lookups');\n  this.route('create-lookup');\n  this.route('sensor-calibration');\n  this.route('packs-validation');\n  this.route('sensor-calibration-analytics');\n  this.route('packs-validation-analytics');\n\n\n  this.route('raw-data', { path: '/instrument/:instrument_id/raw-data' });\n\n  this.route('temporal-gateway-graphs', { path: '/gateway/:gateway_id/temporal-gateway-graph'}, function() {\n    this.route('temporal-gateway-graph', { path: '/:model_name' });\n  });\n\n  this.route('temporal-graphs', { path: '/instrument/:instrument_id/temporal-graph'}, function() {\n    this.route('temporal-graph', { path: '/:model_name' });\n  });\n\n  this.route('spatial-graphs', { path: '/instrument/:instrument_id/spatial-graph'}, function() {\n    this.route('spatial-graph', { path: '/:model_name' });\n  });\n\n  this.route('frequency-graphs', { path: '/instrument/:instrument_id/frequency-graph'}, function() {\n    this.route('frequency-graph', { path: '/:model_name' });\n  });\n  //raw-data = frequency-events\n  this.route('frequency-events', { path: '/instrument/:instrument_id/frequency-events' });\n  this.route('frequency-events.frequency-event', { path: '/instrument/:instrument_id/frequency-events/:profile_id/frequency-event' });\n  this.route('raw-frequency-events-data', { path: '/instrument/:instrument_id/raw-frequency-events-data' });\n});\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class AuthenticatedRoute extends Route {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  }\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class AlertsRoute extends Route.extend({\n  queryParams: {\n    page: {\n        refreshModel: true\n    },\n    page_size: {\n        refreshModel: true\n    },\n    ordering: {\n        refreshModel: true\n    },\n    search: {\n        refreshModel: true\n    }\n  },\n  afterModel: function(resolvedModel) {\n    let pageSize = resolvedModel.alerts.query.page_size,\n        alertMeta = resolvedModel.alerts.meta,\n        alertsController = this.controllerFor('alerts')\n    ;\n\n    alertsController.send('updateProperty', 'pageSize', pageSize);\n    alertsController.send('updateProperty', 'alertMeta', alertMeta);\n    //instrumentsController.send('updateTypeList',resolvedModel);\n  },\n\n}) {\n  @service session;\n  @service router;\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    console.log(\"Perms\");\n    console.log(this.getPerms());\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n      this.get('router').transitionTo('instruments');\n    }\n  };\n\n  getPerms = function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      \n      let alerts = _this.get('store').query('alert', {\n        ...params,\n        instrument_isnull: false\n      });\n\n      // let gatewayAlerts = _this.get('store').query('alert', {\n      //   ...params,\n      //   gateway_isnull: false\n      // });\n\n\n      let stats = _this.get('store').queryRecord('alert-stat',{});\n      let types = _this.store.findAll('instrument-type');\n      let gateway_types = _this.store.findAll('gateway-type');\n\n      alerts.then(function(alerts){\n        stats.then(function(stats){\n          types.then(function(types){\n            gateway_types.then(function(gateway_types){\n              resolve({\n                alerts:alerts,\n                stats:stats,\n                types:types,\n                gateway_types:gateway_types\n              });\n            })                    \n          })    \n        })\n      });\n\n      // alerts.then(function(alerts){\n      //   gatewayAlerts.then(function(gatewayAlerts){\n      //     stats.then(function(stats){\n      //       types.then(function(types){\n      //         gateway_types.then(function(gateway_types){\n      //           resolve({\n      //             alerts:alerts,\n      //             gatewayAlerts:gatewayAlerts,\n      //             stats:stats,\n      //             types:types,\n      //             gateway_types:gateway_types\n      //           });\n      //         })                    \n      //       })    \n      //     })\n      //   })\n      // });\n    });\n  }\n}\n","import Route from '@ember/routing/route';\n//import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';\n \n//export default Route.extend(ApplicationRouteMixin);\nexport default Route.extend();\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class BlastEventRoute extends Route {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n        let blast = _this.get('store').findAll('blast', params);\n\n        blast.then(function(blast){\n            resolve({\n              blast:blast,\n            });\n        });\n    });\n  }\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class BlastsRoute extends Route.extend({\n    queryParams: {\n        page: {\n            refreshModel: true\n        },\n        page_size: {\n            refreshModel: true\n        },\n        ordering: {\n            refreshModel: true\n        },\n        search: {\n            refreshModel: true\n        }\n    },\n    model(params) {\n        // let levelLookupList = _this.store.query('lookup', { name: 'level' });\n        // let projectLookupList = _this.store.query('lookup', { name: 'project' });\n  \n        return Ember.RSVP.hash({\n            blastEvents: this.get('store').query('blast-event', params),\n            blastTypes: this.get('store').findAll('blast-type'),\n            levelLookupList: this.store.query('lookup', { name: 'level' }),\n            projectLookupList: this.store.query('lookup', { name: 'project' })\n          \n            //licence: this.get('store').findAll('licence')\n        });\n    },\n    afterModel: function(resolvedModel) {\n        let pageSize = resolvedModel.blastEvents.query.page_size,\n            eventsMeta = resolvedModel.blastEvents.meta,\n            blastEventsController = this.controllerFor('blast-events')\n        ;\n\n        blastEventsController.send('updateProperty', 'pageSize', pageSize);\n        blastEventsController.send('updateProperty', 'eventsMeta', eventsMeta);\n    }\n}) {\n    @service session;\n\n    beforeModel(transition) {\n      this.session.requireAuthentication(transition, 'login');\n    };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class CreateAlertRoute extends Route.extend({\n  queryParams: {\n    inst_id: {\n        refreshModel: false\n    },\n  },\n  session: service(),\n  router: service(),\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      this.get('router').transitionTo('instruments');\n    }\n  },\n\n  getPerms: function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  },\n\n  model(params) {\n    const _this = this;\n    if (params.inst_id) {\n      //console.log(\"yes\");\n      return new Ember.RSVP.Promise(function(resolve, reject){\n        let instrument = _this.get('store').findRecord('instrument', params.inst_id),\n        instrumentTypes = _this.store.findAll('instrument-type');\n        //headAts = _this.store.findAll('head-at');\n  \n        instrumentTypes.then(function(instrumentTypes){\n          instrument.then(function(instrument){\n            //headAts.then(function(headAts){\n              resolve({\n                instrument:instrument,\n                instrumentTypes:instrumentTypes,\n                //headAts:headAts,\n              });\n            //});\n          });\n        });\n      });\n    } else {\n      return;\n      // return new Ember.RSVP.Promise(function(resolve, reject){\n      //   let instruments = _this.store.query('instrument', {small: 'false', exclude: 15}) //Exclude BluVibe from device list\n      //   let instrumentTypes = _this.store.findAll('instrument-type');\n      //   //headAts = _this.store.findAll('head-at');\n  \n      //   instrumentTypes.then(function(instrumentTypes){\n      //     instruments.then(function(instruments){\n      //       //headAts.then(function(headAts){\n      //         resolve({\n      //           instruments:instruments,\n      //           instrumentTypes:instrumentTypes,\n      //           //headAts:headAts,\n      //         });\n      //       //});\n      //     });\n      //   });\n      // });\n    }\n  }, \n}) {}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class CreateAlertRoute extends Route.extend({\n  queryParams: {\n    gw_id: {\n        refreshModel: false\n    },\n  },\n  session: service(),\n  router: service(),\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      this.get('router').transitionTo('gateway');\n    }\n  },\n\n  getPerms: function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  },\n\n  model(params) {\n    const _this = this;\n    if (params.inst_id) {\n      //console.log(\"yes\");\n      return new Ember.RSVP.Promise(function(resolve, reject){\n        let gateways = _this.get('store').findRecord('gateway', params.gw_id),\n        gatewayTypes = _this.store.findAll('gateway-type');\n  \n        gatewayTypes.then(function(gatewayTypes){\n          gateways.then(function(gateways){\n            resolve({\n              gateways:gateways,\n              gatewayTypes:gatewayTypes,\n            });\n          });\n        });\n      });\n    } else {\n      //console.log(\"no\");\n      return new Ember.RSVP.Promise(function(resolve, reject){\n        let gateways = _this.store.query('gateway', {small: 'false'}) \n        let gatewayTypes = _this.store.findAll('gateway-type');\n        \n        gatewayTypes.then(function(gatewayTypes){\n          gateways.then(function(gateways){\n            resolve({\n              gateways:gateways,\n              gatewayTypes:gatewayTypes,\n            });\n          });\n        });\n      });\n    }\n  }, \n}) {}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class CreateGatewayRoute extends Route {\n  @service session;\n  @service router;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      console.log(\"Perms1::: \" + JSON.stringify(perms));\n      this.get('router').transitionTo('gateway');\n    }\n  };\n  afterModel(model) {\n    let types = model.gatewayTypes;\n    types.content.sort(compare);\n  };\n  getPerms = function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  };\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      let gateways = _this.store.query('gateway', {small: 'false'})\n      let gatewayTypes = _this.store.findAll('gateway-type');\n      \n      gateways.then(function(gateways){\n        gatewayTypes.then(function(gatewayTypes){\n          resolve({\n            gateways:gateways,\n            gatewayTypes:gatewayTypes\n          });\n        });\n      });\n    });\n  }\n}\n\nfunction compare( a, b ) {\n  if (parseInt(a.id) < parseInt(b.id) ) {\n    return -1;\n  }\n  if (parseInt(a.id) > parseInt(b.id) ) {\n    return 1;\n  }\n  return 0;\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class CreateInstrumentRoute extends Route {\n  @service session;\n  @service router;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      this.get('router').transitionTo('instruments');\n    }\n  };\n  afterModel(model) {\n    let types = model.instrumentTypes;\n    types.content.sort(compare);\n  };\n  getPerms = function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  };\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise( function(resolve, reject){\n      let instrument = {};\n      let vendors = _this.store.findAll('vendor');\n      let instrumentTypes = _this.store.findAll('instrument-type');\n      let vwVendors = _this.store.findAll('vwvendor');\n      let vwModels = _this.store.findAll('vwmodel');\n      let headAts = _this.store.findAll('head-at');\n      let levelLookupList = _this.store.query('lookup', { name: 'level' });\n      let projectLookupList = _this.store.query('lookup', { name: 'project' });\n\n      // let instruments = await _this.store.query('instrument', {small: 'false', search: 'dExto'}) //Exclude BluVibe from device list\n      // let projectLookupList = _this.store.query('lookup', {filter:{type:'project'}});\n      // let levelLookupList = _this.store.query('lookup', {filter:{type:'level'}});\n\n      \n      instrumentTypes.then(function(instrumentTypes){\n        vendors.then(function(vendors){\n          headAts.then(function(headAts){\n            vwVendors.then(function(vwVendors){\n              vwModels.then(function(vwModels){\n                projectLookupList.then(function(projectLookupList){\n                  levelLookupList.then(function(levelLookupList){\n                    resolve({\n                      instrumentTypes:instrumentTypes,\n                      vendors:vendors,\n                      headAts:headAts,\n                      vwVendors:vwVendors,\n                      vwModels:vwModels,\n                      projectLookupList: projectLookupList,\n                      levelLookupList: levelLookupList\n                    });\n                  })\n                })\n              })\n            })\n          })\n        });\n      });\n    });\n  }\n}\n\nfunction compare( a, b ) {\n  if (parseInt(a.id) < parseInt(b.id) ) {\n    return -1;\n  }\n  if (parseInt(a.id) > parseInt(b.id) ) {\n    return 1;\n  }\n  return 0;\n}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class CreateLookupRoute extends Route {\n  @service session;\n  @service router;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      this.get('router').transitionTo('instruments');\n    }\n  };\n\n  afterModel(model) {};\n  \n  getPerms = function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  };\n  \n  async model(params) {\n    const _this = this;\n\n    const lookups = await _this.store.findAll('lookup');\n    // Extract all the names\n    let counter = 1;\n \n    const allNamesWithIds = [];\n    const seenNames = new Set();\n    \n    lookups.forEach(lookup => {\n      const name = lookup.get('name');\n      if (!seenNames.has(name)) {\n        seenNames.add(name);\n        allNamesWithIds.push({\n          id: counter++,\n          name: name\n        });\n      }\n    });\n \n    \n    // Filter unique names\n    const uniqueNames = [...new Set(allNamesWithIds)];\n\n    console.log(\"UniqueNames:::: \" + JSON.stringify(uniqueNames))\n    return {\n      uniqueNames\n    };\n  \n  } //end of model\n\n  \n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class EditAlertRoute extends Route {\n  @service session;\n  @service router;\n  \n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      this.get('router').transitionTo('instruments');\n    }\n  };\n\n  getPerms = function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      //let instrument = _this.get('store').findRecord('instrument', params.instrument_id),\n      let instrumentTypes = _this.store.findAll('instrument-type');\n      let alert = _this.get('store').findRecord('alert', params.alert_id, {\n        // include: 'instrument',\n        reload: true,\n      });\n      \n\n      alert.then(function(alert){\n        instrumentTypes.then(function(instrumentTypes){\n          resolve({\n            alert:alert,\n            instrumentTypes:instrumentTypes,\n          });\n        });\n      });\n    })\n  }\n}\n\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class EditGatewayAlertRoute extends Route {\n  @service session;\n  @service router;\n  \n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      this.get('router').transitionTo('gateway');\n    }\n  };\n\n  getPerms = function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      //let instrument = _this.get('store').findRecord('instrument', params.instrument_id),\n      let gatewayTypes = _this.store.findAll('gateway-type');\n\n      let alert = _this.get('store').findRecord('alert', params.alert_id,{\n        ...params,\n        include: 'gateway',\n        gateway_isnull: false,\n        reload: true,\n      });\n      \n      // let alert = _this.get('store').findRecord('alert', params.alert_id, {\n      //   include: 'gateway',\n\n      //   reload: true,\n      // });\n      \n\n      alert.then(function(alert){\n        gatewayTypes.then(function(gatewayTypes){\n          resolve({\n            alert:alert,\n            gatewayTypes:gatewayTypes,\n          });\n        });\n      });\n    })\n  }\n}\n\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class EditGatewayRoute extends Route {\n  @service session;\n\n\n  queryParams = {\n    parentGateway: {\n      refreshModel: true  // This makes sure the model hook is called again if the query param changes\n    }\n  };\n    \n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n \n  model(params) {\n    localStorage.setItem('parentGateway', this.parentGateway);     \n    \n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      let gateways = _this.store.query('gateway', {small: 'false'});\n\n      let gateway = _this.get('store').findRecord('gateway', params.gateway_id);\n      let gatewayTypes = _this.store.findAll('gateway-type');\n      \n      // let alerts = _this.store.findAll('alert', { 'search': params.gateway_id });\n      \n      // let alerts = _this.store.query('alert', { 'gateway_id': params.gateway_id });\n\n      let alerts = _this.get('store').query('alert', {\n        ...params,\n        search: params.gateway_id,\n        gateway_isnull: false\n      });\n\n\n      let gatewayReadingIntervals = _this.store.findAll('gateway-interval')\n      .then(function(intervalResult){\n          let intervalReadings = intervalResult.filter(function(interval){\n          if(interval.intervalGroupName == \"instrument_reading_interval\")\n            return  interval;\n        });\n        return intervalReadings;\n      });\n      \n      let gatewayUploadIntervals = _this.store.findAll('gateway-interval')\n      .then(function(intervalResult){\n          let intervalUploads = intervalResult.filter(function(interval){\n            if(interval.intervalGroupName == \"upload_interval\")\n              return  interval;\n        });\n        return intervalUploads;\n      });\n\n      let gatewayMeshCycleIntervals = _this.store.findAll('gateway-interval')\n      .then(function(intervalResult){\n          let intervalUploads = intervalResult.filter(function(interval){\n            if(interval.intervalGroupName == \"mesh_cycle\")\n              return  interval;\n        });\n        return intervalUploads;\n      });\n\n      let gatewayRadioPowerLevelIntervals = _this.store.findAll('gateway-interval')\n      .then(function(intervalResult){\n          let intervalUploads = intervalResult.filter(function(interval){\n            if(interval.intervalGroupName == \"radio_transmission_power_level\")\n              return  interval;\n        });\n        return intervalUploads;\n      });\n\n      \n      gateway.then(function(gateway){\n        gateways.then(function(gateways){\n          alerts.then(function(alerts){\n            gatewayTypes.then(function(gatewayTypes){\n              gatewayReadingIntervals.then(function(gatewayReadingIntervals){\n                gatewayUploadIntervals.then(function(gatewayUploadIntervals){\n                  gatewayMeshCycleIntervals.then(function(gatewayMeshCycleIntervals){\n                    gatewayRadioPowerLevelIntervals.then(function(gatewayRadioPowerLevelIntervals){\n                    resolve({\n                      gateways:gateways,\n                      gateway:gateway,\n                      gatewayTypes:gatewayTypes,\n                      alerts:alerts,\n                      gatewayReadingIntervals:gatewayReadingIntervals,\n                      gatewayUploadIntervals:gatewayUploadIntervals,\n                      gatewayMeshCycleIntervals:gatewayMeshCycleIntervals,\n                      gatewayRadioPowerLevelIntervals:gatewayRadioPowerLevelIntervals\n                    });\n                    });\n                  });\n                });\n              });\n            });\n          });\n        });\n      });\n    });\n  }\n} \n\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class EditInstrumentRoute extends Route {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      console.log(JSON.stringify(params))\n      let instrument = _this.get('store').findRecord('instrument', params.instrument_id);\n      let globalDatetimeFormatProjectSetting = _this.store.query('project-setting', {}).then((settings) => {\n        return settings.find(setting => setting.title === 'GLOBAL_DATETIME_FORMAT');\n      });      \n      let instrumentTypes = _this.store.findAll('instrument-type'),\n      vendors = _this.store.findAll('vendor'),\n      \n      headAts = _this.store.findAll('head-at'),\n      alerts = _this.store.findAll('alert', { 'search': params.instrument_id });\n      let vwVendors = _this.store.findAll('vwvendor');\n      let vwModels = _this.store.findAll('vwmodel');\n      // let vwProperties = _this.store.findAll('vwproperty');\n\n      let levelLookupList = _this.store.query('lookup', { name: 'level' });\n      let projectLookupList = _this.store.query('lookup', { name: 'project' });\n\n      globalDatetimeFormatProjectSetting.then(function(globalDatetimeFormat){\n        instrument.then(function(instrument){\n          headAts.then(function(headAts){\n            alerts.then(function(alerts){\n              vwModels.then(function(vwModels){  \n                vwVendors.then(function(vwVendors){\n                instrumentTypes.then(function(instrumentTypes){\n                  vendors.then(function(vendors){\n                    projectLookupList.then(function(projectLookupList){\n                      levelLookupList.then(function(levelLookupList){\n                        console.log(\"route js vwModels\");\n                        console.log(vwModels);\n                        resolve({\n                          instrument:instrument,\n                          globalDatetimeFormat:globalDatetimeFormat,\n                          instrumentTypes:instrumentTypes,\n                          headAts:headAts,\n                          vwVendors:vwVendors,\n                          vwModels:vwModels,\n                          // vwProperties:vwProperties,\n                          alerts:alerts,\n                          vendors:vendors,\n                          projectLookupList: projectLookupList,\n                          levelLookupList: levelLookupList\n                        });  \n                      });\n                    });\n                  });\n                });\n              });\n            });\n          });\n        });\n        });\n      });\n    });\n  }\n}\n","// app/routes/login.js\nimport Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\n\nexport default class ForgotPasswordRoute extends Route {\n  @service session;\n  beforeModel(transition) {\n    // if(transition.from == null)\n    //   transition = \"/\"\n    // this.session.prohibitAuthentication(transition);\n  }\n  model() {\n    // console.log(\"ENV:\");\n    // console.log(ENV);\n    // return {\n    //   loginAPI:ENV.API_LOGIN\n    // };\n  }\n}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport {copy, Copyable} from 'ember-copy'\n\nexport default class RawDataRoute extends Route {\n    resetController(controller, isExiting, transition) {\n        if (isExiting) {\n            controller.set('page', 1);\n            controller.set('page_size', 20);\n        }\n    }\n    @service session;\n\n    queryParams = {\n        page: {\n            refreshModel: true\n        },\n        page_size: {\n            refreshModel: true\n        },\n        advancedStartDate: {\n            refreshModel: true\n        },\n        advancedEndDate: {\n            refreshModel: true\n        },\n    }\n\n    beforeModel(transition) {\n        this.session.requireAuthentication(transition, 'login');\n    };\n\n    model(params) {\n        const _this = this;\n        return new Ember.RSVP.Promise(function(resolve, reject){\n            let globalDatetimeFormatProjectSetting = _this.store.query('project-setting', {}).then((settings) => {\n                return settings.find(setting => setting.title === 'GLOBAL_DATETIME_FORMAT');\n            });      \n            let instrument = _this.get('store').findRecord('instrument', params.instrument_id);\n            if (!params.page) {\n                params.page = 1;\n            }\n            if (!params.page_size) {\n                params.page_size = 20;\n            }\n            let bluvibeV2Profiles = _this.store.query('blu-vibe-v2-profile-model', params, null, params.instrument_id,  null);\n\n            globalDatetimeFormatProjectSetting.then(function(globalDatetimeFormat){\n                bluvibeV2Profiles.then(function(bluvibeV2Profiles){\n                    instrument.then(function(instrument){\n                        resolve({\n                            globalDatetimeFormat:globalDatetimeFormat,\n                            bluvibeV2Profiles:bluvibeV2Profiles,\n                            instrument:instrument,\n                        });\n                    });\n                });\n            });\n        });\n    }\n    setupController(controller, model) {\n        super.setupController(controller, model); // This line is invalid in controllers\n        controller.setProperties({\n            model: model,\n            content: model,\n            instrument: model.instrument,\n            instrumentId: model.instrument.get('id'),\n            subModel: model.instrument.get('subModel'),\n            project: model.instrument.get('project'),\n            location: model.instrument.get('location'),\n            level: model.instrument.get('level'),\n            borehole: model.instrument.get('borehole'),\n            instrumentType: model.instrument.get('instrumentType').get(\"title\"),\n            bluvibeV2Profiles: model.bluvibeV2Profiles,\n            globalDatetimeFormat: model.globalDatetimeFormat\n        });\n    }\n    afterModel(resolvedModel, transition) {\n        let ctrl = this.controllerFor('frequency-events');\n        // ctrl.send('updateProperty', 'pageSize', resolvedModel.bluvibeV2Profiles.query.page_size);\n    };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class RawDataRoute extends Route {\n    resetController(controller, isExiting, transition) {\n        if (isExiting) {\n            controller.set('page', 1);\n            controller.set('page_size', 20);\n        }\n    }\n    @service session;\n\n    queryParams = {\n        page: {\n            refreshModel: true\n        },\n        page_size: {\n            refreshModel: true\n        },\n        selectedFreqEventDate: {\n            refreshModel: true\n        },\n        analysis_category: {\n            refreshModel: true\n        },\n        method: {\n            refreshModel: true\n        },\n    }\n\n    beforeModel(transition) {\n        this.session.requireAuthentication(transition, 'login');\n    };\n\n    model(params) {\n        const _this = this;\n        return new Ember.RSVP.Promise(function(resolve, reject){\n            if (!params.page && params.page != -1) {\n                params.page = 1;\n                if (!params.page_size) {\n                    params.page_size = 20;\n                }\n            }else{\n                params.page = undefined;\n                params.page_size = undefined;\n            }\n            let globalDatetimeFormatProjectSetting = _this.store.query('project-setting', {}).then((settings) => {\n                return settings.find(setting => setting.title === 'GLOBAL_DATETIME_FORMAT');\n            });      \n            let instrument = _this.get('store').findRecord('instrument', params.instrument_id);\n            let bluvibeV2ModelProfiles = _this.store.query('blu-vibe-v2-profile-model', params, null, params.instrument_id,  null);\n\n            globalDatetimeFormatProjectSetting.then(function(globalDatetimeFormat){\n                instrument.then(function(instrument){\n                    bluvibeV2ModelProfiles.then(function(bluvibeV2ModelProfiles){\n                        resolve({\n                            instrument:instrument,\n                            profileId: params.profile_id,\n                            bluvibeV2ModelProfiles:bluvibeV2ModelProfiles,\n                            globalDatetimeFormat:globalDatetimeFormat,\n                        });\n                    });\n                });\n            });\n        });\n    }\n    setupController(controller, model) {\n        super.setupController(controller, model); // This line is invalid in controllers\n        // console.log(\"freq-event setupController model\")\n        // console.log(model)\n        controller.setProperties({\n            model: model,\n            content: model,\n            instrument:model.instrument,\n            profileId: model.profileId,\n            instrumentId: model.instrument.get('id'),\n            instrumentType: model.instrument.get('instrumentType').get(\"title\"),\n            subModel: model.instrument.get('subModel'),\n            bluvibeV2ModelProfiles: model.bluvibeV2ModelProfiles,\n            globalDatetimeFormat:model.globalDatetimeFormat,\n        });\n    }\n    afterModel(resolvedModel, transition) {\n        let ctrl = this.controllerFor('frequency-events');\n    };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class FrequencyGraphsRoute extends Route.extend({\n    model(params) {\n        let a = this.get('store');\n\n        return Ember.RSVP.hash({\n            instrument: this.get('store').queryRecord('instrument', {instrument_id: params.instrument_id}),\n        });\n    },\n    setupController: function(controller, model) {\n        //in this case the model is an instrument\n        this.controllerFor('frequency-graphs').set(\"content\",model);\n        this.controllerFor('frequency-graphs').activate();\n    }\n}) {\n    @service session;\n    @service router;\n\n    beforeModel(transition) {\n        this.session.requireAuthentication(transition, 'login');\n        let perms = this.getPerms();\n        if (!('graphing' in perms) || perms['graphing']==false) {\n          this.get('router').transitionTo('instruments');\n        }\n      };\n    \n      getPerms = function() {\n        let perms = null;\n        try{\n          perms = this.session.data.authenticated.modules;\n        } catch {}\n        return perms;\n      };\n  }\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\n\nexport default Ember.Route.extend({\n    queryParams: {\n        start_timestamp: {\n            refreshModel: true\n        },\n        end_timestamp: {\n            refreshModel: true\n        },\n        num_points_requested: {\n            refreshModel: true\n        },\n        ref_head_position: {\n            refreshModel: true\n        },\n        ref_anchor: {\n            refreshModel: true\n        },\n        zeroed: {\n            refreshModel: true\n        },\n        raw: {\n            refreshModel: true\n        },\n        flip_signs: {\n            refreshModel: true\n        },\n        event_type: {\n            refreshModel: true\n        },\n        blast_type: {\n            refreshModel: true\n        },\n        seismic_type: {\n            refreshModel: true\n        },\n        frequency: {\n            refreshModel: true\n        },\n        display_records: {\n          refreshModel: true\n        },\n        chart_type: {\n            refreshModel: true\n        },\n        advancedYAxisUnit:{\n            refreshModel: true\n        },\n        advancedStartDate: {\n            refreshModel: true\n        },\n        advancedEndDate: {\n            refreshModel: true\n        },\n        advancedYLeftMax:{\n            refreshModel: true\n        },\n        advancedYLeftMin:{\n            refreshModel: true\n        },\n        advancedYRightMax:{\n            refreshModel: true\n        },\n        advancedYRightMin:{\n            refreshModel: true\n        },\n        advancedXMax:{\n            refreshModel: true\n        },\n        advancedXMin:{\n            refreshModel: true\n        }\n    },\n    model(params) {\n        const _this = this;\n        let page_size = (params.event_type)? 80 : 40;\n        let routeParams = this.paramsFor('frequency-graphs');\n        params.instrument_id = routeParams.instrument_id;\n        \n        \n        // declare default empty promises in case if blase of seismic events are disabled\n        let seismicEvents = new Ember.RSVP.Promise(function(resolve, reject){\n          // succeed\n          resolve(false);\n          // or reject\n          reject();\n        });\n\n        let blastEvents = new Ember.RSVP.Promise(function(resolve, reject){\n          // succeed\n          resolve(false);\n          // or reject\n          reject();\n        });\n\n        return new Ember.RSVP.Promise(function(resolve, reject){    \n            // Resolve zoomData model first, get start_timestamp and end_timestap values to be able to limit events to these boundaries\n            let zoomDataQueryParams = Ember.copy(params);\n            zoomDataQueryParams.num_points_requested = 1;\n            _this.store.query(singularize(zoomDataQueryParams.model_name),  zoomDataQueryParams, null, zoomDataQueryParams.instrument_id,  null).then(function(zoomData){\n                // let closestZeroTimestamp = \"\";\n                let closestZeroTimestamp = zoomData.meta['closest-zero-timestamp'];\n                let zoomDataStartTimestamp = zoomData.meta['start-timestamp'];\n                let zoomDataEndTimestamp = zoomData.meta['end-timestamp'];\n\n                // get closest_zero_timestamp (the date when an instrument was initialized) of zoomData query and use it as start_timestamp if no other start_timestamp query parameter is specified\n                if (!zoomData.query.start_timestamp) {\n                    params.start_timestamp = zoomData.meta['closest-zero-timestamp'];\n                }\n               \n                let typeID = params.instrument_id.substr(params.instrument_id.length === 9 ? 5 : 6, 1);\n                let prevModel = params.model_name;\n\n                // second call to the same endpoint required because I can only fetch closest_zero_timestamp value from the previous API call\n                // let zoomDataSecondCall = _this.store.query(singularize(params.model_name),  params, null, params.instrument_id,  null);\n\n                //let zoomTempData = _this.store.query(Ember.String.singularize('temperature-value'),  params, null, params.instrument_id,  null);\n                let temperatureParams = Ember.copy(params);\n                temperatureParams.ref_anchor = \"0\";\n                temperatureParams.flip_signs = null;\n                temperatureParams.model_name = \"displacement-values\";\n\n                // let zoomTempData = _this.store.query(\"temperature-value\", temperatureParams, null, params.instrument_id, null);\n\n                // third call should only be called after the first find is completed\n                // let fullRangeData = _this.get('store').query(Ember.String.singularize(params.model_name), {model_name: params.model_name, instrument_id: params.instrument_id, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: params.zeroed, flip_signs: params.flip_signs});\n                // let fullRangeData = _this.get('store').query(singularize(params.model_name), {model_name: params.model_name, instrument_id: params.instrument_id, start_timestamp: closestZeroTimestamp, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: params.zeroed, raw: params.raw, flip_signs: params.flip_signs});\n\n                //let fullRangeTempData = _this.get('store').query(\"temperature-value\", {model_name: params.model_name, instrument_id: params.instrument_id, start_timestamp: closestZeroTimestamp, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: false});\n                // fetch an instrument to be able to get anchor distances and other useful info from the instrument\n                //let instrument = _this.get('store').findRecord('instrument', params.instrument_id, { include: 'anchors' } );\n                console.log(\"Instrument: \" + params.instrument_id);\n                let instrument = _this.store.queryRecord('instrument', { instrument_id: params.instrument_id } );\n\n                let graphs = _this.store.findAll('chart');\n/* \n                // if blast events are requested\n                if (!params.event_type || params.event_type === \"blast\") {\n                    blastEvents = _this.store.query('blast-event', {page_size: page_size, ordering: \"-tonnes\", is_visible: true, blast_type: params.blast_type, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp});\n                }\n                // if promise events are requested\n                if (!params.event_type || params.event_type === \"seismic\") {\n                    seismicEvents = _this.store.query('seismic-event', {page_size: page_size, ordering: \"-moment_magnitude\", is_visible: true, seismic_type: params.seismic_type, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp});\n                } */\n\n                //wait for all promises to fulfil and then return resolved promis\n                graphs.then(function(graphs) {\n                    instrument.then(function(instrument){\n                        // zoomDataSecondCall.then(function(zoomDataSecondCall){\n                            // fullRangeData.then(function(fullRangeData){\n                                //seismicEvents.then(function(seismicEvents){\n                                    //blastEvents.then(function(blastEvents){\n                                        // zoomTempData.then(function(zoomTempData){\n                                            //fullRangeTempData.then(function(fullRangeTempData) {\n                                                resolve({\n                                                    graphs:graphs,\n                                                    instrument:instrument,\n                                                    zoomData:zoomData,\n                                                    //fullRangeData:fullRangeData,\n                                                    //seismicEvents:seismicEvents,\n                                                    //blastEvents:blastEvents,\n                                                    // zoomTempData:zoomTempData,\n                                                    //fullRangeTempData:fullRangeTempData\n                                                //});        \n                                            });\n                                        // });\n                                    //});\n                                //});\n                            // });\n                        // });\n                    });\n                });\n            });\n        });\n    },\n    afterModel: function(resolvedModel) {\n        // console.log(\"in afterModel - routes/frequency-graphs/frequency-graph.js\")\n        let frequencyGraphsController = this.controllerFor('frequency-graphs');\n\n        frequencyGraphsController.send('updateProperties', ['instrumentId'], [resolvedModel.zoomData.query.instrument_id]);\n        frequencyGraphsController.send('updateProperties', ['instrumentType'], [resolvedModel.instrument.get('instrumentType').get('title')]);\n        frequencyGraphsController.send('updateProperties', ['name'], [resolvedModel.instrument.get('name')]);\n        frequencyGraphsController.send('updateProperties', ['location'], [resolvedModel.instrument.get('location')]);\n        frequencyGraphsController.send('updateProperties', ['level'], [resolvedModel.instrument.get('level')]);\n        frequencyGraphsController.send('updateProperties', ['borehole'], [resolvedModel.instrument.get('borehole')]);\n        frequencyGraphsController.send('updateProperties', ['project'], [resolvedModel.instrument.get('project')]);\n        frequencyGraphsController.send('updateProperties', ['model_name'], [resolvedModel.zoomData.query.model_name]);\n        frequencyGraphsController.send('updateProperties', ['activeInstrumentMeta'], [resolvedModel.zoomData.meta]);\n        //frequencyGraphsController.send('updateProperties', ['eventType'], [resolvedModel.zoomData.query.event_type]);\n        //frequencyGraphsController.send('updateProperties', ['blastType'], [resolvedModel.zoomData.query.blast_type]);\n        //frequencyGraphsController.send('updateProperties', ['seismicType'], [resolvedModel.zoomData.query.seismic_type]);\n        frequencyGraphsController.send('updateProperties', ['frequency'], [resolvedModel.zoomData.query.frequency]);\n        //TODO::: check to see if this property is the same as in the temporal route file. \n        //frequencyGraphsController.send('updateProperties', ['chart_type'], [resolvedModel.zoomData.query.chart_type]);\n        //console.log(\"modelName::: \" + resolvedModel.zoomData.query.chart_type);\n        \n        //get pretty chart name if chart has multiple parts to it\n        let obj = resolvedModel.graphs.content;\n        let type = resolvedModel.instrument.get('instrumentTypeID').toString();\n        //get the chart data for the instrument\n        obj.forEach(function(item) {\n            if(item.id === type) {\n                obj = item;\n                return;\n            }\n        });\n        \n        let name = '';\n        name = resolvedModel.zoomData.query.model_name;\n        // console.log(\"chartName:::: \" + name);\n        switch(name) {\n            case 'vibration-event':\n                name = \"PPV vs Frequency\";\n                break;\n            case 'vibration-ppa':\n                name = \"PPA vs Frequency\";\n                break;\n            default:\n                break;\n        }\n\n        let chartName = name;\n        // let chartNameL = chartName.substring(0, chartName.indexOf('-')).capitalize();\n        // let chartNameR = chartName.substring(chartName.indexOf('-') + 1).capitalize();\n        // if(chartNameL !== \"\") {\n        //     chartName = chartNameL + \" \" + chartNameR;\n        // }\n        frequencyGraphsController.send('updateProperties', ['modelName'], [resolvedModel.zoomData.query.model_name]);\n        frequencyGraphsController.send('updateProperties', ['chartData'], [obj]);\n        frequencyGraphsController.send('updateProperties', ['chartDataValueName'], [chartName]);\n        frequencyGraphsController.send('updateProperties', ['instrumentAnchors'], [resolvedModel.instrument.get('anchors')]);\n        frequencyGraphsController.send('updateProperties', ['chart_type'], [resolvedModel.zoomData.query.chart_type]);\n        frequencyGraphsController.send('updateProperties', ['display_records'], [resolvedModel.zoomData.query.display_records]);\n    },\n    actions: {\n        setDataR(data) {\n            let frequencyGraphsController = this.controllerFor('frequency-graphs');\n\n            frequencyGraphsController.send('setData',data);\n        },\n        setChartR(chart) {\n            let frequencyGraphsController = this.controllerFor('frequency-graphs');\n\n            frequencyGraphsController.send('setChart',chart);\n        },\n        willTransition() {\n            let frequencyGraphsController = this.controllerFor('frequency-graphs');\n            frequencyGraphsController.send('updateProperties', ['instrumentId'], [null]);\n            //frequencyGraphsController.send('updateProperties', ['eventType'], [null]);\n            //frequencyGraphsController.send('updateProperties', ['blastType'], [null]);\n            //frequencyGraphsController.send('updateProperties', ['seismicType'], [null]);\n        }\n    }\n});\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class GatewayAlertsRoute extends Route.extend({\n  queryParams: {\n    page: {\n        refreshModel: true\n    },\n    page_size: {\n        refreshModel: true\n    },\n    ordering: {\n        refreshModel: true\n    },\n    search: {\n        refreshModel: true\n    }\n  },\n  afterModel: function(resolvedModel) {\n    let gatewayPageSize = resolvedModel.gatewayAlerts.query.page_size,\n        gatewayAlertMeta = resolvedModel.gatewayAlerts.meta,\n        alertsController = this.controllerFor('alerts')\n    ;\n\n    alertsController.send('updateProperty', 'gatewayPageSize', gatewayPageSize);\n    alertsController.send('updateProperty', 'gatewayAlertMeta', gatewayAlertMeta);\n  },\n\n}) {\n  @service session;\n  @service router;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    let perms = this.getPerms();\n    if (((perms != undefined) && !('alerts' in perms)) || ((perms != undefined) && (perms['alerts'] == false))) {\n\n      this.get('router').transitionTo('gateways');\n    }\n  };\n\n  getPerms = function() {\n    let perms = null;\n    try{\n      perms = this.session.data.authenticated.modules;\n    } catch {}\n    return perms;\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      // let gatewayAlerts = _this.get('store').query('alert', params);\n      // let stats = _this.get('store').queryRecord('alert-stat',{});\n      let gatewayAlerts = _this.get('store').query('alert', {\n        ...params,\n        gateway__isnull: false,\n      });\n      let types = _this.store.findAll('gateway-type');\n\n      gatewayAlerts.then(function(gatewayAlerts){\n          types.then(function(types){\n            resolve({\n              alerts:alerts,\n              types:types,\n          });    \n        })\n      });\n    });\n  }\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class GatewayRoute extends Route.extend({\n  queryParams: {\n    page: {\n        refreshModel: true\n    },\n    page_size: {\n        refreshModel: true\n    },\n    ordering: {\n        refreshModel: true\n    },\n    search: {\n        refreshModel: true\n    }\n  },\n\n  actions: {\n    refreshModel() {\n      this.refresh();\n    }\n  },\n\n  afterModel: function(resolvedModel, transition) {\n    console.log(resolvedModel);\n    let pageSize = resolvedModel.gateway.query.page_size,\n        gatewayMeta = resolvedModel.gateway.meta,\n        gatewayController = this.controllerFor('gateway')\n    ;\n\n    this.session.store.refreshLicence();\n\n    gatewayController.send('updateProperty', 'pageSize', pageSize);\n    gatewayController.send('updateProperty', 'gatewayMeta', gatewayMeta);\n},\n\n}) {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n    // Clear the parentGateway from localStorage\n    window.localStorage.removeItem('parentGateway');\n  };\n\nasync model(params) {\n  try {\n    let queryParams = {\n      ...params,\n      parent_gateway: 'null'\n    };\n\n    let [\n      gateway,\n      gatewayStats\n    ] = await Promise.all([\n      this.store.query('gateway', queryParams),\n      this.store.queryRecord('gateway-stat', {})\n    ]);\n\n    return {\n      gateway,\n      gatewayStats\n    };\n\n  } catch (error) {\n    if (error?.errors?.[0]?.status === '401') {\n      await this.session.invalidate();\n    }\n      console.log(\"Error in gatway.js in routes: \" + error)\n  }\n}\n\n  // model(params) {\n  //   const _this = this;\n  //   return new Ember.RSVP.Promise(function(resolve, reject){\n  //     params.parent_gateway = 'null';\n\n  //     // let gateway = _this.get('store').query('gateway', { gateway_id: params.gateway_id, parent_gateway: 'null' });\n  //     console.log(params)\n  //     let gateway = _this.get('store').query('gateway', params);\n  //     let gatewayStats = _this.get('store').queryRecord('gateway-stat',{});\n\n  //     gateway.then(function(gateway){\n  //       resolve({\n  //         gateway:gateway,\n  //         gatewayStats:gatewayStats,\n  //       });\n  //     });\n  //   });\n  // };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class IndexRoute extends Route {\n    queryParams = {\n        page: {\n            refreshModel: true\n        },\n        page_size: {\n            refreshModel: true\n        },\n        ordering: {\n            refreshModel: true\n        },\n        search: {\n            refreshModel: true\n        },\n        searchTgt: {\n            refreshModel: true\n        }\n    };\n\n    @service session;\n\n    beforeModel(transition) {\n      this.session.requireAuthentication(transition, 'login');\n    };\n\n    model(params) {\n        const _this = this;\n  \n        return new Ember.RSVP.Promise(function(resolve, reject){\n            //console.log(\"router\");\n            let alertsParams = {}\n            _this.queryParams.ordering;\n            if (params.ordering != null) {\n                let test = params.ordering.slice(1,2)\n                if (test == \":\") {\n                    let opt = params.ordering.slice(0,1);\n                    params.ordering = params.ordering.slice(2);\n                    if (opt == 'a') {\n                        //console.log('alert');\n                        alertsParams.ordering = params.ordering;\n                        params.ordering = null;\n                        //console.log(alertsParams.ordering);\n                    } else if (opt == 'i') {\n                        //console.log('instrument');\n                        console.log(params.ordering);\n                    } else {\n                        //console.log('niether');\n                    }\n                }\n            }\n\n            alertsParams.page_size = 5\n            if (alertsParams == null)\n                alertsParams.ordering = '-is_triggered,-is_active,instrument'\n\n            if(params.searchTgt==\"alert\")\n                alertsParams.search = params.search\n\n            let alerts = _this.get('store').query('alert', alertsParams);\n\n            //console.log(alertsParam);\n            //c/onsole.log(alerts);\n\n            params.page_size = 20\n\n            if (params.ordering == null)\n                params.ordering = 'id'\n            if(params.searchTgt != \"inst\" && params.searchTgt != \"gateway\")\n                params.search = \"\"\n\n\n            let instruments = _this.get('store').query('instrument', params);\n            let alertStats = _this.get('store').queryRecord('alert-stat',{});\n            let instrumentStats = _this.get('store').queryRecord('instrument-stat',{});\n            let gateway = _this.get('store').query('gateway', params);\n            let gatewayStats = _this.get('store').queryRecord('gateway-stat',{});\n\n            let levelLookupList = _this.store.query('lookup', { name: 'level' });\n            let projectLookupList = _this.store.query('lookup', { name: 'project' });\n      \n            if(params.searchTgt != null) {\n                if(params.searchTgt == \"alert\") {\n                    alerts = _this.get('store').query('alert', alertsParams);\n                    instruments = _this.get('store').query('instrument',params);\n                    gateway = _this.get('store').query('gateway', params);\n                } else if (params.searchTgt == \"inst\") {\n                    alerts = _this.get('store').query('alert',alertsParams);\n                    instruments = _this.get('store').query('instrument', params);\n                    gateway = _this.get('store').query('gateway', params);\n                } else if (params.searchTgt == \"gateway\") {\n                    // not sure why this is an if statement???\n                    alerts = _this.get('store').query('alert',alertsParams);\n                    instruments = _this.get('store').query('instrument',params);\n                    gateway = _this.get('store').query('gateway', params);\n                }\n            }\n\n            alerts.then(function(alerts){\n                instruments.then(function(instruments){\n                    alertStats.then(function(stats){\n                        gateway.then(function(gateway){\n                            gatewayStats.then(function(gatewayStats){\n                                levelLookupList.then(function(levelLookupList){\n                                    projectLookupList.then(function(projectLookupList){\n                                        resolve({\n                                            alerts:alerts,\n                                            instruments:instruments,\n                                            stats:stats,\n                                            instrumentStats: instrumentStats,\n                                            gateway: gateway,\n                                            gatewayStats: gatewayStats,\n                                            levelLookupList:levelLookupList,\n                                            projectLookupList:projectLookupList\n                                        });\n                                    });\n                                });\n                            });\n                        });\n                    });\n                });\n            });//end of alerts\n    \n        });\n    }\n\n    afterModel = function(resolvedModel) {\n        //console.log(resolvedModel.stats);\n        //console.log(resolvedModel);\n        this.session.store.refreshLicence();\n    }\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class InstrumentsRoute extends Route.extend({\n  queryParams: {\n    page: {\n        refreshModel: true\n    },\n    page_size: {\n        refreshModel: true\n    },\n    ordering: {\n        refreshModel: true\n    },\n    search: {\n        refreshModel: true\n    }\n  },\n  \n  afterModel: function(resolvedModel, transition) {\n    let pageSize = resolvedModel.instruments.query.page_size,\n        instrumentMeta = resolvedModel.instruments.meta,\n        instrumentsController = this.controllerFor('instruments')\n    ;\n\n    this.session.store.refreshLicence();\n\n    instrumentsController.send('updateProperty', 'pageSize', pageSize);\n    instrumentsController.send('updateProperty', 'instrumentMeta', instrumentMeta);\n    //instrumentsController.send('updateTypeList',resolvedModel);\n},\n\n}) {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n    async model(params) {\n    try {\n      let [\n        instruments,\n        instrumentStats,\n        levelLookupList,\n        projectLookupList\n      ] = await Promise.all([\n        this.store.query('instrument', params),\n        this.store.queryRecord('instrument-stat', {}),\n        this.store.query('lookup', { name: 'level' }),\n        this.store.query('lookup', { name: 'project' })\n      ]);\n\n      return {\n        instruments,\n        instrumentStats,\n        levelLookupList,\n        projectLookupList\n      };\n    } catch (error) {\n      console.log(\"Errors: \");\n      console.log(error)\n      if (error?.errors?.[0]?.status === '401') {\n        \n        await this.session.invalidate();\n      }\n      console.log(\"Error in instruments.js in routes: \" + error)\n    }\n  }\n\n  // model(params) {\n  //   const _this = this;\n  //   return new Ember.RSVP.Promise(function(resolve, reject){\n  //       let instruments = _this.get('store').query('instrument', params);\n  //       let instrumentStats = _this.get('store').queryRecord('instrument-stat',{});\n  //       let levelLookupList = _this.store.query('lookup', { name: 'level' });\n  //       let projectLookupList = _this.store.query('lookup', { name: 'project' });\n\n  //       instruments.then(function(instruments){\n  //         levelLookupList.then(function(levelLookupList){\n  //           projectLookupList.then(function(projectLookupList){\n  //             resolve({\n  //               instruments:instruments,\n  //               instrumentStats:instrumentStats,\n  //               levelLookupList:levelLookupList,\n  //               projectLookupList:projectLookupList,\n  //             });\n  //           });\n  //         });      \n  //       });\n  //   });\n  // };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class KeysRoute extends Route {\n    @service session;\n    \n    beforeModel(transition) {\n        this.session.requireAuthentication(transition, 'login');\n    };\n\n    model(params) {\n        const _this = this;\n        return new Ember.RSVP.Promise(function(resolve,reject){\n            let licenceKeys = _this.get('store').query('licence-key', params);\n\n            licenceKeys.then(function(licenceKeys){\n                resolve({\n                    licenceKeys:licenceKeys,\n                });\n            });\n        });\n    };\n\n    afterModel(resolvedModel, transition) {\n        this.controllerFor('keys').send('updateActive', resolvedModel);\n        this.session.store.refreshLicence();\n    };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class KeysRoute extends Route {\n    @service session;\n    \n    beforeModel(transition) {\n        this.session.requireAuthentication(transition, 'login');\n    };\n\n    model(params) {\n        const _this = this;\n        return new Ember.RSVP.Promise(function(resolve,reject){\n            \n            let lookups = _this.store.findAll('lookup');  // fetch all records \n        \n            \n\n            lookups.then(function(lookups){\n                resolve({\n                    lookups:lookups,\n                });\n            });\n        });\n    };\n\n    afterModel(resolvedModel, transition) {\n        this.controllerFor('list-lookups').send('updateActive', resolvedModel);\n        this.session.store.refreshLicence();\n    };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class LogViewerRoute extends Route.extend({\n\n  queryParams: {\n    page: {\n        refreshModel: true\n    },\n    page_size: {\n        refreshModel: true\n    },\n    ordering: {\n        refreshModel: true\n    },\n    search: {\n        refreshModel: true\n    },\n    startDate: {\n      refreshModel: true\n    },\n    endDate: {\n      refreshModel: true\n    }\n  },\n      \n  actions: {\n    refreshModel() {\n      this.refresh();\n    }\n  },\n\n  afterModel: function(resolvedModel, transition) {\n    \n    let pageSize = resolvedModel.logViewer.query.page_size,\n        logViewerMeta = resolvedModel.logViewer.meta,\n        logViewerController = this.controllerFor('log-viewer')\n    ;\n\n    this.session.store.refreshLicence();\n\n    logViewerController.send('updateProperty', 'pageSize', pageSize);\n    logViewerController.send('updateProperty', 'logViewerMeta', logViewerMeta);\n},\n\n}) {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n  model(params) {\n    const _this = this;\n \n    return new Ember.RSVP.Promise(function(resolve,reject){\n            \n      let errorTypeLookups = _this.store.query('lookup', { name: 'error_type' });\n      let logViewer = _this.get('store').query('log-viewer', params);\n\n      let logViewerStats = _this.get('store').queryRecord('gateway-stat',{});\n\n      logViewer.then(function(logViewer){        \n        errorTypeLookups.then(function(errorTypeLookups){\n          logViewerStats.then(function(logViewerStats){\n            resolve({\n              logViewer: logViewer,\n              errorTypeLookups:errorTypeLookups,\n              logViewerStats: logViewerStats,\n            });\n          })\n        })\n      });\n    });\n  }\n}\n","// app/routes/login.js\nimport Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\n\nexport default class LoginRoute extends Route {\n  @service session;\n  beforeModel(transition) {\n    if(transition.from == null)\n      transition = \"/\"\n    this.session.prohibitAuthentication(transition);\n  }\n  model() {\n    // console.log(\"ENV:\");\n    // console.log(ENV);\n    return {\n      loginAPI:ENV.API_LOGIN\n    };\n  }\n}","// app/routes/login.js\nimport Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\n\nexport default class MyProfileRoute extends Route {\n  @service session;\n  beforeModel(transition) {\n    // if(transition.from == null)\n    //   transition = \"/\"\n    // this.session.prohibitAuthentication(transition);\n  }\n  model() {\n    // console.log(\"ENV:\");\n    // console.log(ENV);\n    // return {\n    //   loginAPI:ENV.API_LOGIN\n    // };\n  }\n}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport RSVP from 'rsvp';\n\nexport default class CalibrationRoute extends Route.extend({\n\n  queryParams: {\n  },\n      \n  actions: {\n    refreshModel() {\n      this.refresh();\n    }\n  },\n\n\n\n  afterModel: function(resolvedModel, transition) {\n    // console.log(resolvedModel);\n    // let pageSize = resolvedModel.instrumentProfileList.query.page_size,\n    //     logViewerMeta = resolvedModel.instrumentProfileList.meta,\n    //     logViewerController = this.controllerFor('calibration')\n    // ;\n\n    // this.session.store.refreshLicence();\n\n    // logViewerController.send('updateProperty', 'pageSize', pageSize);\n    // logViewerController.send('updateProperty', 'logViewerMeta', logViewerMeta);\n},\n}) {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n  activate() {\n    window.addEventListener('beforeunload', this.handleBeforeUnload);\n  };\n\n  // Remove the event listener when the route is deactivated\n  deactivate() {\n    window.removeEventListener('beforeunload', this.handleBeforeUnload);\n  };\n\n  // This function will be called before the user leaves the page\n  handleBeforeUnload(event) {\n    // Display a confirmation dialog when the user tries to leave or refresh the page\n    event.preventDefault();\n    event.returnValue = ''; // This line is required for some browsers to show the confirmation dialog\n  };\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n   async model(params) {\n    const query = {\n      page: params.page || 1,\n      page_size: 10,\n    };\n\n    if (params.calibrationID) {\n      query.calibrationID = params.searchCalibrationID;\n      query.jobID = params.searchJobID;\n      query.sensorID = params.searchSensorID;\n    }\n\n    try {\n\n      return {};\n    } catch (error) {\n      if (error.isAdapterError && error.errors[0].status === '403') {\n        // // Optionally redirect or handle the error in the frontend\n        // this.transitionTo('forbidden'); // Ensure you have a route for 'forbidden'\n      } else {\n        console.error('An error occurred:', error);\n      }\n    }\n  }\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport RSVP from 'rsvp';\n\nexport default class CalibrationRoute extends Route.extend({\n\n  queryParams: {\n  },\n      \n  actions: {\n    refreshModel() {\n      this.refresh();\n    }\n  },\n\n\n\n  afterModel: function(resolvedModel, transition) {\n    // console.log(resolvedModel);\n    // let pageSize = resolvedModel.instrumentProfileList.query.page_size,\n    //     logViewerMeta = resolvedModel.instrumentProfileList.meta,\n    //     logViewerController = this.controllerFor('calibration')\n    // ;\n\n    // this.session.store.refreshLicence();\n\n    // logViewerController.send('updateProperty', 'pageSize', pageSize);\n    // logViewerController.send('updateProperty', 'logViewerMeta', logViewerMeta);\n},\n}) {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n  activate() {\n    window.addEventListener('beforeunload', this.handleBeforeUnload);\n  };\n\n  // Remove the event listener when the route is deactivated\n  deactivate() {\n    window.removeEventListener('beforeunload', this.handleBeforeUnload);\n  };\n\n  // This function will be called before the user leaves the page\n  handleBeforeUnload(event) {\n    // Display a confirmation dialog when the user tries to leave or refresh the page\n    event.preventDefault();\n    event.returnValue = ''; // This line is required for some browsers to show the confirmation dialog\n  };\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n   async model(params) {\n    const query = {\n      page: params.page || 1,\n      page_size: 10,\n    };\n\n    if (params.calibrationID) {\n      query.calibrationID = params.searchCalibrationID;\n      query.jobID = params.searchJobID;\n      query.sensorID = params.searchSensorID;\n    }\n\n    try {\n      // Concurrently fetch data\n      const rigProfileListQuery = this.store.query('rig-profile', {});\n      const packTypesListQuery = this.store.query('packs-validation-type', {});\n      const sensorTypesQuery = this.store.query('calibration-type-profile', {});\n\n      const [rigProfiles, packTypesList, sensorTypeList] = await RSVP.all([\n        rigProfileListQuery,\n        packTypesListQuery,\n        sensorTypesQuery,\n      ]);\n\n      return {\n        rigProfileList: rigProfiles,\n        packTypeList: packTypesList,\n        sensorTypeList: sensorTypeList,\n      };\n    } catch (error) {\n      if (error.isAdapterError && error.errors[0].status === '403') {\n        // // Optionally redirect or handle the error in the frontend\n        // this.transitionTo('forbidden'); // Ensure you have a route for 'forbidden'\n      } else {\n        console.error('An error occurred:', error);\n      }\n    }\n  }\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport {copy, Copyable} from 'ember-copy'\n\nexport default class RawDataRoute extends Route {\n  resetController(controller, isExiting, transition) {\n    if (isExiting) {\n      console.log(\"resetController::::raw-data router::::::::::\");\n\n      controller.set('page', 1);\n      controller.set('page_size', 20);\n      controller.set('paginate_from_zero', false);\n      controller.set('port', 1);\n      controller.set('linear', false);\n      controller.set('calib', false);\n      controller.set('depth', false);\n      controller.set('port_number', 1);\n    }\n  }\n  @service session;\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    page_size: {\n      refreshModel: true\n    },\n    paginate_from_zero: {\n      refreshModel: true\n    },\n    port: {\n      refreshModel: true\n    },\n    linear: {\n      refreshModel: true\n    },\n    calib: {\n      refreshModel: true\n    },\n    depth: {\n      refreshModel: true\n    },\n    port_number: {\n      refreshModel: true\n    },\n    advancedYAxisUnit:{\n        refreshModel: true\n    },\n    advancedStartDate: {\n        refreshModel: true\n    },\n    advancedEndDate: {\n        refreshModel: true\n    },\n    advancedYLeftMax:{\n        refreshModel: true\n    },\n    advancedYLeftMin:{\n        refreshModel: true\n    },\n    advancedYRightMax:{\n        refreshModel: true\n    },\n    advancedYRightMin:{\n        refreshModel: true\n    },\n    advancedXMax:{\n        refreshModel: true\n    },\n    advancedXMin:{\n        refreshModel: true\n    }    \n  }\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      \n      //params.id = params.instrument_id;\n      let instrument = _this.get('store').findRecord('instrument', params.instrument_id);\n\n      if (!params.page_size) {\n        params.page_size = 20;\n      }\n      // console.log(\"Params.page-size: \" + params.page_size);\n\n      let displacementValuesParams = copy(params);\n      displacementValuesParams.model_name = 'displacement-values';\n      displacementValuesParams.originator = 'raw-data';\n      displacementValuesParams.port = params.port;\n\n      if(!displacementValuesParams.port_number){\n        displacementValuesParams.port_number = 1;\n      }\n\n      if(!displacementValuesParams.port){\n        displacementValuesParams.port = 1;\n        params.port = 1;\n      }\n\n      console.log(\"displacementValuesParams:::: \" + JSON.stringify(displacementValuesParams));\n      let globalDatetimeFormatProjectSetting = _this.store.query('project-setting', {}).then((settings) => {\n        return settings.find(setting => setting.title === 'GLOBAL_DATETIME_FORMAT');\n      });      \n      let temperatureValuesParams = copy(params);\n      temperatureValuesParams.model_name = 'temperature-values';\n\n      let displacementValues = _this.store.query('displacement-value', displacementValuesParams, null, displacementValuesParams.instrument_id,  null);\n      let temperatureValues = _this.store.query('temperature-value', temperatureValuesParams, null, temperatureValuesParams.instrument_id,  null);\n\n      // let rawData = _this.get('store').findAll('displacement-value', params);\n      let instrumentTypes = _this.store.findAll('instrument-type');\n\n      globalDatetimeFormatProjectSetting.then(function(globalDatetimeFormat){\n        instrument.then(function(instrument){\n          instrumentTypes.then(function(instrumentTypes){\n            displacementValues.then(function(displacementValues){\n              temperatureValues.then(function(temperatureValues){\n                resolve({\n                  globalDatetimeFormat:globalDatetimeFormat,\n                  instrument:instrument,\n                  instrumentTypes:instrumentTypes,\n                  displacementValues:displacementValues,\n                  temperatureValues:temperatureValues,\n                });\n              });\n            });\n          });\n        });\n      });\n    });\n  };\n\n  afterModel(resolvedModel, transition) {\n\n\n    let rawDataValuesController = this.controllerFor('raw-data');\n    rawDataValuesController.send('updateProperty', 'instrumentId', resolvedModel.instrument.id);\n    rawDataValuesController.send('updateProperty', 'instrumentType', resolvedModel.instrument.get('instrumentType').get('title'));\n    rawDataValuesController.send('updateProperty', 'pageSize', resolvedModel.displacementValues.query.page_size);\n    rawDataValuesController.send('updateProperty', 'displacementValuesMeta', resolvedModel.displacementValues.meta);\n    rawDataValuesController.send('updateProperty', 'port_number', resolvedModel.port_number);\n    rawDataValuesController.send('updateProperty', 'port', resolvedModel.port);\n  };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport {copy, Copyable} from 'ember-copy'\n\nexport default class RawDataRoute extends Route {\n    resetController(controller, isExiting, transition) {\n        if (isExiting) {\n            controller.set('page', 1);\n            controller.set('page_size', 20);\n        }\n    }\n    @service session;\n\n    queryParams = {\n        page: {\n            refreshModel: true\n        },\n        page_size: {\n            refreshModel: true\n        },\n        profile_id: {\n            refreshModel: true\n        },\n        selectedFreqEventDate: {\n            refreshModel: true\n        },\n        advancedStartDate: {\n            refreshModel: true\n        },\n        advancedEndDate: {\n            refreshModel: true\n        },\n        advancedYAxisUnit: {\n            refreshModel: true\n        },\n        analysis_category: {\n            refreshModel: true\n        },\n        method: {\n            refreshModel: true\n        },\n    }\n\n    beforeModel(transition) {\n        this.session.requireAuthentication(transition, 'login');\n    };\n\n    model(params) {\n        const _this = this;\n        return new Ember.RSVP.Promise(function(resolve, reject){\n\n        if (!params.page) {\n            params.page = 1;\n        }\n        if (!params.page_size) {\n            params.page_size = 20;\n        }\n                \n        /**\n         * Currently it is setup to query blu-vibe-v2-data-model because this is only instrument type that supports frequncy events. \n         * Later when there are more instruments, add more into if/elif so that it queries specific endpoint\n         */\n        let bluvibeV2ProfileData = _this.get('store').query('blu-vibe-v2-data-model2', params);\n        let instrument = _this.get('store').findRecord('instrument', params.instrument_id);\n        let bluvibeV2Profile = _this.get('store').query('blu-vibe-v2-profile-model', {instrument_id:params.instrument_id});\n\n        let globalDatetimeFormatProjectSetting = _this.store.query('project-setting', {}).then((settings) => {\n            return settings.find(setting => setting.title === 'GLOBAL_DATETIME_FORMAT');\n        });      \n        bluvibeV2ProfileData.then(function(data){\n            instrument.then(function(instrument){\n                bluvibeV2Profile.then(function(bluvibeV2Profile){\n                    globalDatetimeFormatProjectSetting.then(function(globalDatetimeFormat){\n                        resolve({\n                            instrument:instrument,\n                            globalDatetimeFormat:globalDatetimeFormat,\n                            instrumentFreqEventProfiles:bluvibeV2Profile,\n                            instrumentFreqEventData:data,\n                        });\n                    });\n                });\n            });\n        });\n        });\n    };\n    setupController(controller, model) {\n        super.setupController(controller, model); // This line is invalid in controllers\n\n        controller.setProperties({\n            model: model,\n            content: model,\n            instrument: model.instrument,\n            instrumentFreqEventData: model.instrumentFreqEventData,\n            instrumentFreqEventProfiles: model.instrumentFreqEventProfiles,\n            globalDatetimeFormat: model.globalDatetimeFormat\n        });\n    }\n\n    afterModel(resolvedModel, transition) {\n        // console.log(bluvibeV2ProfileData)\n        let ctrl = this.controllerFor('raw-frequency-events-data');\n        // rawDataValuesController.send('updateProperty', 'instrumentId', resolvedModel.instrument.id);\n        // rawDataValuesController.send('updateProperty', 'instrumentType', resolvedModel.instrument.get('instrumentType').get('title'));\n        ctrl.send('updateProperty', 'pageSize', resolvedModel.instrumentFreqEventData.query.page_size);\n    };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport {copy, Copyable} from 'ember-copy'\n\nexport default class RawGatewayDataRoute extends Route {\n  @service session;\n\n  queryParams = {\n    page: {\n      refreshModel: true\n    },\n    page_size: {\n      refreshModel: true\n    },\n    paginate_from_zero: {\n      refreshModel: true\n    },\n    raw_parent_gateway: {\n      refreshModel: true\n    },\n  }\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n      // console.log(\":::::::::::::::::::::::::\");\n      let gateway = _this.get('store').findRecord('gateway', params.gateway_id);\n      if (!params.page_size) {\n        params.page_size = 20;\n      }\n      //console.log(\"Params.page-size: \" + params.page_size);\n\n      let gatewayValuesParams = copy(params);\n      gatewayValuesParams.model_name = 'gateway-value';\n      // let temperatureValuesParams = copy(params);\n      // temperatureValuesParams.model_name = 'temperature-gateway-value';\n\n      console.log(\"Params::::  \" + JSON.stringify(params));\n      // console.log(\"TempParams::::  \" + JSON.stringify(temperatureValuesParams));\n\n      let gatewayValues = _this.store.query('gateway-value', gatewayValuesParams, null, gatewayValuesParams.gateway_id,  null);\n      // let temperatureValues = _this.store.query('temperature-gateway-value', temperatureValuesParams, null, temperatureValuesParams.gateway_id,  null);\n      let gatewayTypes = _this.store.findAll('gateway-type');\n      gateway.then(function(gateway){       \n        gatewayTypes.then(function(gatewayTypes){\n          gatewayValues.then(function(gatewayValues){\n            //console.log(\"GatewayValues: \" + JSON.stringify(gatewayValues));\n            // temperatureValues.then(function(temperatureValues){\n              //console.log(\"TemperatureValues: \" + JSON.stringify(temperatureValues));\n              resolve({\n                gateway:gateway,\n                gatewayTypes:gatewayTypes,\n                gatewayValues:gatewayValues,\n                // temperatureValues:temperatureValues,\n              // });\n            });\n          });\n        });\n      });\n    });\n  };\n\n  afterModel(resolvedModel, transition) {\n    let rawDataValuesController = this.controllerFor('raw-gateway-data');\n    //console.log(\"TemperatureValues: \" + JSON.stringify(resolvedModel.temperatureValues));\n\n    rawDataValuesController.send('updateProperty', 'gatewayId', resolvedModel.gateway.id);\n    rawDataValuesController.send('updateProperty', 'gatewayType', resolvedModel.gateway.get('gatewayType').get('title'));\n    rawDataValuesController.send('updateProperty', 'pageSize', resolvedModel.gatewayValues.query.page_size);\n    rawDataValuesController.send('updateProperty', 'gatewayValuesMeta', resolvedModel.gatewayValues.meta);\n  };\n}\n","// app/routes/login.js\nimport Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\n\nexport default class RegisterRoute extends Route {\n  @service session;\n  beforeModel(transition) {\n    // if(transition.from == null)\n    //   transition = \"/\"\n    // this.session.prohibitAuthentication(transition);\n  }\n  model() {\n    // console.log(\"ENV:\");\n    // console.log(ENV);\n    // return {\n    //   loginAPI:ENV.API_LOGIN\n    // };\n  }\n}","// app/routes/login.js\nimport Route from '@ember/routing/route';\n\nexport default class ResetPasswordRoute extends Route {\n  model(params) {\n    return { token: params.token };\n  }\n}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class SeismicEventRoute extends Route {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  };\n\n  model(params) {\n    const _this = this;\n    return new Ember.RSVP.Promise(function(resolve, reject){\n        let seismic = _this.get('store').findAll('seismic', params);\n\n        seismic.then(function(seismic){\n            resolve({\n                seismic:seismic,\n            });\n        });\n    });\n  }\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class SeismicsRoute extends Route.extend({\n    queryParams: {\n        page: {\n            refreshModel: true\n        },\n        page_size: {\n            refreshModel: true\n        },\n        ordering: {\n            refreshModel: true\n        },\n        search: {\n            refreshModel: true\n        }\n    },\n    model(params) {\n        return Ember.RSVP.hash({\n            seismicEvents: this.get('store').query('seismic-event', params),\n            seismicTypes: this.get('store').findAll('seismic-type'),\n            //licence: this.get('store').findAll('licence'),\n        });\n    },\n    afterModel: function(resolvedModel) {\n        let pageSize = resolvedModel.seismicEvents.query.page_size,\n            eventsMeta = resolvedModel.seismicEvents.meta,\n            seismicEventsController = this.controllerFor('seismic-events')\n        ;\n\n        seismicEventsController.send('updateProperty', 'pageSize', pageSize);\n        seismicEventsController.send('updateProperty', 'eventsMeta', eventsMeta);\n    }\n}) {\n    @service session;\n\n    beforeModel(transition) {\n      this.session.requireAuthentication(transition, 'login');\n    };\n}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport RSVP from 'rsvp';\n\nexport default class CalibrationRoute extends Route.extend({\n  queryParams: {},\n  actions: {\n    refreshModel() {\n      this.refresh();\n    },\n  },\n  afterModel(resolvedModel, transition) {\n    // Add any necessary logic here for afterModel\n  },\n}) {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  }\n\n  activate() {\n    window.addEventListener('beforeunload', this.handleBeforeUnload);\n  }\n\n  deactivate() {\n    window.removeEventListener('beforeunload', this.handleBeforeUnload);\n  }\n\n  handleBeforeUnload(event) {\n    event.preventDefault();\n    event.returnValue = '';\n  }\n\n   async model(params) {\n  }\n}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\nimport RSVP from 'rsvp';\n\nexport default class CalibrationRoute extends Route.extend({\n  queryParams: {},\n  actions: {\n    refreshModel() {\n      this.refresh();\n    },\n  },\n  afterModel(resolvedModel, transition) {\n    // Add any necessary logic here for afterModel\n  },\n}) {\n  @service session;\n\n  beforeModel(transition) {\n    this.session.requireAuthentication(transition, 'login');\n  }\n\n  activate() {\n    window.addEventListener('beforeunload', this.handleBeforeUnload);\n  }\n\n  deactivate() {\n    window.removeEventListener('beforeunload', this.handleBeforeUnload);\n  }\n\n  handleBeforeUnload(event) {\n    event.preventDefault();\n    event.returnValue = '';\n  }\n\n   async model(params) {\n    const query = {\n      page: params.page || 1,\n      page_size: 10,\n    };\n\n    if (params.calibrationID) {\n      query.calibrationID = params.searchCalibrationID;\n      query.jobID = params.searchJobID;\n      query.sensorID = params.searchSensorID;\n    }\n\n    try {\n      // Concurrently fetch data\n      const rigProfileList = this.store.query('rig-profile', {});\n      const sensorTypesList = this.store.query('calibration-type-profile', {});\n      const calibrationProfileList = this.store.query('calibration-calibration-profile', {});\n      \n      const [rigProfiles, sensorTypes, calibrationProfiles] = await RSVP.all([\n        rigProfileList,\n        sensorTypesList,\n        calibrationProfileList,\n      ]);\n\n      return {\n        rigProfileList: rigProfiles,\n        calibrationProfileList: calibrationProfiles,\n        sensorTypeList: sensorTypes\n      };\n    } catch (error) {\n      if (error.isAdapterError && error.errors[0].status === '403') {\n        // // Optionally redirect or handle the error in the frontend\n        // this.transitionTo('forbidden'); // Ensure you have a route for 'forbidden'\n      } else {\n        console.error('An error occurred:', error);\n      }\n    }\n  }\n}","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\n//import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';\n\n//export default class InstrumentsRoute extends Route.extend(AuthenticatedRouteMixin, {\nexport default class SettingsRoute extends Route.extend({\n    model(params) {\n      return this.get('store').query('project-setting', params);\n    }\n  }) {\n    \n    @service session;\n\n    beforeModel(transition) {\n      this.controllerFor('settings').resetLoading();\n      this.session.requireAuthentication(transition, 'login');\n    };\n}\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class FrequencyGraphsRoute extends Route.extend({\n    model(params) {\n        return Ember.RSVP.hash({\n            //licence: this.get('store').findAll('licence'),\n            //instruments: this.get('store').query('instrument', {small: 'true', exclude: 15})\n            //instruments: this.get('store').query('instrument', {exclude: 15})\n            instrument: this.get('store').queryRecord('instrument', {instrument_id: params.instrument_id}),\n        });\n    },\n    setupController: function(controller, model) {\n        this.controllerFor('spatial-graphs').set(\"content\",model);\n        this.controllerFor('spatial-graphs').activate();\n    }\n}) {\n    @service session;\n\n    beforeModel(transition) {\n        this.session.requireAuthentication(transition, 'login');\n        let perms = this.getPerms();\n        if (!('graphing' in perms) || perms['graphing']==false) {\n          this.get('router').transitionTo('instruments');\n        }\n      };\n    \n      getPerms = function() {\n        let perms = null;\n        try{\n          perms = this.session.data.authenticated.modules;\n        } catch {}\n        return perms;\n      };\n  }\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\n\nexport default Ember.Route.extend({\n    queryParams: {\n        start_timestamp: {\n            refreshModel: true\n        },\n        end_timestamp: {\n            refreshModel: true\n        },\n        num_points_requested: {\n            refreshModel: true\n        },\n        ref_head_position: {\n            refreshModel: true\n        },\n        ref_anchor: {\n            refreshModel: true\n        },\n        zeroed: {\n            refreshModel: true\n        },\n        flip_signs: {\n            refreshModel: true\n        },\n        event_type: {\n            refreshModel: true\n        },\n        blast_type: {\n            refreshModel: true\n        },\n        seismic_type: {\n            refreshModel: true\n        },\n        frequency: {\n            refreshModel: true\n        },\n        frequency_num: {\n            refreshModel: true\n        },\n        events_only: {\n            refreshModel: true\n        },\n        group_time: {\n            refreshModel: true\n        },\n        group_window: {\n            refreshModel: true\n        },\n        progress_timestamps: {\n            refreshModel: true\n        },\n        side: {\n            refreshModel: true\n        }\n    },\n    model(params) {\n        const _this = this\n        const page_size = (params.event_type)? 80 : 40;\n        let routeParams = this.paramsFor('spatial-graphs');\n        params.instrument_id = routeParams.instrument_id;\n\n\n        // declare default empty promises in case if blase of seismic events are disabled\n        let seismicEvents = new Ember.RSVP.Promise(function(resolve, reject){\n          // succeed\n          resolve(false);\n          // or reject\n          reject();\n        });\n\n        let blastEvents = new Ember.RSVP.Promise(function(resolve, reject){\n          // succeed\n          resolve(false);\n          // or reject\n          reject();\n        });\n\n        return new Ember.RSVP.Promise(function(resolve, reject){\n\n            // Resolve zoomData model first, get start_timestamp and end_timestap values to be able to limit events to these boundaries\n            let zoomDataQueryParams = Ember.copy(params);\n                zoomDataQueryParams.num_points_requested = 1;\n            _this.store.query(singularize(zoomDataQueryParams.model_name),  zoomDataQueryParams, null, zoomDataQueryParams.instrument_id,  null).then(function(zoomData){\n\n                // let closestZeroTimestamp = \"\";\n                let closestZeroTimestamp = zoomData.meta['closest-zero-timestamp'];\n                let zoomDataStartTimestamp = zoomData.meta['start-timestamp'];\n                let zoomDataEndTimestamp = zoomData.meta['end-timestamp'];\n\n                // get closest_zero_timestamp (the date when an instrument was initialized) of zoomData query and use it as start_timestamp if no other start_timestamp query parameter is specified\n                if (!zoomData.query.start_timestamp) {\n                    params.start_timestamp = zoomData.meta['closest-zero-timestamp'];\n                }\n\n\n                let typeID = params.instrument_id.substr(params.instrument_id.length === 9 ? 5 : 6, 1);\n                let prevModel = params.model_name;\n                // let isRebarGraph = (params.model_name === 'axial-strain-values' || params.model_name === 'bending-strain-values' || params.model_name === 'axial-displacement-values');\n                // if (typeID === \"3\") { //if is rebar\n                //     if (!isRebarGraph && params.model_name !== 'load-values') {\n                //         params.model_name = 'axial-displacement-values';\n                //         window.history.replaceState({}, prevModel, '/spatial-graph/' + params.instrument_id + '/axial-displacement-values');\n                //     }\n                // } else { //if is not rebar\n                //     if (isRebarGraph) {\n                //             params.model_name = 'displacement-values';\n                //             window.history.replaceState({}, prevModel, '/spatial-graph/' + params.instrument_id + '/displacement-values');\n                //     }\n                // }\n\n                // second call to the same endpoint required because I can only fetch closest_zero_timestamp value from the previous API call\n                let zoomDataSecondCall = _this.store.query(singularize(params.model_name),  params, null, params.instrument_id,  null);\n\n                // third call should only be called after the first find is completed\n                // let fullRangeData = _this.get('store').query(Ember.String.singularize(params.model_name), {model_name: params.model_name, instrument_id: params.instrument_id, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: params.zeroed, flip_signs: params.flip_signs});\n                //console.log(\"params.model_name:::: \" + params.model_name);\n                let fullRangeData = _this.get('store').query(singularize(params.model_name), {model_name: params.model_name, instrument_id: params.instrument_id, start_timestamp: closestZeroTimestamp, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: params.zeroed, flip_signs: params.flip_signs});\n\n                // fetch an instrument to be able to get anchor distances and other useful info from the instrument\n                //let instrument = _this.get('store').findRecord('instrument', params.instrument_id, { include: 'anchors' } );\n                let instrument = _this.store.queryRecord('instrument', { instrument_id: params.instrument_id } );\n\n                let graphs = _this.get('store').findAll('chart');\n\n                // if blast events are requested\n                if (!params.event_type || params.event_type === \"blast\") {\n                    blastEvents = _this.store.query('blast-event', {page_size: page_size, is_visible: true, blast_type: params.blast_type, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp});\n                }\n                // if promise events are requested\n                if (!params.event_type || params.event_type === \"seismic\") {\n                    seismicEvents = _this.store.query('seismic-event', {page_size: page_size, is_visible: true, seismic_type: params.seismic_type, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp});\n                }\n\n                //wait for all promises to fulfil and then return resolved promis\n                graphs.then(function(graphs) {\n                    instrument.then(function(instrument){\n                        zoomDataSecondCall.then(function(zoomDataSecondCall){\n                            fullRangeData.then(function(fullRangeData){\n                                seismicEvents.then(function(seismicEvents){\n                                    blastEvents.then(function(blastEvents){\n                                        resolve({\n                                            graphs:graphs,\n                                            instrument:instrument,\n                                            zoomData:zoomDataSecondCall,\n                                            fullRangeData:fullRangeData,\n                                            seismicEvents:seismicEvents,\n                                            blastEvents:blastEvents\n                                        });\n                                    });\n                                });\n                            });\n                        });\n                    });\n                });\n            });\n        });\n\n    },\n    afterModel: function(resolvedModel) {\n        let spatialGraphsController = this.controllerFor('spatial-graphs');\n\n        spatialGraphsController.send('updateProperties', ['instrumentId'], [resolvedModel.zoomData.query.instrument_id]);\n        spatialGraphsController.send('updateProperties', ['instrumentType'], [resolvedModel.instrument.get('instrumentType').get('title')]);\n        spatialGraphsController.send('updateProperties', ['instrumentTypeId'], [resolvedModel.instrument.get('instrumentType').get('id')]);\n        spatialGraphsController.send('updateProperties', ['name'], [resolvedModel.instrument.get('name')]);\n        spatialGraphsController.send('updateProperties', ['location'], [resolvedModel.instrument.get('location')]);\n        spatialGraphsController.send('updateProperties', ['level'], [resolvedModel.instrument.get('level')]);\n        spatialGraphsController.send('updateProperties', ['borehole'], [resolvedModel.instrument.get('borehole')]);\n        spatialGraphsController.send('updateProperties', ['project'], [resolvedModel.instrument.get('project')]);\n\n        let mName = resolvedModel.zoomData.query.model_name;\n        let iName = resolvedModel.instrument.get('instrumentType').get('title');\n        //let isRebarGraph = (mName === 'axial-strain-values' || mName === 'bending-strain-values' || mName === 'axial-displacement-values');\n        // if(iName === 'dRebar') {\n        //     if(!isRebarGraph && mName !== 'load-values') {\n        //         resolvedModel.zoomData.query.model_name = 'axial-displacement-values';\n        //         window.history.replaceState({}, mName, '/spatial-graph/' + resolvedModel.instrument.get('id') + '/axial-displacement-values');\n        //     }\n        // } else {\n        //     if(isRebarGraph) {\n        //             resolvedModel.zoomData.query.model_name = 'displacement-values';\n        //             window.history.replaceState({}, mName, '/spatial-graph/' + resolvedModel.instrument.get('id') + '/displacement-values');\n        //     }\n        // }\n        \n        spatialGraphsController.send('updateProperties', ['modelName'], [resolvedModel.zoomData.query.model_name]);\n        spatialGraphsController.send('updateActivefrequency', resolvedModel.zoomData.query);\n        spatialGraphsController.send('updateGroupMode', resolvedModel.zoomData.query);\n        spatialGraphsController.send('updateProperties', ['activeInstrumentMeta'], [resolvedModel.zoomData.meta]);\n        spatialGraphsController.send('updateProperties', ['eventType'], [resolvedModel.zoomData.query.event_type]);\n        spatialGraphsController.send('updateProperties', ['blastType'], [resolvedModel.zoomData.query.blast_type]);\n        spatialGraphsController.send('updateProperties', ['seismicType'], [resolvedModel.zoomData.query.seismic_type]);\n\n        //get pretty chart name if chart has multiple parts to it\n        let obj = resolvedModel.graphs;\n        let type = resolvedModel.instrument.get('instrumentTypeID').toString();\n        //get the chart data for the instrument\n        obj.forEach(function(item) {\n            if(item.id === type) {\n                obj = item;\n                return;\n            }\n        });\n        \n        let name = '';\n        try {\n            name = resolvedModel.zoomData.query.model_name.substr(0, resolvedModel.zoomData.query.model_name.lastIndexOf('-'));\n        } catch (exception){\n            \n        }\n        console.log(\"NAME:::\" + name);\n\n        switch(name) {\n            case 'displacement':\n                name = obj.spatialDisplacementName;\n                break;\n            case 'velocity':\n                name = obj.spatialVelocityName;\n                break;\n            case 'acceleration':\n                name = obj.spatialAccelerationName;\n                break;\n            case 'strain':\n                name = obj.spatialStrainName;\n                break;\n            case 'strain_rate':\n                name = obj.spatialStrainRateName;\n                break;\n            case 'load':\n                name = obj.spatialLoadName;\n                break;\n            case 'axial_strain':\n                name = \"Axial-strain\";\n                break;\n            case 'bending_strain':\n                name = \"Bending-strain\";\n                break;\n            case 'temperature':\n                name = \"Temperature\";\n                break;\n            case 'axial_displacement':\n                name = \"Axial-displacement\";\n                break;\n            default:\n                break;\n        }\n        let chartName = name;\n        try {\n            let chartNameL = chartName.substr(0, chartName.indexOf('-')).capitalize();\n            let chartNameR = chartName.substr(chartName.indexOf('-') + 1).capitalize();\n            if(chartNameL !== \"\") {\n                chartName = chartNameL + \" \" + chartNameR;\n            }\n        } catch (exception) {}\n    \n        \n        spatialGraphsController.send('updateProperties', ['chartData'], [obj]);\n        spatialGraphsController.send('updateProperties', ['chartDataValueName'], [chartName]);\n        spatialGraphsController.send('updateProperties', ['instrumentAnchors'], [resolvedModel.instrument.get('anchors')]);\n    },\n    actions: {\n        setDataR(data) {\n            let temporalGraphsController = this.controllerFor('spatial-graphs');\n\n            temporalGraphsController.send('setData',data);\n        },\n        setChartR(chart) {\n            let temporalGraphsController = this.controllerFor('spatial-graphs');\n\n            temporalGraphsController.send('setChart',chart);\n        },\n        willTransition() {\n            let spatialGraphsController = this.controllerFor('spatial-graphs');\n\n            spatialGraphsController.send('updateProperties', ['instrumentId'], [null]);\n            spatialGraphsController.send('updateProperties', ['eventType'], [null]);\n            spatialGraphsController.send('updateProperties', ['blastType'], [null]);\n            spatialGraphsController.send('updateProperties', ['seismicType'], [null]);\n        }\n    }\n});\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class TemporalGatewayGraphsRoute extends Route.extend({\n    model(params) {\n        let a = this.get('store');\n        // console.log(\"\");\n        // console.log(\"temporal-gateway-graphs router: \" + JSON.stringify(params));\n        // console.log(\"\");\n        \n        return Ember.RSVP.hash({\n          gateway: this.get('store').queryRecord('gateway', {gateway_id: params.gateway_id}),\n        });\n    },\n      setupController: function(controller, model) {\n      //console.log(\"setupController::: \" + model);\n      this.controllerFor('temporal-gateway-graphs').set(\"content\",model);\n      this.controllerFor('temporal-gateway-graphs').activate();\n    }\n}) {\n    @service session;\n    @service router;\n\n    beforeModel(transition) {\n      this.session.requireAuthentication(transition, 'login');\n      let perms = this.getPerms();\n      if (!('graphing' in perms) || perms['graphing']==false) {\n        this.get('router').transitionTo('gateway');\n      }\n    };\n\n    getPerms = function() {\n      let perms = null;\n      try{\n        perms = this.session.data.authenticated.modules;\n      } catch {}\n      return perms;\n    };\n}\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\nimport { capitalize } from '@ember/string';\nimport {copy, Copyable} from 'ember-copy'\n\n\nexport default Ember.Route.extend({\n    queryParams: {\n        start_timestamp: {\n            refreshModel: true\n        },\n        end_timestamp: {\n            refreshModel: true\n        },\n        num_points_requested: {\n            refreshModel: true\n        },\n        ref_head_position: {\n            refreshModel: true\n        },\n        ref_anchor: {\n            refreshModel: true\n        },\n        zeroed: {\n            refreshModel: true\n        },\n        linear: {\n            refreshModel: true\n        },\n        calib: {\n            refreshModel: true\n        },\n        depth: {\n            refreshModel: true\n        },\n        flip_signs: {\n            refreshModel: true\n        },\n        event_type: {\n            refreshModel: true\n        },\n        blast_type: {\n            refreshModel: true\n        },\n        seismic_type: {\n            refreshModel: true\n        },\n        frequency: {\n            refreshModel: true\n        },\n        chart_parent_gateway: {\n            refreshModel: true\n        },\n        chart_type:{\n            refreshModel: true\n        },\n        window: {\n            refreshModel: true\n        },\n        display_records: {\n            refreshModel: true\n        },\n        // left_axis_field: {\n        //     refreshModel: true\n        // },\n        // right_axis_field: {\n        //     refreshModel: true\n        // },\n        // modelName:{\n        //   replace: true\n        // },\n    },\n    tiltMode: null,\n    tiltZUp: null,\n    model(params) {\n        const _this = this\n        let page_size = (params.event_type)? 80 : 40;\n        let routeParams = this.paramsFor('temporal-gateway-graphs');\n        params.gateway_id = routeParams.gateway_id;\n        // routeParams.chart_parent_gateway = params.chart_parent_gateway;\n\n        // console.log(\"routeParams:::\" + JSON.stringify(routeParams));\n        // console.log(\"Params:::\" + JSON.stringify(params));\n\n        return new Ember.RSVP.Promise(function(resolve, reject){\n            // Resolve zoomData model first, get start_timestamp and end_timestap values to be able to limit events to these boundaries\n            \n            let zoomDataQueryParams = copy(params);\n            zoomDataQueryParams.num_points_requested = 1;\n            \n            if(zoomDataQueryParams.left_axis_field == null){\n                zoomDataQueryParams.left_axis_field = \"Voltage\";\n            }\n            if(zoomDataQueryParams.right_axis_field == null){\n                zoomDataQueryParams.right_axis_field = \"RSSI\";\n            }\n            if(zoomDataQueryParams.chart_parent_gateway == null){\n\n                // console.log(\"SETTING chart_parent_gateway in temporal-gateway-graph.js routes\")\n                zoomDataQueryParams.chart_parent_gateway = routeParams.parentGateway;\n                // console.log('zoomDataQueryParams::: ' + JSON.stringify(zoomDataQueryParams));\n            }\n            // console.log(\"zoomDataQueryParams:::\" + JSON.stringify(zoomDataQueryParams));\n    \n            params.left_axis_field = zoomDataQueryParams.left_axis_field;\n            params.right_axis_field = zoomDataQueryParams.right_axis_field;\n            _this.set('left_axis_field', zoomDataQueryParams.left_axis_field);\n            _this.set('right_axis_field', zoomDataQueryParams.right_axis_field);\n            _this.set('chart_parent_gateway', zoomDataQueryParams.chart_parent_gateway);\n                        \n            _this.store.query(singularize(zoomDataQueryParams.model_name),  zoomDataQueryParams, null, zoomDataQueryParams.gateway_id,  null).then(function(zoomData){\n\n                // let closestZeroTimestamp = \"\";\n                let closestZeroTimestamp = zoomData.meta['closest-zero-timestamp'];\n                let zoomDataStartTimestamp = zoomData.meta['start-timestamp'];\n                let zoomDataEndTimestamp = zoomData.meta['end-timestamp'];\n\n                // get closest_zero_timestamp (the date when an gateway was initialized) of zoomData query and use it as start_timestamp if no other start_timestamp query parameter is specified\n                if (!zoomData.query.start_timestamp) {\n                    params.start_timestamp = zoomData.meta['closest-zero-timestamp'];\n                }\n                // let mName = params.model_name;\n                let gatewayID = params.gateway_id;\n                // second call to the same endpoint required because I can only fetch closest_zero_timestamp value from the previous API call\n               //console.log(\"1\");\n                let zoomDataSecondCall = _this.store.query(singularize(params.model_name),  params, null, params.gateway_id,  null);\n\n                //let zoomTempData = _this.store.query(Ember.String.singularize('temperature-value'),  params, null, params.gateway_id,  null);\n                let temperatureParams = copy(params);\n                temperatureParams.ref_anchor = \"0\";\n                temperatureParams.flip_signs = params.flip_signs;\n                temperatureParams.model_name = \"gateway-values\";\n\n                let zoomTempData = _this.store.query(\"temperature-gateway-value\", temperatureParams, null, params.gateway_id, null);\n\n                // third call should only be called after the first find is completed\n                // let fullRangeData = _this.get('store').query(Ember.String.singularize(params.model_name), {model_name: params.model_name, gateway_id: params.gateway_id, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: params.zeroed, flip_signs: params.flip_signs});\n                let fullRangeData;\n                fullRangeData = _this.store.query(singularize(params.model_name), {model_name: params.model_name, gateway_id: params.gateway_id, start_timestamp: closestZeroTimestamp, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: params.zeroed, raw: params.raw, flip_signs: params.flip_signs, calib: true});\n                \n                // let fullRangeTempData = _this.get('store').query(\"temperature-value\", {model_name: params.model_name, gateway_id: params.gateway_id, start_timestamp: closestZeroTimestamp, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: false});\n                // fetch an gateway to be able to get anchor distances and other useful info from the gateway\n                let gateway = _this.store.queryRecord('gateway', { gateway_id: params.gateway_id } );\n               //console.log(\"count 2\");\n               //console.log(\"Gateway: \" + params.gateway_id);\n                //let gateway = _this.store.queryRecord('gateway', { gateway_id: params.gateway_id } );\n\n                let graphs = _this.store.findAll('chart');\n\n\n                //wait for all promises to fulfil and then return resolved promise\n                graphs.then(function(graphs) {\n                    gateway.then(function(gateway){\n                        zoomDataSecondCall.then(function(zoomDataSecondCall){\n                            fullRangeData.then(function(fullRangeData){\n                                zoomTempData.then(function(zoomTempData){\n                                    resolve({\n                                        graphs:graphs,\n                                        gateway:gateway,\n                                        zoomData:zoomDataSecondCall,\n                                        fullRangeData:fullRangeData,\n                                        zoomTempData:zoomTempData,\n                                    });\n                                });\n                            });\n                        });\n                    });\n                });\n            });\n        });\n    },\n    afterModel: function(resolvedModel) {\n       //console.log(\"in afterModel - routes/temporal-gateway-graphs/temporal-gateway-graph.js\")\n        let temporalGraphsController = this.controllerFor('temporal-gateway-graphs');\n\n        //temporalGraphsController.send('updateProperties', ['model_name'], [resolvedModel.zoomData.query.model_name]);\n\n        temporalGraphsController.send('updateProperties', ['gatewayId'], [resolvedModel.zoomData.query.gateway_id]);\n        temporalGraphsController.send('updateProperties', ['gatewayType'], [resolvedModel.gateway.get('gatewayType').get('title')]);\n        temporalGraphsController.send('updateProperties', ['gatewayTypeId'], [resolvedModel.gateway.get('gatewayType').get('id')]);\n        temporalGraphsController.send('updateProperties', ['name'], [resolvedModel.gateway.get('name')]);\n        temporalGraphsController.send('updateProperties', ['location'], [resolvedModel.gateway.get('location')]);\n        temporalGraphsController.send('updateProperties', ['level'], [resolvedModel.gateway.level]);//get('level')]);\n        temporalGraphsController.send('updateProperties', ['borehole'], [resolvedModel.gateway.get('borehole')]);\n        temporalGraphsController.send('updateProperties', ['project'], [resolvedModel.gateway.get('project')]);\n        //temporalGraphsController.send('updateProperties', ['tiltMode'], [this.get('tiltMode')]);\n        temporalGraphsController.send('updateProperties', ['tiltZUp'], [this.get('tiltZUp')]);\n        \n        temporalGraphsController.send('updateProperties', ['left_axis_field'], [this.get('left_axis_field')]);\n        temporalGraphsController.send('updateProperties', ['right_axis_field'], [this.get('right_axis_field')]);\n        temporalGraphsController.send('updateProperties', ['chart_parent_gateway'], [this.get('chart_parent_gateway')]);\n        \n       //console.log(\"ModelName::: \" + resolvedModel.zoomData.query.model_name);\n        temporalGraphsController.send('updateProperties', ['modelName'], [resolvedModel.zoomData.query.model_name]);\n        temporalGraphsController.send('updateProperties', ['activeGatewayMeta'], [resolvedModel.zoomData.meta]);\n        temporalGraphsController.send('updateLocalProperty', 'activeGatewayMeta', resolvedModel.zoomData.meta);\n        temporalGraphsController.send('updateProperties', ['eventType'], [resolvedModel.zoomData.query.event_type]);\n        temporalGraphsController.send('updateProperties', ['blastType'], [resolvedModel.zoomData.query.blast_type]);\n        temporalGraphsController.send('updateProperties', ['display_records'], [resolvedModel.zoomData.query.display_records]);\n        temporalGraphsController.send('updateProperties', ['chart_type'], [resolvedModel.zoomData.query.chart_type]);\n\n        temporalGraphsController.send('updateProperties', ['seismicType'], [resolvedModel.zoomData.query.seismic_type]);\n        temporalGraphsController.send('updateProperties', ['frequency'], [resolvedModel.zoomData.query.frequency]);\n        temporalGraphsController.send('updateProperties', ['window'], [resolvedModel.zoomData.query.window]);\n        \n        //get pretty chart name if chart has multiple parts to it\n        let obj = resolvedModel.graphs;\n        let type = 18;//resolvedModel.gateway.get('gatewayTypeID').toString();\n        //get the chart data for the gateway\n        let newObj = [];\n        obj.forEach(function(item) {\n            if(item.id == type) {\n                newObj = item;\n                return;\n            }\n        });\n        //let graphs = resolvedModel.get('graphs');\n        \n        let name = '';\n        try {\n            name = resolvedModel.zoomData.query.model_name.substr(0, resolvedModel.zoomData.query.model_name.lastIndexOf('-'));\n           //console.log(\"name:::: \" + name);\n        } catch (exception) {\n\n        }\n        // console.log(\"chartName:::: \" + name);\n        switch(name) {\n            case 'voltage':\n                name = 'Voltage'; //newObj.temporalDisplacementName;\n                break;\n            case 'rssi':\n                name = 'RSSI';//newObj.temporalVelocityName;\n                break;\n            case 'readings':\n                name = 'Readings';\n                break;\n            case 'uptime':\n                name = 'Uptime';\n                break;\n            case 'reconnection':\n                name = \"Reconnections\";\n                break;\n            case 'uploads':\n                name = 'Uploads';\n                break;\n            case 'temp':\n                name = 'Temperature';\n                break;\n            case 'firmware':\n                name = 'Firmware';\n                break;\n\n            default:\n                name = 'Unknown';\n                break;\n        }\n\n        let chartName = capitalize(name);\n        let chartNameL = capitalize(chartName.substr(0, chartName.indexOf('-')));\n        let chartNameR = capitalize(chartName.substr(chartName.indexOf('-') + 1));\n        if(chartNameL !== \"\") {\n            chartName = chartNameL + \" \" + chartNameR;\n        }\n        // console.log(\"ChartName::::: \" + chartName);\n        \n        temporalGraphsController.send('updateProperties', ['chartData'], [newObj]);\n        temporalGraphsController.send('updateProperties', ['chartDataValueName'], [chartName]);\n        temporalGraphsController.send('updateProperties', ['gatewayAnchors'], [resolvedModel.gateway.get('anchors')]);\n    },\n    actions: {\n        setDataR(data) {\n            let temporalGraphsController = this.controllerFor('temporal-gateway-graphs');\n\n            temporalGraphsController.send('setData',data);\n        },\n        setChartR(chart) {\n            let temporalGraphsController = this.controllerFor('temporal-gateway-graphs');\n\n            temporalGraphsController.send('setChart',chart);\n        },\n        willTransition() {\n            let temporalGraphsController = this.controllerFor('temporal-gateway-graphs');\n\n            temporalGraphsController.send('updateProperties', ['gatewayId'], [null]);\n            temporalGraphsController.send('updateProperties', ['eventType'], [null]);\n            temporalGraphsController.send('updateProperties', ['blastType'], [null]);\n            temporalGraphsController.send('updateProperties', ['seismicType'], [null]);\n            temporalGraphsController.send('updateProperties', ['vibe_id'], [null]);\n            temporalGraphsController.send('updateProperties', ['chart_type'], [null]);\n            temporalGraphsController.send('updateProperties', ['display_records'], [null]);\n            temporalGraphsController.send('updateProperties', ['left_axis_field'], [null]);\n            temporalGraphsController.send('updateProperties', ['right_axis_field'], [null]);\n            temporalGraphsController.send('updateProperties', ['ref_anchor'], [null]);\n            temporalGraphsController.send('updateProperties', ['flip_signs'], [null]);     \n            temporalGraphsController.send('updateProperties', ['chart_parent_gateway'], [null]);     \n\n        }\n    }\n});\n\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class TemporalGraphsRoute extends Route.extend({\n\n    model(params) {\n        let a = this.get('store');\n        return Ember.RSVP.hash({\n          instrument: this.get('store').queryRecord('instrument', {instrument_id: params.instrument_id}),\n        });\n    },\n    setupController: function(controller, model) {\n      this.controllerFor('temporal-graphs').set(\"content\",model);\n      this.controllerFor('temporal-graphs').activate();\n      // console.log(\"setupController::: \" + model)\n    },\n    async resetController(controller, isExiting, transition) {\n      if (isExiting) {\n        try{\n          let instrument = controller.content.instrument;\n          // instrument.set('selectedAnchor', 0);\n          await instrument.save();\n\n        } catch(e) {\n          console.log(\"routes:::temporal-graphs:::resetController: Error: \" + e );\n        }\n      }\n    }\n}) {\n    @service session;\n    @service router;\n    \n    beforeModel(transition) {\n      this.session.requireAuthentication(transition, 'login');\n      let perms = this.getPerms();\n      if (!('graphing' in perms) || perms['graphing']==false) {\n        this.get('router').transitionTo('instruments');\n      }\n    };\n\n    getPerms = function() {\n      let perms = null;\n      try{\n        perms = this.session.data.authenticated.modules;\n      } catch {}\n      return perms;\n    };\n}\n","import Ember from 'ember';\nimport { singularize, pluralize } from 'ember-inflector';\n\nexport default Ember.Route.extend({\n\n\n    afterModel(model, transition) {\n        this._super(...arguments);\n        this.controller.set('selectedAnchor', model.instrument.selectedAnchor);        \n    },\n\n    queryParams: {\n        start_timestamp: {\n            refreshModel: true\n        },\n        end_timestamp: {\n            refreshModel: true\n        },\n        num_points_requested: {\n            refreshModel: true\n        },\n        ref_head_position: {\n            refreshModel: true\n        },\n        ref_anchor: {\n            refreshModel: true\n        },\n        zeroed: {\n            refreshModel: true\n        },\n        linear: {\n            refreshModel: true\n        },\n        calib: {\n            refreshModel: true\n        },\n        depth: {\n            refreshModel: true\n        },\n        flip_signs: {\n            refreshModel: true\n        },\n        event_type: {\n            refreshModel: true\n        },\n        blast_type: {\n            refreshModel: true\n        },\n        seismic_type: {\n            refreshModel: true\n        },\n        frequency: {\n            refreshModel: true\n        },\n        // vibe_id: {\n        //     refreshModel: true\n        // },\n        chart_type:{\n            refreshModel: true\n        },\n        window: {\n            refreshModel: true\n        },\n        display_records: {\n            refreshModel: true\n        },\n        port:{            \n            refreshModel: true,\n        },\n        selectedAnchor: {\n            refreshModel: true\n        },\n        advancedYAxisUnit:{\n            refreshModel: true\n        },\n        advancedStartDate: {\n            refreshModel: true\n        },\n        advancedEndDate: {\n            refreshModel: true\n        },\n        advancedYLeftMax:{\n            refreshModel: true\n        },\n        advancedYLeftMin:{\n            refreshModel: true\n        },\n        advancedYRightMax:{\n            refreshModel: true\n        },\n        advancedYRightMin:{\n            refreshModel: true\n        },\n        advancedXMax:{\n            refreshModel: true\n        },\n        advancedXMin:{\n            refreshModel: true\n        }\n    },\n    tiltMode: null,\n    tiltZUp: null,\n    selectedAnchor: 0,\n\n    resetController(controller, isExiting, transition) {\n        if (isExiting) {\n            // isExiting would be false if only the route's model was changing\n            controller.set('start_timestamp', null);\n            controller.set('end_timestamp', null);\n            controller.set('chart_type', null);\n            controller.set('display_records', null);   \n            controller.set('port', 1); \n            // controller.set('selectedAnchor', selectedAnchor);\n        }\n    },\n\n        \n    model(params) {\n        \n        // If port is not defined, default to 1\n        if (params.port) {\n            // Destructure the 'port' query parameter\n            const { port } = params;\n            // Now 'port' contains the value of the 'port' query parameter\n            \n            params.port = port;\n            \n        } else {\n            // Handle the case where 'port' query parameter is not defined\n            // You can set a default value or take other appropriate action\n            params.port = 1 // Default value if 'port' is not in the URL\n        }\n        // console.log(\"model(params):  Params: \" + JSON.stringify(params));\n\n        const _this = this\n        let page_size = (params.event_type)? 80 : 40;\n        let routeParams = this.paramsFor('temporal-graphs');\n        params.instrument_id = routeParams.instrument_id;\n        routeParams.port = params.port;\n        \n        // declare default empty promises in case if blase of seismic events are disabled\n        let seismicEvents = new Ember.RSVP.Promise(function(resolve, reject){\n          // succeed\n          resolve(false);\n          // or reject\n          reject();\n        });\n\n        let blastEvents = new Ember.RSVP.Promise(function(resolve, reject){\n          // succeed\n          resolve(false);\n          // or reject\n          reject();\n        });\n\n        let vibeEvents = new Ember.RSVP.Promise(function(resolve, reject){\n            resolve(false);\n            reject();\n        });\n\n        return new Ember.RSVP.Promise(function(resolve, reject){            \n            // Resolve zoomData model first, get start_timestamp and end_timestap values to be able to limit events to these boundaries\n            let zoomDataQueryParams = Ember.copy(params);\n            // console.log(\"zoomDataQueryParams::: \" + JSON.stringify(zoomDataQueryParams));\n            zoomDataQueryParams.num_points_requested = 1;\n            zoomDataQueryParams.SINGLE_QUERY = 'SINGLE_QUERY'\n            let zoomDataSecondCall;\n            let fullRangeData;\n            \n            _this.store.query(singularize(zoomDataQueryParams.model_name),  zoomDataQueryParams, null, zoomDataQueryParams.instrument_id,  null).then(function(zoomData){\n                \n                // let closestZeroTimestamp = \"\";\n                let closestZeroTimestamp = zoomData.meta['closest-zero-timestamp'];\n                let zoomDataStartTimestamp = zoomData.meta['start-timestamp'];\n                let zoomDataEndTimestamp = zoomData.meta['end-timestamp'];\n                \n                advancedYAxisUnit: params.advancedYAxisUnit\n                // get closest_zero_timestamp (the date when an instrument was initialized) of zoomData query and use it as start_timestamp if no other start_timestamp query parameter is specified\n                if (!zoomData.query.start_timestamp) {\n                    params.start_timestamp = zoomData.meta['closest-zero-timestamp'];\n                }\n                let mName = params.model_name;\n                // let instrumentID = params.instrument_id;\n                let isVibeGraph = (mName === 'event-ppv' || mName === 'event-ppa' || mName === 'event-frequency' || mName === 'cumulative-event-ppv' || mName === 'cumulative-event-ppa' || mName === 'cumulative-event-frequency');\n                \n\n                // second call to the same endpoint required because I can only fetch closest_zero_timestamp value from the previous API call\n                console.log(\"zoomDataSecondCall::::::::::::::::::::: \");\n                console.log(JSON.stringify())\n                // zoomDataQueryParams.SINGLE_QUERY = null;\n                params.SECOND_QUERY = 'SECOND_QUERY';\n\n                zoomDataSecondCall = _this.store.query(singularize(params.model_name),  params, null, params.instrument_id,  null);\n                // let finalVal = _this.store.query(singularize('displacement-values'),  { page_size: -1, instrument_id: params.instrument_id }, null, params.instrument_id,  null).then(function(result) {\n                //     //record looks like this: [2.351,0,-2.256,1,2]\n                //     //shows tiltMode = 2 and tilt_z_up = 1\n                //     //_this.set('tiltMode', result.get('firstObject').values[4]);\n                //     _this.set('tiltZUp', result.get('firstObject').values[3]);\n                // }) //end of finalVal\n\n                \n                //let zoomTempData = _this.store.query(Ember.String.singularize('temperature-value'),  params, null, params.instrument_id,  null);\n                // params.SECOND_QUERY = null;\n\n                fullRangeData = _this.store.query(singularize(params.model_name), {model_name: params.model_name, \n                    instrument_id: params.instrument_id, \n                    start_timestamp: closestZeroTimestamp, \n                    num_points_requested: 300,\n                    ref_head_position: params.ref_head_position, \n                    selectedAnchor: params.selectedAnchor, \n                    ref_anchor: params.ref_anchor, \n                    zeroed: params.zeroed, \n                    raw: params.raw, \n                    flip_signs: params.flip_signs, \n                    calib: params.calib, \n                    linear: params.linear, \n                    depth: params.depth, \n                    port: params.port, \n                    FULLRANGE_DATA: true, \n                    advancedYAxisUnit: params.advancedYAxisUnit, \n                    advancedStartDate: params.advancedStartDate, \n                    advancedEndDate: params.advancedEndDate, \n                    advancedXMax: params.advancedXMax, \n                    advancedXMin: params.advancedXMin, \n                    advancedYLeftMax: params.advancedYLeftMax, \n                    advancedYLeftMin: params.advancedYLeftMin, \n                    advancedYRightMax: params.advancedYRightMax, \n                    advancedYRightMin: params.advancedYRightMin\n                });\n\n                let temperatureParams = Ember.copy(params);\n                temperatureParams.ref_anchor = \"0\";\n                temperatureParams.flip_signs = null;\n                temperatureParams.model_name = \"displacement-values\";\n\n                let zoomTempData = _this.store.query(\"temperature-value\", temperatureParams, null, params.instrument_id, null);\n                \n                //     fullRangeData = _this.store.query(singularize(params.model_name), {model_name: params.model_name, instrument_id: params.instrument_id, start_timestamp: closestZeroTimestamp, num_points_requested: 300, ref_head_position: params.ref_head_position, ref_anchor: params.ref_anchor, zeroed: params.zeroed, raw: params.raw, flip_signs: params.flip_signs, calib: params.calib, linear: params.linear, depth: params.depth, port: params.port, FULLRANGE_DATA: true, isFirst: params.isFirst});\n                \n                let instrument = _this.store.queryRecord('instrument', { instrument_id: params.instrument_id } );\n                // console.log(\"count 2\");\n                // console.log(\"Instrument: \" + params.instrument_id);\n                \n                let graphs = _this.store.findAll('chart');\n\n                // if blast events are requested\n                if (!params.event_type || params.event_type === \"blast\") {\n                    blastEvents = _this.store.query('blast-event', {page_size: page_size, is_visible: true, blast_type: params.blast_type, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp, query_name: \"BLAST_EVENTS\"});\n                }\n                // if promise events are requested\n                if (!params.event_type || params.event_type === \"seismic\") {\n                    seismicEvents = _this.store.query('seismic-event', {page_size: page_size, is_visible: true, seismic_type: params.seismic_type, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp});\n                }\n                let vibeEventParams = Ember.copy(params);\n                    \n                if (isVibeGraph) {\n                    // console.log(\"IN: isVibeGraph: \" + isVibeGraph);\n                    vibeEventParams.ref_anchor = \"0\";\n                    vibeEventParams.flip_signs = null;\n                    vibeEventParams.model_name = \"vibration-event\";\n                    vibeEventParams.event_type === \"bluvibe\"\n                    vibeEventParams.instrument_id = params.instrument_id;\n                    vibeEventParams.chart_type=\"frequency\";\n                    vibeEvents = _this.store.query('vibration-event', { page_size: page_size, is_visible: true, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp});\n                }\n\n                if (!params.event_type || params.event_type === \"bluvibe\") {\n                    if (params.vibe_id) {\n                        let vibeEventParams = Ember.copy(params);\n                        vibeEventParams.ref_anchor = \"0\";\n                        vibeEventParams.flip_signs = null;\n                        vibeEventParams.model_name = \"displacement-values\";\n                        vibeEventParams.event_type === \"bluvibe\"\n                        vibeEventParams.instrument_id = params.instrument_id;\n                        vibeEventParams.chart_type=\"frequency\";\n                        // console.log(\"count 3\"); \n                        vibeEvents = _this.store.query(singularize(params.model_name), { page_size: page_size, is_visible: true, start_timestamp: zoomDataStartTimestamp, end_timestamp: zoomDataEndTimestamp});\n                        // console.log(\"count 4\"); \n                    }\n                }\n\n                //wait for all promises to fulfil and then return resolved promise\n                graphs.then(function(graphs) {\n                    instrument.then(function(instrument){\n                        zoomDataSecondCall.then(function(zoomDataSecondCall){\n                            fullRangeData.then(function(fullRangeData){\n                                seismicEvents.then(function(seismicEvents){\n                                    blastEvents.then(function(blastEvents){\n                                        vibeEvents.then(function(vibeEvents){\n                                            zoomTempData.then(function(zoomTempData){\n                                                //fullRangeTempData.then(function(fullRangeTempData) {\n                                                    resolve({\n                                                        graphs:graphs,\n                                                        instrument:instrument,\n                                                        zoomData:zoomDataSecondCall,\n                                                        fullRangeData:fullRangeData,\n                                                        seismicEvents:seismicEvents,\n                                                        blastEvents:blastEvents,\n                                                        zoomTempData:zoomTempData,\n                                                        vibeEvents:vibeEvents,\n                                                        //fullRangeTempData:fullRangeTempData,\n                                                        //tiltMode:_this.get('tiltMode'),\n                                                    // });\n                                                });\n                                            });\n                                        });\n                                    });\n                                });\n                            });\n                        });\n                    });\n                });\n            });\n        });\n    },\n    afterModel: function(resolvedModel) {\n        // console.log(\"in afterModel - routes/temporal-graphs/temporal-graph.js\")\n        let temporalGraphsController = this.controllerFor('temporal-graphs');\n\n        //temporalGraphsController.send('updateProperties', ['model_name'], [resolvedModel.zoomData.query.model_name]);\n\n        temporalGraphsController.send('updateProperties', ['instrumentId'], [resolvedModel.zoomData.query.instrument_id]);\n        temporalGraphsController.send('updateProperties', ['instrumentType'], [resolvedModel.instrument.get('instrumentType').get('title')]);\n        temporalGraphsController.send('updateProperties', ['instrumentTypeId'], [resolvedModel.instrument.get('instrumentType').get('id')]);\n        temporalGraphsController.send('updateProperties', ['name'], [resolvedModel.instrument.get('name')]);\n        temporalGraphsController.send('updateProperties', ['location'], [resolvedModel.instrument.get('location')]);\n        temporalGraphsController.send('updateProperties', ['level'], [resolvedModel.instrument.level]);//get('level')]);\n        temporalGraphsController.send('updateProperties', ['borehole'], [resolvedModel.instrument.get('borehole')]);\n        temporalGraphsController.send('updateProperties', ['project'], [resolvedModel.instrument.get('project')]);\n        //temporalGraphsController.send('updateProperties', ['tiltMode'], [this.get('tiltMode')]);\n        temporalGraphsController.send('updateProperties', ['tiltZUp'], [this.get('tiltZUp')]);\n\n        let mName = resolvedModel.zoomData.query.model_name;\n        //let iName = resolvedModel.instrument.get('instrumentType').get('title');\n        // console.log(\"routes:temporal-graphs:temporal-graph: mName::: \" + mName);\n        // let isVibeGraph = (mName === 'event-ppv' || mName === 'event-ppa' || mName === 'event-frequency' || mName === 'cumulative-event-ppv' || mName === 'cumulative-event-ppa' || mName === 'cumulative-event-frequency');\n        // if(iName === 'BluVibe') {\n        //     if(!isVibeGraph) {\n        //         resolvedModel.zoomData.query.model_name = 'event-ppv';\n        //         window.history.replaceState({}, mName, '/temporal-graphs/' + resolvedModel.instrument.get('id') + '/event-ppv');\n        //     }\n        // } else {\n        //     if(isVibeGraph) {\n        //             resolvedModel.zoomData.query.model_name = 'displacement-values';\n        //             window.history.replaceState({}, mName, '/temporal-graphs/' + resolvedModel.instrument.get('id') + '/displacement-values');\n        //     }\n        // }\n\n        temporalGraphsController.send('updateProperties', ['modelName'], [resolvedModel.zoomData.query.model_name]);\n        temporalGraphsController.send('updateProperties', ['activeInstrumentMeta'], [resolvedModel.zoomData.meta]);\n        temporalGraphsController.send('updateLocalProperty', 'activeInstrumentMeta', resolvedModel.zoomData.meta);\n        temporalGraphsController.send('updateProperties', ['eventType'], [resolvedModel.zoomData.query.event_type]);\n        temporalGraphsController.send('updateProperties', ['blastType'], [resolvedModel.zoomData.query.blast_type]);\n        temporalGraphsController.send('updateProperties', ['display_records'], [resolvedModel.zoomData.query.display_records]);\n        temporalGraphsController.send('updateProperties', ['chart_type'], [resolvedModel.zoomData.query.chart_type]);\n        temporalGraphsController.send('updateProperties', ['port'], [resolvedModel.zoomData.query.port]);\n\n        if (resolvedModel.vibeEvents) {\n            temporalGraphsController.send('updateProperties', ['vibeId'], [resolvedModel.vibeEvents.query.vibe_id]);\n        }\n        temporalGraphsController.send('updateProperties', ['seismicType'], [resolvedModel.zoomData.query.seismic_type]);\n        temporalGraphsController.send('updateProperties', ['frequency'], [resolvedModel.zoomData.query.frequency]);\n        temporalGraphsController.send('updateProperties', ['window'], [resolvedModel.zoomData.query.window]);\n        \n        //get pretty chart name if chart has multiple parts to it\n        let obj = resolvedModel.graphs;\n        let type = resolvedModel.instrument.get('instrumentTypeID').toString();\n        //get the chart data for the instrument\n        obj.forEach(function(item) {\n            if(item.id === type) {\n                obj = item;\n                return;\n            }\n        });\n        //let graphs = resolvedModel.get('graphs');\n        \n        let name = '';\n        try {\n            name = resolvedModel.zoomData.query.model_name.substr(0, resolvedModel.zoomData.query.model_name.lastIndexOf('-'));\n        } catch (exception) {\n\n        }\n        if (name===\"event\" || name === \"cumulative-event\") {\n            name = resolvedModel.zoomData.query.model_name;\n        }\n        // console.log(\"chartName:::: \" + name);\n        switch(name) {\n            case 'displacement':\n                name = obj.temporalDisplacementName;\n                if(name == null || name == undefined || name == \"\"){\n                    name = \"Displacement\";\n                }            \n                break;\n            case 'axial_displacement':\n                name = \"Axial-displacement\";\n                break;\n            case 'velocity':\n                name = obj.temporalVelocityName;\n                if(name == null || name == undefined || name == \"\")\n                    name = \"Velocity\";\n                break;\n            case 'acceleration':\n                // console.log(\"Name:::: \" + name);\n                if(name == null || name == undefined || name == \"\"){\n                    name = \"Acceleration\";\n                }else {\n                    if(name === 'acceleration') {\n                        name = \"Acceleration\";\n                    } else {\n                        name = \"mmH2O\"; //obj.temporalAccelerationName;\n                    }\n                }\n                break;\n            case 'strain':\n                name = obj.temporalStrainName;\n                if(name == null || name == undefined || name == \"\"){\n                    name = \"Strain\";\n                }            \n                break;\n            case 'strain_rate':\n                name = obj.temporalStrainRateName;\n                if(name == null || name == undefined || name == \"\"){\n                    name = \"Strain Rate\";\n                }            \n                break;\n            case 'load':\n                name = obj.temporalLoadName;\n                if(name == null || name == undefined || name == \"\"){\n                    name = \"Load\";\n                }            \n\n                break;\n            case 'axial_strain':\n                name = \"Axial-strain\";\n                break;\n            case 'bending_strain':\n                name = \"Bending-strain\";\n                break;\n            case 'temperature':\n                name = \"Temperature\";\n                break;\n            case 'event-frequency':\n                name = \"Event Frequency\";\n                break;\n            case 'event-ppv':\n                name = \"Event PPV\";\n                break;\n            case 'event-ppa':\n                name = \"Event PPA\";\n                break;\n            case 'cumulative-event-frequency':\n                name = \"Cumulative Frequency\";\n                break;\n            case 'cumulative-event-ppv':\n                name = \"Cumulative PPV\";\n                break;\n            case 'cumulative-event-ppa':\n                name = \"Cumulative PPA\";\n                break;\n            case 'vibration':\n                name = \"Frequency\"\n            default:\n                break;\n        }\n\n        //console.log(obj);\n        let chartName = name;\n        // console.log(\"chartName:::: \" + chartName);\n        let chartNameL = chartName.substring(0, chartName.indexOf('-')).capitalize();\n        let chartNameR = chartName.substring(chartName.indexOf('-') + 1).capitalize();\n        if(chartNameL !== \"\") {\n            chartName = chartNameL + \" \" + chartNameR;\n        }\n        \n        temporalGraphsController.send('updateProperties', ['chartData'], [obj]);\n        temporalGraphsController.send('updateProperties', ['finalVal'], resolvedModel.finalVal);\n        temporalGraphsController.send('updateProperties', ['chartDataValueName'], [chartName]);\n        temporalGraphsController.send('updateProperties', ['instrumentAnchors'], [resolvedModel.instrument.get('anchors')]);\n    },\n    actions: {\n        setDataR(data) {\n            let temporalGraphsController = this.controllerFor('temporal-graphs');\n\n            temporalGraphsController.send('setData',data);\n        },\n        setChartR(chart) {\n            let temporalGraphsController = this.controllerFor('temporal-graphs');\n\n            temporalGraphsController.send('setChart',chart);\n        },\n        willTransition() {\n            let temporalGraphsController = this.controllerFor('temporal-graphs');\n\n            temporalGraphsController.send('updateProperties', ['instrumentId'], [null]);\n            temporalGraphsController.send('updateProperties', ['eventType'], [null]);\n            temporalGraphsController.send('updateProperties', ['blastType'], [null]);\n            temporalGraphsController.send('updateProperties', ['seismicType'], [null]);\n            temporalGraphsController.send('updateProperties', ['vibe_id'], [null]);\n            temporalGraphsController.send('updateProperties', ['chart_type'], [null]);\n            temporalGraphsController.send('updateProperties', ['display_records'], [null]);\n            temporalGraphsController.send('updateProperties', ['ref_anchor'], [null]);\n            temporalGraphsController.send('updateProperties', ['start_timestamp'], [null]);\n            temporalGraphsController.send('updateProperties', ['end_timestamp'], [null]);\n            temporalGraphsController.send('updateProperties', ['port'], [1]);\n            \n            \n        }\n    }\n});\n\n","import Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class VibrationsRoute extends Route.extend({\n    queryParams: {\n        page: {\n            refreshModel: true\n        },\n        page_size: {\n            refreshModel: true\n        },\n        ordering: {\n            refreshModel: true\n        },\n        search: {\n            refreshModel: true\n        }\n    },\n    model(params) {\n        return Ember.RSVP.hash({\n            vibrationEvents: this.get('store').query('vibration-event', params),\n            //licence: this.get('store').findAll('licence')\n        });\n    },\n    afterModel: function(resolvedModel) {\n        let pageSize = resolvedModel.vibrationEvents.query.page_size,\n            eventsMeta = resolvedModel.vibrationEvents.meta,\n            vibeEventsController = this.controllerFor('vibration-events')\n        ;\n\n        vibeEventsController.send('updateProperty', 'pageSize', pageSize);\n        vibeEventsController.send('updateProperty', 'eventsMeta', eventsMeta);\n    }\n}) {\n    @service session;\n\n    beforeModel(transition) {\n      this.session.requireAuthentication(transition, 'login');\n    };\n}\n","define(\"geotechnical-data-platform-new/serializers/-default\", [\"exports\", \"@ember-data/serializer/json\"], function (_exports, _json) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _json.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/serializers/-json-api\", [\"exports\", \"@ember-data/serializer/json-api\"], function (_exports, _jsonApi) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _jsonApi.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/serializers/-rest\", [\"exports\", \"@ember-data/serializer/rest\"], function (_exports, _rest) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _rest.default;\n    }\n  });\n});\n","import JSONAPISerializer from '@ember-data/serializer/json-api';\n\nexport default class ApplicationSerializer extends JSONAPISerializer {\n}\n","define(\"geotechnical-data-platform-new/services/-ensure-registered\", [\"exports\", \"@embroider/util/services/ensure-registered\"], function (_exports, _ensureRegistered) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _ensureRegistered.default;\n    }\n  });\n});\n","import Service, { inject as service } from '@ember/service';\nimport AjaxService from 'ember-ajax/services/ajax';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { computed } from '@ember/object';\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default class CustomAjaxService extends AjaxService {\n  @service session;\n\n  host = `${getApiBaseUrl()}`;\n\n  @computed('session.authToken')\n  get headers() {\n    let headers = {\n      'Authorization': `Basic ${this.session.data.authenticated['login']}`,\n    };\n    return headers;\n  }\n}","import Service from '@ember/service';\nimport { inject as service } from '@ember/service';\n\nexport default class ApiService extends Service {\n  @service session;\n  @service router;\n\n  async fetch(url, options = {}) {\n    let response;\n\n    try {\n      response = await fetch(url, options);\n    } catch (e) {\n      // Network error, server down, etc.\n      throw e;\n    }\n\n    // 🚨 GLOBAL 401 HANDLER\n    if (response.status === 401) {\n        console.warn(\"API returned 401 — logging out\");\n\n        // Invalidate session (this clears ESA + localStorage)\n        await this.session.invalidate();\n\n        localStorage.clear();\n        // this.session.invalidate();\n\n        // Stop execution\n        throw new Error(\"Unauthorized\");\n    }\n\n    return response;\n  }\n}\n","// app/services/configuration.js\nimport Service from '@ember/service';\nimport ENV from '../config/environment';\nimport { getApiBaseUrl } from '../utils/api-config';\n\n\nexport default Service.extend({\n  async loadConfigurations() {\n    let url = `${getApiBaseUrl()}/api/oauth-providers`;\n  \n    return fetch(url).then(response => response.json())\n      .then(data => {\n        data.forEach(providerConfig => {\n          // Adjusting for the presence of both apiKey and clientId\n          let providerDetails = {\n            redirectUri: providerConfig.redirect_uri,\n          };\n\n          if (providerConfig.api_key) {\n            providerDetails.apiKey = providerConfig.api_key;\n          }\n\n          if (providerConfig.client_id) {\n            providerDetails.clientId = providerConfig.client_id;\n          }\n\n          // Including authorizationBaseURL and tokenURL if they are part of the OAuth flow\n          if (providerConfig.authorization_base_url) {\n            providerDetails.authorizationBaseURL = providerConfig.authorization_base_url;\n          }\n\n          if (providerConfig.token_url) {\n            providerDetails.tokenURL = providerConfig.token_url;\n          }\n\n          // Now, set the provider details in ENV\n          ENV.torii.providers[providerConfig.provider_name] = providerDetails;\n        });\n      }).catch(error => console.error(\"Error loading configurations:\", error));\n  }\n});\n","import CookiesService from 'ember-cookies/services/cookies';\n\nexport default CookiesService;\n","define(\"geotechnical-data-platform-new/services/ember-leaflet\", [\"exports\", \"ember-leaflet/services/ember-leaflet\"], function (_exports, _emberLeaflet) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberLeaflet.default;\n    }\n  });\n});\n","import { computed } from '@ember/object';\nimport Service from '@ember/service';\nimport ENV from '../config/environment';\nimport { getDestinationElementIdFromConfig } from 'ember-modal-dialog/utils/config-utils';\n\nfunction computedFromConfig(prop) {\n  return computed(function () {\n    return ENV['ember-modal-dialog'] && ENV['ember-modal-dialog'][prop];\n  });\n}\n\nexport default Service.extend({\n  hasEmberTether: computedFromConfig('hasEmberTether'),\n  hasLiquidWormhole: computedFromConfig('hasLiquidWormhole'),\n  hasLiquidTether: computedFromConfig('hasLiquidTether'),\n  destinationElementId: computed(function () {\n    return getDestinationElementIdFromConfig(ENV);\n  }),\n});\n","import Ember from 'ember';\nimport MomentService from 'ember-moment/services/moment';\nimport config from '../config/environment';\n\nconst { get } = Ember;\n\nexport default MomentService.extend({\n  defaultFormat: get(config, 'moment.outputFormat')\n});\n","import Service from '@ember/service';\nimport fetch from 'fetch';\nimport ENV from 'geotechnical-data-platform-new/config/environment';\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default class OauthConfigService extends Service {\n\n  async loadProviderConfig(providerName) {\n    const url = `${getApiBaseUrl()}/api/oauth-providers/config/${providerName}/`;\n\n    let response = await fetch(url);\n    if (!response.ok) {\n      throw new Error(\"Failed to load provider configuration\");\n    }\n\n    return await response.json();  // { clientId, tenantId, redirectUri, tokenUrl }\n  }\n}\n","define(\"geotechnical-data-platform-new/services/page-title-list\", [\"exports\", \"ember-page-title/services/page-title-list\"], function (_exports, _pageTitleList) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pageTitleList.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/services/page-title\", [\"exports\", \"ember-page-title/services/page-title\"], function (_exports, _pageTitle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _pageTitle.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/services/popup\", [\"exports\", \"torii/services/popup\"], function (_exports, _popup) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _popup.default;\n    }\n  });\n});\n","import SessionService from 'ember-simple-auth/services/session';\n\nexport default SessionService;\n","define(\"geotechnical-data-platform-new/services/store\", [\"exports\", \"ember-data/store\"], function (_exports, _store) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _store.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/services/torii-session\", [\"exports\", \"torii/services/torii-session\"], function (_exports, _toriiSession) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _toriiSession.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/services/torii\", [\"exports\", \"torii/services/torii\"], function (_exports, _torii) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _torii.default;\n    }\n  });\n});\n","import Service from '@ember/service';\nimport { tracked } from '@glimmer/tracking';\n\nexport default class UserProfileService extends Service {\n  @tracked userProfileService = null;\n\n  constructor() {\n    super(...arguments);\n    let stored = localStorage.getItem(\"userProfileService\");\n    if (stored) {\n      try{\n        this.userProfileService = JSON.parse(stored);\n      }\n      catch(e){\n\n      }\n    }\n  }\n\n  loadFromServer(serverPayload) {\n    console.log(\"loadFromServer: \");\n    console.log(serverPayload);\n    this.userProfileService = serverPayload;\n    localStorage.setItem(\"userProfileService\", JSON.stringify(serverPayload));\n  }\n\n  updateField(key, value) {\n    this.userProfileService = {\n      ...this.userProfileService,\n      profile: {\n        ...this.userProfileService.profile,\n        [key]: value\n      }\n    };\n    localStorage.setItem(\"userProfileService\", JSON.stringify(this.userProfileService));\n  }\n}\n","import CookieStore from 'ember-simple-auth/session-stores/cookie';\nimport ENV from \"geotechnical-data-platform-new/config/environment\";\nimport { getApiBaseUrl } from '../utils/api-config';\n\nexport default class ApplicationSessionStore extends CookieStore {\n\n    async refreshLicence() {\n        //console.log('refresh');\n        \n        let cookie = await this.restore();\n        \n        let url = getApiBaseUrl();\n        url += url.endsWith(\"/\") ? \"\" : \"/\"\n        url += \"licences/\"\n    \n        let response = await fetch(url, {\n            method: 'GET',\n            headers: {\n                'Origin': getApiBaseUrl(),\n                'Content-Type': 'application/json',\n                'Authorization': 'Bearer ' + localStorage.token\n            },\n        });\n        //console.log('auth');\n        if (response.ok) {\n            try {\n            let licence = await response.json();\n            licence = licence.data[0]\n            cookie.authenticated.isValid = licence.attributes['is-valid'];\n            cookie.authenticated.limit =  licence.attributes['within-limit'];\n            cookie.authenticated.modules = licence.attributes['modules'];\n\n            await this.persist(cookie);\n            } catch {}\n        }    \n    }\n}","export default Ember.HTMLBars.template({\"id\":\"d0rtqSoL\",\"block\":\"[[[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,0]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,1],null,[[\\\"searchValue\\\",\\\"pageValue\\\"],[[33,2],[33,3]]]]],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,4],null,[[\\\"page_size\\\",\\\"page_type\\\",\\\"model\\\"],[[33,5],\\\"alerts\\\",[30,1,[\\\"alerts\\\"]]]]]],[13],[13],[13],[10,0],[14,5,\\\"margin-top:2rem;\\\"],[14,0,\\\"col\\\"],[12],[1,[28,[35,6],null,[[\\\"model\\\"],[[30,1]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,7],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"alerts\\\",\\\"meta\\\"]],\\\"alerts\\\",[28,[37,8],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,9],null,[[\\\"alerts\\\",\\\"sortBy\\\",\\\"ordering\\\"],[[30,1,[\\\"alerts\\\"]],[28,[37,10],[[30,0],\\\"sortBy\\\"],null],[33,11]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,7],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"alerts\\\",\\\"meta\\\"]],\\\"alerts\\\",[28,[37,8],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[\\\"bread-crumbs\\\",\\\"filter-text-input-alert\\\",\\\"search\\\",\\\"page\\\",\\\"page-item-count\\\",\\\"page_size\\\",\\\"getTotalsAlerts\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"alerts-list\\\",\\\"action\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/alerts.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"IPUdBSvV\",\"block\":\"[[[1,[28,[35,0],[\\\"VantagePoint\\\"],null]],[1,[34,1]],[46,[28,[37,3],null,null],null,null,null],[10,\\\"footer\\\"],[14,0,\\\"footer\\\"],[12],[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,1],[14,0,\\\"text-muted\\\"],[12],[1,\\\"Copyright \\\"],[1,[28,[35,4],[\\\"Y\\\"],null]],[1,\\\" YieldPoint powered by Epiroc. All rights reserved.\\\"],[13],[13],[13]],[],false,[\\\"page-title\\\",\\\"navbar\\\",\\\"component\\\",\\\"-outlet\\\",\\\"current-date\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/application.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"S343FLkK\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,5,\\\"padding-top: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,2]],[10,0],[14,0,\\\"mt-1\\\"],[12],[41,[33,4],[[[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13]],[]],null],[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13],[10,\\\"h3\\\"],[12],[1,\\\"Events\\\"],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-3\\\"],[12],[1,[28,[35,5],null,[[\\\"searchValue\\\"],[[33,6]]]]],[13],[10,0],[14,0,\\\"col-sm-2\\\"],[12],[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,7],null,[[\\\"page_size\\\",\\\"page_type\\\",\\\"model\\\"],[[33,8],\\\"blast-events\\\",[30,1,[\\\"blastEvents\\\"]]]]]],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,9],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"blastEvents\\\",\\\"meta\\\"]],\\\"blast-events\\\",[28,[37,10],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[1,[28,[35,11],null,[[\\\"blastEvents\\\",\\\"blastTypesSelectOptions\\\",\\\"blastTypesSelectOptionsKyes\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"vewRowDetails\\\",\\\"isVisibleCreateNewForm\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,12,[\\\"blastEvents\\\"]],[33,12,[\\\"blastTypes\\\"]],\\\"id,title\\\",[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[28,[37,13],[[30,0],\\\"vewRowDetails\\\"],null],[33,14],\\\"YYYY-MM-DD HH:mm:ss\\\",[28,[37,13],[[30,0],\\\"updateProperty\\\"],null]]]]],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[1,[28,[35,15],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Timestamp\\\",\\\"timestamp\\\",[33,16],[28,[37,13],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,15],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Location\\\",\\\"location\\\",[33,16],[28,[37,13],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,15],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Delay\\\",\\\"delay\\\",[33,16],[28,[37,13],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,15],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Level\\\",\\\"level\\\",[33,16],[28,[37,13],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,15],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Project\\\",\\\"project\\\",[33,16],[28,[37,13],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,15],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Stope\\\",\\\"stope\\\",[33,16],[28,[37,13],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,15],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Tonnes\\\",\\\"tonnes\\\",[33,16],[28,[37,13],[[30,0],\\\"sortBy\\\"],null]]]]],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,13],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,17],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,19],[[28,[37,19],[[33,12,[\\\"blastEvents\\\"]]],null]],null],null,[[[10,\\\"tr\\\"],[15,0,[29,[[28,[37,20],[[28,[37,21],[[33,22],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"timestamp\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"location\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"delay\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[28,[35,23],null,[[\\\"selectOptions\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\",\\\"width\\\"],[[30,1,[\\\"levelLookupList\\\"]],\\\"id,value\\\",[30,2,[\\\"level\\\"]],[30,2],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true,150]]]],[13],[10,\\\"td\\\"],[12],[1,[28,[35,23],null,[[\\\"selectOptions\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\",\\\"width\\\"],[[30,1,[\\\"projectLookupList\\\"]],\\\"id,value\\\",[30,2,[\\\"project\\\"]],[30,2],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true,150]]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"stope\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"tonnes\\\"]]],[13],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,13],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,17],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[11,1],[24,0,\\\"crud view\\\"],[4,[38,13],[[30,0],\\\"vewRowDetails\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,17],null,[[\\\"@icon\\\"],[\\\"eye\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,20],[[28,[37,21],[[33,24],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"Delete it?\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"Are you sure?\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,13],[[30,0],\\\"remove\\\",[33,12,[\\\"blastEvents\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,13],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[13],[41,[28,[37,21],[[33,22],[30,2,[\\\"id\\\"]]],null],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"timestamp\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,25],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\"],[[30,2],\\\"timestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"location\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,26],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"location\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"coordinates\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,27],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\"],[[30,2],[30,2,[\\\"east\\\"]],[30,2,[\\\"north\\\"]],[30,2,[\\\"depth\\\"]]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"comments\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Comments:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,26],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"textarea\\\",\\\"comments\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"isVisible\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Is visible:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"field\\\"],[[30,2],\\\"isVisible\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"delay\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Delay:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,29],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\"],[[30,2],\\\"delay\\\",\\\"HH:mm:ss\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"level\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,23],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,1,[\\\"levelLookupList\\\"]],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,2,[\\\"level\\\"]],[30,2],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"project\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,23],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,1,[\\\"projectLookupList\\\"]],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,2,[\\\"project\\\"]],[30,2],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"stope\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stope:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,26],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"stope\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"tonnes\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Tonnes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,26],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"tonnes\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"blastType\\\",\\\"title\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Blast type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,30],null,[[\\\"selectOptions\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\"],[[33,12,[\\\"blastTypes\\\"]],\\\"id,title\\\",[30,2,[\\\"blastType\\\"]],[30,2],\\\"title\\\",\\\"id\\\"]]]],[13],[13],[13],[13],[13],[13]],[]],null]],[2]],null],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,9],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"blastEvents\\\",\\\"meta\\\"]],\\\"blast-events\\\",[28,[37,10],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,0,\\\"pb-1\\\"],[12],[13],[13]],[\\\"@model\\\",\\\"tableRow\\\"],false,[\\\"component\\\",\\\"-outlet\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"permissionError\\\",\\\"filter-text-input-events\\\",\\\"search\\\",\\\"page-item-count\\\",\\\"page_size\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"create-new-blast-event-form\\\",\\\"model\\\",\\\"action\\\",\\\"isVisibleCreateNewForm\\\",\\\"sortable-table-header\\\",\\\"ordering\\\",\\\"fa-icon\\\",\\\"each\\\",\\\"-track-array\\\",\\\"active-class\\\",\\\"get\\\",\\\"isVisibleRowDetails\\\",\\\"single-save-lookup\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-input\\\",\\\"single-save-geo-input\\\",\\\"single-save-checkbox\\\",\\\"single-save-time-picker\\\",\\\"single-save-select\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/blast-events.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qSCd1guo\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the newAlertObject.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"Hz\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"yZYnEGir\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectVendor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Vendor Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newInstrumentObjectVendor\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"vendorTypeChanged\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Select a Vendor Type\\\"],[13],[42,[28,[37,2],[[28,[37,2],[[30,1]],null]],null],null,[[[41,[30,2,[\\\"selected\\\"]],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[30,2,[\\\"id\\\"]]],[12],[1,[30,2,[\\\"instrumentTitle\\\"]]],[13]],[]],null],[41,[51,[30,2,[\\\"selected\\\"]]],[[[10,\\\"option\\\"],[15,2,[30,2,[\\\"id\\\"]]],[12],[1,[30,2,[\\\"instrumentTitle\\\"]]],[13]],[]],null]],[2]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPotentiometer\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newInstrumentObjectPotentiometer\\\"],[15,2,[33,5,[\\\"strokeLength\\\"]]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"strokeLengthChanged\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,\\\"disabled\\\",[36,6]],[14,\\\"required\\\",\\\"\\\"],[12],[10,\\\"option\\\"],[15,2,null],[12],[1,\\\"Select a Stroke Length\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"31.75\\\"],[12],[1,\\\"31.75 mm (1.25 in)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"63.5\\\"],[12],[1,\\\"63.5 mm (2.5 in)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"127\\\"],[12],[1,\\\"127 mm (5 in)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"190.5\\\"],[12],[1,\\\"190.5 mm (7.5 in)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"254\\\"],[12],[1,\\\"254 mm (10 in)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"508\\\"],[12],[1,\\\"508 mm (20 in)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,8],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,0],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,9,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,8],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,4],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,0],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,9,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,10]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[15,\\\"disabled\\\",[36,6]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,11]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[15,\\\"disabled\\\",[36,6]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,5,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[15,\\\"disabled\\\",[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[41,[33,12],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"elasticLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"elasticLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"ultimateLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"ultimateLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"elasticLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"elasticLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,5,[\\\"ultimateLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,7],[[33,5,[\\\"ultimateLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13]],[]],null],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px; text-align:right;\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,\\\"button\\\"],[16,\\\"disabled\\\",[36,6]],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@vendors\\\",\\\"selectOption\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"if\\\",\\\"unless\\\",\\\"newInstrumentObject\\\",\\\"formDisabled\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\",\\\"fieldVisible\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"VW6Gwzmm\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[36,2]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1,[\\\"label\\\"]]],[1,\\\" (mm)\\\"],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature (°C)\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,8],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,10],[[33,11]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,8],[[28,[37,12],[[33,13],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,14]],[15,1,[29,[\\\"df\\\",[36,15]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,8],[[33,14]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchorsLength\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"instrumentAnchors\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"mCoS+BXL\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response. For multiple recipients separate by a comma. \\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[13],[1,\\\"  Step Displacement\\\"],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[13],[1,\\\"  Step Displacement\\\"],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[13],[1,\\\"  Step Displacement\\\"],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[12],[1,\\\"tit\\\"],[13]],[]],null]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"Hz\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Average\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"LhnyF4ds\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[41,[28,[37,4],[[33,5,[\\\"channelsNum\\\"]],2],null],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,6],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,5,[\\\"id\\\"]],[33,5,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"width='100%'\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"width: 65%; vertical-align: top;\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem; width: 50%;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Vendor Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\",\\\"onSelectionChange\\\"],[[30,2],\\\"id,instrumentTitle\\\",[30,1,[\\\"vendor\\\"]],[30,1],\\\"instrumentTitle\\\",\\\"id\\\",\\\"instrumentTitle\\\",true,[28,[37,0],[[30,0],\\\"vendorTypeChanged\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"selectOptionKey\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[33,10],\\\"options\\\",\\\"id,value\\\",[30,1],[30,1],\\\"strokeLength\\\",\\\"id\\\",\\\"strokeLength\\\",true]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,5],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,13],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],[33,5,[\\\"east\\\"]],[33,5,[\\\"north\\\"]],[33,5,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,4],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,14],null,[[\\\"object\\\",\\\"field\\\"],[[33,5],\\\"active\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,15],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,15],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[41,[33,16],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"elasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,17],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"elasticLimitPct\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,17],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"ultimateLimitPct\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"elasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,17],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"elasticLimitFce\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,17],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"ultimateLimitFce\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentStiffness\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stiffness (kN/%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,5],\\\"text\\\",\\\"instrumentStiffness\\\",false]]]],[13],[13]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,5,\\\"width: 100%; vertical-align: top;\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Nodes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,18],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[33,5,[\\\"headAt\\\",\\\"id\\\"]],[33,5,[\\\"channelsNum\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@vendors\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"gt\\\",\\\"instrument\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"single-save-select\\\",\\\"single-save-select-non-model\\\",\\\"strokeLengthArray\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-checkbox\\\",\\\"single-save-datetime-picker\\\",\\\"fieldVisible\\\",\\\"single-save-input-numeric\\\",\\\"single-save-instrument-anchors\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"GCOGNQyD\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"FbqrcPDC\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"7gcEDnyd\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrument\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[33,9]],[[[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,11],[[28,[37,11],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3,[\\\"label\\\"]]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature (°C)\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,12],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13]],[]],[[[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,11],[[28,[37,11],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,4,[\\\"label\\\"]]],[13]],[4]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,12],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13]],[]]],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[30,1]],null]],null],null,[[[1,[28,[35,14],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,15],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,16],false,[30,5],[30,1],[30,7],\\\"text\\\",\\\"values\\\",[30,6],[52,[28,[37,17],[[30,8,[\\\"id\\\"]],[28,[37,18],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[5,6]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"adict/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"unless\\\",\\\"isMDT\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"XamV8/Me\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"mqfkFfpW\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"load-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Load\\\"]],[]]]]],[1,\\\"\\\\n    \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/temporal-CABLE-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"1CLcU4mo\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"acceleration-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Acceleration\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/temporal-MPBX-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pygydO5n\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"acceleration-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Acceleration\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/adict/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"/r1ks7KA\",\"block\":\"[[[10,0],[12],[10,\\\"label\\\"],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"toggleVisibility\\\"],null]],[14,5,\\\"font-size: medium; color: #007bff; cursor: pointer; text-decoration: underline;\\\"],[12],[1,\\\"Advanced Filters\\\"],[13],[13],[41,[33,2],[[[41,[33,3],[[[10,0],[14,5,\\\"margin-bottom: 15px;\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Date:\\\"],[13],[10,0],[14,5,\\\"margin-left: 15px;\\\"],[14,0,\\\"input-group\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"From:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"margin-right: 15px;\\\"],[15,2,[36,4]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateDateProperty\\\",\\\"startDate\\\"],null]],[14,1,\\\"startRangeDateComponent\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"To:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"margin-right: 15px;\\\"],[15,2,[36,5]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateDateProperty\\\",\\\"endDate\\\"],null]],[14,1,\\\"endRangeDateComponent\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13]],[]],null],[41,[33,6],[[[41,[33,7],[[[10,0],[14,5,\\\"margin-bottom: 15px; \\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Unit Converter:\\\"],[13],[10,0],[14,5,\\\"display:flex; flex-direction:row; margin-left: 15px;\\\"],[12],[1,[28,[35,8],null,[[\\\"id\\\",\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[\\\"m\\\",[28,[37,0],[[30,0],\\\"toggleYAxisUnit\\\",\\\"m\\\"],null],\\\"m\\\",[33,9]]]]],[10,0],[14,5,\\\"width: 10px\\\"],[12],[13],[1,[28,[35,8],null,[[\\\"id\\\",\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[\\\"mm\\\",[28,[37,0],[[30,0],\\\"toggleYAxisUnit\\\",\\\"mm\\\"],null],\\\"mm\\\",[33,10]]]]],[10,0],[14,5,\\\"width: 10px\\\"],[12],[13],[1,[28,[35,8],null,[[\\\"id\\\",\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[\\\"μm\\\",[28,[37,0],[[30,0],\\\"toggleYAxisUnit\\\",\\\"μm\\\"],null],\\\"μm\\\",[33,11]]]]],[10,0],[14,5,\\\"width: 10px\\\"],[12],[13],[1,[28,[35,8],null,[[\\\"id\\\",\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[\\\"ft\\\",[28,[37,0],[[30,0],\\\"toggleYAxisUnit\\\",\\\"ft\\\"],null],\\\"ft\\\",[33,12]]]]],[10,0],[14,5,\\\"width: 10px\\\"],[12],[13],[1,[28,[35,8],null,[[\\\"id\\\",\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[\\\"in\\\",[28,[37,0],[[30,0],\\\"toggleYAxisUnit\\\",\\\"in\\\"],null],\\\"in\\\",[33,13]]]]],[10,0],[14,5,\\\"width: 10px\\\"],[12],[13],[10,0],[12],[8,[39,14],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"RAW is untouched and not modified.\\\",\\\"top\\\"]],null],[1,[28,[35,8],null,[[\\\"id\\\",\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[\\\"RAW\\\",[28,[37,0],[[30,0],\\\"toggleYAxisUnit\\\",\\\"RAW\\\"],null],\\\"RAW\\\",[33,15]]]]],[13],[13],[13]],[]],null]],[]],null],[10,0],[14,5,\\\"margin-bottom: 15px;\\\"],[12],[10,0],[14,5,\\\"display:flex; flex-direction:row; margin-left: 15px;\\\"],[12],[41,[33,16],[[[10,0],[14,5,\\\"display:flex; flex-direction:column; margin-right:15px\\\"],[12],[10,0],[14,5,\\\"display:flex; flex-direction:row\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width: 90px; margin:0px; align-self: center; margin-right: 10px\\\"],[12],[1,\\\"X-Min:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"max-width: 100px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,17],[[33,18]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,2,[36,18]],[14,1,\\\"x_min\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,5,\\\"display:flex; flex-direction:row\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width: 90px; margin:0px; align-self: center; margin-right: 10px\\\"],[12],[1,\\\"X-Max:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"max-width: 100px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,17],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,2,[36,19]],[14,1,\\\"x_max\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex; flex-direction:column; margin-right:15px\\\"],[12],[13],[41,[33,20],[[[10,0],[14,5,\\\"display:flex; flex-direction:column\\\"],[12],[10,0],[14,5,\\\"display:flex; flex-direction:row\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width: 90px; margin:0px; align-self: center; margin-right: 10px\\\"],[12],[1,\\\"Y-Left-Min:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"max-width: 100px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,17],[[33,21]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,2,[36,21]],[14,1,\\\"y_left_min\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,5,\\\"display:flex; flex-direction:row\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width: 90px; margin:0px; align-self: center; margin-right: 10px\\\"],[12],[1,\\\"Y-Left-Max:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"max-width: 100px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,17],[[33,22]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,2,[36,22]],[14,1,\\\"y_left_max\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13]],[]],null],[41,[33,23],[[[10,0],[14,5,\\\"display:flex; flex-direction:column\\\"],[12],[10,0],[14,5,\\\"display:flex; flex-direction:row\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width: 90px; margin:0px; align-self: center; margin-right: 10px\\\"],[12],[1,\\\"Y-Right-Min:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"max-width: 100px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,17],[[33,24]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,2,[36,24]],[14,1,\\\"y_right_min\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,5,\\\"display:flex; flex-direction:row\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width: 90px; margin:0px; align-self: center; margin-right: 10px\\\"],[12],[1,\\\"Y-Right-Max:\\\"],[13],[10,\\\"input\\\"],[14,5,\\\"max-width: 100px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,17],[[33,25]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,2,[36,25]],[14,1,\\\"y_right_max\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13]],[]],null],[13],[13],[10,0],[14,5,\\\"display:flex; flex-direction:row\\\"],[12],[10,1],[14,0,\\\"input-group-btn\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin-right: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,0],[[30,0],\\\"search\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Apply\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"margin-right: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,0],[[30,0],\\\"reset\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset\\\"],[13],[13],[41,[33,26],[[[10,0],[14,5,\\\"width: auto; margin-left: 10px; margin-bottom: 10px;\\\"],[14,0,\\\"pulse_loader \\\"],[12],[13]],[]],null],[13]],[]],null]],[],false,[\\\"action\\\",\\\"if\\\",\\\"visibleAdvancedFilter\\\",\\\"displayDateTimeFormat\\\",\\\"startDate\\\",\\\"endDate\\\",\\\"displayYAxistUnit\\\",\\\"isInstrumentApproved\\\",\\\"radio-buttons\\\",\\\"meterValue\\\",\\\"millimeterValue\\\",\\\"microValue\\\",\\\"footValue\\\",\\\"inchValue\\\",\\\"bs-tooltip\\\",\\\"RAWValue\\\",\\\"requireXMaxMin\\\",\\\"mut\\\",\\\"xMin\\\",\\\"xMax\\\",\\\"requireYLeftMaxMin\\\",\\\"yLeftMin\\\",\\\"yLeftMax\\\",\\\"requireYRightMaxMin\\\",\\\"yRightMin\\\",\\\"yRightMax\\\",\\\"advancedSearchLoading\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/advanced-filter.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"crmA82ee\",\"block\":\"[[[41,[51,[30,1]],[[[10,\\\"td\\\"],[12],[6,[39,1],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,2,[\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,2,[\\\"instrument\\\",\\\"id\\\"]]]],[]]]]],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],null],[41,[28,[37,4],[[30,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,4],[[30,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"value\\\"]]],[13],[41,[28,[37,3],[[30,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,3],[[30,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,2,[\\\"isActive\\\"]],[[[41,[30,2,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,5],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,6,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,7],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,8],[[28,[37,9],[[33,10],[33,6,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,5],[[30,0],\\\"remove\\\",[33,11,[\\\"instruments\\\"]],[33,6]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,5],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,6,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[6,[39,1],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-alert\\\",[30,2,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,7],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13]],[\\\"@isInst\\\",\\\"@tableRow\\\"],false,[\\\"unless\\\",\\\"link-to\\\",\\\"if\\\",\\\"is-equal\\\",\\\"eq\\\",\\\"action\\\",\\\"tableRow\\\",\\\"fa-icon\\\",\\\"active-class\\\",\\\"get\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"model\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/alert-row.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"54+oixYO\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"alertListError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to delete an alert.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[33,1]],[[[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Instrument ID\\\",\\\"instrument.id\\\",[33,3],[30,1]]]]]],[]],null],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Metric\\\",\\\"metric\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Direction\\\",\\\"direction\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Value\\\",\\\"value\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Severity\\\",\\\"severity\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Response\\\",\\\"response\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Status\\\",\\\"isTriggered\\\",[33,3],[30,1]]]]],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,4],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[30,2]],null]],null],null,[[[41,[30,3,[\\\"isActive\\\"]],[[[41,[30,3,[\\\"isTriggered\\\"]],[[[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"tr\\\"],[14,0,\\\"alertLow\\\"],[12],[41,[51,[33,1]],[[[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[]]]]],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Angular Velocity\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"value\\\"]]],[13],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,3,[\\\"isActive\\\"]],[[[41,[30,3,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,12],[[28,[37,13],[[33,14],[30,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,4],[[30,0],\\\"remove\\\",[33,15,[\\\"instruments\\\"]],[30,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-alert\\\",[30,3,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,5],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"tr\\\"],[14,0,\\\"alertMed\\\"],[12],[41,[51,[33,1]],[[[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[]]]]],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Angular Velocity\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"value\\\"]]],[13],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,3,[\\\"isActive\\\"]],[[[41,[30,3,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-alert\\\",[30,3,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,5],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"tr\\\"],[14,0,\\\"alertHigh\\\"],[12],[41,[51,[33,1]],[[[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[]]]]],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Angular Velocity\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"value\\\"]]],[13],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,3,[\\\"isActive\\\"]],[[[41,[30,3,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,12],[[28,[37,13],[[33,14],[30,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,4],[[30,0],\\\"remove\\\",[33,15,[\\\"instruments\\\"]],[30,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-alert\\\",[30,3,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,5],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13],[13]],[]],null]],[]],[[[10,\\\"tr\\\"],[12],[41,[51,[33,1]],[[[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[]]]]],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Angular Velocity\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"value\\\"]]],[13],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,3,[\\\"isActive\\\"]],[[[41,[30,3,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,12],[[28,[37,13],[[33,14],[30,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,4],[[30,0],\\\"remove\\\",[33,15,[\\\"instruments\\\"]],[30,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-alert\\\",[30,3,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,5],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13],[13]],[]]]],[]],[[[10,\\\"tr\\\"],[14,0,\\\"inactive\\\"],[12],[41,[51,[33,1]],[[[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"instrument\\\",\\\"id\\\"]]]],[]]]]],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[41,[28,[37,9],[[30,3,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]],\\\"Tilt\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Angular Velocity\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,11],[[30,3,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"value\\\"]]],[13],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,9],[[30,3,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,3,[\\\"isActive\\\"]],[[[41,[30,3,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,12],[[28,[37,13],[[33,14],[30,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,4],[[30,0],\\\"remove\\\",[33,15,[\\\"instruments\\\"]],[30,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-alert\\\",[30,3,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,5],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13],[13]],[]]]],[3]],null],[13],[13]],[\\\"@sortBy\\\",\\\"@alerts\\\",\\\"tableRow\\\"],false,[\\\"unless\\\",\\\"isInst\\\",\\\"sortable-table-header\\\",\\\"ordering\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"each\\\",\\\"-track-array\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"eq\\\",\\\"active-class\\\",\\\"get\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"model\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/alerts-list.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"FrezpNVA\",\"block\":\"[[[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,5,\\\"\\\"],[12],[10,\\\"h3\\\"],[12],[1,\\\"Packs Validation Analytics\\\"],[13],[13],[10,0],[14,5,\\\"padding-left:15px;width:100%\\\"],[12],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,1,\\\"mainDataSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:100px;\\\"],[12],[1,\\\"Main Data:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"mainDataSelect\\\"],[14,5,\\\"padding: 0px;min-width:180px;\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateMainDataSelectDropDown\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,3],[[28,[37,3],[[33,4]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"title\\\"]]],[13]],[1]],null],[13],[13],[13],[10,0],[14,1,\\\"dateDataSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:100px;\\\"],[12],[1,\\\"Date Data:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"dateDataSelect\\\"],[14,5,\\\"padding: 0px;min-width:180px;\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateDateDataSelectDropDown\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"-1\\\"],[12],[1,\\\"-\\\"],[13],[42,[28,[37,3],[[28,[37,3],[[33,5]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,2,[\\\"id\\\"]]]]],[12],[1,[30,2,[\\\"title\\\"]]],[13]],[2]],null],[13],[13],[13],[10,0],[14,1,\\\"dateRangeSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:100px;\\\"],[12],[1,\\\"Date Range: \\\"],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[14,0,\\\"input-group\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"startRangeDateComponent\\\"],[14,5,\\\"color:#495057;border:1px solid #ced4da;\\\"],[15,2,[36,6]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"startRangeDateComponent\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"date\\\"],[12],[13],[13],[10,0],[12],[1,\\\"-\\\"],[13],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"endRangeDateComponent\\\"],[14,5,\\\"color:#495057;border:1px solid #ced4da;\\\"],[15,2,[36,7]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"endRangeDateComponent\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"date\\\"],[12],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,1,\\\"isDistinctSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"isDistinctCheckBoxLabel\\\"],[14,5,\\\"min-width:130px;\\\"],[12],[1,\\\"Is Distinct:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"isDistinctCheckBox\\\"],[14,\\\"disabled\\\",\\\"\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateIsDistinctCheckBox\\\"]]],null]],[[\\\"checked\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[13],[10,0],[14,1,\\\"usersSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:130px;\\\"],[12],[1,\\\"Employee Group:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"employeeGroupDataSelect\\\"],[14,5,\\\"padding: 0px;min-width:180px;\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateEmployeeDataSelectDropDown\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,3],[[28,[37,3],[[33,8]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"title\\\"]]],[13]],[3]],null],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"buttonsSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"applyButton\\\"],[24,5,\\\"margin-right:15px\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,0],[[30,0],\\\"applyButton\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Apply\\\"],[13],[11,\\\"button\\\"],[24,1,\\\"resetButton\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetButton\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset\\\"],[13],[13],[13],[10,0],[14,0,\\\"controlPanelSection\\\"],[12],[10,0],[12],[1,\\\"Control Panel:\\\"],[13],[10,0],[14,5,\\\"margin-left:15px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,1,\\\"showLegendSection\\\"],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"margin-right:10px;\\\"],[12],[1,\\\"Show Legend: \\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"showLegendCheckBox\\\"],[14,\\\"disabled\\\",\\\"\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateShowLegendCheckbox\\\"]]],null]],[[\\\"checked\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[11,0],[24,1,\\\"yAxisScaleLabel\\\"],[24,5,\\\"cursor:pointer;margin-right:10px;\\\"],[4,[38,0],[[30,0],\\\"resetScaleForm\\\",\\\"yAxisScaleLabel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Y-Axis Scale: \\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"yAxisScale\\\"],[14,5,\\\"padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],\\\"updateScaleForm\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"xAxisScaleLabel\\\"],[14,5,\\\"margin-right:10px;\\\"],[12],[1,\\\"X-Axis Scale: \\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"xAxisScale\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,5,\\\"padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],\\\"updateScaleForm\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[10,0],[14,1,\\\"mainChartSection\\\"],[14,0,\\\"mainChartSection\\\"],[12],[13],[13],[13]],[\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getMainDataSelections\\\",\\\"getDateDataSelections\\\",\\\"startDate\\\",\\\"endDate\\\",\\\"getEmployeeGroupDataSelections\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/analytics/packsValidationAnalyticsMainPage.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"4oAT1u7v\",\"block\":\"[[[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,5,\\\"\\\"],[12],[10,\\\"h3\\\"],[12],[1,\\\"Sensor Calibration Analytics\\\"],[13],[13],[10,0],[14,5,\\\"padding-left:15px;width:100%\\\"],[12],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,1,\\\"mainDataSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:100px;\\\"],[12],[1,\\\"Main Data:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"mainDataSelect\\\"],[14,5,\\\"padding: 0px;min-width:180px;\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateMainDataSelectDropDown\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,3],[[28,[37,3],[[33,4]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"title\\\"]]],[13]],[1]],null],[13],[13],[13],[10,0],[14,1,\\\"dateDataSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:100px;\\\"],[12],[1,\\\"Date Data:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"dateDataSelect\\\"],[14,5,\\\"padding: 0px;min-width:180px;\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateDateDataSelectDropDown\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"-1\\\"],[12],[1,\\\"-\\\"],[13],[42,[28,[37,3],[[28,[37,3],[[33,5]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,2,[\\\"id\\\"]]]]],[12],[1,[30,2,[\\\"title\\\"]]],[13]],[2]],null],[13],[13],[13],[10,0],[14,1,\\\"dateRangeSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:100px;\\\"],[12],[1,\\\"Date Range: \\\"],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[14,0,\\\"input-group\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"startRangeDateComponent\\\"],[14,5,\\\"color:#495057;border:1px solid #ced4da;\\\"],[15,2,[36,6]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"startRangeDateComponent\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"date\\\"],[12],[13],[13],[10,0],[12],[1,\\\"-\\\"],[13],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"endRangeDateComponent\\\"],[14,5,\\\"color:#495057;border:1px solid #ced4da;\\\"],[15,2,[36,7]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"endRangeDateComponent\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"date\\\"],[12],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,1,\\\"isDistinctSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"isDistinctCheckBoxLabel\\\"],[14,5,\\\"min-width:130px;\\\"],[12],[1,\\\"Is Distinct:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"isDistinctCheckBox\\\"],[14,\\\"disabled\\\",\\\"\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateIsDistinctCheckBox\\\"]]],null]],[[\\\"checked\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[13],[10,0],[14,1,\\\"usersSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:130px;\\\"],[12],[1,\\\"Employee Group:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"employeeGroupDataSelect\\\"],[14,5,\\\"padding: 0px;min-width:180px;\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateEmployeeDataSelectDropDown\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,3],[[28,[37,3],[[33,8]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"title\\\"]]],[13]],[3]],null],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"buttonsSection\\\"],[14,5,\\\"margin-bottom:10px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"applyButton\\\"],[24,5,\\\"margin-right:15px\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,0],[[30,0],\\\"applyButton\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Apply\\\"],[13],[11,\\\"button\\\"],[24,1,\\\"resetButton\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetButton\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset\\\"],[13],[13],[13],[10,0],[14,0,\\\"controlPanelSection\\\"],[12],[10,0],[12],[1,\\\"Control Panel:\\\"],[13],[10,0],[14,5,\\\"margin-left:15px;width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,1,\\\"showLegendSection\\\"],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"margin-right:10px;\\\"],[12],[1,\\\"Show Legend: \\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"showLegendCheckBox\\\"],[14,\\\"disabled\\\",\\\"\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[30,0,[\\\"updateShowLegendCheckbox\\\"]]],null]],[[\\\"checked\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[11,0],[24,1,\\\"yAxisScaleLabel\\\"],[24,5,\\\"cursor:pointer;margin-right:10px;\\\"],[4,[38,0],[[30,0],\\\"resetScaleForm\\\",\\\"yAxisScaleLabel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Y-Axis Scale: \\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"yAxisScale\\\"],[14,5,\\\"padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],\\\"updateScaleForm\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"xAxisScaleLabel\\\"],[14,5,\\\"margin-right:10px;\\\"],[12],[1,\\\"X-Axis Scale: \\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"xAxisScale\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,5,\\\"padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],\\\"updateScaleForm\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[10,0],[14,1,\\\"mainChartSection\\\"],[14,0,\\\"mainChartSection\\\"],[12],[13],[13],[13]],[\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getMainDataSelections\\\",\\\"getDateDataSelections\\\",\\\"startDate\\\",\\\"endDate\\\",\\\"getEmployeeGroupDataSelections\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/analytics/sensorCalibrationAnalyticsMainPage.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"KegYu2MW\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the newAlertObject.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"newAlertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"newAlertRepeat\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,8],true],null],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"newAlertInvert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,19]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"repeats\\\",\\\"repeatWindow\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"xQxeD9CL\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"newGatewayObject\\\",\\\"action\\\",\\\"mut\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pcltgGmG\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp.\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"gateway\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"gatewayValueObjectValues\\\",\\\"get\\\",\\\"newGatewayValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/create-new-raw-gateway-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"7hhG6UfS\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"alertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"alertRepeat\\\"],[16,\\\"checked\\\",[33,2,[\\\"repeats\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"repeats\\\"]],true],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,10],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"alertInvert\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[44,[[28,[37,13],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,16]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Average\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,17]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"triggeredTimeText\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"WQ3eQQ50\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,6],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[13],[10,\\\"td\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Settings:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"meshID\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Mesh ID:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"6\\\"],[15,2,[33,5,[\\\"meshID\\\"]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"gatewayMeshCycleInterval\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Mesh Cycle:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"gatewayMeshCycleInterval\\\"],[15,\\\"onclick\\\",[28,[37,0],[[30,0],\\\"setGatewayInterval\\\"],[[\\\"value\\\"],[[33,7,[\\\"value\\\"]]]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,8],[[33,9],\\\"\\\"],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"-1\\\"],[12],[1,\\\"= \\\\\\\"Select a Mesh Cycle Interval\\\\\\\"\\\"],[13]],[]],null],[42,[28,[37,11],[[28,[37,11],[[30,2]],null]],null],null,[[[41,[28,[37,8],[[33,9],[30,3,[\\\"id\\\"]]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"intervalName\\\"]]],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"intervalName\\\"]]],[13]],[]]]],[3]],null],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"gatewayTransmissionPowerInterval\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Radio Tx Power:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"gatewayTransmissionPowerInterval\\\"],[15,\\\"onclick\\\",[28,[37,0],[[30,0],\\\"setGatewayInterval\\\"],[[\\\"value\\\"],[[33,7,[\\\"value\\\"]]]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[30,4]],null]],null],null,[[[41,[28,[37,8],[[33,12],[30,5,[\\\"id\\\"]]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[30,5,[\\\"id\\\"]]]]],[12],[1,[30,5,[\\\"intervalName\\\"]]],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[30,5,[\\\"id\\\"]]]]],[12],[1,[30,5,[\\\"intervalName\\\"]]],[13]],[]]]],[5]],null],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[41,[28,[37,8],[[30,1,[\\\"hasChildren\\\"]],true],null],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Blu900 Nodes:\\\"],[13],[1,[28,[35,13],null,[[\\\"gatewayChildren\\\",\\\"gateway\\\"],[[30,1,[\\\"children\\\"]],[30,1]]]]],[13],[13]],[]],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"no-children\\\"],[12],[1,\\\"No Nodes Found        \\\"],[13],[13],[13]],[]]],[13]],[\\\"@gateway\\\",\\\"@gatewayMeshCycleIntervals\\\",\\\"selectOption\\\",\\\"@gatewayTransmissionPowerIntervals\\\",\\\"selectOption\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"single-save-input\\\",\\\"gateway\\\",\\\"single-save-datetime-picker\\\",\\\"target\\\",\\\"eq\\\",\\\"getMeshCycleIntervalID\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getTransmissionPowerIntervalsID\\\",\\\"gateway-list-children\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"RpNqA/TL\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/nvd3-temporal-gateway-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"bYVGSAfb\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"anchorDistances\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"gatewayType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"gateway\\\",\\\"gatewayType\\\",\\\"gatewayValueObject\\\",\\\"gatewayValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"setProp\\\",\\\"omitTemperature\\\"],[[30,2,[\\\"id\\\"]],[30,2],[30,2,[\\\"gatewayType\\\"]],[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[33,7],true]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@gatewayData\\\",\\\"@gateway\\\",\\\"anchor\\\",\\\"gatewayValue\\\",\\\"index\\\",\\\"@temperatureData\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"blu900gw/create-new-raw-gateway-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getGatewayData\\\",\\\"single-save-gateway-inputs-array-table-row-cells\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"TgKd0AM/\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@left_axis_field\\\",\\\"ddm\\\",\\\"@right_axis_field\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"hzOkUOwp\",\"block\":\"[[],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"jNVWQGSj\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Temperature\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Temperature\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"temp-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@right_axis_field\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"left_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900gw/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"IPnbYfCr\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the newAlertObject.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"newAlertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"newAlertRepeat\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,8],true],null],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"newAlertInvert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,19]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"repeats\\\",\\\"repeatWindow\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"tOEiwjTH\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-weight:bold !important;\\\"],[14,\\\"for\\\",\\\"newGatewayObjectParent\\\"],[12],[1,\\\"Parent Gateway: \\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,0],null,[[\\\"content\\\",\\\"id\\\",\\\"selected\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,1],\\\"gatewaySelect\\\",\\\"\\\",\\\"title\\\",\\\"Gateway ID\\\",\\\"Filter\\\",true,[28,[37,2],[[30,0],\\\"setID\\\"],null]]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,3,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,2],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"searchable-select\\\",\\\"gateways\\\",\\\"action\\\",\\\"newGatewayObject\\\",\\\"mut\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"bRjThhC+\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp.\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"gateway\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"gatewayValueObjectValues\\\",\\\"get\\\",\\\"newGatewayValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/create-new-raw-gateway-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Z4C0TJhg\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"alertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"alertRepeat\\\"],[16,\\\"checked\\\",[33,2,[\\\"repeats\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"repeats\\\"]],true],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,10],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"alertInvert\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[44,[[28,[37,13],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,16]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Average\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,17]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"triggeredTimeText\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"FK9dbo2K\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]],[30,2]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]],[30,2]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"h5\\\"],[12],[10,\\\"label\\\"],[12],[1,[28,[35,4],[\\\"Selected Gateway: \\\",[30,2]],null]],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,5],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,5],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,5],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,5],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,5],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,5],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,5],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left; vertical-align: top;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Settings:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"meshID\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Mesh ID:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"6\\\"],[15,2,[33,6,[\\\"meshID\\\"]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"gatewayReadInterval\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Read Interval:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"gatewayReadInterval\\\"],[15,\\\"onclick\\\",[28,[37,0],[[30,0],\\\"setGatewayInterval\\\"],[[\\\"value\\\"],[[33,8,[\\\"value\\\"]]]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,10],[[28,[37,10],[[30,3]],null]],null],null,[[[41,[28,[37,11],[[33,12],[30,4,[\\\"id\\\"]]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[30,4,[\\\"id\\\"]]]]],[12],[1,[30,4,[\\\"intervalName\\\"]]],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[30,4,[\\\"id\\\"]]]]],[12],[1,[30,4,[\\\"intervalName\\\"]]],[13]],[]]]],[4]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[41,[28,[37,11],[[30,1,[\\\"hasChildren\\\"]],true],null],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[1,[28,[35,13],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\"],[[30,1,[\\\"children\\\"]],[28,[37,0],[[30,0],\\\"sortBy\\\"],null],[33,14]]]]],[13]],[]],null],[13]],[\\\"@gateway\\\",\\\"@parentGateway\\\",\\\"@gatewayReadingIntervals\\\",\\\"selectOption\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"concat\\\",\\\"single-save-input\\\",\\\"gateway\\\",\\\"single-save-datetime-picker\\\",\\\"target\\\",\\\"each\\\",\\\"-track-array\\\",\\\"eq\\\",\\\"getGatewayReadIntervalID\\\",\\\"gateway-list\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"NHQeKuHj\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/nvd3-temporal-gateway-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Kn7X/Jdo\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"anchorDistances\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"gatewayType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp.\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"gateway\\\",\\\"gatewayType\\\",\\\"gatewayValueObject\\\",\\\"gatewayValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"setProp\\\",\\\"omitTemperature\\\"],[[30,2,[\\\"id\\\"]],[30,2],[30,2,[\\\"gatewayType\\\"]],[30,4],[30,1],[33,12],\\\"text\\\",\\\"values\\\",[30,5],[33,7],true]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@gatewayData\\\",\\\"@gateway\\\",\\\"anchor\\\",\\\"gatewayValue\\\",\\\"index\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"blu900node/create-new-raw-gateway-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getGatewayData\\\",\\\"single-save-gateway-inputs-array-table-row-cells\\\",\\\"filteredTemperatureData\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"kp1Mu9K9\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"Voltage\\\",[30,4],[30,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"RSSI\\\",[30,4],[30,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"Firmware\\\",[30,4],[30,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"Temperature\\\",[30,4],[30,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"temperature-gateway-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@left_axis_field\\\",\\\"ddm\\\",\\\"@right_axis_field\\\",\\\"@chart_parent_gateway\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"MC+xGwUC\",\"block\":\"[[[1,\\\"left\\\\n\\\"],[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[33,3],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"selected\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"right_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"QJ45fOl0\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[1,\\\"      Temperature\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"Voltage\\\",[33,5],[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"RSSI\\\",[33,5],[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"Temperature\\\",[33,5],[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"temperature-gateway-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"chart_parent_gateway\\\"],[null,null,\\\"Firmware\\\",[33,5],[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@right_axis_field\\\",\\\"ddm\\\",\\\"@chart_parent_gateway\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"left_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blu900node/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"WAtFLZd6\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"text-align: left;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alerts. To add multiple, separate by comma!\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,\\\"title\\\",\\\"Target recipient for alert. Add cell number then click on link to find carrier network. \\\"],[24,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[24,0,\\\"col-12 col-form-label bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,8],[[[6,[39,9],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,10],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,11],[33,8],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VOLT\\\"],[12],[1,\\\"Volts\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"RSSI\\\"],[12],[1,\\\"RSSI\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"FW\\\"],[12],[1,\\\"Firmware Version\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"LT (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"5\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[1,\\\"V\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[1,\\\"dBm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[1,\\\"                               \\\"]],[]],null],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,13]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"CArz073r\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"newGatewayObject\\\",\\\"action\\\",\\\"mut\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Y900yE3S\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp.\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"gateway\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"gatewayValueObjectValues\\\",\\\"get\\\",\\\"newGatewayValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/create-new-raw-gateway-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"MDLduv+h\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VOLT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Volt\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VOLT\\\"],[12],[1,\\\"Volt\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"RSSI\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"RSSI\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"RSSI\\\"],[12],[1,\\\"RSSI\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"FW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Firmware Version\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"FW\\\"],[12],[1,\\\"Firmware Version\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[1,\\\"V\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[1,\\\"dBm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[1,\\\"Ver.\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,6]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,7]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"unless\\\",\\\"triggeredTimeText\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/edit-gateway-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pktZ9Li6\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,6],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[41,[28,[37,7],[[30,1,[\\\"hasChildren\\\"]],true],null],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[1,[28,[35,8],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\"],[[30,1,[\\\"children\\\"]],[28,[37,0],[[30,0],\\\"sortBy\\\"],null],[33,9]]]]],[13]],[]],null],[13]],[\\\"@gateway\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"single-save-input\\\",\\\"gateway\\\",\\\"single-save-datetime-picker\\\",\\\"eq\\\",\\\"gateway-list\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"H8tI0pAI\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/nvd3-temporal-gateway-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ubZ1bb6m\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"anchorDistances\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"gatewayType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp.\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"gateway\\\",\\\"gatewayType\\\",\\\"gatewayValueObject\\\",\\\"gatewayValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"setProp\\\",\\\"omitTemperature\\\"],[[30,2,[\\\"id\\\"]],[30,2],[30,2,[\\\"gatewayType\\\"]],[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[33,7],false]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@gatewayData\\\",\\\"@gateway\\\",\\\"anchor\\\",\\\"gatewayValue\\\",\\\"index\\\",\\\"@temperatureData\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"blucell/create-new-raw-gateway-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getGatewayData\\\",\\\"single-save-gateway-inputs-array-table-row-cells\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"tjKvP640\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Temperature\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"temperature-gateway-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@left_axis_field\\\",\\\"ddm\\\",\\\"@right_axis_field\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ZWE2GsEX\",\"block\":\"[[[1,\\\"blucell\\\\n\\\"],[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[33,3],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"selected\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"right_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"bb2ZHQ5d\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Readings\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Temperature\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"temp-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@right_axis_field\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"left_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blucell/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"a16ZQF37\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the newAlertObject.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"newAlertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"newAlertRepeat\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,8],true],null],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"newAlertInvert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,19]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"repeats\\\",\\\"repeatWindow\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"P33Viff6\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"newGatewayObject\\\",\\\"action\\\",\\\"mut\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"2ekYDUfB\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp.\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"gateway\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"gatewayValueObjectValues\\\",\\\"get\\\",\\\"newGatewayValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/create-new-raw-gateway-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"T9EBA30B\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"alertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"alertRepeat\\\"],[16,\\\"checked\\\",[33,2,[\\\"repeats\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"repeats\\\"]],true],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,10],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"alertInvert\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[44,[[28,[37,13],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,16]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Average\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,17]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"triggeredTimeText\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"yU3xhSux\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,6],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[41,[28,[37,7],[[30,1,[\\\"hasChildren\\\"]],true],null],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[1,[28,[35,8],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\"],[[30,1,[\\\"children\\\"]],[28,[37,0],[[30,0],\\\"sortBy\\\"],null],[33,9]]]]],[13]],[]],null],[13]],[\\\"@gateway\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"single-save-input\\\",\\\"gateway\\\",\\\"single-save-datetime-picker\\\",\\\"eq\\\",\\\"gateway-list\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Xe39tTTU\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/nvd3-temporal-gateway-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"flEWlgP0\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"anchorDistances\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"gatewayType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp.\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"gateway\\\",\\\"gatewayType\\\",\\\"gatewayValueObject\\\",\\\"gatewayValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"setProp\\\",\\\"omitTemperature\\\"],[[30,2,[\\\"id\\\"]],[30,2],[30,2,[\\\"gatewayType\\\"]],[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[33,7],false]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@gatewayData\\\",\\\"@gateway\\\",\\\"anchor\\\",\\\"gatewayValue\\\",\\\"index\\\",\\\"@temperatureData\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"blucell/create-new-raw-gateway-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getGatewayData\\\",\\\"single-save-gateway-inputs-array-table-row-cells\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HVIdkPBj\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"    \\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"frequency\\\"],null],[[[1,\\\"      Frequency\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"ppv\\\"],null],[[[1,\\\"      PPV\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"ppa\\\"],null],[[[1,\\\"      PPA\\\\n\\\"]],[]],[[[1,\\\"      Frequency\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"frequency\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Frequency\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"ppv\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"PPV\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"ppa\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"PPA\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"LXrHdMHc\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@left_axis_field\\\",\\\"ddm\\\",\\\"@right_axis_field\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"FElwQTFW\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[33,3],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"selected\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"right_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"6rq52/sM\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Readings\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Temperature\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"temp-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@right_axis_field\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"left_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/blugate/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"GDosPG6r\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"text-align: left;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alerts. To add multiple, separate by comma!\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,\\\"title\\\",\\\"Target recipient for alert. Add cell number then click on link to find carrier network. \\\"],[24,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[24,0,\\\"col-12 col-form-label bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,8],[[[6,[39,9],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,10],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,11],[33,8],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VOLT\\\"],[12],[1,\\\"Volts\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"RSSI\\\"],[12],[1,\\\"RSSI\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"FW\\\"],[12],[1,\\\"Firmware Version\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"LT (<=)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"5\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[1,\\\"V\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[1,\\\"dBm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[1,\\\"                               \\\"]],[]],null],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,13]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"DBD1ekSP\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"newGatewayObject\\\",\\\"action\\\",\\\"mut\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"vyAQut4I\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp.\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"gateway\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"gatewayValueObjectValues\\\",\\\"get\\\",\\\"newGatewayValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/create-new-raw-gateway-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"lPonj3Ep\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VOLT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Volt\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VOLT\\\"],[12],[1,\\\"Volt\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"RSSI\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"RSSI\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"RSSI\\\"],[12],[1,\\\"RSSI\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"FW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Firmware Version\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"FW\\\"],[12],[1,\\\"Firmware Version\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<=)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[1,\\\"V\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[1,\\\"dBm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[1,\\\"Ver.\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,6]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,7]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"unless\\\",\\\"triggeredTimeText\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/edit-gateway-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"8ghd4996\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,6],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[41,[28,[37,7],[[30,1,[\\\"hasChildren\\\"]],true],null],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[1,[28,[35,8],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\"],[[30,1,[\\\"children\\\"]],[28,[37,0],[[30,0],\\\"sortBy\\\"],null],[33,9]]]]],[13]],[]],null],[13]],[\\\"@gateway\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"single-save-input\\\",\\\"gateway\\\",\\\"single-save-datetime-picker\\\",\\\"eq\\\",\\\"gateway-list\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pG+TMTIi\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/nvd3-temporal-gateway-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"kUjSLxgE\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"anchorDistances\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"gatewayType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp.\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"gateway\\\",\\\"gatewayType\\\",\\\"gatewayValueObject\\\",\\\"gatewayValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"setProp\\\",\\\"omitTemperature\\\"],[[30,2,[\\\"id\\\"]],[30,2],[30,2,[\\\"gatewayType\\\"]],[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[33,7],false]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@gatewayData\\\",\\\"@gateway\\\",\\\"anchor\\\",\\\"gatewayValue\\\",\\\"index\\\",\\\"@temperatureData\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"blucell/create-new-raw-gateway-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getGatewayData\\\",\\\"single-save-gateway-inputs-array-table-row-cells\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"zUJYUeTg\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Temperature\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"temperature-gateway-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@left_axis_field\\\",\\\"ddm\\\",\\\"@right_axis_field\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"TAbyQFlM\",\"block\":\"[[[1,\\\"blucell\\\\n\\\"],[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[33,3],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"selected\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"right_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Dj8Ru+4f\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Readings\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Temperature\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"temp-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@right_axis_field\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"left_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bluvibe/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"mQpSyJ+p\",\"block\":\"[[[10,\\\"ul\\\"],[14,0,\\\"breadcrumbs\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,1],[[28,[37,1],[[33,2]],null]],null],null,[[[1,\\\"    \\\"],[10,\\\"li\\\"],[15,0,[52,[30,1,[\\\"isCurrent\\\"]],\\\"current\\\"]],[12],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"linkable\\\"]],[[[1,\\\"        \\\"],[41,[30,1,[\\\"model\\\"]],[[[1,\\\"\\\\n\\\"],[6,[39,4],null,[[\\\"route\\\",\\\"model\\\"],[[30,1,[\\\"path\\\"]],[30,1,[\\\"model\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"            \\\"],[1,[30,1,[\\\"label\\\"]]],[1,\\\"\\\\n\\\"]],[]]]]]],[]],[[[6,[39,4],null,[[\\\"route\\\"],[[30,1,[\\\"path\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"            \\\"],[1,[30,1,[\\\"label\\\"]]],[1,\\\"\\\\n\\\"]],[]]]]]],[]]]],[]],[[[1,\\\"        \\\"],[1,[30,1,[\\\"label\\\"]]],[1,\\\"\\\\n\\\"]],[]]],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"]],[1]],null],[13],[1,\\\"\\\\n\\\"]],[\\\"crumb\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"breadCrumbs\\\",\\\"if\\\",\\\"link-to\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/bread-crumbs.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"tuxvfPNw\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the newAlertObject.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ShM+P5dZ\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstrument_length\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Length (m):\\\\t\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"instrumentLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"instrumentLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstrumentLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"strokeLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"strokeLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSensorObjectBulbed\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Bulbed:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newInstrumentObjectBulbed\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,1],[[30,0],\\\"bulbChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPlated\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Plated:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newInstrumentObjectPlated\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,1],[[30,0],\\\"plateChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectHeadAt\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Head at:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newInstrumentObjectHeadAt\\\"],[15,\\\"onchange\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,7]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,11],[[30,3,[\\\"key\\\"]],[33,7]],null]],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"title\\\"]]],[13]],[3]],null],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"elasticLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"elasticLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"ultimateLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"ultimateLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"elasticLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"elasticLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"ultimateLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"ultimateLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\",\\\"selectOption\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\",\\\"headAt\\\",\\\"each\\\",\\\"-track-array\\\",\\\"headAts\\\",\\\"is-equal\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"1ncaccFw\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"91q0sxkF\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manuallyaaa\\\"],[24,1,\\\"alertStaticDynamic\\\"],[24,\\\"disabled\\\",\\\"\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],null]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"geRJfk1j\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[41,[28,[37,4],[[33,5,[\\\"channelsNum\\\"]],2],null],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,6],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,5,[\\\"id\\\"]],[33,5,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,5],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],[33,5,[\\\"east\\\"]],[33,5,[\\\"north\\\"]],[33,5,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"headAt\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Head at:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"selectOptions\\\",\\\"id\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,13],\\\"headAt\\\",\\\"id,title\\\",[33,5,[\\\"headAt\\\"]],[33,5],\\\"title\\\",\\\"id\\\",\\\"headAt\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Length (m):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"instrumentLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"strokeLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"referenceAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"referenceAnchor\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"bulbed\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Bulbed:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,14],null,[[\\\"object\\\",\\\"field\\\"],[[33,5],\\\"bulbed\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"plated\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Plated:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,14],null,[[\\\"object\\\",\\\"field\\\"],[[33,5],\\\"plated\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,14],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,5],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"elasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,15],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"elasticLimitPct\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,15],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"ultimateLimitPct\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"elasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,15],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"elasticLimitFce\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,15],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"ultimateLimitFce\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentStiffness\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stiffness (kN/%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,5],\\\"text\\\",\\\"instrumentStiffness\\\",false]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Nodes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,16],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[33,5,[\\\"headAt\\\",\\\"id\\\"]],[33,5,[\\\"channelsNum\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"gt\\\",\\\"instrument\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-select\\\",\\\"headAts\\\",\\\"single-save-checkbox\\\",\\\"single-save-input-numeric\\\",\\\"single-save-instrument-anchors\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"n6hBxNJE\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"e/fPDZCD\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qa3uFJjL\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,13],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"cable/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"je5Jh1a3\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"load-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Load\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Ecmg/0A7\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"acceleration-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Acceleration\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"load-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Load\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/cable/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"py/6Sfne\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New blast event\\\"],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"th\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,2],[[30,0],\\\"cancelNew\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,2],[[30,0],\\\"saveNew\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"timestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newBlastEventObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectCoordinatesX\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,7]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,7]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newBlastEventObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,8]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newBlastEventObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,9]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newBlastEventObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectComments\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Comments:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,6,[\\\"comments\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"comments\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newBlastEventObjectComments\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectIsVisible\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Is visible:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2\\\"],[12],[11,\\\"input\\\"],[16,3,[36,10]],[24,\\\"checked\\\",\\\"\\\"],[24,1,\\\"newBlastEventObjectIsVisible\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,2],[[30,0],[28,[37,4],[[33,6,[\\\"isVisible\\\"]]],null]],[[\\\"value\\\",\\\"on\\\"],[\\\"target.value\\\",\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Delay:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,6,[\\\"delay\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"delay\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"delay\\\"],[14,0,\\\"form-control datepicker-input\\\"],[14,4,\\\"time\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,11,[\\\"value\\\"]]]]]],[14,1,\\\"newBlastEventObject.level\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"-1\\\"],[14,\\\"default\\\",\\\"\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Select a Level. \\\"],[13],[42,[28,[37,13],[[28,[37,13],[[33,14]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObject.project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,11,[\\\"value\\\"]]]]]],[14,1,\\\"newBlastEventObject.project\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Please choose a \\\"],[1,[28,[35,15],[[33,16],\\\".\\\"],null]],[13],[10,\\\"option\\\"],[14,2,\\\"-1\\\"],[14,\\\"default\\\",\\\"\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Select a project. \\\"],[13],[42,[28,[37,13],[[28,[37,13],[[33,17]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,2,[\\\"id\\\"]]]]],[12],[1,[30,2,[\\\"value\\\"]]],[13]],[2]],null],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectStope\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stope:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"stope\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"stope\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newBlastEventObjectStope\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectTonnes\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Tonnes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"tonnes\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"tonnes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newBlastEventObjectTonnes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectBlastType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Blast type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newBlastEventObjectBlastType\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,18]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[33,19]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,20],[[30,3,[\\\"key\\\"]],[33,18]],null]],[15,2,[29,[[30,3,[\\\"key\\\"]]]]],[12],[1,[30,3,[\\\"value\\\"]]],[13]],[3]],null],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13]],[]],null]],[\\\"levelOption\\\",\\\"projectOption\\\",\\\"selectOption\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"action\\\",\\\"blastEvents\\\",\\\"mut\\\",\\\"timestamp\\\",\\\"newBlastEventObject\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"field\\\",\\\"target\\\",\\\"each\\\",\\\"-track-array\\\",\\\"levelLookupList\\\",\\\"concat\\\",\\\"Project\\\",\\\"projectLookupList\\\",\\\"blastType\\\",\\\"selectOptionsArray\\\",\\\"is-equal\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/create-new-blast-event-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9vzhqSJf\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New seismic event\\\"],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"th\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,2],[[30,0],\\\"cancelNew\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,2],[[30,0],\\\"saveNew\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"timestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectCoordinatesX\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,7]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,7]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,8]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,9]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectComments\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Comments:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,6,[\\\"comments\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"comments\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectComments\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectIsVisible\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Is visible:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2\\\"],[12],[11,\\\"input\\\"],[16,3,[36,10]],[24,\\\"checked\\\",\\\"\\\"],[24,1,\\\"newSeismicEventObjectIsVisible\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,2],[[30,0],[28,[37,4],[[33,6,[\\\"isVisible\\\"]]],null]],[[\\\"value\\\",\\\"on\\\"],[\\\"target.value\\\",\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectMomentMagnitude\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Moment magnitude:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"momentMagnitude\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"momentMagnitude\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectMomentMagnitude\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectSeismicMoment\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Seismic moment:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"seismicMoment\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"seismicMoment\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectSeismicMoment\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectSourceRadius\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Source radius:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"sourceRadius\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"sourceRadius\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectSourceRadius\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectPeakParticleVelocity\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Peak particle velocity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"peakParticleVelocity\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"peakParticleVelocity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectPeakParticleVelocity\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectPeakParticleAcceleration\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Peak particle acceleration:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"peakParticleAcceleration\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"peakParticleAcceleration\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectPeakParticleAcceleration\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectEnergy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Energy:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,6,[\\\"energy\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,6,[\\\"energy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newSeismicEventObjectEnergy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newSeismicEventObjectSeismicType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Seismic type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newSeismicEventObjectSeismicType\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,11]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[33,14]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,15],[[30,1,[\\\"key\\\"]],[33,11]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13]],[]],null]],[\\\"selectOption\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"action\\\",\\\"seismicEvents\\\",\\\"mut\\\",\\\"timestamp\\\",\\\"newSeismicEventObject\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"field\\\",\\\"seismicType\\\",\\\"each\\\",\\\"-track-array\\\",\\\"selectOptionsArray\\\",\\\"is-equal\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/create-new-seismic-event-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"2Lt2Hwko\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[10,0],[14,5,\\\"height:20px;display:flex;flex-direction:row;padding:0\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Export instrument data to file\\\"],[13],[10,0],[14,5,\\\"margin-left:5px;width:20px\\\"],[12],[8,[39,2],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Advanced Search settings affect export data\\\",\\\"top\\\"]],null],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"exclamation-circle\\\"]],null],[1,\\\" \\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"th\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"cancel-new\\\"],[4,[38,4],[[30,0],\\\"cancel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"file_format\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"File format:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"file_format\\\"],[15,\\\"onchange\\\",[28,[37,4],[[30,0],[28,[37,5],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,8],[[28,[37,8],[[33,9]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,10],[[30,1,[\\\"key\\\"]],[30,1]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"File link:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,2],[14,0,\\\"mb-0\\\"],[12],[11,3],[24,5,\\\"cursor: pointer\\\"],[24,0,\\\"exportDataFileLink\\\"],[4,[38,4],[[30,0],\\\"downloadFile\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,11]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"width\\\",\\\"50px\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[41,[33,12],[[[10,0],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[13],[13],[13]],[]],null]],[\\\"fileFormat\\\"],false,[\\\"if\\\",\\\"isVisibleExportDataForm\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"action\\\",\\\"mut\\\",\\\"fileFormat\\\",\\\"each\\\",\\\"-track-array\\\",\\\"fileFormats\\\",\\\"is-equal\\\",\\\"fileName\\\",\\\"loading\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/data-export-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"c/tH0vPv\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Export gateway data to file\\\"],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[12],[13],[10,\\\"th\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"cancel-new\\\"],[4,[38,2],[[30,0],\\\"cancel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"file_format\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"File format:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"file_format\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,1,[\\\"key\\\"]],[30,1]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"File link:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,2],[14,0,\\\"mb-0\\\"],[12],[11,3],[24,5,\\\"cursor: pointer\\\"],[24,0,\\\"exportDataFileLink\\\"],[4,[38,2],[[30,0],\\\"downloadFile\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,9]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"width\\\",\\\"50px\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[41,[33,10],[[[10,0],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[13],[13],[13]],[]],null]],[\\\"fileFormat\\\"],false,[\\\"if\\\",\\\"isVisibleExportDataForm\\\",\\\"action\\\",\\\"mut\\\",\\\"fileFormat\\\",\\\"each\\\",\\\"-track-array\\\",\\\"fileFormats\\\",\\\"is-equal\\\",\\\"fileName\\\",\\\"loading\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/data-export-gateway-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"VO4VVx2F\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[12],[1,\\\"Import seismic data from file\\\"],[13],[10,\\\"th\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,0],[[30,0],\\\"cancelImport\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,0],[[30,0],\\\"importFile\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Import\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"file_format\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"File format:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"file_format\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,4],[[28,[37,4],[[33,5]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,6],[[30,1,[\\\"key\\\"]],[30,1]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"File:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,7],null,[[\\\"isSubmitting\\\",\\\"fileSettings\\\",\\\"notSubmitting\\\",\\\"errorHappened\\\"],[[33,8],[33,9],\\\"notSubmitting\\\",\\\"errorHappened\\\"]]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"width\\\",\\\"50px\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[41,[33,11],[[[10,0],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[13],[41,[33,12],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error importing the instrument data.\\\"],[13],[13],[13]],[]],null],[13],[13]],[\\\"fileFormat\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"fileFormat\\\",\\\"each\\\",\\\"-track-array\\\",\\\"fileFormats\\\",\\\"is-equal\\\",\\\"file-upload-seis\\\",\\\"isSubmitting\\\",\\\"fileSettings\\\",\\\"if\\\",\\\"loading\\\",\\\"isVisibleError\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/data-import-form-seis.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"e4NIY3eq\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[12],[1,\\\"Import instrument data from file\\\"],[13],[10,\\\"th\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,2],[[30,0],\\\"cancelImport\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,2],[[30,0],\\\"importFile\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Import\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"file_format\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"File format:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"file_format\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,1,[\\\"key\\\"]],[30,1]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"date_format\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Date format:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"date_format\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Select Date Format\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,10]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,2,[\\\"key\\\"]],[30,2]],null]],[15,2,[29,[[30,2,[\\\"key\\\"]]]]],[12],[1,[30,2,[\\\"value\\\"]]],[13]],[2]],null],[13],[13],[13],[13],[13],[13],[13],[13],[41,[33,11],[[[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[8,[39,12],null,[[\\\"@title\\\",\\\"@placement\\\"],[[30,0,[\\\"getUnitInstrComment\\\"]],\\\"top\\\"]],null],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"is RAW:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,13],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"isRAW\\\",[33,14],\\\"custom-control-input\\\"]]]],[13],[13],[13],[13],[13],[13]],[]],null],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"File:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group rowc\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,15],null,[[\\\"isSubmitting\\\",\\\"fileSettings\\\",\\\"notSubmitting\\\",\\\"errorHappened\\\"],[[33,16],[33,17],\\\"notSubmitting\\\",\\\"errorHappened\\\"]]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"width\\\",\\\"50px\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[41,[33,18],[[[10,0],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[13],[41,[33,19],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"8\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error importing the instrument data.\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"8\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[34,20]],[13],[13],[13]],[]],null],[13],[13]],[]],null]],[\\\"fileFormat\\\",\\\"dateFormat\\\"],false,[\\\"if\\\",\\\"isVisibleImportDataForm\\\",\\\"action\\\",\\\"mut\\\",\\\"fileFormat\\\",\\\"each\\\",\\\"-track-array\\\",\\\"fileFormats\\\",\\\"is-equal\\\",\\\"dateFormat\\\",\\\"dateFormats\\\",\\\"showIsRAW\\\",\\\"bs-tooltip\\\",\\\"input\\\",\\\"isRAW\\\",\\\"file-upload\\\",\\\"isSubmitting\\\",\\\"fileSettings\\\",\\\"loading\\\",\\\"isVisibleError\\\",\\\"error\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/data-import-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Fk/HC+6a\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[12],[1,\\\"Import gateway data from file\\\"],[13],[10,\\\"th\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,2],[[30,0],\\\"cancelImport\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,2],[[30,0],\\\"importFile\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Import\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"file_format\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"File format:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"file_format\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,1,[\\\"key\\\"]],[30,1]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"date_format\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Date format:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"date_format\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Select Date Format\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,10]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,2,[\\\"key\\\"]],[30,2]],null]],[15,2,[29,[[30,2,[\\\"key\\\"]]]]],[12],[1,[30,2,[\\\"value\\\"]]],[13]],[2]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newBlastEventObjectDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"File:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,11],null,[[\\\"isSubmitting\\\",\\\"fileSettings\\\",\\\"notSubmitting\\\",\\\"errorHappened\\\"],[[33,12],[33,13],\\\"notSubmitting\\\",\\\"errorHappened\\\"]]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"width\\\",\\\"50px\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[41,[33,14],[[[10,0],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[13],[41,[33,15],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"8\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error importing the gateway data.\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"8\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[34,16]],[13],[13],[13]],[]],null],[13],[13]],[]],null]],[\\\"fileFormat\\\",\\\"dateFormat\\\"],false,[\\\"if\\\",\\\"isVisibleImportDataForm\\\",\\\"action\\\",\\\"mut\\\",\\\"fileFormat\\\",\\\"each\\\",\\\"-track-array\\\",\\\"fileFormats\\\",\\\"is-equal\\\",\\\"dateFormat\\\",\\\"dateFormats\\\",\\\"file-gateway-upload\\\",\\\"isSubmitting\\\",\\\"fileSettings\\\",\\\"loading\\\",\\\"isVisibleError\\\",\\\"error\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/data-import-gateway-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"je2QZq34\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qsgmOKI/\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"strokeLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"strokeLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ATVJ3J6e\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"umlheAyY\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],null]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"jVP4xqX7\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[41,[28,[37,4],[[33,5,[\\\"channelsNum\\\"]],2],null],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,6],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,5,[\\\"id\\\"]],[33,5,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,5],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],[33,5,[\\\"east\\\"]],[33,5,[\\\"north\\\"]],[33,5,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"strokeLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"baseLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Base Length (m):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"baseLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,5],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Nodes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,13],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[33,5,[\\\"headAt\\\",\\\"id\\\"]],[33,5,[\\\"channelsNum\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"gt\\\",\\\"instrument\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\",\\\"single-save-instrument-anchors\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"kfvzioUu\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"TAF6fe8D\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"/INxk2w/\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,13],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"dconv/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pjj4XIVW\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"E+O/CBZh\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"acceleration-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Acceleration\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dconv/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"rUKsMskW\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[41,[33,3],[[[10,\\\"input\\\"],[15,2,[36,4]],[15,\\\"oninput\\\",[28,[37,5],[[30,0],[28,[37,6],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[41,[33,8],[[[10,\\\"textarea\\\"],[14,\\\"rows\\\",\\\"3\\\"],[15,2,[36,4]],[15,\\\"oninput\\\",[28,[37,5],[[30,0],[28,[37,6],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[11,1],[24,0,\\\"save\\\"],[4,[38,5],[[30,0],\\\"save\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,5],[[30,0],\\\"cancel\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,12],[[33,9],[33,7]],null]],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"right\\\"]],null],[1,[28,[35,12],[[33,9],[33,7]],null]],[13],[13],[13],[13]],[]]]],[],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"isTextInput\\\",\\\"newValue\\\",\\\"action\\\",\\\"mut\\\",\\\"field\\\",\\\"isTextarea\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/display-noneditable-numeric.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"DPjZVSij\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Pressure\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"kPa\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HT5aEQMy\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"glByGDFN\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"EOcwAyJL\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Pressure\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Pressure\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],null]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"kPa\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"kPa/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"kPa/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"r1P1Dlpb\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"gD2cCbBZ\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"R1Q0EGnh\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"mQ5igqQk\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings LOTS: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,12]],null]],null],null,[[[1,[28,[35,13],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,14],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,15],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,16],[[30,7,[\\\"id\\\"]],[28,[37,17],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"dppc/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"displacementData2\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"BYVof8XX\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[30,2],[[[1,\\\"      \\\"],[1,[30,2]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        Pressure\\\\n\\\"]],[]]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"Pressure\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,4],[[33,5],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Pressure\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"Pressure Rate\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,4],[[33,5],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Press. Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"mmH20\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,4],[[33,5],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"mmH20\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/dppc/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"cKB4lWP7\",\"block\":\"[[[6,[39,0],null,[[\\\"translucentOverlay\\\"],[true]],[[\\\"default\\\"],[[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;justify-content:space-between\\\"],[12],[10,\\\"h4\\\"],[12],[1,[34,1]],[13],[13],[10,0],[14,0,\\\"modal-body\\\"],[12],[10,0],[14,0,\\\"edit-modal\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"General\\\"],[13],[10,0],[14,5,\\\"padding:10px;display:flex;flex-direction:row;align-items:center;justify-content:space-evenly\\\"],[12],[10,0],[14,5,\\\"display: none;flex-direction: row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,\\\"Is Admin:\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"isStaffCheckbox\\\"],[14,\\\"disabled\\\",\\\"\\\"],[15,\\\"checked\\\",[36,2]],[14,4,\\\"checkbox\\\"],[12],[13],[13],[10,0],[14,5,\\\"display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,\\\"Is Master User:\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"isActiveCheckbox\\\"],[14,\\\"disabled\\\",\\\"\\\"],[15,\\\"checked\\\",[36,3]],[14,4,\\\"checkbox\\\"],[12],[13],[13],[10,0],[14,5,\\\"display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,\\\"Is Verified:\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"isActiveCheckbox\\\"],[14,\\\"disabled\\\",\\\"\\\"],[15,\\\"checked\\\",[36,4]],[14,4,\\\"checkbox\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"padding-left:10px;display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;width:50%\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;width:100%;justify-content: space-between;\\\"],[12],[10,0],[14,5,\\\"margin-right:5px\\\"],[12],[1,\\\"Company:\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"companyTextbox\\\"],[15,2,[36,5]],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,5,\\\"padding-top:10px;display:flex;flex-direction:row;align-items: center;width:100%;justify-content: space-between;\\\"],[12],[10,0],[14,5,\\\"margin-right:5px\\\"],[12],[1,\\\"Position:\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"positionTextbox\\\"],[15,2,[36,6]],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"Permissions\\\"],[13],[10,0],[14,5,\\\"padding:10px;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"canLoginVPCheckbox\\\"],[14,5,\\\"margin-right:5px;\\\"],[15,\\\"checked\\\",[36,7]],[14,4,\\\"checkbox\\\"],[12],[13],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,\\\"Can login to VantagePoint\\\"],[13],[13],[10,0],[14,5,\\\"display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"canUploadVPCheckbox\\\"],[14,5,\\\"margin-right:5px;\\\"],[15,\\\"checked\\\",[36,8]],[14,4,\\\"checkbox\\\"],[12],[13],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,\\\"Can upload to VantagePoint\\\"],[13],[13],[13],[13],[13],[10,0],[14,0,\\\"modal-footer\\\"],[12],[11,\\\"button\\\"],[24,0,\\\"btn btn-secondary\\\"],[4,[38,9],[[30,0],\\\"close\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Cancel\\\"],[13],[11,\\\"button\\\"],[24,0,\\\"btn btn-primary\\\"],[4,[38,9],[[30,0],\\\"save\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Save\\\"],[13],[13]],[]]]]]],[],false,[\\\"modal-dialog\\\",\\\"title\\\",\\\"getIsStaff\\\",\\\"getIsMasterUser\\\",\\\"getIsActive\\\",\\\"getCompany\\\",\\\"getPosition\\\",\\\"canLoginToVP\\\",\\\"canUploadToVP\\\",\\\"action\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/edit-my-profile-user-modal.hbs\",\"isStrictMode\":false});","define(\"geotechnical-data-platform-new/templates/components/ember-popper-targeting-parent\", [\"exports\", \"ember-popper/templates/components/ember-popper-targeting-parent\"], function (_exports, _emberPopperTargetingParent) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopperTargetingParent.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/templates/components/ember-popper\", [\"exports\", \"ember-popper/templates/components/ember-popper\"], function (_exports, _emberPopper) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _emberPopper.default;\n    }\n  });\n});\n","export default Ember.HTMLBars.template({\"id\":\"59MH32O0\",\"block\":\"[[[18,1,null]],[\\\"&default\\\"],false,[\\\"yield\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/file-upload-seis.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"JBTL/9sx\",\"block\":\"[[[18,1,null]],[\\\"&default\\\"],false,[\\\"yield\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/file-upload.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"0TE/tFEY\",\"block\":\"[[[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Search for an alert\\\"],[13],[10,0],[14,0,\\\"input-group\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"quickTableFilterAlert\\\"],[14,\\\"aria-describedby\\\",\\\"emailHelp\\\"],[14,\\\"placeholder\\\",\\\"What?\\\"],[15,2,[36,0]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[10,1],[14,0,\\\"input-group-btn\\\"],[12],[11,\\\"button\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,1],[[30,0],\\\"updateProperty\\\",\\\"searchValue\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Search\\\"],[13],[13],[13],[13]],[],false,[\\\"searchValue\\\",\\\"action\\\",\\\"mut\\\",\\\"value\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/filter-text-input-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YHOZ2W/T\",\"block\":\"[[[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Quick search\\\"],[13],[10,0],[14,0,\\\"input-group\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"quickTableFilter\\\"],[14,\\\"aria-describedby\\\",\\\"emailHelp\\\"],[14,\\\"placeholder\\\",\\\"What?\\\"],[15,2,[36,0]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[10,1],[14,0,\\\"input-group-btn\\\"],[12],[11,\\\"button\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,1],[[30,0],\\\"updateProperty\\\",\\\"searchValue\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Search\\\"],[13],[13],[13],[13]],[],false,[\\\"searchValue\\\",\\\"action\\\",\\\"mut\\\",\\\"value\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/filter-text-input-events.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"G1+bhDst\",\"block\":\"[[[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Search for a Gateway\\\"],[13],[10,0],[14,0,\\\"input-group\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"quickTableFilter\\\"],[14,\\\"aria-describedby\\\",\\\"emailHelp\\\"],[14,\\\"placeholder\\\",\\\"What?\\\"],[15,2,[36,0]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[10,1],[14,0,\\\"input-group-btn\\\"],[12],[11,\\\"button\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,1],[[30,0],\\\"updateProperty\\\",\\\"searchValue\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Search\\\"],[13],[13],[13],[13]],[],false,[\\\"searchValue\\\",\\\"action\\\",\\\"mut\\\",\\\"value\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/filter-text-input-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"4ZWwCJlm\",\"block\":\"[[[10,0],[14,5,\\\"width: 25%; margin-bottom: 15px;\\\"],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Search\\\"],[13],[10,0],[14,0,\\\"input-group\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"quickTableFilter\\\"],[14,2,\\\"search\\\"],[14,\\\"aria-describedby\\\",\\\"emailHelp\\\"],[15,2,[36,0]],[15,\\\"onchange\\\",[28,[37,1],[[30,0],\\\"updateProperty\\\",\\\"search\\\"],null]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"margin-bottom: 15px;\\\"],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Date\\\"],[13],[10,0],[14,0,\\\"input-group\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[15,2,[36,2]],[15,\\\"onchange\\\",[28,[37,1],[[30,0],\\\"updateProperty\\\",\\\"startDate\\\"],null]],[14,1,\\\"startRangeDateComponent\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[15,2,[36,3]],[15,\\\"onchange\\\",[28,[37,1],[[30,0],\\\"updateProperty\\\",\\\"endDate\\\"],null]],[14,1,\\\"endRangeDateComponent\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"margin-top: 10px;\\\"],[12],[10,1],[14,0,\\\"input-group-btn\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin-right: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,1],[[30,0],\\\"search\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Search\\\"],[13],[11,\\\"button\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,1],[[30,0],\\\"reset\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset\\\"],[13],[13],[13]],[],false,[\\\"search\\\",\\\"action\\\",\\\"startDate\\\",\\\"endDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/filter-text-input-log-viewer.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"nz4Uy21x\",\"block\":\"[[[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Search for an instrument\\\"],[13],[10,0],[14,0,\\\"input-group\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"quickTableFilter\\\"],[14,\\\"aria-describedby\\\",\\\"emailHelp\\\"],[14,\\\"placeholder\\\",\\\"What?\\\"],[15,2,[36,0]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[10,1],[14,0,\\\"input-group-btn\\\"],[12],[11,\\\"button\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,1],[[30,0],\\\"updateProperty\\\",\\\"searchValue\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Search\\\"],[13],[13],[13],[13]],[],false,[\\\"searchValue\\\",\\\"action\\\",\\\"mut\\\",\\\"value\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/filter-text-input.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"flN1vx3f\",\"block\":\"[[[41,[28,[37,1],[[30,1],\\\"15\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],null]],[\\\"@instrumentType\\\",\\\"@selected\\\",\\\"@instrumentId\\\"],false,[\\\"if\\\",\\\"eq\\\",\\\"vibe/frequency-chart-dropdown\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/frequency-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qcOcQcrD\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],50],null],[[[1,\\\"      50\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],300],null],[[[1,\\\"      300\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],100],null],[[[1,\\\"      100\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],10],null],[[[1,\\\"      10\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],1],null],[[[1,\\\"      All\\\\n\\\"]],[]],[[[1,\\\"      100\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"display_records\\\"],[300]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"300\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"display_records\\\"],[100]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"100\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"display_records\\\"],[50]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"50\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"display_records\\\"],[10]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"10\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"display_records\\\"],[1]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@display_records\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/frequency-display-records-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"CNzcdKZN\",\"block\":\"[[[8,[39,0],[[16,5,[52,[30,0,[\\\"showLoading\\\"]],\\\"pointer-events: none; opacity: 0.6;\\\"]]],[[\\\"@selected\\\",\\\"@onChange\\\"],[[30,0,[\\\"selectedFreqEventTabKey\\\"]],[28,[37,2],[[30,0],\\\"updateSelectedTab\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"tab-content\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,4],[[28,[37,4],[[30,0,[\\\"buildTabsInstrTypeDependent\\\"]]],null]],null],null,[[[1,\\\"      \\\"],[8,[30,1,[\\\"pane\\\"]],null,[[\\\"@title\\\",\\\"@id\\\"],[[30,2,[\\\"label\\\"]],[30,2,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,5],[[30,2,[\\\"id\\\"]],\\\"raw\\\"],null],[[[1,\\\"          \\\"],[8,[39,0],[[24,1,\\\"subTabSection\\\"],[16,5,[29,[\\\"margin-top: 5px;\\\",[52,[30,0,[\\\"showLoading\\\"]],\\\"pointer-events: none; opacity: 0.6;\\\"]]]]],[[\\\"@selected\\\",\\\"@onChange\\\"],[[30,0,[\\\"selectedSubTabKey\\\"]],[28,[37,2],[[30,0],\\\"updateSelectedSubTab\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,4],[[28,[37,4],[[30,0,[\\\"buildSubTabsInstrTypeDependent\\\"]]],null]],null],null,[[[1,\\\"              \\\"],[8,[30,3,[\\\"pane\\\"]],null,[[\\\"@title\\\",\\\"@id\\\"],[[30,4,[\\\"label\\\"]],[30,4,[\\\"id\\\"]]]],null],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"          \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[]],null],[41,[28,[37,6],[[28,[37,5],[[30,2,[\\\"id\\\"]],\\\"acceleration\\\"],null],[28,[37,5],[[30,2,[\\\"id\\\"]],\\\"fft\\\"],null],[28,[37,5],[[30,2,[\\\"id\\\"]],\\\"velocity\\\"],null],[28,[37,5],[[30,2,[\\\"id\\\"]],\\\"displacement\\\"],null]],null],[[[1,\\\"          \\\"],[8,[39,0],[[16,5,[29,[\\\"margin-top: 5px;\\\",[52,[30,0,[\\\"showLoading\\\"]],\\\"pointer-events: none; opacity: 0.6;\\\"]]]]],[[\\\"@selected\\\",\\\"@onChange\\\"],[[30,0,[\\\"selectedSubTabKey\\\"]],[28,[37,2],[[30,0],\\\"updateSelectedSubTab\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,4],[[28,[37,4],[[30,0,[\\\"buildSubTabsInstrTypeDependent\\\"]]],null]],null],null,[[[1,\\\"              \\\"],[8,[30,5,[\\\"pane\\\"]],null,[[\\\"@title\\\",\\\"@id\\\"],[[30,6,[\\\"label\\\"]],[30,6,[\\\"id\\\"]]]],null],[1,\\\"\\\\n\\\"],[41,[28,[37,6],[[28,[37,5],[[30,6,[\\\"id\\\"]],\\\"sub_acceleration_linear_regression\\\"],null],[28,[37,5],[[30,6,[\\\"id\\\"]],\\\"sub_velocity_linear_regression\\\"],null],[28,[37,5],[[30,6,[\\\"id\\\"]],\\\"sub_displacement_linear_regression\\\"],null]],null],[[[1,\\\"                \\\"],[8,[39,0],[[24,5,\\\"margin-top: 5px;\\\"]],[[\\\"@selected\\\",\\\"@onChange\\\"],[[30,0,[\\\"selectedFreqEventSubSubTabKey\\\"]],[28,[37,2],[[30,0],\\\"updateSelectedSubSubTab\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,4],[[28,[37,4],[[30,0,[\\\"buildSubSubTabsInstrTypeDependent\\\"]]],null]],null],null,[[[1,\\\"                    \\\"],[8,[30,7,[\\\"pane\\\"]],null,[[\\\"@title\\\",\\\"@id\\\"],[[30,8,[\\\"label\\\"]],[30,8,[\\\"id\\\"]]]],null],[1,\\\"\\\\n\\\"]],[8]],null],[1,\\\"                \\\"]],[7]]]]],[1,\\\"\\\\n\\\"]],[]],null]],[6]],null],[1,\\\"          \\\"]],[5]]]]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"      \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"tab\\\",\\\"tabDef\\\",\\\"subTab\\\",\\\"subTabDef1\\\",\\\"subTab\\\",\\\"subTabDef2\\\",\\\"subTab\\\",\\\"subSubTab\\\"],false,[\\\"bs-tab\\\",\\\"if\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"eq\\\",\\\"or\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/frequency-event-tabs.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"0dD8NDbt\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"alertGatewayListError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to delete an alert.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[33,1]],[[[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Gateway ID\\\",\\\"gateway.id\\\",[33,3],[30,1]]]]]],[]],null],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Metric\\\",\\\"metric\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Direction\\\",\\\"direction\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Value\\\",\\\"value\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Severity\\\",\\\"severity\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Response\\\",\\\"response\\\",[33,3],[30,1]]]]],[1,[28,[35,2],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Status\\\",\\\"isTriggered\\\",[33,3],[30,1]]]]],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,4],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[33,8]],null]],null],null,[[[41,[30,2,[\\\"isActive\\\"]],[[[41,[30,2,[\\\"isTriggered\\\"]],[[[10,\\\"tr\\\"],[14,0,\\\"alertLow\\\"],[12],[41,[51,[33,1]],[[[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-gateway\\\",[30,2,[\\\"gateway\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,2,[\\\"gateway\\\",\\\"id\\\"]]]],[]]]]],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Volt\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"RSSI\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"FW Version\\\"],[13]],[]],null],[41,[28,[37,12],[[30,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,12],[[30,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"value\\\"]]],[13],[41,[28,[37,11],[[30,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,2,[\\\"isActive\\\"]],[[[41,[30,2,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,13],[[28,[37,14],[[33,15],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,4],[[30,0],\\\"remove\\\",[33,16,[\\\"gateways\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-alert\\\",[30,2,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,5],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[41,[51,[33,1]],[[[10,\\\"td\\\"],[12],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"metric\\\"]],\\\"VOLT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Volt\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"metric\\\"]],\\\"RSSI\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"RSSI\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"metric\\\"]],\\\"FW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"FW Version\\\"],[13]],[]],null],[41,[28,[37,12],[[30,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\">=\\\"],[13]],[]],null],[41,[28,[37,12],[[30,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"<=\\\"],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"value\\\"]]],[13],[41,[28,[37,11],[[30,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Low\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"High\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"VP Display\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send Email\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Send SMS Msg\\\"],[13]],[]],null],[41,[28,[37,11],[[30,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"td\\\"],[12],[1,\\\"Trigger Alarm\\\"],[13]],[]],null],[41,[30,2,[\\\"isActive\\\"]],[[[41,[30,2,[\\\"isTriggered\\\"]],[[[10,\\\"td\\\"],[12],[1,\\\"ALERT\\\"],[13]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Active\\\"],[13]],[]]]],[]],[[[10,\\\"td\\\"],[12],[1,\\\"Inactive\\\"],[13]],[]]],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,13],[[28,[37,14],[[33,15],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,4],[[30,0],\\\"remove\\\",[33,16,[\\\"gateways\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[10,\\\"td\\\"],[12],[6,[39,10],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-gateway-alert\\\",[30,2,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[8,[39,5],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null]],[]]]]],[13],[13]],[]]]],[]],null]],[2]],null],[13],[13]],[\\\"@sortBy\\\",\\\"alertRow\\\"],false,[\\\"unless\\\",\\\"isGW\\\",\\\"sortable-table-header\\\",\\\"ordering\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"each\\\",\\\"-track-array\\\",\\\"processedGatewayAlerts\\\",\\\"if\\\",\\\"link-to\\\",\\\"is-equal\\\",\\\"eq\\\",\\\"active-class\\\",\\\"get\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"model\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/gateway-alerts-list.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Jc3xP69c\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"gatewayChildListError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to delete a gateway.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Node\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Current\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Name\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Type\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Level\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Project\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Location\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Action\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,1],[[28,[37,1],[[30,1]],null]],null],null,[[[10,\\\"tr\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[6,[39,2],null,[[\\\"query\\\",\\\"route\\\",\\\"model\\\"],[[28,[37,3],null,[[\\\"parentGateway\\\"],[[33,4,[\\\"id\\\"]]]]],\\\"edit-gateway\\\",[30,2,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,2,[\\\"id\\\"]]]],[]]]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[41,[28,[37,6],[[30,2,[\\\"currentParent\\\"]],[33,4,[\\\"id\\\"]]],null],[[[8,[39,7],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null]],[]],[[[8,[39,7],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null]],[]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"name\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"gatewayType\\\",\\\"title\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"level\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"project\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"location\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,8],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,7],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,9],[[28,[37,10],[[33,11],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,8],[[30,0],\\\"remove\\\",[33,12,[\\\"gateway\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,8],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[13]],[2]],null],[13],[13]],[\\\"@gatewayChildren\\\",\\\"childGateway\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"gateway\\\",\\\"if\\\",\\\"eq\\\",\\\"fa-icon\\\",\\\"action\\\",\\\"active-class\\\",\\\"get\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"model\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/gateway-list-children.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"EdWoeK+/\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"gatewayListError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to delete a gateway.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[41,[30,1],[[[10,\\\"th\\\"],[12],[1,\\\"Expand\\\"],[13]],[]],null],[1,[28,[35,1],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Gateway ID\\\",\\\"id\\\",[33,2],[33,3]]]]],[1,[28,[35,1],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Destroyed\\\",\\\"active\\\",[33,2],[33,3]]]]],[1,[28,[35,1],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Name\\\",\\\"name\\\",[33,2],[33,3]]]]],[1,[28,[35,1],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Type\\\",\\\"gatewayType\\\",[33,2],[33,3]]]]],[1,[28,[35,1],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Level\\\",\\\"level\\\",[33,2],[33,3]]]]],[1,[28,[35,1],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Project\\\",\\\"project\\\",[33,2],[33,3]]]]],[1,[28,[35,1],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Location\\\",\\\"location\\\",[33,2],[33,3]]]]],[41,[33,4],[[[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,5],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13]],[]],null],[41,[28,[37,7],[[33,4]],null],[[[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[13]],[]],null],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[10,\\\"tr\\\"],[12],[41,[30,1],[[[10,\\\"td\\\"],[12],[41,[30,2,[\\\"hasChildren\\\"]],[[[10,0],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item centered-container\\\"],[12],[10,1],[15,\\\"onclick\\\",[28,[37,5],[[30,0],\\\"toggleExpandedRow\\\",[30,2,[\\\"id\\\"]]],null]],[14,0,\\\"add-new centered-span\\\"],[12],[41,[28,[37,11],[[33,12],[30,2,[\\\"id\\\"]]],null],[[[8,[39,6],null,[[\\\"@icon\\\"],[\\\"minus\\\"]],null],[1,\\\" Nodes\\\"]],[]],null],[41,[51,[28,[37,11],[[33,12],[30,2,[\\\"id\\\"]]],null]],[[[8,[39,6],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" Nodes\\\"]],[]],null],[13],[13]],[]],null],[13]],[]],null],[10,\\\"td\\\"],[12],[6,[39,14],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-gateway\\\",[30,2,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,2,[\\\"id\\\"]]]],[]]]]],[13],[41,[28,[37,7],[[30,2,[\\\"active\\\"]]],null],[[[10,\\\"td\\\"],[14,5,\\\"display: flex; justify-content: center; margin-top: 2px; vertical-align: top;\\\"],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"check-square\\\"]],null],[13]],[]],null],[41,[51,[28,[37,7],[[30,2,[\\\"active\\\"]]],null]],[[[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13]],[]],null],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"name\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"gatewayType\\\",\\\"title\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"level\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"project\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"location\\\"]]],[13],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,5],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,15],[[28,[37,11],[[33,16],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"Any associated nodes will be \\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"sent to the orphaned nodes gateway.\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,5],[[30,0],\\\"remove\\\",[33,17,[\\\"gateway\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,5],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[13],[41,[28,[37,11],[[33,12],[30,2,[\\\"id\\\"]]],null],[[[10,\\\"tr\\\"],[14,0,\\\"expandable-row\\\"],[12],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[1,[28,[35,18],null,[[\\\"gatewayChildren\\\",\\\"gateway\\\"],[[30,2,[\\\"children\\\"]],[30,2]]]]],[13],[13]],[]],null]],[2]],null],[13],[13]],[\\\"@showExpandColumn\\\",\\\"tableRow\\\"],false,[\\\"if\\\",\\\"sortable-table-header\\\",\\\"ordering\\\",\\\"sortBy\\\",\\\"licenceIsValid\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"not\\\",\\\"each\\\",\\\"-track-array\\\",\\\"gateway\\\",\\\"get\\\",\\\"isRowExpanded\\\",\\\"unless\\\",\\\"link-to\\\",\\\"active-class\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"model\\\",\\\"gateway-list-children\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/gateway-list.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HHApyEvN\",\"block\":\"[[],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/gateway-selector.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"r9T33rJ6\",\"block\":\"[[[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/alerts/\\\"],[14,\\\"title\\\",\\\"List of all alerts\\\"],[12],[1,\\\"Total:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;\\\"],[12],[1,[30,1,[\\\"stats\\\",\\\"total\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"vertical-align:middle\\\"],[12],[10,0],[14,1,\\\"circleSmall\\\"],[14,5,\\\"margin-left: 2rem; margin-right: 3px; margin-top: 2px;\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/alerts/?search=active\\\"],[14,\\\"title\\\",\\\"List of active alerts\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;=\\\"],[12],[1,[30,1,[\\\"stats\\\",\\\"active\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-left: 2rem\\\"],[12],[10,0],[14,1,\\\"circle1\\\"],[14,5,\\\"margin-top: 4px; position: relative; top:19px; right: 8px;\\\"],[12],[13],[10,0],[14,1,\\\"circle2\\\"],[14,5,\\\"margin-top: 4px; position: relative; top:16px; right: 14px;\\\"],[12],[13],[10,0],[14,1,\\\"circle3\\\"],[14,5,\\\"margin-top: 4px; position: relative;\\\"],[12],[13],[13],[13],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/alerts/?search=triggered\\\"],[14,\\\"title\\\",\\\"List of triggered alerts\\\"],[12],[1,\\\"Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;\\\"],[12],[1,[30,1,[\\\"stats\\\",\\\"alert\\\"]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/getTotalsAlerts.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ZW01mX6R\",\"block\":\"[[[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/gateway\\\"],[14,\\\"title\\\",\\\"List of all Gateways\\\"],[12],[1,\\\"Total:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;\\\"],[12],[1,[30,1,[\\\"total\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"vertical-align:middle\\\"],[12],[10,0],[14,1,\\\"circleSmall\\\"],[14,5,\\\"margin-left: 2rem; margin-right: 3px; margin-top: 2px;\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/gateway/?search=active\\\"],[14,\\\"title\\\",\\\"List of active gateways\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;=\\\"],[12],[1,[30,1,[\\\"active\\\"]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/getTotalsGateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"oyW62NnL\",\"block\":\"[[[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/instruments\\\"],[14,\\\"title\\\",\\\"List of all instruments\\\"],[12],[1,\\\"Total:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;\\\"],[12],[1,[30,1,[\\\"total\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"vertical-align:middle\\\"],[12],[10,0],[14,1,\\\"circleSmall\\\"],[14,5,\\\"margin-left: 2rem; margin-right: 3px; margin-top: 2px;\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/instruments/?search=active\\\"],[14,\\\"title\\\",\\\"List of active instruments\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;=\\\"],[12],[1,[30,1,[\\\"active\\\"]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/getTotalsInstruments.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"U/svyj7P\",\"block\":\"[[[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/log-viewer\\\"],[14,\\\"title\\\",\\\"List of all Logs\\\"],[12],[1,\\\"Total:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;\\\"],[12],[1,[30,1,[\\\"total\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"vertical-align:middle\\\"],[12],[10,0],[14,1,\\\"circleSmall\\\"],[14,5,\\\"margin-left: 2rem; margin-right: 3px; margin-top: 2px;\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[10,3],[14,5,\\\"font-size: 1rem; color: black; font-family: Trebuchet MS\\\"],[14,6,\\\"/log-viewers/?search=active\\\"],[14,\\\"title\\\",\\\"List of Logs\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,5,\\\"margin-left: 5px; font-size: 1rem;=\\\"],[12],[1,[30,1,[\\\"active\\\"]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/getTotalsLogViewers.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"NxLMuexK\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the newAlertObject.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Microstrain\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"µε\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"µε/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"uG/7y0/m\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"f0os8VZR\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"cEzOlWRa\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Microstrain\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Microstrain\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],null]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"µε\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"µε/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"dCvEnb2l\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"lEDEdsTK\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"1WFqtCmD\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HDHQLvmr\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp.\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,13],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"hid/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"RP4t2mJE\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"xoOSIH1A\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"microstrain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/hid/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"UBl+7IAu\",\"block\":\"[[[41,[30,1],[[[1,\\\"    \\\"],[8,[39,1],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[8,[30,2,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[33,2],[[[1,\\\"                \\\"],[1,[34,2]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"                Select\\\\n\\\"]],[]]],[1,\\\"            \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n        \\\"],[8,[30,2,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,4],[[28,[37,4],[[30,4]],null]],null],null,[[[1,\\\"                \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                    \\\"],[10,3],[14,0,\\\"dropdown-item\\\"],[15,\\\"onclick\\\",[28,[37,5],[[30,0],\\\"setID\\\",[30,5],[30,2,[\\\"closeDropdown\\\"]]],null]],[12],[1,[30,5,[\\\"id\\\"]]],[13],[1,\\\"\\\\n                \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[5]],null],[1,\\\"        \\\"]],[3]]]]],[1,\\\"\\\\n    \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[1,[30,6,[\\\"id\\\"]]],[1,\\\"\\\\n\\\"]],[]]]],[\\\"@isEditable\\\",\\\"dd\\\",\\\"ddm\\\",\\\"@instruments\\\",\\\"instrument\\\",\\\"@instrument\\\"],false,[\\\"if\\\",\\\"bs-dropdown\\\",\\\"inst_id\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/instrument-drop-down.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qqDd4zPg\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"instrumentListError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to delete an instrument.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[1,[28,[35,0],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Instrument ID\\\",\\\"id\\\",[33,1],[30,1]]]]],[1,[28,[35,0],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Name\\\",\\\"name\\\",[33,1],[30,1]]]]],[1,[28,[35,0],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Type\\\",\\\"instrumentType\\\",[33,1],[30,1]]]]],[10,\\\"th\\\"],[12],[1,\\\"Level\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Project\\\"],[13],[1,[28,[35,0],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Location\\\",\\\"location\\\",[33,1],[30,1]]]]],[41,[33,3],[[[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,4],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13]],[]],null],[41,[28,[37,6],[[33,3]],null],[[[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[13]],[]],null],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,8],[[28,[37,8],[[30,2]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[6,[39,9],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"id\\\"]]]],[]]]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"name\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"instrumentType\\\",\\\"title\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[28,[35,10],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,4],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,3,[\\\"level\\\"]],[30,3],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[10,\\\"td\\\"],[12],[1,[28,[35,10],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,5],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,3,[\\\"project\\\"]],[30,3],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"location\\\"]]],[13],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[41,[51,[28,[37,12],[[30,3,[\\\"anchors\\\"]]],null]],[[[10,1],[14,0,\\\"crud warning\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Instrument anchors are not set!\\\",\\\"top\\\"]],null],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"exclamation-triangle\\\"]],null],[13]],[]],null],[41,[51,[28,[37,14],[[30,3]],null]],[[[10,1],[14,0,\\\"crud warning\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Instrument Stroke Length is not set!\\\",\\\"top\\\"]],null],[8,[39,5],null,[[\\\"@icon\\\"],[\\\"exclamation-triangle\\\"]],null],[13]],[]],null],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,15],[[28,[37,16],[[33,17],[30,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"All associated data\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"will be deleted too!\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,4],[[30,0],\\\"remove\\\",[33,18,[\\\"instruments\\\"]],[30,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,4],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[13]],[3]],null],[13],[13]],[\\\"@sortBy\\\",\\\"@instruments\\\",\\\"tableRow\\\",\\\"@levelLookupList\\\",\\\"@projectLookupList\\\"],false,[\\\"sortable-table-header\\\",\\\"ordering\\\",\\\"if\\\",\\\"licenceIsValid\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"not\\\",\\\"each\\\",\\\"-track-array\\\",\\\"link-to\\\",\\\"single-save-lookup\\\",\\\"unless\\\",\\\"is-instrument-anchors-set\\\",\\\"bs-tooltip\\\",\\\"is-stroke-length-required-and-set\\\",\\\"active-class\\\",\\\"get\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"model\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/instruments-list.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"BAEiF4VV\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[12],[1,\\\"Upload licence key file\\\"],[13],[10,\\\"th\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"save-new\\\"],[4,[38,2],[[30,0],\\\"importKey\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Upload\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newKeyFile\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"File:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isSubmitting\\\",\\\"errorHappened\\\"],[[33,4],\\\"errorHappened\\\"]]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"width\\\",\\\"50px\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[13],[13],[13],[13],[41,[33,5],[[[10,0],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[13],[41,[33,6],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error importing the licence key data.\\\"],[13],[13],[13]],[]],null],[13],[13]],[]],null]],[],false,[\\\"if\\\",\\\"isVisibleImportKeyForm\\\",\\\"action\\\",\\\"key-upload\\\",\\\"isSubmitting\\\",\\\"loading\\\",\\\"isVisibleError\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/key-import-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"l+t5+WxH\",\"block\":\"[[[18,1,null]],[\\\"&default\\\"],false,[\\\"yield\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/key-upload.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"09d7JK0X\",\"block\":\"[[[1,[28,[35,0],[\\\"Settings\\\"],null]],[46,[28,[37,2],null,null],null,null,null],[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,0,\\\"mt-1\\\"],[12],[10,\\\"h3\\\"],[12],[1,\\\"Log Viewer\\\"],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table settings-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"ID\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Creation Date/Time\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Error Type\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Device Type\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Device ID\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Message\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,4],[[28,[37,4],[[30,1]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[33,5,[\\\"id\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"id\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"creationDatetime\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"creationDatetime\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[28,[35,6],[[30,2,[\\\"creationDatetime\\\"]],\\\"DD-MM-YYYY HH:mm\\\"],null]],[13],[13],[10,\\\"td\\\"],[12],[1,[28,[35,7],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,2,[\\\"errorType\\\"]],[30,2],\\\"value\\\",\\\"Error Type\\\",\\\"id\\\",\\\"errorType\\\",false]]]],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"deviceType\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"type\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"deviceType\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"deviceId\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"type\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"deviceId\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"message\\\"]]]]],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"type\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"message\\\"]]],[13],[13],[13]],[2]],null],[13],[13],[10,0],[14,0,\\\"pb-1\\\"],[12],[13],[13]],[\\\"@logViewer\\\",\\\"log\\\",\\\"@errorTypeLookups\\\"],false,[\\\"page-title\\\",\\\"component\\\",\\\"-outlet\\\",\\\"each\\\",\\\"-track-array\\\",\\\"lookup\\\",\\\"moment-format\\\",\\\"single-save-lookup\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/log-viewer-list.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"PmvTF412\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"μ\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"μ/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"μ/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"sBwv2tIF\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length (μm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"strokeLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"strokeLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"4jkHvJUR\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"FzdBxHTx\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,\\\"title\\\",\\\"Target recipient for alert. Add cell number then click on link to find carrier network. \\\"],[24,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[24,0,\\\"col-12 col-form-label bold link\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,6],[[[6,[39,7],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,8],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,9],[33,6],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,15],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,16]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,17]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[44,[[28,[37,19],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,17]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],null]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"μ\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"μ/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"μ/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,20]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,21],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,22]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"newAlertObject\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ZagCm4ZA\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[41,[28,[37,4],[[33,5,[\\\"channelsNum\\\"]],2],null],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,6],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,5,[\\\"id\\\"]],[33,5,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,5],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],[33,5,[\\\"east\\\"]],[33,5,[\\\"north\\\"]],[33,5,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stroke Length (μm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"strokeLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,5],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"gt\\\",\\\"instrument\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"s2vDtV7u\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HdQR4CRZ\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"MZ0MHhiJ\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New \\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,12]],null]],null],null,[[[1,[28,[35,13],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,14],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,15],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,16],[[30,7,[\\\"id\\\"]],[28,[37,17],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"pack/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"modifiedDisplacementData\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"yI4KHcXd\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"PMTViy9A\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"acceleration-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Acceleration\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/micro/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"dHs7bJxK\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"WARNING Before you add dExtos, make sure each of them have anchor information applied!\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-bottom: 5rem; padding-bottom: 5rem;\\\"],[12],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-bottom: 5rem; padding-bottom: 5rem;\\\"],[12],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-weight:bold !important;\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"dExto(s): \\\"],[13],[13],[10,\\\"td\\\"],[12],[10,0],[14,0,\\\"col-13\\\"],[12],[1,[28,[35,4],null,[[\\\"content\\\",\\\"on-search\\\",\\\"id\\\",\\\"selected\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,5],[28,[37,1],[[30,0],\\\"onDropdownSearch\\\"],null],\\\"selectedID\\\",\\\"\\\",\\\"title\\\",\\\"Select IDs\\\",\\\"Filter\\\",true,[28,[37,1],[[30,0],\\\"setID\\\"],null]]]]],[13],[13],[10,\\\"td\\\"],[14,1,\\\"add-exto\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"searchForExto\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Search \\\"],[13],[13],[41,[33,7],[[[10,\\\"td\\\"],[12],[10,0],[14,5,\\\"width: auto; margin-left: 10px; margin-bottom: 10px;\\\"],[14,0,\\\"pulse_loader \\\"],[12],[13],[13]],[]],null],[10,\\\"td\\\"],[14,5,\\\"padding-bottom: 5rem;\\\"],[12],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Selected dExtos:\\\"],[13],[13],[10,\\\"td\\\"],[12],[1,[33,8,[\\\"length\\\"]]],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"of 2.\\\"],[13],[13],[13],[13],[13],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[1,[28,[35,9],null,[[\\\"dExtoList\\\"],[[33,8]]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"resetInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Reset\\\"],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"zeroTimestamp\\\",\\\"searchable-select\\\",\\\"instruments\\\",\\\"if\\\",\\\"loading\\\",\\\"selectedInstruments\\\",\\\"selected-dExtos\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/multiDExto/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"7fSUYIfb\",\"block\":\"[[[41,[28,[37,1],[[30,1],0],null],[[[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,3],[[28,[37,3],[[28,[37,4],[[33,5],[33,6]],null]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,2]],[13]],[2,3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[13]],[]],null],[10,\\\"tbody\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[1,[28,[35,7],[[33,8,[\\\"id\\\"]],\\\"YYYY-MM-DD HH:mm:ss\\\"],null]],[13],[42,[28,[37,3],[[28,[37,3],[[33,9]],null]],null],null,[[[10,\\\"td\\\"],[14,5,\\\"width: 65px;\\\"],[12],[1,[30,4]],[13]],[4,5]],null],[13]],[\\\"@key\\\",\\\"anchor\\\",\\\"index\\\",\\\"key\\\",\\\"value\\\"],false,[\\\"if\\\",\\\"is-equal\\\",\\\"each\\\",\\\"-track-array\\\",\\\"arrayAt\\\",\\\"anchorDistances\\\",\\\"slaveExtoIndex\\\",\\\"moment-format\\\",\\\"displacementValueObject\\\",\\\"getSpecificRowData\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/multiDExto/dExto-children-table-row.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"XQzeMSwK\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"gatewayChildListError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to delete a gateway.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[42,[28,[37,1],[[28,[37,1],[[30,1]],null]],null],null,[[[1,[28,[35,2],null,[[\\\"slaveExtoIndex\\\",\\\"anchorDistances\\\",\\\"key\\\",\\\"multiExtoInstr\\\",\\\"currentExtoInstr\\\",\\\"temperatureValuesModel\\\",\\\"displacementValueObject\\\"],[[30,4],[33,3],[30,3],[30,5],[30,6],[30,7],[30,2]]]]]],[2,3]],null],[13]],[\\\"@displaceData\\\",\\\"displacementObj\\\",\\\"index\\\",\\\"@slaveExtoIndex\\\",\\\"@instrument\\\",\\\"@currentExtoInstr\\\",\\\"@temperatureData\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"multiDExto/dExto-children-table-row\\\",\\\"anchorDistances\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/multiDExto/dExto-children.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"4Gmn/qa+\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,2],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\",\\\"id\\\"],[[33,3],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null],\\\"newInstrumentObjectName\\\"]]]],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-bottom: 5rem; padding-bottom: 5rem;\\\"],[12],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,3],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Selected dExtos:\\\"],[13],[13],[10,\\\"td\\\"],[12],[1,[33,5,[\\\"length\\\"]]],[13],[10,\\\"td\\\"],[12],[1,\\\" of 2. The dExtos are in order, starting from closest to the wall.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[1,[28,[35,6],null,[[\\\"dExtoList\\\"],[[33,5]]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-input\\\",\\\"instrument\\\",\\\"single-save-datetime-picker\\\",\\\"selectedInstruments\\\",\\\"selected-dExtos\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/multiDExto/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"b3i9W39b\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"600\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/multiDExto/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"tJsWCMfR\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Index\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"dExto ID\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Head At \\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"width:20px;\\\"],[12],[1,[30,3,[\\\"id\\\"]]],[13],[10,\\\"td\\\"],[12],[6,[39,11],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"instrumentID\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"instrumentID\\\"]]]],[]]]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"position\\\"]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[1,[28,[35,12],null,[[\\\"slaveExtoIndex\\\",\\\"anchorDistances\\\",\\\"temperatureData\\\",\\\"displaceData\\\",\\\"currentExtoInstr\\\",\\\"instrument\\\"],[[30,4],[33,6],[30,5],[30,1],[30,3],[30,2]]]]],[13],[13]],[3,4]],null],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"exto\\\",\\\"index\\\",\\\"@temperatureData\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"pack/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"selectedInstruments\\\",\\\"link-to\\\",\\\"multiDExto/dExto-children\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/multiDExto/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"I2oCpYhA\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"acceleration-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Acceleration\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/multiDExto/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ibhqZVGe\",\"block\":\"[[[10,0],[14,5,\\\"font-size:25px;font-weight: 600;\\\"],[12],[1,\\\"Add-ons\\\"],[13],[41,[33,1],[[[10,0],[14,5,\\\"padding:10px\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"Microsoft AD Configuration\\\"],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Client ID\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateIsEditingProperty\\\",\\\"client_id\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,3],[[33,4],true],null],[[[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px;width: 100%;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"clientIDTextbox\\\"],[15,2,[36,5]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateProperty\\\",\\\"clientIDTextbox\\\",\\\"client_id\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,5]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Tenant ID\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateIsEditingProperty\\\",\\\"tenant_id\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,3],[[33,6],true],null],[[[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px;width: 100%;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"tenantIDTextbox\\\"],[15,2,[36,7]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateProperty\\\",\\\"tenantIDTextbox\\\",\\\"tenant_id\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,7]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Redirect URI\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateIsEditingProperty\\\",\\\"redirect_uri\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,3],[[33,8],true],null],[[[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px;width: 100%;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"redirectURITextbox\\\"],[15,2,[36,9]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateProperty\\\",\\\"redirectURITextbox\\\",\\\"redirect_uri\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,9]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Token URL\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateIsEditingProperty\\\",\\\"token_url\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,3],[[33,10],true],null],[[[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px;width: 100%;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"tokenURLTextbox\\\"],[15,2,[36,11]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateProperty\\\",\\\"tokenURLTextbox\\\",\\\"token_url\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,11]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Client Secret\\\"],[13],[13],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px;width: 100%;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"clientSecretTextbox\\\"],[15,2,[36,12]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"updateProperty\\\",\\\"clientSecretTextbox\\\",\\\"client_secret\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: space-evenly;\\\"],[12],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"testMicrosoftADConnection\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Test Microsoft AD Connection\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"clearMicrosoftADTestMessages\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Clear Test Messages\\\"],[13],[13],[41,[28,[37,3],[[33,13],true],null],[[[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: center;\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,14]],[13],[13]],[]],null],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[13]],[]],null]],[],false,[\\\"if\\\",\\\"isMasterUser\\\",\\\"action\\\",\\\"is-equal\\\",\\\"isEditingClientID\\\",\\\"getClientID\\\",\\\"isEditingTenantID\\\",\\\"getTenantID\\\",\\\"isEditingRedirectURI\\\",\\\"getRedirectURI\\\",\\\"isEditingTokenURL\\\",\\\"getTokenURL\\\",\\\"getClientSecret\\\",\\\"isShowMicrosoftADTestMessage\\\",\\\"microsoftADTestMessages\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/my-profile-sidebar-addon.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"LL/i/Sud\",\"block\":\"[[[10,0],[14,5,\\\"font-size:25px;font-weight: 600;\\\"],[12],[1,\\\"My Profile\\\"],[13],[10,0],[14,5,\\\"padding:10px\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"Personal Info\\\"],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"First Name\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateIsEditingProperty\\\",\\\"firstName\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,2],[[33,3],true],null],[[[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"firstNameTextbox\\\"],[15,2,[36,4]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateProperty\\\",\\\"firstNameTextbox\\\",\\\"first_name\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,4]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Last Name\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateIsEditingProperty\\\",\\\"lastName\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,2],[[33,5],true],null],[[[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"lastNameTextbox\\\"],[15,2,[36,6]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateProperty\\\",\\\"lastNameTextbox\\\",\\\"last_name\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,6]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Email\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateIsEditingProperty\\\",\\\"email\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,2],[[33,7],true],null],[[[10,0],[14,5,\\\"display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"emailTextbox\\\"],[15,2,[36,8]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],\\\"updateEmail\\\"],null]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateProperty\\\",\\\"emailTextbox\\\",\\\"email\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13],[13],[41,[33,9],[[[10,0],[14,5,\\\"margin-top:5px; font-size: small; color: darkslategray;\\\"],[12],[1,[34,10]],[13]],[]],null]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,8]],[13]],[]]],[41,[28,[37,2],[[33,11],true],null],[[[10,0],[14,0,\\\"my-profile-error-message-value\\\"],[12],[1,[34,12]],[13]],[]],null],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Username\\\"],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateIsEditingProperty\\\",\\\"username\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13],[13],[41,[28,[37,2],[[33,13],true],null],[[[10,0],[14,5,\\\"display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"usernameTextbox\\\"],[15,2,[36,14]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],\\\"updateUsername\\\"],null]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateProperty\\\",\\\"usernameTextbox\\\",\\\"username\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13],[41,[33,15],[[[10,0],[14,5,\\\"margin-top:5px; font-size: small; color: darkslategray;\\\"],[12],[1,[34,16]],[13]],[]],null],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,14]],[13]],[]]],[41,[28,[37,2],[[33,17],true],null],[[[10,0],[14,0,\\\"my-profile-error-message-value\\\"],[12],[1,[34,18]],[13]],[]],null],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"Company Info\\\"],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Company\\\"],[13],[41,[33,19],[[[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateIsEditingProperty\\\",\\\"company\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13]],[]],null],[13],[41,[28,[37,2],[[33,20],true],null],[[[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"companyTextbox\\\"],[15,2,[36,21]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateProperty\\\",\\\"companyTextbox\\\",\\\"company\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,21]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label-section\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-label\\\"],[12],[1,\\\"Position\\\"],[13],[41,[33,19],[[[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateIsEditingProperty\\\",\\\"position\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Edit\\\"],[13]],[]],null],[13],[41,[28,[37,2],[[33,22],true],null],[[[10,0],[14,5,\\\"width:50%;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"positionTextbox\\\"],[15,2,[36,23]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateProperty\\\",\\\"positionTextbox\\\",\\\"position\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Save\\\"],[13],[13]],[]],[[[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,23]],[13]],[]]],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[13]],[],false,[\\\"action\\\",\\\"if\\\",\\\"is-equal\\\",\\\"isEditingFirstName\\\",\\\"getFirstName\\\",\\\"isEditingLastName\\\",\\\"getLastName\\\",\\\"isEditingEmail\\\",\\\"getEmail\\\",\\\"isValidEmail\\\",\\\"emailTips\\\",\\\"showEmailError\\\",\\\"emailErrorMessage\\\",\\\"isEditingUsername\\\",\\\"getUsername\\\",\\\"isValidUsername\\\",\\\"usernameTips\\\",\\\"showUsernameError\\\",\\\"emailUsernameMessage\\\",\\\"isMasterUser\\\",\\\"isEditingCompany\\\",\\\"getCompany\\\",\\\"isEditingPosition\\\",\\\"getPosition\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/my-profile-sidebar-home.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"x03h690c\",\"block\":\"[[[10,0],[14,5,\\\"font-size:25px;font-weight: 600;display: flex;flex-direction: row;align-items: center;\\\"],[12],[1,\\\"More\\\"],[41,[33,1],[[[10,0],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[10,0],[14,5,\\\"padding:10px\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"Reset Password \\\"],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: space-evenly;\\\"],[12],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"sendResetPasswordLink\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Send Reset Link    \\\"],[13],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[41,[28,[37,3],[[33,4],true],null],[[[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: center;\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,5]],[13],[13]],[]],null],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"Account Activity \\\"],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: space-evenly;\\\"],[12],[10,0],[14,5,\\\"width: 100%;\\\"],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"border-width: 0px;width: 100%;\\\"],[14,0,\\\"table table-striped table-bordered\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[11,\\\"th\\\"],[24,1,\\\"instrument_id_sort\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"instrument_id_sort\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Sensor ID\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"gateway_id_sort\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"gateway_id_sort\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Gateway ID\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"action_date_sort\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"action_date_sort\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Date\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"activity_message\\\"],[14,5,\\\"font-size: small;font-weight: normal;\\\"],[12],[1,\\\"Activity\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[33,8]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"instrument_id\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"gateway_id\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"action_date\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"activity_message\\\"]]],[13],[13]],[1]],null],[13],[13],[10,0],[14,5,\\\"display:flex;justify-content: flex-end;\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[33,9,[\\\"calibrationInstrumentProfilePaginationList\\\"]]],null]],null],null,[[[11,\\\"button\\\"],[16,5,[29,[\\\"border-color: \\\",[52,[28,[37,10],[[30,2],\\\"...\\\"],null],\\\"white\\\",\\\"#4A6A9C\\\"],\\\";color: \\\",[52,[28,[37,10],[[30,2],\\\"...\\\"],null],\\\"black\\\",\\\"white\\\"],\\\";margin-right: 10px;font-size:small;padding: 5px;background-color: \\\",[52,[28,[37,10],[[30,2],\\\"...\\\"],null],\\\"white\\\",\\\"#4A6A9C\\\"]]]],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"jumpToPage\\\",[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[30,2]],[13]],[2]],null],[13],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13],[41,[33,11],[[[10,0],[14,0,\\\"my-profile-sidebar-home-subtitle\\\"],[12],[1,\\\"Admin Console \\\"],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: space-evenly;\\\"],[12],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"accessAdmin\\\"],null]],[14,0,\\\"my-profile-sidebar-home-row-edit\\\"],[12],[1,\\\"Access Here\\\"],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-home-row-divider\\\"],[12],[13],[13]],[]],null],[13]],[\\\"activityLogObj\\\",\\\"page\\\"],false,[\\\"if\\\",\\\"isLoading\\\",\\\"action\\\",\\\"is-equal\\\",\\\"isShowResetPasswordMessage\\\",\\\"resetPasswordMessage\\\",\\\"each\\\",\\\"-track-array\\\",\\\"activityLogList\\\",\\\"paginationSearchConfig\\\",\\\"eq\\\",\\\"isStaffUser\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/my-profile-sidebar-more.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Cq1TXMNt\",\"block\":\"[[[10,0],[14,5,\\\"font-size:25px;font-weight: 600;display: flex;flex-direction: row;align-items: center;\\\"],[12],[1,\\\"Users\\\"],[41,[33,1],[[[10,0],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[10,0],[14,5,\\\"padding:10px\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"border-width: 0px;margin-top:10px\\\"],[14,0,\\\"table table-striped table-bordered\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[14,5,\\\"font-size: small;font-weight: normal;\\\"],[12],[1,\\\"Verified\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"id\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"id\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"ID\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"first_name\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"first_name\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"First Name\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"last_name\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"last_name\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Last Name\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"username\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"username\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Username\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"last_login\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"last_login\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Last Joined\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"date_joined\\\"],[24,5,\\\"font-size: small;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"date_joined\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Date Joined\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"font-size: small;font-weight: normal;\\\"],[12],[1,\\\"Actions\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,4],[[28,[37,4],[[33,5]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"font-size: small;text-align:center; vertical-align: middle;\\\"],[12],[1,[28,[35,6],null,[[\\\"disabled\\\",\\\"type\\\",\\\"checked\\\"],[true,\\\"checkbox\\\",[52,[30,1,[\\\"is_active\\\"]],true,false]]]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"id\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"first_name\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"last_name\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"username\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"last_login\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,1,[\\\"date_joined\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"width: 130px;\\\"],[12],[10,0],[14,5,\\\"width: 130px; overflow-x: auto;\\\"],[12],[10,0],[14,5,\\\"width: 130px; overflow-x: auto;display:inline-flex; min-width: max-content; gap:15px; cursor: pointer;color: blue;text-decoration: underline;font-size: smaller;\\\"],[12],[11,0],[4,[38,2],[[30,0],\\\"openEditUserModal\\\",[30,1]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Edit\\\"],[13],[13],[13],[13],[13]],[1]],null],[13],[41,[33,7],[[[1,[28,[35,8],null,[[\\\"parentUser\\\",\\\"selectedUser\\\",\\\"title\\\",\\\"closeModal\\\",\\\"saveModal\\\"],[[33,9],[33,10],[33,11],[28,[37,2],[[30,0],[33,12]],null],[28,[37,2],[[30,0],[33,13]],null]]]]]],[]],null],[13],[13]],[\\\"user\\\"],false,[\\\"if\\\",\\\"isLoading\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"userList\\\",\\\"input\\\",\\\"isEditModalOpen\\\",\\\"edit-my-profile-user-modal\\\",\\\"userProfileService\\\",\\\"selectedUser\\\",\\\"editTitle\\\",\\\"closeEditUserModal\\\",\\\"saveUserEdits\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/my-profile-sidebar-users.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9HNqP9Z6\",\"block\":\"[[[10,0],[14,0,\\\"my-profile-sidebar-section-user-profile\\\"],[12],[10,0],[14,1,\\\"profilePhoto\\\"],[14,5,\\\"font-size: xxx-large;cursor:pointer;\\\"],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"triggerImageUpload\\\"],null]],[12],[41,[33,2],[[[10,\\\"img\\\"],[15,\\\"src\\\",[36,2]],[14,5,\\\"width:90px;height:90px;\\\"],[12],[13]],[]],[[[1,[28,[35,3],null,[[\\\"icon\\\",\\\"size\\\"],[\\\"user\\\",\\\"2x\\\"]]]]],[]]],[10,\\\"td\\\"],[14,5,\\\"margin-right:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"profileImageInput\\\"],[14,\\\"accept\\\",\\\"image/jpeg,image/png\\\"],[14,5,\\\"display:none\\\"],[15,\\\"onChange\\\",[28,[37,0],[[30,0],\\\"uploadProfileImage\\\"],null]],[14,0,\\\"form-control\\\"],[14,4,\\\"file\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width: 100%;display:flex;flex-direction:row;align-items:center;font-size:x-large;overflow-x: hidden;justify-content: center;\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,[34,4]],[13],[10,0],[12],[1,[34,5]],[13],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-section-divider\\\"],[12],[13],[10,0],[14,5,\\\"width:100%;padding:25px\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar-section-row\\\"],[12],[10,0],[14,5,\\\"margin-right:5px\\\"],[12],[1,[28,[35,3],null,[[\\\"icon\\\",\\\"size\\\"],[\\\"home\\\",\\\"1x\\\"]]]],[13],[10,0],[14,5,\\\"font-size:large;\\\"],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateTab\\\",\\\"HOME\\\"],null]],[12],[1,\\\"Home\\\"],[13],[13],[41,[33,6],[[[10,0],[14,0,\\\"my-profile-sidebar-section-row\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,[28,[35,3],null,[[\\\"icon\\\",\\\"size\\\",\\\"style\\\"],[\\\"users\\\",\\\"1x\\\",\\\"margin-right:5px\\\"]]]],[13],[10,0],[14,5,\\\"font-size:large;\\\"],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateTab\\\",\\\"USERS\\\"],null]],[12],[1,\\\"Users\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"my-profile-sidebar-section-row\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,[28,[35,3],null,[[\\\"icon\\\",\\\"variant\\\",\\\"size\\\",\\\"style\\\"],[\\\"puzzle-piece\\\",\\\"light\\\",\\\"1x\\\",\\\"margin-right:5px\\\"]]]],[13],[10,0],[14,5,\\\"font-size:large;\\\"],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateTab\\\",\\\"ADDON\\\"],null]],[12],[1,\\\"Add-On\\\"],[13],[13],[10,0],[14,0,\\\"my-profile-sidebar-section-row\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,[28,[35,3],null,[[\\\"icon\\\",\\\"size\\\",\\\"style\\\"],[\\\"ellipsis-h\\\",\\\"1x\\\",\\\"margin-right:5px\\\"]]]],[13],[10,0],[14,5,\\\"font-size:large;\\\"],[15,\\\"onClick\\\",[28,[37,0],[[30,0],\\\"updateTab\\\",\\\"MORE\\\"],null]],[12],[1,\\\"More\\\"],[13],[13],[13]],[],false,[\\\"action\\\",\\\"if\\\",\\\"profileImage\\\",\\\"fa-icon\\\",\\\"firstName\\\",\\\"lastName\\\",\\\"isMasterUser\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/my-profile-sidebar.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"8vUdcVDp\",\"block\":\"[[[10,0],[12],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,\\\"\\\\n        \\\"],[10,3],[14,0,\\\"logo\\\"],[14,6,\\\"/\\\"],[12],[1,\\\"\\\\n            \\\"],[10,\\\"img\\\"],[14,\\\"width\\\",\\\"50%\\\"],[14,\\\"src\\\",\\\"/assets/images/logo.png\\\"],[12],[13],[1,\\\"\\\\n            \\\"],[10,\\\"img\\\"],[14,0,\\\"right\\\"],[14,\\\"height\\\",\\\"80px\\\"],[14,\\\"src\\\",\\\"/assets/images/customer_logo/logo.png\\\"],[14,\\\"onerror\\\",\\\"this.onerror=null;this.src='/assets/images/nologo.png';\\\"],[12],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,\\\"\\\\n        \\\"],[10,0],[12],[1,\\\"\\\\n            \\\"],[8,[30,1,[\\\"toggle\\\"]],null,null,null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n        \\\"],[8,[30,1,[\\\"content\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[8,[30,1,[\\\"nav\\\"]],[[24,0,\\\"navFull\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n            \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[8,[30,2,[\\\"linkTo\\\"]],null,[[\\\"@route\\\"],[\\\"index\\\"]],[[\\\"default\\\"],[[[[8,[39,1],null,[[\\\"@icon\\\"],[\\\"globe\\\"]],null],[1,\\\" Dashboard\\\"]],[]]]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n            \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[8,[30,2,[\\\"linkTo\\\"]],null,[[\\\"@route\\\"],[\\\"instruments\\\"]],[[\\\"default\\\"],[[[[8,[39,1],null,[[\\\"@icon\\\"],[\\\"ruler\\\"]],null],[1,\\\" Instruments\\\"]],[]]]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n\\\"],[1,\\\"            \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[8,[30,2,[\\\"linkTo\\\"]],null,[[\\\"@route\\\"],[\\\"gateway\\\"]],[[\\\"default\\\"],[[[[8,[39,1],null,[[\\\"@icon\\\"],[\\\"medkit\\\"]],null],[1,\\\" Health\\\"]],[]]]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n\\\\n            \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[8,[30,2,[\\\"linkTo\\\"]],null,[[\\\"@route\\\"],[\\\"seismic-events\\\"]],[[\\\"default\\\"],[[[[8,[39,1],null,[[\\\"@icon\\\"],[\\\"thumbtack\\\"]],null],[1,\\\" Seismic events\\\"]],[]]]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n            \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[8,[30,2,[\\\"linkTo\\\"]],null,[[\\\"@route\\\"],[\\\"blast-events\\\"]],[[\\\"default\\\"],[[[[8,[39,1],null,[[\\\"@icon\\\"],[\\\"bomb\\\"]],null],[1,\\\" Blast events\\\"]],[]]]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n\\\"],[41,[33,3],[[[1,\\\"                \\\"],[8,[30,2,[\\\"dropdown\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                    \\\"],[8,[30,3,[\\\"toggle\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                        \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[1,\\\" \\\"],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"cogs\\\"]],null],[1,\\\" Production\\\"],[13],[1,\\\"\\\\n                    \\\"]],[]]]]],[1,\\\"\\\\n                    \\\"],[8,[30,3,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[33,4],[[[1,\\\"                            \\\"],[8,[30,4,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                                \\\"],[11,3],[24,6,\\\"/admin\\\"],[24,0,\\\"nav-link custom-link\\\"],[24,\\\"target\\\",\\\"_blank\\\"],[4,[38,5],[\\\"click\\\",[30,0,[\\\"navigateToSensorCalibration\\\"]]],null],[12],[1,\\\"\\\\n                                    Sensor Calibration\\\\n                                \\\"],[13],[1,\\\"\\\\n                            \\\"]],[]]]]],[1,\\\" \\\\n\\\"]],[]],null],[41,[33,6],[[[1,\\\"                            \\\"],[8,[30,4,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                                \\\"],[11,3],[24,6,\\\"/admin\\\"],[24,0,\\\"nav-link custom-link\\\"],[24,\\\"target\\\",\\\"_blank\\\"],[4,[38,5],[\\\"click\\\",[30,0,[\\\"navigateToPacksValidation\\\"]]],null],[12],[1,\\\"\\\\n                                    Packs Validation\\\\n                                \\\"],[13],[1,\\\"\\\\n                            \\\"]],[]]]]],[1,\\\" \\\\n\\\"]],[]],null],[1,\\\"                    \\\"]],[4]]]]],[1,\\\"\\\\n                \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[]],null],[41,[33,7],[[[1,\\\"                \\\"],[8,[30,2,[\\\"dropdown\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                    \\\"],[8,[30,5,[\\\"toggle\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                        \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[1,\\\" \\\"],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Analytics\\\"],[13],[1,\\\"\\\\n                    \\\"]],[]]]]],[1,\\\"\\\\n                    \\\"],[8,[30,5,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[33,8],[[[1,\\\"                            \\\"],[8,[30,6,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                                \\\"],[11,3],[24,6,\\\"/admin\\\"],[24,0,\\\"nav-link custom-link\\\"],[24,\\\"target\\\",\\\"_blank\\\"],[4,[38,5],[\\\"click\\\",[30,0,[\\\"navigateToSensorCalibrationAnalytics\\\"]]],null],[12],[1,\\\"\\\\n                                    Sensor Calibration\\\\n                                \\\"],[13],[1,\\\"\\\\n                            \\\"]],[]]]]],[1,\\\" \\\\n\\\"]],[]],null],[41,[33,9],[[[1,\\\"                            \\\"],[8,[30,6,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                                \\\"],[11,3],[24,6,\\\"/admin\\\"],[24,0,\\\"nav-link custom-link\\\"],[24,\\\"target\\\",\\\"_blank\\\"],[4,[38,5],[\\\"click\\\",[30,0,[\\\"navigateToPacksValidationAnalytics\\\"]]],null],[12],[1,\\\"\\\\n                                    Packs Validation\\\\n                                \\\"],[13],[1,\\\"\\\\n                            \\\"]],[]]]]],[1,\\\" \\\\n\\\"]],[]],null],[1,\\\"                    \\\"]],[6]]]]],[1,\\\"\\\\n                \\\"]],[5]]]]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"            \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                \\\"],[8,[30,2,[\\\"linkTo\\\"]],null,[[\\\"@route\\\"],[\\\"vibration-events\\\"]],[[\\\"default\\\"],[[[[8,[39,1],null,[[\\\"@icon\\\"],[\\\"wave-square\\\"]],null],[1,\\\" BluVibe events\\\"]],[]]]]],[1,\\\"\\\\n            \\\"]],[]]]]],[1,\\\"\\\\n            \\\"],[8,[30,2,[\\\"item\\\"]],[[24,5,\\\"margin-left: auto;\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"session\\\",\\\"isAuthenticated\\\"]],[[[1,\\\"                    \\\"],[8,[30,2,[\\\"dropdown\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                        \\\"],[8,[30,7,[\\\"toggle\\\"]],null,null,[[\\\"default\\\"],[[[[1,[34,10]],[1,\\\" \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n                        \\\"],[8,[30,7,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                            \\\"],[8,[30,8,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                                \\\"],[11,3],[24,0,\\\"nav-link custom-link\\\"],[24,\\\"role\\\",\\\"button\\\"],[4,[38,5],[\\\"click\\\",[30,0,[\\\"navigateToMyProfile\\\"]]],null],[12],[1,\\\"\\\\n                                    \\\"],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"user\\\"]],null],[1,\\\" My Profile\\\\n                                \\\"],[13],[1,\\\"\\\\n                            \\\"]],[]]]]],[1,\\\" \\\\n                            \\\"],[8,[30,8,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n                                \\\"],[11,3],[24,0,\\\"nav-link custom-link\\\"],[24,\\\"role\\\",\\\"button\\\"],[4,[38,5],[\\\"click\\\",[30,0,[\\\"navigateToSettings\\\"]]],null],[12],[1,\\\"\\\\n                                    \\\"],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"cog\\\"]],null],[1,\\\" Settings\\\\n                                \\\"],[13],[1,\\\"\\\\n                            \\\"]],[]]]]],[1,\\\" \\\\n                            \\\"],[8,[30,8,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[11,3],[24,0,\\\"nav-link custom-link\\\"],[4,[38,11],[[30,0],\\\"logout\\\"],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"sign-out-alt\\\"]],null],[1,\\\" Logout\\\"],[13]],[]]]]],[1,\\\"\\\\n                        \\\"]],[8]]]]],[1,\\\"\\\\n                    \\\"]],[7]]]]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"            \\\"]],[]]]]],[1,\\\"\\\\n            \\\"]],[2]]]]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"]],[1]]]]],[1,\\\"\\\\n    \\\"],[10,0],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,13],[[28,[37,13],[[30,0,[\\\"tasks\\\"]]],null]],null],null,[[[1,\\\"            \\\"],[8,[39,14],null,[[\\\"@taskName\\\",\\\"@percentage\\\"],[[30,9,[\\\"name\\\"]],[30,9,[\\\"percentage\\\"]]]],null],[1,\\\"\\\\n\\\"]],[9]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n\\\"],[41,[33,15],[[[41,false,[[[1,\\\"            \\\"],[10,0],[14,0,\\\"container-fluid error\\\"],[12],[1,\\\"\\\\n                \\\"],[10,3],[12],[1,\\\"\\\\n                    Your licence does not include this module.\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" If you would like this module, please contact YieldPoint for further details.\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" 700 Progress Ave.\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" Kingston, ON. K7M 4W9\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" 1 613-531-4722\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" \\\"],[10,3],[14,6,\\\"mailto:sales.yp@epiroc.com\\\"],[12],[1,\\\"sales.yp@epiroc.com\\\"],[13],[1,\\\"\\\\n                \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[41,[51,[33,17]],[[[1,\\\"            \\\"],[10,0],[14,0,\\\"container-fluid error\\\"],[12],[1,\\\"\\\\n                \\\"],[10,3],[12],[1,\\\"\\\\n                    There are more active instruments than your licence allows for.\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" Please disable any outdated instruments, update your licence \\\"],[6,[39,18],null,[[\\\"route\\\"],[\\\"keys\\\"]],[[\\\"default\\\"],[[[[1,\\\"here\\\"]],[]]]]],[1,\\\" or contact YieldPoint to increase your limit.\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" 700 Progress Ave.\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" Kingston, ON. K7M 4W9\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" 1 613-531-4722\\\\n                    \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" \\\"],[10,3],[14,6,\\\"mailto:sales.yp@epiroc.com\\\"],[12],[1,\\\"sales.yp@epiroc.com\\\"],[13],[1,\\\"\\\\n                \\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[]],[[[1,\\\"        \\\"],[10,0],[14,0,\\\"container-fluid error\\\"],[12],[1,\\\"\\\\n            \\\"],[10,3],[12],[1,\\\"\\\\n                You currently have no active licence.\\\\n                \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" Please install a new licence \\\"],[6,[39,18],null,[[\\\"route\\\"],[\\\"keys\\\"]],[[\\\"default\\\"],[[[[1,\\\"here\\\"]],[]]]]],[1,\\\" or contact YieldPoint for further details.\\\\n                \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" 700 Progress Ave.\\\\n                \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" Kingston, ON. K7M 4W9\\\\n                \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" 1 613-531-4722\\\\n                \\\"],[10,\\\"br\\\"],[12],[13],[1,\\\" \\\"],[10,3],[14,6,\\\"mailto:sales.yp@epiroc.com\\\"],[12],[1,\\\"sales.yp@epiroc.com\\\"],[13],[1,\\\"\\\\n            \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[]]],[13]],[\\\"navbar\\\",\\\"nav\\\",\\\"dd\\\",\\\"ddm\\\",\\\"dd\\\",\\\"ddm\\\",\\\"dd\\\",\\\"ddm\\\",\\\"task\\\"],false,[\\\"bs-navbar\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasPermissionProductionTab\\\",\\\"hasPermissionSensorCalibration\\\",\\\"on\\\",\\\"hasPermissionPacksValidation\\\",\\\"hasPermissionAnalyticsTab\\\",\\\"hasPermissionPacksValidationAnalytics\\\",\\\"hasPermissionSensorCalibrationAnalytics\\\",\\\"username\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"progress-bar\\\",\\\"isValid\\\",\\\"unless\\\",\\\"isWithinLimit\\\",\\\"link-to\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/navbar.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"45jFKsLz\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the newAlertObject.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"newAlertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"newAlertRepeat\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,8],true],null],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"newAlertInvert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,19]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"repeats\\\",\\\"repeatWindow\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"y22aysiN\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectParent\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Parent Gateway: \\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,0],null,[[\\\"content\\\",\\\"id\\\",\\\"selected\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,1],\\\"gatewaySelect\\\",\\\"\\\",\\\"title\\\",\\\"Gateway ID\\\",\\\"Filter\\\",true,[28,[37,2],[[30,0],\\\"setID\\\"],null]]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[10,\\\"td\\\"],[12],[10,1],[12],[1,\\\" \\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,3,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,3,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,4],[[33,3,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,2],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"searchable-select\\\",\\\"gateways\\\",\\\"action\\\",\\\"newGatewayObject\\\",\\\"mut\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"PFDNATgW\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp.\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"gateway\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"gatewayValueObjectValues\\\",\\\"get\\\",\\\"newGatewayValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/create-new-raw-gateway-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"l8E8i0Vl\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"alertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"alertRepeat\\\"],[16,\\\"checked\\\",[33,2,[\\\"repeats\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"repeats\\\"]],true],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,10],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"alertInvert\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[44,[[28,[37,13],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,16]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Average\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,17]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"triggeredTimeText\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"l0ZEVnvf\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"h5\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectParent\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Current Parent Gateway: \\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,4],null,[[\\\"content\\\",\\\"selected\\\",\\\"id\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,5],[33,6],\\\"parentSelection\\\",\\\"title\\\",\\\"Gateway ID\\\",\\\"Filter\\\",false,[28,[37,0],[[30,0],\\\"setID\\\"],null]]]]],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"align: left;\\\"],[14,0,\\\"add-new-item\\\"],[12],[6,[39,7],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-gateway\\\",[33,8,[\\\"parentGateway\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[10,1],[14,0,\\\"add-new\\\"],[12],[1,\\\"Go\\\"],[13]],[]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,8],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left; vertical-align: top;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[10,1],[14,0,\\\"cospan separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Settings:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"meshID\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Mesh ID:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"6\\\"],[15,2,[33,8,[\\\"meshID\\\"]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"gatewayReadInterval\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Read Interval:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"gatewayReadInterval\\\"],[15,\\\"onclick\\\",[28,[37,0],[[30,0],\\\"setGatewayInterval\\\"],[[\\\"value\\\"],[[33,11,[\\\"value\\\"]]]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[30,2]],null]],null],null,[[[41,[28,[37,14],[[33,15],[30,3,[\\\"id\\\"]]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"intervalName\\\"]]],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"intervalName\\\"]]],[13]],[]]]],[3]],null],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[41,[28,[37,14],[[30,1,[\\\"hasChildren\\\"]],true],null],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[1,[28,[35,16],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\"],[[30,1,[\\\"children\\\"]],[28,[37,0],[[30,0],\\\"sortBy\\\"],null],[33,17]]]]],[13]],[]],null],[13]],[\\\"@gateway\\\",\\\"@gatewayReadingIntervals\\\",\\\"selectOption\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"searchable-select\\\",\\\"gateways\\\",\\\"initialSelection\\\",\\\"link-to\\\",\\\"gateway\\\",\\\"single-save-input\\\",\\\"single-save-datetime-picker\\\",\\\"target\\\",\\\"each\\\",\\\"-track-array\\\",\\\"eq\\\",\\\"getGatewayReadIntervalID\\\",\\\"gateway-list\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"IOQ/H4ae\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/nvd3-temporal-gateway-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"OHvXAcA+\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"anchorDistances\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"gatewayType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp.\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"gateway\\\",\\\"gatewayType\\\",\\\"gatewayValueObject\\\",\\\"gatewayValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"setProp\\\"],[[30,2,[\\\"id\\\"]],[30,2],[30,2,[\\\"gatewayType\\\"]],[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@gatewayData\\\",\\\"@gateway\\\",\\\"anchor\\\",\\\"gatewayValue\\\",\\\"index\\\",\\\"@temperatureData\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"oneforone/create-new-raw-gateway-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getGatewayData\\\",\\\"single-save-gateway-inputs-array-table-row-cells\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"cpB/mtum\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@left_axis_field\\\",\\\"ddm\\\",\\\"@right_axis_field\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"X8IV80N2\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[33,3],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"selected\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"right_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"lMBUxBYv\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[1,\\\"      Temperature\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Temperature\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"temp-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@right_axis_field\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"left_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/oneforone/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Y59rGHDK\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"text-align: left;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"text-align: left;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alerts. To add multiple, separate by comma!\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,\\\"title\\\",\\\"Target recipient for alert. Add cell number then click on link to find carrier network. \\\"],[24,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[24,0,\\\"col-12 col-form-label bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,8],[[[6,[39,9],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,10],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,11],[33,8],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"REL_DISP\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"LT (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"5\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"(mm)\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[1,\\\"(mm)\\\"]],[]],null],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],\\\"handleActiveSelectChange\\\"],null]],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,13]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],\\\"handleActiveSelectChange\\\"],null]],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,13]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,\\\"disabled\\\",[36,19]],[14,5,\\\"width:15;\\\"],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,\\\"disabled\\\",[36,19]],[14,5,\\\"width:15;\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\" Reference Time:\\\"],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,20]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,20]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,5,\\\"width: 200px;\\\"],[15,\\\"disabled\\\",[36,21]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,5,\\\"width: 200px;\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,\\\"size\\\",\\\"10\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,\\\"size\\\",\\\"10\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,\\\"size\\\",\\\"10\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,\\\"size\\\",\\\"10\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,\\\"size\\\",\\\"10\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,22]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"activeSize\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"isRefAnchorDisabled\\\",\\\"timeReference\\\",\\\"isTimeReferenceDisabled\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"heokF7K0\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"strokeLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"strokeLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectHeadAt\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Head at:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newInstrumentObjectHeadAt\\\"],[15,\\\"onchange\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,7]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,11],[[30,3,[\\\"key\\\"]],[33,7]],null]],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"title\\\"]]],[13]],[3]],null],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\",\\\"selectOption\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\",\\\"headAt\\\",\\\"each\\\",\\\"-track-array\\\",\\\"headAts\\\",\\\"is-equal\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"gNd+5nGY\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ajuYxXhN\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"REL_DISP\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Abs. Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"REL_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Abs. Displacement \\\"],[13],[10,\\\"option\\\"],[14,2,\\\"REL_DISP\\\"],[12],[1,\\\"Rel. Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],null]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"GT (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"LT (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"LT (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"GT (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"10\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"(mm)\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"REL_DISP\\\"],null],[[[1,\\\"(mm)    \\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,10],[[[10,0],[14,5,\\\"width: auto; padding-top:5px;\\\"],[14,0,\\\"center pulse_loader \\\"],[12],[13]],[]],[[[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,13],[[28,[37,13],[[28,[37,14],[0,[33,15]],null]],null]],null],null,[[[44,[[28,[37,17],[[30,1],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,2],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[2]]]],[1]],null],[13]],[]]],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[28,[37,14],[0,[33,15]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,\\\"disabled\\\",[36,19]],[14,5,\\\"width: 175px;\\\"],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[28,[37,14],[0,[33,15]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,18],[\\\"ch\\\",[30,4]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[]]]],[4]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[15,\\\"disabled\\\",[36,19]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,20]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,5,\\\"width: 200px;\\\"],[15,\\\"disabled\\\",[36,21]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,22]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[16,\\\"disabled\\\",[36,23]],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,23],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[13],[13],[13]],[]]],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,24]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"result\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"loading\\\",\\\"activeSize\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"concat\\\",\\\"isRefAnchorDisabled\\\",\\\"timeReference\\\",\\\"isTimeReferenceDisabled\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"vX9eETJ1\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[41,[28,[37,4],[[33,5,[\\\"channelsNum\\\"]],2],null],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[12],[13],[13],[41,[33,6],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,5,[\\\"id\\\"]],[33,5,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,5],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"object\\\",\\\"parentObject\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"id,value\\\",\\\"value\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],[33,5,[\\\"east\\\"]],[33,5,[\\\"north\\\"]],[33,5,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"headAt\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Head at:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"selectOptions\\\",\\\"id\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,13],\\\"headAt\\\",\\\"id,title\\\",[33,5,[\\\"headAt\\\"]],[33,5],\\\"title\\\",\\\"id\\\",\\\"headAt\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"strokeLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"referenceAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"referenceAnchor\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,14],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,5],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Anchor Depths:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,15],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[33,5,[\\\"headAt\\\",\\\"id\\\"]],[33,5,[\\\"channelsNum\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"gt\\\",\\\"instrument\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-select\\\",\\\"single-save-datetime-picker\\\",\\\"headAts\\\",\\\"single-save-checkbox\\\",\\\"single-save-instrument-anchors\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"eo+wQnOG\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"xcCt8e2W\",\"block\":\"[[[10,0],[12],[10,1],[14,0,\\\"separator\\\"],[12],[13],[13],[10,0],[14,1,\\\"capture\\\"],[12],[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"d0xIRsir\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,13],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"pack/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"jLU5Jv/s\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"w2I+0WA8\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"acceleration-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Acceleration\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pack/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"jN9Fuypf\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[1,[30,2]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n\\\"],[41,[30,3],[[[1,\\\"    \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[8,[30,4,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"page_size\\\",\\\"page\\\"],[20,1]]],[30,5]]],[[\\\"default\\\"],[[[[1,\\\"20\\\"]],[]]]]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n        \\\"],[8,[30,4,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"page_size\\\",\\\"page\\\"],[50,1]]],[30,5]]],[[\\\"default\\\"],[[[[1,\\\"50\\\"]],[]]]]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n        \\\"],[8,[30,4,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"page_size\\\",\\\"page\\\"],[100,1]]],[30,5]]],[[\\\"default\\\"],[[[[1,\\\"100\\\"]],[]]]]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n        \\\"],[8,[30,4,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"page_size\\\",\\\"page\\\"],[200,1]]],[30,5]]],[[\\\"default\\\"],[[[[1,\\\"200\\\"]],[]]]]],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n    \\\"]],[4]]]]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"    \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[8,[30,6,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[10,3],[14,0,\\\"dropdown-item\\\"],[12],[1,\\\"No Events\\\"],[13],[1,\\\"\\\\n        \\\"]],[]]]]],[1,\\\"\\\\n    \\\"]],[6]]]]],[1,\\\"\\\\n\\\"]],[]]]],[1]]]]]],[\\\"dd\\\",\\\"@page_size\\\",\\\"@model\\\",\\\"ddm\\\",\\\"@page_type\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"link-to\\\",\\\"-hash\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/page-item-count.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"vjc7obqW\",\"block\":\"[[[41,[33,1],[[[10,\\\"nav\\\"],[14,\\\"aria-label\\\",\\\"Page navigation\\\"],[12],[10,\\\"ul\\\"],[14,0,\\\"pagination\\\"],[12],[41,[33,2],[[[10,\\\"li\\\"],[14,0,\\\"page-item\\\"],[12],[6,[39,3],null,[[\\\"params\\\",\\\"aria-label\\\",\\\"class\\\"],[[33,2],\\\"Previous\\\",\\\"page-link\\\"]],[[\\\"default\\\"],[[[[1,\\\"1\\\"]],[]]]]],[13],[10,\\\"li\\\"],[14,0,\\\"page-item disabled\\\"],[12],[10,3],[14,6,\\\"#\\\"],[14,0,\\\"page-link\\\"],[12],[1,\\\"...\\\"],[13],[13]],[]],null],[42,[28,[37,5],[[33,1]],null],null,[[[10,\\\"li\\\"],[15,0,[29,[\\\"page-item \\\",[28,[37,6],[[28,[37,7],[[30,1,[\\\"linkName\\\"]],[33,8]],null]],null]]]],[12],[6,[39,3],null,[[\\\"params\\\",\\\"class\\\"],[[30,1,[\\\"params\\\"]],\\\"page-link\\\"]],[[\\\"default\\\"],[[[[1,[30,1,[\\\"linkName\\\"]]]],[]]]]],[13]],[1,2]],null],[41,[33,9],[[[10,\\\"li\\\"],[14,0,\\\"page-item disabled\\\"],[12],[10,3],[14,6,\\\"#\\\"],[14,0,\\\"page-link\\\"],[12],[1,\\\"...\\\"],[13],[13],[10,\\\"li\\\"],[14,0,\\\"page-item\\\"],[12],[6,[39,3],null,[[\\\"params\\\",\\\"aria-label\\\",\\\"class\\\"],[[33,9],\\\"Next\\\",\\\"page-link\\\"]],[[\\\"default\\\"],[[[[1,[34,10]]],[]]]]],[13]],[]],null],[41,[28,[37,11],[[33,10],10],null],[[[10,\\\"li\\\"],[14,0,\\\"page-item\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"2\\\"],[14,\\\"placeholder\\\",\\\"Page #\\\"],[15,\\\"oninput\\\",[28,[37,12],[[30,0],[28,[37,13],[[33,14]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"page-link\\\"],[12],[13],[13],[10,\\\"li\\\"],[14,0,\\\"page-item\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"color:#fff;background-color:#4A6A9C;\\\"],[24,0,\\\"page-link\\\"],[4,[38,12],[[30,0],\\\"goToPage\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Go \\\"],[13],[13]],[]],null],[13],[13]],[]],null]],[\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"paginationLinks\\\",\\\"firstPageLink\\\",\\\"link-to\\\",\\\"each\\\",\\\"-each-in\\\",\\\"active-class\\\",\\\"is-equal\\\",\\\"currentPage\\\",\\\"lastPageLink\\\",\\\"totalPages\\\",\\\"gt\\\",\\\"action\\\",\\\"mut\\\",\\\"newPage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/pagination-links.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"gXita5nr\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Pressure\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"kPa\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YfEk9nPg\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"atV9xdgL\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YLbVHr//\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Pressure\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Pressure\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],null]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"kPa\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"kPa/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"kPa/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9xJxoeuc\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"JZ98XNUM\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"cxdPLYRD\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"FxF4sf+X\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,12]],null]],null],null,[[[1,[28,[35,13],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,14],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,15],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,16],[[30,7,[\\\"id\\\"]],[28,[37,17],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"piezo/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"displacementData2\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"rCtMsJQB\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[30,2],[[[1,\\\"      \\\"],[1,[30,2]],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"        Pressure\\\\n\\\"]],[]]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"Pressure\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,4],[[33,5],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Pressure\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"Pressure Rate\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,4],[[33,5],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Press. Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,2],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,3],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"mmH20\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,4],[[33,5],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"mmH20\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/piezo/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"OD7AExrF\",\"block\":\"[[[41,[33,1],[[[6,[39,2],null,[[\\\"onClose\\\",\\\"translucentOverlay\\\",\\\"targetAttachment\\\",\\\"containerClass\\\",\\\"overlayClass\\\",\\\"wrapperClass\\\",\\\"clickOutsideToClose\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],false,\\\"none\\\",\\\"centered-scrolling-container\\\",\\\"centered-scrolling-overlay\\\",\\\"centered-scrolling-wrapper\\\",false]],[[\\\"default\\\"],[[[[1,\\\"    \\\"],[10,\\\"h2\\\"],[12],[1,\\\"Record List\\\"],[13],[1,\\\"\\\\n    \\\"],[10,\\\"table\\\"],[12],[1,\\\"\\\\n    \\\"],[10,\\\"thead\\\"],[12],[1,\\\"\\\\n      \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"Phone Number\\\"],[13],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"Country\\\"],[13],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"Carrier\\\"],[13],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"Gateway\\\"],[13],[1,\\\"\\\\n        \\\"],[10,\\\"th\\\"],[12],[1,\\\"Select\\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n    \\\"],[10,\\\"tbody\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,5],[[33,6]],null],null,[[[1,\\\"        \\\"],[10,\\\"tr\\\"],[12],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[12],[1,[34,7]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[12],[1,[30,1,[\\\"Country\\\"]]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[12],[1,[30,1,[\\\"Carrier\\\"]]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[12],[1,[30,1,[\\\"Gateway\\\"]]],[13],[1,\\\"\\\\n          \\\"],[10,\\\"td\\\"],[12],[1,\\\"\\\\n            \\\"],[11,\\\"button\\\"],[4,[38,8],[\\\"click\\\",[28,[37,3],[[30,0],\\\"selectGateway\\\",[33,7],[30,1,[\\\"Gateway\\\"]]],null]],null],[12],[1,\\\"Select\\\"],[13],[1,\\\"\\\\n          \\\"],[13],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[1,2]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\\n  \\\"],[11,\\\"button\\\"],[4,[38,3],[[30,0],\\\"closeTargetSelector\\\"],null],[12],[1,\\\"Close\\\"],[13],[1,\\\"\\\\n\\\"]],[]]]]]],[]],null]],[\\\"item\\\",\\\"index\\\"],false,[\\\"if\\\",\\\"isShowingModal\\\",\\\"modal-dialog\\\",\\\"action\\\",\\\"each\\\",\\\"-each-in\\\",\\\"carrierList\\\",\\\"phoneNumber\\\",\\\"on\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/popup-list.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"mwj2VApa\",\"block\":\"[[[10,0],[14,5,\\\"min-height:1200px\\\"],[14,0,\\\"container-fluid\\\"],[12],[41,[33,1,[\\\"isShowPopupNotification\\\"]],[[[10,0],[14,1,\\\"notificationPopup\\\"],[14,5,\\\"max-height:700px; display:flex; flex-direction:column; position:fixed; top:50%; left:50%; transform:translate(-50%, -50%); z-index:999; width:1000px;background: white;border-width: 1px;border-color: gray;border-style: solid;border-radius: 10px;\\\"],[12],[10,0],[14,5,\\\"display: flex; flex-direction: row;justify-content: space-between;width: 100%; \\\"],[12],[10,\\\"h5\\\"],[14,5,\\\"margin-left: 10px;\\\"],[12],[13],[11,\\\"label\\\"],[24,1,\\\"closeXButton\\\"],[24,5,\\\"margin-right: 10px;margin-bottom: 0;font-size: medium;cursor: pointer;color: grey;\\\"],[4,[38,2],[[30,0],\\\"closeNotificationPopup\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"X\\\"],[13],[13],[10,0],[14,1,\\\"notificationPopupContentBody\\\"],[14,5,\\\"overflow-x: scroll;overflow-y: scroll;padding-bottom: 10px; padding-left: 20px; display: flex; flex-direction: column;justify-content: space-between;width: 100%; padding-right: 20px;\\\"],[12],[13],[10,0],[14,1,\\\"confirmationCheckBoxSection\\\"],[14,5,\\\"display:none;align-items: center; justify-content: center;flex-direction: row;width:100%\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"confirmationCheckBox\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[10,\\\"label\\\"],[14,5,\\\"font-weight: bold;font-size: small;margin:0px\\\"],[12],[1,\\\"I confirm the data posted above is correct.\\\"],[13],[13],[10,0],[14,1,\\\"buttonsPanel\\\"],[14,5,\\\"padding:15px;justify-content: center;flex-direction: row;display: flex;width:100%\\\"],[12],[10,\\\"button\\\"],[14,1,\\\"notificationReadyButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ready                \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationRefreshButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Refresh\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationOkButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ok\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationAbortButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"ABORT\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationYesButton\\\"],[14,5,\\\"display:none; margin-left:10px;margin-right:10px;min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Yes \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationNoButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"No\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationSaveButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Save \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationPrintButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Print\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationExportButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Export\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationCancelButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Cancel\\\"],[13],[13],[13]],[]],null],[10,0],[14,1,\\\"popupMessageSection\\\"],[14,0,\\\"pulse-border\\\"],[12],[10,0],[14,1,\\\"popupMessageBody\\\"],[14,5,\\\" padding: 10px; display: flex; flex-direction: column;width: 100%;\\\"],[12],[13],[13],[10,0],[14,1,\\\"controlPanel1\\\"],[14,5,\\\"display:flex; flex-direction:column; position:fixed; top: 20%;right: 10px;transform: translateY(-50%);z-index:999; width:auto; height:auto; background: white;border-width: 1px;border-color: gray;border-style: solid;border-radius: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin:5px;width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;align-self: end;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleVisualSettings\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"rocket\\\"]],null],[1,\\\" \\\"],[13],[41,[33,1,[\\\"isShowSettings\\\"]],[[[10,0],[14,5,\\\"width:125px;display:flex;flex-direction:column;margin-left:5px;margin-right:5px;\\\"],[12],[10,0],[14,5,\\\"width:100%;border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-bottom: 5px;\\\"],[12],[13],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"View Home   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"scrollTop\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"home\\\"]],null],[1,\\\" \\\"],[13],[13]],[]],null],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"View Dashboard   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"scrollDashboard\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"tachometer-alt\\\"]],null],[1,\\\" \\\"],[13],[13]],[]],null],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Cycle Core Ver.   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleInternalHotButton\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"exchange-alt\\\"]],null],[1,\\\" \\\"],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Cycle Displays  \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleView\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"eye\\\"]],null],[13],[13],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Rig Form\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleAddNewRigMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"tools\\\"]],null],[13],[13]],[]],null],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Calib Form \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleAddNewCalibProfileMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"tools\\\"]],null],[13],[13]],[]],null],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Rig Notifications \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"viewRigNotifications\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"bell\\\"]],null],[13],[13]],[]],null],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Calibration Data \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"viewCalibratedData\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[13],[13]],[]],null],[41,[33,1,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Phase II Data \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"viewPhaseIIConclusionCalibrationSheet\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[13],[13]],[]],null],[13]],[]],null],[13],[10,0],[14,5,\\\"display: flex; flex-direction: column; align-items: center; margin-top: 20px;\\\"],[12],[13],[10,0],[12],[10,\\\"h3\\\"],[12],[1,[33,4,[\\\"softwareVersion\\\"]]],[13],[13],[10,0],[14,5,\\\"margin-left:15px\\\"],[12],[11,0],[24,5,\\\"cursor: pointer;display: flex; flex-direction: row; gap: 10px; margin: 0;    justify-content: center;\\\"],[4,[38,2],[[30,0],\\\"cycleView\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,0],[15,1,[30,1]],[15,5,[29,[\\\"width: 10px; height: 10px; border-radius: 50%; background-color: \\\",[52,[28,[37,8],[[33,1,[\\\"tabs\\\"]],[30,1]],null],\\\"grey\\\",\\\"lightgrey\\\"]]]],[12],[13]],[1]],null],[13],[13],[10,0],[14,1,\\\"tabSlider\\\"],[14,5,\\\"width: 100%; max-width: 100%; overflow: hidden; position: relative;\\\"],[12],[10,0],[15,5,[29,[\\\"display: flex; width: 200%; transition: transform 0.5s ease; transform: \\\",[52,[33,1,[\\\"tabs\\\",\\\"home\\\"]],\\\"translateX(0%)\\\",\\\"translateX(-50%)\\\"],\\\";\\\"]]],[12],[10,0],[14,5,\\\"width: 50%;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:column;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: large;color: red;\\\"],[12],[1,\\\"AUTHORIZED PERSONNEL ONLY\\\"],[13],[41,[33,9],[[[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small;color: red;\\\"],[12],[1,\\\"Do not manually refresh page. You will lose data, and it is irretrievable.\\\"],[13]],[]],null],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"min-width:225px;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:column;margin-bottom:15px\\\"],[12],[10,0],[14,5,\\\"margin-bottom:10px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: medium;\\\"],[12],[1,\\\"Step 1: Rig\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-left:5px; margin-bottom:0;font-size: x-small;color: red;\\\"],[12],[1,\\\"required\\\"],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Profile:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedRigIP\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,10],[[30,0,[\\\"selectedRigDP\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"Mandatory selection\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,11]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,2,[\\\"id\\\"]]]]],[12],[1,[30,2,[\\\"title\\\"]]],[13]],[2]],null],[13],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"margin-bottom:10px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: medium;\\\"],[12],[1,\\\"Step 2: Calibration\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-left:5px; margin-bottom:0;font-size: x-small;color: red;\\\"],[12],[1,\\\"required\\\"],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Profile:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedCalibrationType\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,10],[[30,0,[\\\"selectedCalibDP\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"Type / CH / RNG\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,12]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"title\\\"]]],[13]],[3]],null],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"min-width:515px;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"margin-bottom:10px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: medium;\\\"],[12],[1,\\\"Step 3: Sensor \\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-left:5px; margin-bottom:0;font-size: x-small;color: red;\\\"],[12],[1,\\\"required\\\"],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: row;\\\"],[12],[10,0],[14,5,\\\"width: 100%;display: flex;flex-direction: column;\\\"],[12],[41,[28,[37,13],[[28,[37,14],[[33,4,[\\\"internalVersion\\\"]],\\\"v1.0\\\"],null]],null],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"max-width:130px;font-size: small; padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSensorFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"sensorID\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Sensor Name:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"max-width:130px;font-size: small; padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSensorFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"sensorName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Pack ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedPackProfile\\\"],[14,5,\\\"max-width:130px;font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"updateSensorFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"Mandatory selection\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,15,[\\\"packValidationCompletedProfileList\\\"]]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,4,[\\\"id\\\"]]]]],[12],[1,[30,4,[\\\"title\\\"]]],[13]],[4]],null],[13],[13],[13]],[]],null],[41,[28,[37,14],[[33,4,[\\\"internalVersion\\\"]],\\\"v2.0\\\"],null],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;    justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Sensors Count:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"max-width:130px;font-size: small; padding:0px;\\\"],[15,2,[30,0,[\\\"settingsConfig\\\",\\\"BATCH_SENSORS_COUNT\\\"]]],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,10],[[30,0,[\\\"settingsConfig\\\",\\\"BATCH_SENSORS_COUNT\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"batchSensorsCount\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Batch IDs:\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width:130px;height:30px; padding:0px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"showBatchSensors\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"View/Edit\\\"],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;    justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Job #:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"max-width:130px;font-size: small; padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSensorFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"jobID\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: column;height:100%\\\"],[12],[10,0],[14,5,\\\"display:flex;height:100%\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Memo:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"textarea\\\"],[14,5,\\\"min-height: 100px;resize: none;height:100%;font-size: small; padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSensorFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"memo\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"width: 100%;display: flex;flex-direction: row;align-items: center;overflow: hidden;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"width:150px;height:35px; padding:0px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"validatePriorCalibration\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Validate\\\"],[13],[13],[13],[10,0],[14,1,\\\"masterAnchorDiagram\\\"],[14,0,\\\"masterAnchorDiagramStyle\\\"],[12],[10,0],[14,1,\\\"upperMasterSection\\\"],[14,0,\\\"upperMasterSectionStyle\\\"],[12],[10,0],[14,1,\\\"anchorUpperTextBoxSection\\\"],[14,0,\\\"anchorUpperTextBoxSectionStyle\\\"],[12],[13],[13],[10,0],[14,1,\\\"anchorMasterSection\\\"],[14,0,\\\"anchorMasterSectionStyle\\\"],[12],[10,0],[14,0,\\\"anchorHeadTextStyle\\\"],[12],[1,\\\"HEAD\\\"],[13],[10,0],[14,1,\\\"anchorPointsSection\\\"],[14,0,\\\"anchorPointsSectionStyle\\\"],[12],[13],[10,0],[14,0,\\\"anchorToeTextStyle\\\"],[12],[1,\\\"TOE\\\"],[13],[13],[10,0],[14,1,\\\"lowerMasterSection\\\"],[14,0,\\\"lowerMasterSectionStyle\\\"],[12],[10,0],[14,1,\\\"anchorLowerTextBoxSection\\\"],[14,0,\\\"anchorLowerTextBoxSection\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:column;\\\"],[12],[41,[28,[37,14],[[33,1,[\\\"isShowRigForm\\\"]],true],null],[[[10,0],[14,5,\\\"margin-bottom:0;display:flex;flex-direction:row;align-items:center;'\\\"],[12],[10,0],[14,5,\\\"font-size:medium\\\"],[12],[1,\\\"Rig Config Form \\\"],[13],[10,0],[14,5,\\\"font-size:small;display:flex; align-self: flex-end;\\\"],[12],[41,[28,[37,14],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Edit\\\"],[13]],[]],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Add \\\"],[13]],[]]],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: row;align-items: center;\\\"],[12],[41,[28,[37,14],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Rig Profile:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedRigIP\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,10],[[30,0,[\\\"selectedRigDPRigForm\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[13],[42,[28,[37,6],[[28,[37,6],[[33,11]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,5,[\\\"id\\\"]]]]],[12],[1,[30,5,[\\\"title\\\"]]],[13]],[5]],null],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormRigIPTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"IP:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigIP\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormRigNameTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Name:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:200px\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormRigCategoryTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Category:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"width:100px;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"rigCategory\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[13],[42,[28,[37,6],[[28,[37,6],[[33,16]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,6,[\\\"id\\\"]]]]],[12],[1,[30,6,[\\\"title\\\"]]],[13]],[6]],null],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormReferenceIDTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reference Sensor S/N:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigReferenceID\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormReferenceCalibrationValueTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reference Sensor Certificate:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigReferenceCalibrationValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormReferenceCalibrationDateTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reference Sensor Certification Date:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigReferenceCalibrationDate\\\"],[14,0,\\\"date-time-picker\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formSaveButton\\\",\\\"rig\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Save\\\"],[13],[13],[41,[28,[37,14],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formDeleteButton\\\",\\\"rig\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Delete\\\"],[13],[13]],[]],null],[13]],[]],null],[41,[28,[37,14],[[33,1,[\\\"isShowCalibForm\\\"]],true],null],[[[10,0],[14,5,\\\"margin-bottom:0;display:flex;flex-direction:row;align-items:center;'\\\"],[12],[10,0],[14,5,\\\"font-size:medium\\\"],[12],[1,\\\"Calibration Config Form \\\"],[13],[10,0],[14,5,\\\"font-size:small;display:flex; align-self: flex-end;\\\"],[12],[41,[28,[37,14],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Edit\\\"],[13]],[]],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Add\\\"],[13]],[]]],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;\\\"],[12],[41,[28,[37,14],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:250px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Calib Profile:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedCalibrationTypeCalibForm\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,10],[[30,0,[\\\"selectedCalibDPCalibForm\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"Type / CH / RNG\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,12]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,7,[\\\"id\\\"]]]]],[12],[1,[30,7,[\\\"title\\\"]]],[13]],[7]],null],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:250px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Type:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"width:100px;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"calibType\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[13],[42,[28,[37,6],[[28,[37,6],[[33,17]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,8,[\\\"id\\\"]]]]],[12],[1,[30,8,[\\\"title\\\"]]],[13]],[8]],null],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:250px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormTypeIDTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Type ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"typeID\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:150px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormChannelsTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Channels:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,\\\"min\\\",\\\"1\\\"],[14,\\\"max\\\",\\\"15\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"channels\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:250px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormMinLimitTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Min Limit:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"minLimit\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:250px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormMaxLimitTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Max Limit:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"maxLimit\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormSampleSizeTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Sample Size:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,\\\"min\\\",\\\"1\\\"],[14,\\\"step\\\",\\\"1\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"checkpointSampleSize\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:150px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormSpeedTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Speed:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"checkpointSpeed\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:150px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormUnitTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Unit:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"unit\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:150px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormDelayTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Delay:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"checkpointDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:400px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormCurrent-TargetBufferTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Current-Target Buffer:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"checkpointCurrentTargetBuffer\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;align-items: center;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"calibFormPositionsTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Positions:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"width:100%;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateCalibFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"checkpointPositions\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; display:flex;flex-direction:row;align-items: center;margin-right:10px;margin-top:10px;\\\"],[12],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formSaveButton\\\",\\\"calib\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Save\\\"],[13],[13],[41,[28,[37,14],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formDeleteButton\\\",\\\"calib\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Delete\\\"],[13],[13]],[]],null],[13]],[]],null],[13],[10,0],[14,5,\\\"height:10px\\\"],[12],[13],[10,0],[14,5,\\\"\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"calibrationDashboardTitle\\\"],[14,5,\\\"margin-bottom:0;font-size: medium;\\\"],[12],[1,\\\"Calibration Operation Dashboard\\\"],[13],[10,0],[14,5,\\\"width:100%; display:flex; flex-direction:row; padding-left:10px;border: solid;border-width: 0.1px;border-radius: 50px;padding: 5px;border-color: lightgray;\\\"],[12],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small;display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarStatusTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Status:\\\"],[13],[10,0],[14,1,\\\"statusStatus\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column; color:red\\\"],[12],[13],[13],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small;display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarConnectionTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Connection:\\\"],[13],[10,0],[14,1,\\\"connectionStatus\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column; color:red\\\"],[12],[13],[13],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small; display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarCalibrationTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Calibration:\\\"],[13],[10,0],[14,1,\\\"calibrationStatus\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column; color:orange\\\"],[12],[13],[13],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small; display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarCurrentTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Current:\\\"],[13],[10,0],[14,1,\\\"currentPoint\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column\\\"],[12],[13],[13],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small; display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarTargetTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target:\\\"],[13],[10,0],[14,1,\\\"targetPoint\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column\\\"],[12],[13],[13],[13],[10,0],[14,1,\\\"anchorLiveViewSections\\\"],[14,5,\\\"min-height: 20px;width:100%; display:flex; flex-direction:row;border: solid;border-width: 0.1px;border-radius: 50px;padding: 5px;border-color: lightgray;justify-content: space-between;\\\"],[12],[13],[10,0],[14,5,\\\"display:flex;flex-direction:column\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"padding-left:10px;margin-bottom:0px;font-size: x-small;\\\"],[12],[1,\\\"Live Log\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;width:100%;height: 250px;\\\"],[12],[10,0],[14,1,\\\"streamingTextBoxControlPanel\\\"],[14,5,\\\"height: 100%;justify-content: space-evenly;display:flex;align-items: center;flex-direction:column;background-color: white;width: 30px;border-color: gray;border-style: solid;border-width: 1px 0 1px 1px;border-radius: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"copyChatToClipboard\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"copy\\\"]],null],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"unlockChatScroll\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"unlock\\\"]],null],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"lockChatScroll\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"lock\\\"]],null],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"exportChatToFile\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"file-export\\\"]],null],[1,\\\" \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"showLiveGraphs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"showCommandConsole\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"terminal\\\"]],null],[1,\\\" \\\"],[13],[13],[10,0],[14,1,\\\"streamingTextBoxWrapper\\\"],[14,5,\\\"height: 100%; width: 100%; border: solid;border-width: 1px;border-radius: 5px;border-color: gray;\\\"],[12],[10,\\\"canvas\\\"],[14,1,\\\"myChart\\\"],[15,5,[29,[\\\"display: \\\",[52,[30,0,[\\\"isShowConfig\\\",\\\"isShowLiveGraphs\\\"]],\\\"block;\\\",\\\"none;\\\"],\\\";width:100%;height:100%; \\\"]]],[12],[13],[10,0],[14,1,\\\"streamingTextBox\\\"],[15,5,[29,[\\\"white-space:pre-line;display: \\\",[52,[30,0,[\\\"isShowConfig\\\",\\\"isShowLiveGraphs\\\"]],\\\"none;\\\",\\\"block;\\\"],\\\";width: 100%; height: 100%; font-size: x-small; color:black;background-color: rgba(255, 255, 255, 0.4); overflow-y: auto; padding: 5px;\\\"]]],[12],[13],[13],[13],[10,0],[15,5,[29,[\\\"display: \\\",[52,[30,0,[\\\"isShowConfig\\\",\\\"isShowCommandConsole\\\"]],\\\"flex;\\\",\\\"none;\\\"],\\\";margin-left:30px;flex-direction:row;align-items: center;\\\"]]],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"min-width:500px;font-size: small;padding: 0px;\\\"],[15,\\\"onkeydown\\\",[28,[37,2],[[30,0],\\\"onKeyDown\\\"],null]],[14,1,\\\"cmdConsole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[11,\\\"button\\\"],[24,1,\\\"sendCommand\\\"],[24,5,\\\"padding: 3px;border: solid;border-radius: 50px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"sendCommand\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Send\\\"],[13],[13],[13],[10,0],[14,5,\\\"width: 100%;display:flex;flex-direction:column\\\"],[12],[10,0],[14,5,\\\"width: 100%;display:flex;flex-direction:row\\\"],[12],[10,0],[14,5,\\\"width: 50%;display:flex;flex-direction:column\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"padding-left:10px;margin-bottom:0px;font-size: x-small;\\\"],[12],[1,\\\"Phase I Log\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;width:100%\\\"],[12],[10,0],[14,1,\\\"streamingTextBoxControlPanel\\\"],[14,5,\\\"justify-content: space-evenly;display:flex;align-items: center;flex-direction:column;background-color: white;width: 30px;height: 200px;border-color: gray;border-style: solid;border-width: 1px 0 1px 1px;border-radius: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"copyChatToClipboard\\\",\\\"phaseITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"copy\\\"]],null],[1,\\\"                        \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"unlockChatScroll\\\",\\\"phaseITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"unlock\\\"]],null],[1,\\\"                        \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"lockChatScroll\\\",\\\"phaseITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"lock\\\"]],null],[1,\\\"                        \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"exportChatToFile\\\",\\\"phaseITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"file-export\\\"]],null],[1,\\\" \\\"],[13],[13],[10,0],[14,1,\\\"phaseITextbox\\\"],[14,5,\\\"white-space:pre-line;width: 100%; padding: 5px;font-size: x-small;background-color: white;height: 200px;border-color: gray;border-style: solid;border-width: 1px;border-radius: 10px; overflow-y: auto;\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width: 50%;display:flex;flex-direction:column\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"padding-left:10px;margin-bottom:0px;font-size: x-small;\\\"],[12],[1,\\\"Phase II Log\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;width:100%\\\"],[12],[10,0],[14,1,\\\"phaseIITextbox\\\"],[14,5,\\\"white-space:pre-line;width: 100%; padding: 5px;font-size: x-small;background-color: white;height: 200px;border-color: gray;border-style: solid;border-width: 1px;border-radius: 10px; overflow-y: auto;\\\"],[12],[13],[10,0],[14,1,\\\"streamingTextBoxControlPanel\\\"],[14,5,\\\"justify-content: space-evenly;display:flex;align-items: center;flex-direction:column;background-color: white;width: 30px;height: 200px;border-color: gray;border-style: solid;border-width: 1px 1px 1px 0;border-radius: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"copyChatToClipboard\\\",\\\"phaseIITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"copy\\\"]],null],[1,\\\"                        \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"unlockChatScroll\\\",\\\"phaseIITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"unlock\\\"]],null],[1,\\\"                        \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"lockChatScroll\\\",\\\"phaseIITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"lock\\\"]],null],[1,\\\"                        \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"exportChatToFile\\\",\\\"phaseIITextbox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"file-export\\\"]],null],[1,\\\" \\\"],[13],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"width: 100%;display:flex;flex-direction:column;border-color: lightgray;border-style: solid;border-width: 1px;border-radius: 10px;margin-top: 10px;\\\"],[12],[10,0],[14,5,\\\"width: 100%;height: 100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,1,\\\"stepperMotorSection\\\"],[14,5,\\\"pointer-events: none;opacity:0.5;min-width:220px;width: 25%; padding-left: 10px; display: flex; flex-direction: column;justify-content: space-between;margin-bottom: 10px;\\\"],[12],[10,0],[14,5,\\\"font-size:small;\\\"],[12],[1,\\\"Stepper Motor\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;padding-bottom: 5px; \\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"stepperInit\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Init   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+8.33\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+8.33 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+10 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+1\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+1 \\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"stepper0\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"0 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+25\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+25 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"-10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-10 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"-1\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-1  \\\"],[13],[13],[13],[10,0],[14,5,\\\"border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-top: 10px;margin-bottom: 10px;\\\"],[12],[13],[10,0],[14,1,\\\"pressurePumpSection\\\"],[14,5,\\\"pointer-events: none;opacity:0.5;min-width:220px;width: 25%; padding-left: 10px; display: flex; flex-direction: column;justify-content: space-between;margin-bottom: 10px;\\\"],[12],[10,0],[14,5,\\\"font-size:small;\\\"],[12],[1,\\\"Pressure Pump\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;padding-bottom: 5px; \\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+100\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+100   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+50\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+50 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+25\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+25 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+10\\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-100\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-100 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-50\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-50 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-25\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-25 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-10\\\"],[13],[13],[13],[10,0],[14,5,\\\"border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-top: 10px;margin-bottom: 10px;\\\"],[12],[13],[10,0],[14,1,\\\"pressureCalibHotKeysSection\\\"],[14,5,\\\"pointer-events: none;opacity:0.5;min-width:220px;width: 40%; padding-left: 10px; display: flex; flex-direction: column;justify-content: space-between;margin-bottom: 10px;\\\"],[12],[10,0],[14,5,\\\"font-size:small;\\\"],[12],[1,\\\"Pressure Calib. Hot Keys\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;padding-bottom: 5px; \\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Set Up. Calib. Arr.\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Get Temp. Offset\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Get Press. Offset\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+10\\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Set Up. Calib. Arr.\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Set Temp. Offset\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Set Press. Offset\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:85px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Exp. Lookup  \\\"],[13],[13],[13],[10,0],[14,5,\\\"border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-top: 10px;margin-bottom: 10px;\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width: 100%;height: 50px;display: flex;flex-direction: row;justify-content: space-evenly;border: solid;border-width: 0.1px;border-radius: 50px;padding: 5px;border-color: lightgray;margin-top: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:80px;padding: 3px;border: solid;border-radius: 50px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"reconnectWebSocket\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reconnect \\\"],[13],[41,[28,[37,14],[[33,4,[\\\"internalVersion\\\"]],\\\"v1.0\\\"],null],[[[10,\\\"button\\\"],[14,1,\\\"phaseICalibrationButton\\\"],[14,5,\\\"min-width:80px;padding: 3px;background-color:green;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"phaseICalibrationButton\\\",500,\\\"Phase I\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseICalibrationButton\\\",\\\"Phase I\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseICalibrationButton\\\",\\\"Phase I\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Phase I \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"phaseIICalibrationButton\\\"],[14,5,\\\"min-width:80px;padding: 3px;background-color:green;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"phaseIICalibrationButton\\\",1000,\\\"Phase II\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseIICalibrationButton\\\",\\\"Phase II\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseIICalibrationButton\\\",\\\"Phase II\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Phase II\\\"],[13]],[]],null],[41,[28,[37,14],[[33,4,[\\\"internalVersion\\\"]],\\\"v2.0\\\"],null],[[[10,\\\"button\\\"],[14,1,\\\"startV2CalibrationButton\\\"],[14,5,\\\"min-width:80px;padding: 3px;background-color:green;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"startV2CalibrationButton\\\",1000,\\\"Start\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"startV2CalibrationButton\\\",\\\"Start\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"startV2CalibrationButton\\\",\\\"Start\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Start\\\"],[13]],[]],null],[10,\\\"button\\\"],[14,1,\\\"stopCalibrationButton\\\"],[14,5,\\\"min-width:200px;padding: 3px;background-color:red;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"stopCalibrationButton\\\",500,\\\"STOP\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"stopCalibrationButton\\\",\\\"STOP\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"stopCalibrationButton\\\",\\\"STOP\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"STOP\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"resetCalibrationButton\\\"],[14,5,\\\"min-width:80px;padding: 3px;background-color:red;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"resetCalibrationButton\\\",2500,\\\"RESET\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"resetCalibrationButton\\\",\\\"RESET\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"resetCalibrationButton\\\",\\\"RESET\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"RESET\\\"],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left:5px;width: 50%;\\\"],[12],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:none; flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;\\\"],[12],[1,\\\"Rows:\\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"page_size\\\"],[14,5,\\\"padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"-\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,18]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,9,[\\\"id\\\"]]]]],[12],[1,[30,9,[\\\"title\\\"]]],[13]],[9]],null],[13],[13],[10,\\\"label\\\"],[14,1,\\\"totalReadings\\\"],[14,5,\\\"margin-bottom:0;margin-left:15px;\\\"],[12],[1,\\\"Total:\\\"],[13],[13],[13],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:flex; flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;\\\"],[12],[1,\\\"Basic Filters:\\\"],[13],[13],[13],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:flex; flex-direction:row; align-items:center\\\"],[12],[10,0],[14,5,\\\"margin-left:10px;display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Calib ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,1,\\\"searchCalibrationID\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Job ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,1,\\\"searchJobID\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Sensor ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,1,\\\"searchSensorID\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:flex; flex-direction:row; align-items:center\\\"],[12],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"search\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Search \\\"],[13],[13],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"resetSearch\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Search\\\"],[13],[13],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"resetSort\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Sort\\\"],[13],[13],[13],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:flex; flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;\\\"],[12],[1,\\\"Certificate Manager:\\\"],[13],[13],[13],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:flex; flex-direction:row; align-items:center\\\"],[12],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"batchCertificate\\\",true],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"View & Export\\\"],[13],[13],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"batchCertificate\\\",false],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Direct Export\\\"],[13],[13],[13],[10,\\\"table\\\"],[14,5,\\\"border-width: 0px;margin-top:10px\\\"],[14,0,\\\"table table-striped table-bordered\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"HEADER_CB\\\"],[24,4,\\\"checkbox\\\"],[4,[38,2],[[30,0],\\\"rowCheckbox\\\",\\\"HEADER_CB\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[13],[11,\\\"th\\\"],[24,1,\\\"calibrationIDColumn\\\"],[24,5,\\\"font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"calibrationIDOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Calibration ID\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"jobIDColumn\\\"],[24,5,\\\"font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"jobIDOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Job ID\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"calibrationDateColumn\\\"],[24,5,\\\"font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"calibrationDateOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Calibration Date v\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"sensorIDColumn\\\"],[24,5,\\\"font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"sensorIDOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Sensor ID\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"font-size: smaller;font-weight: normal;\\\"],[12],[1,\\\"Sensor Desc\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"font-size: smaller;font-weight: normal;\\\"],[12],[1,\\\"Employee\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"font-size: smaller;font-weight: normal;\\\"],[12],[1,\\\"Actions\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,15,[\\\"calibrationInstrumentProfileList\\\"]]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"input\\\"],[16,1,[28,[37,19],[\\\"BATCH_CB_\\\",[30,10,[\\\"calibrationId\\\"]]],null]],[24,4,\\\"checkbox\\\"],[4,[38,2],[[30,0],\\\"rowCheckbox\\\",[28,[37,19],[\\\"BATCH_CB_\\\",[30,10,[\\\"calibrationId\\\"]]],null]],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,10,[\\\"calibrationId\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,10,[\\\"jobId\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,10,[\\\"calibrationDate\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,10,[\\\"sensorId\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,10,[\\\"sensorDescription\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,10,[\\\"employee\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"width: 130px;\\\"],[12],[10,0],[14,5,\\\"width: 130px; overflow-x: auto;\\\"],[12],[10,0],[14,5,\\\"width: 130px; overflow-x: auto;display:inline-flex; min-width: max-content; gap:15px; cursor: pointer;color: blue;text-decoration: underline;font-size: smaller;\\\"],[12],[11,0],[4,[38,2],[[30,0],\\\"viewCalibrationSheet\\\",[30,10,[\\\"calibrationId\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Certificate\\\"],[13],[11,0],[4,[38,2],[[30,0],\\\"getCalibProfile\\\",[30,10,[\\\"calibrationId\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Profile\\\"],[13],[41,[33,4,[\\\"CALIBRATIONSPECIFICPERMISSIONS\\\",\\\"can_view_edit_from_inv\\\"]],[[[11,0],[4,[38,2],[[30,0],\\\"viewFromInventoryEditSheet\\\",[30,10]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Edit from Inv\\\"],[13]],[]],null],[13],[13],[13],[13]],[10]],null],[13],[13],[10,0],[14,5,\\\"display:flex;justify-content: flex-end;\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,20,[\\\"calibrationInstrumentProfilePaginationList\\\"]]],null]],null],null,[[[11,\\\"button\\\"],[16,5,[29,[\\\"border-color: \\\",[52,[28,[37,21],[[30,11],\\\"...\\\"],null],\\\"white\\\",\\\"#4A6A9C\\\"],\\\";color: \\\",[52,[28,[37,21],[[30,11],\\\"...\\\"],null],\\\"black\\\",\\\"white\\\"],\\\";margin-right: 10px;font-size:small;padding: 5px;background-color: \\\",[52,[28,[37,21],[[30,11],\\\"...\\\"],null],\\\"white\\\",\\\"#4A6A9C\\\"]]]],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"jumpToPage\\\",[30,11]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[30,11]],[13]],[11]],null],[13],[13],[13],[13],[13]],[\\\"tabKey\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"profile\\\",\\\"page\\\"],false,[\\\"if\\\",\\\"isShowConfig\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"settingsConfig\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getTabKeys\\\",\\\"get\\\",\\\"showIrretrivableWarning\\\",\\\"mut\\\",\\\"getRigList\\\",\\\"getCalibrationProfileList\\\",\\\"or\\\",\\\"is-equal\\\",\\\"frontendData\\\",\\\"getApprovedRigCategoryList\\\",\\\"getApprovedInstrumentTypeList\\\",\\\"getPaginationPageSizesList\\\",\\\"concat\\\",\\\"paginationSearchConfig\\\",\\\"eq\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/production/calibrationMainPage.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Hwa36pKb\",\"block\":\"[[[10,0],[14,5,\\\"min-height:1200px\\\"],[14,0,\\\"container-fluid\\\"],[12],[41,[33,1,[\\\"isShowPopupNotification\\\"]],[[[10,0],[14,1,\\\"overlayBackdrop\\\"],[14,5,\\\"position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.25); z-index: 998; pointer-events: auto;\\\"],[12],[13]],[]],null],[41,[33,1,[\\\"isShowPopupNotification\\\"]],[[[10,0],[14,1,\\\"notificationPopup\\\"],[14,5,\\\"max-height:700px; display:flex; flex-direction:column; position:fixed; top:50%; left:50%; transform:translate(-50%, -50%); z-index:999; width:1000px;background: white;border-width: 1px;border-color: gray;border-style: solid;border-radius: 10px;\\\"],[12],[10,0],[14,5,\\\"display: flex; flex-direction: row;justify-content: space-between;width: 100%; \\\"],[12],[10,\\\"h5\\\"],[14,5,\\\"margin-left: 10px;\\\"],[12],[13],[11,\\\"label\\\"],[24,1,\\\"closeXButton\\\"],[24,5,\\\"margin-right: 10px;margin-bottom: 0;font-size: medium;cursor: pointer;color: grey;\\\"],[4,[38,2],[[30,0],\\\"closeNotificationPopup\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"X\\\"],[13],[13],[10,0],[14,1,\\\"notificationPopupContentBody\\\"],[14,5,\\\"overflow-x: scroll;overflow-y: scroll;padding-bottom: 10px; padding-left: 20px; display: flex; flex-direction: column;justify-content: space-between;width: 100%; padding-right: 20px;\\\"],[12],[13],[10,0],[14,1,\\\"confirmationCheckBoxSection\\\"],[14,5,\\\"display:none;align-items: center; justify-content: center;flex-direction: row;width:100%\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"confirmationCheckBox\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[10,\\\"label\\\"],[14,5,\\\"font-weight: bold;font-size: small;margin:0px\\\"],[12],[1,\\\"I confirm the data posted above is correct.           \\\"],[13],[13],[10,0],[14,1,\\\"buttonsPanel\\\"],[14,5,\\\"padding:15px;justify-content: center;flex-direction: row;display: flex;width:100%\\\"],[12],[10,\\\"button\\\"],[14,1,\\\"notificationReadyButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ready\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationRefreshButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Refresh\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationOkButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ok\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationAbortButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"ABORT\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationOverruleButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Overrule\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationYesButton\\\"],[14,5,\\\"display:none; margin-left:10px;margin-right:10px;min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Yes \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationNoButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"No\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationSaveButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Save \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationPrintButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Print\\\"],[13],[13],[13]],[]],null],[10,0],[14,1,\\\"popupMessageSection\\\"],[14,0,\\\"pulse-border\\\"],[12],[10,0],[14,1,\\\"popupMessageBody\\\"],[14,5,\\\" padding: 10px; display: flex; flex-direction: column;width: 100%;\\\"],[12],[13],[13],[10,0],[14,1,\\\"controlPanel1\\\"],[14,5,\\\"display:flex; flex-direction:column; position:fixed; top: 27%;right: 10px;transform: translateY(-50%);z-index:999; width:auto; height:auto; background: white;border-width: 1px;border-color: gray;border-style: solid;border-radius: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin:5px;width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;align-self: end;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleVisualSettings\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"rocket\\\"]],null],[1,\\\" \\\"],[13],[41,[33,1,[\\\"isShowSettings\\\"]],[[[10,0],[14,5,\\\"width:125px;display:flex;flex-direction:column;margin-left:5px;margin-right:5px;\\\"],[12],[10,0],[14,5,\\\"width:100%;border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-bottom: 5px;\\\"],[12],[13],[41,[33,4,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"View Home   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"scrollTop\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"home\\\"]],null],[1,\\\" \\\"],[13],[13]],[]],null],[41,[33,4,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"View Dashboard   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"scrollDashboard\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"tachometer-alt\\\"]],null],[1,\\\" \\\"],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Cycle Displays  \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleView\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"eye\\\"]],null],[13],[13],[41,[28,[37,5],[[33,4,[\\\"phaseENV\\\",\\\"canCycle\\\"]],true],null],[[[41,[33,4,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,1,\\\"cyclePhaseHotButton\\\"],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Cycle Phase \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cyclePhase\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"exchange-alt\\\"]],null],[13],[13]],[]],null]],[]],null],[41,[28,[37,5],[[33,4,[\\\"phaseENV\\\",\\\"canCycle\\\"]],true],null],[[[41,[33,4,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,1,\\\"cycleInternalHotButton\\\"],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Cycle Core Ver. \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleInternalHotButton\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"exchange-alt\\\"]],null],[13],[13]],[]],null]],[]],null],[41,[33,4,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Rig Form\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleAddNewRigMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"tools\\\"]],null],[13],[13]],[]],null],[41,[33,4,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Pack Type Form \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"cycleAddNewPackTypeMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"tools\\\"]],null],[13],[13]],[]],null],[41,[33,4,[\\\"tabs\\\",\\\"home\\\"]],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;justify-content: space-between;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,\\\"Rig Notifications \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"viewRigNotifications\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"bell\\\"]],null],[13],[13]],[]],null],[13]],[]],null],[13],[10,0],[14,5,\\\"display: flex; flex-direction: column; align-items: center; margin-top: 20px;\\\"],[12],[13],[10,0],[14,5,\\\"display: flex; flex-direction: row; align-items: center;\\\"],[12],[10,\\\"h3\\\"],[12],[1,[33,4,[\\\"softwareVersion\\\"]]],[13],[10,0],[14,1,\\\"phaseValidationLabel\\\"],[12],[13],[13],[10,0],[14,1,\\\"cycleViewSection\\\"],[14,5,\\\"margin-left:15px\\\"],[12],[11,0],[24,5,\\\"cursor: pointer;display: flex; flex-direction: row; gap: 10px; margin: 0;    justify-content: center;\\\"],[4,[38,2],[[30,0],\\\"cycleView\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[42,[28,[37,7],[[28,[37,7],[[33,8]],null]],null],null,[[[10,0],[15,1,[30,1]],[15,5,[29,[\\\"width: 10px; height: 10px; border-radius: 50%; background-color: \\\",[52,[28,[37,9],[[33,4,[\\\"tabs\\\"]],[30,1]],null],\\\"grey\\\",\\\"lightgrey\\\"]]]],[12],[13]],[1]],null],[13],[13],[10,0],[14,1,\\\"tabSlider\\\"],[14,5,\\\"width: 100%; max-width: 100%; overflow: hidden; position: relative;\\\"],[12],[10,0],[15,5,[29,[\\\"display: flex; width: 200%; transition: transform 0.5s ease; transform: \\\",[52,[33,4,[\\\"tabs\\\",\\\"home\\\"]],\\\"translateX(0%)\\\",\\\"translateX(-50%)\\\"],\\\";\\\"]]],[12],[10,0],[14,5,\\\"width: 50%;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:column;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: large;color: red;\\\"],[12],[1,\\\"AUTHORIZED PERSONNEL ONLY\\\"],[13],[41,[33,10],[[[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small;color: red;\\\"],[12],[1,\\\"Do not manually refresh page. You will lose data, and it is irretrievable.\\\"],[13]],[]],null],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"min-width:225px;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:column;margin-bottom:15px\\\"],[12],[10,0],[14,5,\\\"margin-bottom:10px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: medium;\\\"],[12],[1,\\\"Step 1: Rig\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-left:5px; margin-bottom:0;font-size: x-small;color: red;\\\"],[12],[1,\\\"required\\\"],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Profile:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedRigIP\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,11],[[30,0,[\\\"selectedRigDP\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"Mandatory selection\\\"],[13],[42,[28,[37,7],[[28,[37,7],[[33,12]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,2,[\\\"id\\\"]]]]],[12],[1,[30,2,[\\\"title\\\"]]],[13]],[2]],null],[13],[13],[13],[13],[13],[41,[28,[37,5],[[33,4,[\\\"phaseENV\\\",\\\"phase\\\"]],1],null],[[[10,0],[14,5,\\\"min-width:350px;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"margin-bottom:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: medium;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"cycleIsRepair\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Step 2: Pack Configuration\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-left:5px; margin-bottom:0;font-size: x-small;color: red;\\\"],[12],[1,\\\"required\\\"],[13],[13],[41,[28,[37,5],[[33,4,[\\\"phaseENV\\\",\\\"isRepairing\\\"]],true],null],[[[10,0],[14,5,\\\"padding-left: 10px; display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width:65px;margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Repair Completed Packs:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"completedFullPackProfile\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,11],[[30,0,[\\\"completedPackProfileDP\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"X-Pack\\\"],[13],[42,[28,[37,7],[[28,[37,7],[[33,13,[\\\"completedFullPacksData\\\"]]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,3,[\\\"id\\\"]]]]],[12],[1,[30,3,[\\\"title\\\"]]],[13]],[3]],null],[13],[13],[13]],[]],[[[10,0],[14,5,\\\"padding-left: 10px; display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width:65px;margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Pack Type:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedPackType\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,11],[[30,0,[\\\"selectedPackTypeDP\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"X-Pack\\\"],[13],[42,[28,[37,7],[[28,[37,7],[[33,14]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,4,[\\\"id\\\"]]]]],[12],[1,[30,4,[\\\"title\\\"]]],[13]],[4]],null],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: column;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width:65px;margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Name:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small; padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"packName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width:65px;margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Memo:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"textarea\\\"],[14,5,\\\"font-size: small; padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase1Memo\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13]],[]]],[13]],[]],[[[10,0],[14,5,\\\"min-width:350px;display:flex;flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"margin-bottom:10px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: medium;\\\"],[12],[1,\\\"Step 2: Completed Packs\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-left:5px; margin-bottom:0;font-size: x-small;color: red;\\\"],[12],[1,\\\"required\\\"],[13],[13],[10,0],[14,5,\\\"padding-left: 10px;min-width:250px; width: 100%;display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width:65px;margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Profile:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedPackType\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,11],[[30,0,[\\\"manufacturedPackProfileDP\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"Pack ID\\\"],[13],[42,[28,[37,7],[[28,[37,7],[[33,13,[\\\"manufacturedPacksData\\\"]]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,5,[\\\"id\\\"]]]]],[12],[1,[30,5,[\\\"title\\\"]]],[13]],[5]],null],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; display: flex;flex-direction: row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"min-width:65px;margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Memo:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"textarea\\\"],[14,5,\\\"font-size: small; padding:0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase2Memo\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13]],[]]],[10,0],[14,5,\\\"width: 100%;display: flex;flex-direction: row;align-items: center;overflow: hidden;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"width:150px;height:35px; padding:0px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"validatePriorCalibration\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Validate       \\\"],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:column;\\\"],[12],[41,[28,[37,5],[[33,1,[\\\"isShowRigForm\\\"]],true],null],[[[10,0],[14,5,\\\"height:10px\\\"],[12],[13],[10,0],[14,5,\\\"margin-bottom:0;display:flex;flex-direction:row;align-items:center;'\\\"],[12],[10,0],[14,5,\\\"font-size:medium\\\"],[12],[1,\\\"Rig Config Form \\\"],[13],[10,0],[14,5,\\\"font-size:small;display:flex; align-self: flex-end;\\\"],[12],[41,[28,[37,5],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Edit\\\"],[13]],[]],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Add \\\"],[13]],[]]],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[13],[10,0],[14,5,\\\"padding-left: 10px; width: 100%;display: flex;flex-direction: row;align-items: center;\\\"],[12],[41,[28,[37,5],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Rig Profile:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedRigIP\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,11],[[30,0,[\\\"selectedRigDPRigForm\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[13],[42,[28,[37,7],[[28,[37,7],[[33,12]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,6,[\\\"id\\\"]]]]],[12],[1,[30,6,[\\\"title\\\"]]],[13]],[6]],null],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormRigIPTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"IP:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigIP\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormRigNameTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Name:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:200px\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormRigCategoryTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Category:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"width:100px;\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"rigCategory\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[13],[42,[28,[37,7],[[28,[37,7],[[33,15]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,7,[\\\"id\\\"]]]]],[12],[1,[30,7,[\\\"title\\\"]]],[13]],[7]],null],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormReferenceIDTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reference Sensor S/N:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigReferenceID\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormReferenceCalibrationValueTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reference Sensor Certificate:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigReferenceCalibrationValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"rigFormReferenceCalibrationDateTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reference Sensor Certification Date:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"padding:0px;font-size:small\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateRigFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"rigReferenceCalibrationDate\\\"],[14,0,\\\"date-time-picker\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,0],[14,5,\\\"margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formSaveButton\\\",\\\"rig\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Save\\\"],[13],[13],[41,[28,[37,5],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formDeleteButton\\\",\\\"rig\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Delete\\\"],[13],[13]],[]],null],[13]],[]],null],[41,[28,[37,5],[[33,1,[\\\"isShowPackTypeForm\\\"]],true],null],[[[10,0],[14,5,\\\"height:10px\\\"],[12],[13],[10,0],[14,5,\\\"margin-bottom:0;display:flex;flex-direction:row;align-items:center;'\\\"],[12],[10,0],[14,5,\\\"font-size:medium\\\"],[12],[1,\\\"Pack Type Config Form \\\"],[13],[10,0],[14,5,\\\"font-size:small;display:flex; align-self: flex-end;\\\"],[12],[41,[28,[37,5],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Edit\\\"],[13]],[]],[[[11,0],[24,5,\\\"padding-left: 5px;text-decoration: underline;cursor:pointer;color:blue;\\\"],[4,[38,2],[[30,0],\\\"cycleEditMode\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Mode: Add\\\"],[13]],[]]],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;\\\"],[12],[41,[28,[37,5],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"width:20%;display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:250px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Pack Type:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"selectedPackTypeCalibForm\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,11],[[30,0,[\\\"selectedPackTypeDPCalibForm\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"X-Pack\\\"],[13],[42,[28,[37,7],[[28,[37,7],[[33,14]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,8,[\\\"id\\\"]]]]],[12],[1,[30,8,[\\\"title\\\"]]],[13]],[8]],null],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"width:20%;display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:250px;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Sensor Types:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"packType\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"Sensor Type\\\"],[13],[42,[28,[37,7],[[28,[37,7],[[33,16]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,9,[\\\"id\\\"]]]]],[12],[1,[30,9,[\\\"title\\\"]]],[13]],[9]],null],[13],[13],[13],[10,0],[14,5,\\\"width:20%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormActiveCoilsCount\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Active Number of Coils:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"activeCoilsCount\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:20%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormTotalCoilsCount\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Total Number of Coils on Board:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"totalCoilsCount\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:20%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormMinLimitTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Min:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"min\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:20%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormMaxLimitTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Max:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"max\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP1UnloadMin\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PI Unload Min:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase1UnloadMinRange\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP1LoadMin\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PI Load Min:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase1LoadMinRange\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP2Unload2Min\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PII Unload 2 Min:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase2UnloadMinRange2\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP2Load2Min\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PII Load 2 Min:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase2LoadMinRange2\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP1UnloadMax\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PI Unload Max:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase1UnloadMaxRange\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP1LoadMax\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PI Load Max:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase1LoadMaxRange\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP2Unload2Max\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PII Unload 2 Max:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase2UnloadMaxRange2\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormP2Load2Max\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"PII Load 2 Max:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"phase2LoadMaxRange2\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormUnloadAcceptedVariance\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Unload Accepted Variance:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"acceptedUnloadVariance\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormLoadAcceptedVariance\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Load Accepted Variance:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"acceptedLoadVariance\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormGeneralCoilsPositions\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Active Coils Position:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"generalCoilsPositions\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"packTypeFormReferenceUnfilledCoilsPositions\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reference Unfilled Coils Position:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"referenceUnfilledCoilsPositions\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; width:100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,5,\\\"width:25%;display:flex;flex-direction:row;align-items: center;margin-right:10px;\\\"],[12],[11,\\\"label\\\"],[24,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Stage Delay:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updatePackTypeFormData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,1,\\\"checkpointDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left: 10px; display:flex;flex-direction:row;align-items: center;margin-right:10px;margin-top:10px;\\\"],[12],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formSaveButton\\\",\\\"packType\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Save\\\"],[13],[13],[41,[28,[37,5],[[33,1,[\\\"isFormEditing\\\"]],true],null],[[[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"formDeleteButton\\\",\\\"packType\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Delete\\\"],[13],[13]],[]],null],[13]],[]],null],[13],[10,0],[14,5,\\\"height:10px\\\"],[12],[13],[10,0],[12],[10,\\\"label\\\"],[14,1,\\\"dashboardTitle\\\"],[14,5,\\\"margin-bottom:0;font-size: medium;\\\"],[12],[1,\\\"Packs Operation Dashboard\\\"],[13],[10,0],[14,5,\\\"width:100%; display:flex; flex-direction:row; padding-left:10px;border: solid;border-width: 0.1px;border-radius: 50px;padding: 5px;border-color: lightgray;\\\"],[12],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small;display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarStatusTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Status:\\\"],[13],[10,0],[14,1,\\\"statusStatus\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column; color:red\\\"],[12],[13],[13],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small;display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarConnectionTooltip\\\\n\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Connection:\\\"],[13],[10,0],[14,1,\\\"connectionStatus\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column; color:red\\\"],[12],[13],[13],[10,0],[14,5,\\\"width:20%; display:flex; flex-direction:row\\\"],[12],[11,0],[24,5,\\\"font-size:small; display:flex; flex-direction:column; padding-right:10px\\\"],[4,[38,2],[[30,0],\\\"assistiveTooltip\\\",\\\"statusBarCalibrationTooltip\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Status:\\\"],[13],[10,0],[14,1,\\\"calibrationStatus\\\"],[14,5,\\\"font-size:small; font-weight:bold; display:flex; flex-direction:column; color:orange\\\"],[12],[13],[13],[13],[10,0],[14,1,\\\"anchorLiveViewSections\\\"],[14,5,\\\"min-height: 20px;width:100%; display:flex; flex-direction:row;border: solid;border-width: 0.1px;border-radius: 50px;padding: 5px;border-color: lightgray;justify-content: space-between;\\\"],[12],[13],[10,0],[14,1,\\\"packsProgressionViewSection\\\"],[14,0,\\\"packsProgressionViewSection\\\"],[12],[10,0],[14,1,\\\"packsProgressionBar\\\"],[14,0,\\\"packsProgressionBar\\\"],[12],[10,0],[14,1,\\\"packsProgressionValue\\\"],[14,0,\\\"packsProgressionValue\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:column\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"padding-left:10px;margin-bottom:0px;font-size: x-small;\\\"],[12],[1,\\\"Live Log\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;width:100%;height: 400px;\\\"],[12],[10,0],[14,1,\\\"streamingTextBoxControlPanel\\\"],[14,5,\\\"height: 100%;justify-content: space-evenly;display:flex;align-items: center;flex-direction:column;background-color: white;width: 30px;border-color: gray;border-style: solid;border-width: 1px 0 1px 1px;border-radius: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"copyChatToClipboard\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"copy\\\"]],null],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"unlockChatScroll\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"unlock\\\"]],null],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"lockChatScroll\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"lock\\\"]],null],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"exportChatToFile\\\",\\\"streamingTextBox\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"file-export\\\"]],null],[1,\\\" \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"showLiveGraphs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"width: 20px;height: 20px;align-items: center;display: flex;justify-content: center;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"showCommandConsole\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,3],null,[[\\\"@icon\\\"],[\\\"terminal\\\"]],null],[1,\\\" \\\"],[13],[13],[10,0],[14,1,\\\"streamingTextBoxWrapper\\\"],[14,5,\\\"height: 100%; width: 100%; border: solid;border-width: 1px;border-radius: 5px;border-color: gray;\\\"],[12],[10,\\\"canvas\\\"],[14,1,\\\"myChart\\\"],[15,5,[29,[\\\"display: \\\",[52,[30,0,[\\\"isShowConfig\\\",\\\"isShowLiveGraphs\\\"]],\\\"block;\\\",\\\"none;\\\"],\\\";width:100%;height:100%; \\\"]]],[12],[13],[10,0],[14,1,\\\"streamingTextBox\\\"],[15,5,[29,[\\\"white-space:pre-line;display: \\\",[52,[30,0,[\\\"isShowConfig\\\",\\\"isShowLiveGraphs\\\"]],\\\"none;\\\",\\\"block;\\\"],\\\";width: 100%; height: 100%; font-size: x-small; color:black;background-color: rgba(255, 255, 255, 0.4); overflow-y: auto; padding: 5px;\\\"]]],[12],[13],[13],[13],[10,0],[15,5,[29,[\\\"display: \\\",[52,[30,0,[\\\"isShowConfig\\\",\\\"isShowCommandConsole\\\"]],\\\"flex;\\\",\\\"none;\\\"],\\\";margin-left:30px;flex-direction:row;align-items: center;\\\"]]],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"min-width:500px;font-size: small;padding: 0px;\\\"],[15,\\\"onkeydown\\\",[28,[37,2],[[30,0],\\\"onKeyDown\\\"],null]],[14,1,\\\"cmdConsole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[11,\\\"button\\\"],[24,1,\\\"sendCommand\\\"],[24,5,\\\"padding: 3px;border: solid;border-radius: 50px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"sendCommand\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Send\\\"],[13],[13],[13],[10,0],[14,5,\\\"width: 100%;display:flex;flex-direction:column;border-color: lightgray;border-style: solid;border-width: 1px;border-radius: 10px;margin-top: 10px;\\\"],[12],[10,0],[14,5,\\\"width: 100%;height: 100%;display:flex;flex-direction:row;\\\"],[12],[10,0],[14,1,\\\"stepperMotorSection\\\"],[14,5,\\\"pointer-events: none;opacity:0.5;min-width:220px;width: 25%; padding-left: 10px; display: flex; flex-direction: column;justify-content: space-between;margin-bottom: 10px;\\\"],[12],[10,0],[14,5,\\\"font-size:small;\\\"],[12],[1,\\\"Stepper Motor\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;padding-bottom: 5px; \\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"stepperInit\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Init   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+8.33\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+8.33 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+10 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+1\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+1 \\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"stepper0\\\",\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"0 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"+25\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+25 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"-10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-10 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualStepper\\\",\\\"-1\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-1  \\\"],[13],[13],[13],[10,0],[14,5,\\\"border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-top: 10px;margin-bottom: 10px;\\\"],[12],[13],[10,0],[14,1,\\\"pressurePumpSection\\\"],[14,5,\\\"pointer-events: none;opacity:0.5;min-width:220px;width: 25%; padding-left: 10px; display: flex; flex-direction: column;justify-content: space-between;margin-bottom: 10px;\\\"],[12],[10,0],[14,5,\\\"font-size:small;\\\"],[12],[1,\\\"Pressure Pump\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;padding-bottom: 5px; \\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+100\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+100   \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+50\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+50 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+25\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+25 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"+10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"+10\\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row; align-items:center;justify-content: space-evenly;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-100\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-100 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-50\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-50 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-25\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-25 \\\"],[13],[11,\\\"button\\\"],[24,5,\\\"min-width:50px;font-size:x-small;padding: 3px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"controlPanel\\\",\\\"manualPump\\\",\\\"-10\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"-10\\\"],[13],[13],[13],[10,0],[14,5,\\\"border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-top: 10px;margin-bottom: 10px;\\\"],[12],[13],[10,0],[14,1,\\\"\\\"],[14,5,\\\"min-width:220px;width: 25%; padding-left: 10px; display: flex; flex-direction: column;justify-content: space-between;margin-bottom: 10px;\\\"],[12],[13],[10,0],[14,5,\\\"border-style: solid;border-width: 1px;border-radius: 100px;border-color: lightgray;margin-top: 10px;margin-bottom: 10px;\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width: 100%;height: 50px;display: flex;flex-direction: row;justify-content: space-evenly;border: solid;border-width: 0.1px;border-radius: 50px;padding: 5px;border-color: lightgray;margin-top: 10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"min-width:80px;padding: 3px;border: solid;border-radius: 50px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"reconnectWebSocket\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reconnect \\\"],[13],[41,[28,[37,5],[[33,4,[\\\"phaseENV\\\",\\\"phase\\\"]],1],null],[[[10,\\\"button\\\"],[14,1,\\\"phaseIButton\\\"],[14,5,\\\"min-width:80px;padding: 3px;background-color:green;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"phaseIButton\\\",500,\\\"Phase I\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseIButton\\\",\\\"Phase I\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseIButton\\\",\\\"Phase I\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Phase I\\\"],[13]],[]],[[[10,\\\"button\\\"],[14,1,\\\"phaseIIButton\\\"],[14,5,\\\"min-width:80px;padding: 3px;background-color:green;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"phaseIIButton\\\",500,\\\"Phase II\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseIIButton\\\",\\\"Phase II\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"phaseIIButton\\\",\\\"Phase II\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Phase II\\\"],[13]],[]]],[10,\\\"button\\\"],[14,1,\\\"stopCalibrationButton\\\"],[14,5,\\\"min-width:200px;padding: 3px;background-color:red;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"stopCalibrationButton\\\",500,\\\"STOP\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"stopCalibrationButton\\\",\\\"STOP\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"stopCalibrationButton\\\",\\\"STOP\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"STOP\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"resetCalibrationButton\\\"],[14,5,\\\"min-width:80px;padding: 3px;background-color:red;border: solid;border-radius: 50px;\\\"],[15,\\\"onmousedown\\\",[28,[37,2],[[30,0],\\\"startVerificationPress\\\",\\\"resetCalibrationButton\\\",2500,\\\"RESET\\\"],null]],[15,\\\"onmouseup\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"resetCalibrationButton\\\",\\\"RESET\\\"],null]],[15,\\\"onmouseleave\\\",[28,[37,2],[[30,0],\\\"cancelVerificationPress\\\",\\\"resetCalibrationButton\\\",\\\"RESET\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"RESET\\\"],[13],[13],[13],[13],[10,0],[14,5,\\\"padding-left:5px;width: 50%;\\\"],[12],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:none; flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;\\\"],[12],[1,\\\"Rows:\\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"page_size\\\"],[14,5,\\\"padding: 0px;\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"-\\\"],[13],[42,[28,[37,7],[[28,[37,7],[[33,17]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,10,[\\\"id\\\"]]]]],[12],[1,[30,10,[\\\"title\\\"]]],[13]],[10]],null],[13],[13],[10,\\\"label\\\"],[14,1,\\\"totalReadings\\\"],[14,5,\\\"margin-bottom:0;margin-left:15px;\\\"],[12],[1,\\\"Total:\\\"],[13],[13],[13],[10,0],[14,5,\\\"width:100%;padding:0px;margin-top:10px;display:flex; flex-direction:column;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;\\\"],[12],[1,\\\"Basic Filters:\\\"],[13],[13],[13],[10,0],[14,5,\\\"margin-left:15px;width:100%;padding:0px;margin-top:10px;display:flex; flex-direction:row; align-items:center\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,1,\\\"searchValidationID\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Pack ID:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,1,\\\"searchPackID\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Pack Name:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,1,\\\"searchPackName\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;margin-right:10px;max-width:350px\\\"],[12],[10,\\\"label\\\"],[14,5,\\\"margin-bottom:0;font-size: small; margin-right:10px;\\\"],[12],[1,\\\"Company:\\\"],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"font-size: small;padding: 0px;\\\"],[14,1,\\\"searchCompany\\\"],[15,\\\"oninput\\\",[28,[37,2],[[30,0],\\\"updateSearchObjData\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"search\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Search \\\"],[13],[13],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"resetSearch\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Search\\\"],[13],[13],[10,0],[14,5,\\\"margin-left:10px;margin-right:10px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"font-size:small;padding: 5px;\\\"],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"resetSort\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Sort\\\"],[13],[13],[13],[10,\\\"table\\\"],[14,5,\\\"border-width: 0px;margin-top:10px\\\"],[14,0,\\\"table table-striped table-bordered\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[11,\\\"th\\\"],[24,1,\\\"validationIdColumn\\\"],[24,5,\\\"min-width:50px;font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"validationIdOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"ID v\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"packIdColumn\\\"],[24,5,\\\"font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"packIdOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Pack ID\\\"],[13],[11,\\\"th\\\"],[24,5,\\\"font-size: smaller; font-weight: normal;\\\"],[4,[38,2],[[30,0],\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Pack Name\\\"],[13],[11,\\\"th\\\"],[24,5,\\\"font-size: smaller; font-weight: normal; \\\"],[4,[38,2],[[30,0],\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Company\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"phase1ValidationDateColumn\\\"],[24,5,\\\"min-width:80px;font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"phase1ValidationDateOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"P1 Date\\\"],[13],[11,\\\"th\\\"],[24,5,\\\"font-size: smaller; \\\"],[4,[38,2],[[30,0],\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"P1 Employee\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"phase2ValidationDateColumn\\\"],[24,5,\\\"min-width:80px;font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"phase2ValidationDateOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"P2 Date\\\"],[13],[11,\\\"th\\\"],[24,5,\\\"font-size: smaller; min-width:100px; font-weight: normal;\\\"],[4,[38,2],[[30,0],\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"P2 Employee\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"progressionColumn\\\"],[14,5,\\\"font-size: smaller; font-weight: normal;\\\"],[12],[1,\\\"Progression\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"progressionColumn\\\"],[14,5,\\\"font-size: smaller; font-weight: normal;\\\"],[12],[1,\\\"Verdict\\\"],[13],[11,\\\"th\\\"],[24,1,\\\"overruledColumn\\\"],[24,5,\\\"min-width:80px;font-size: smaller;cursor:pointer;\\\"],[4,[38,2],[[30,0],\\\"columnCycleOrdering\\\",\\\"overruledOrdering\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Overruled\\\"],[13],[11,\\\"th\\\"],[24,5,\\\"font-size: smaller; font-weight: normal;\\\"],[4,[38,2],[[30,0],\\\"\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Actions\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[33,13,[\\\"packsValidationProfileList\\\"]]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"validationId\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"packId\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"packName\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"company\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"phase1ValidationDate\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"phase1Employee\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"phase2ValidationDate\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"phase2Employee\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[28,[35,18],[[30,11]],null]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[28,[35,19],[[30,11]],null]],[13],[10,\\\"td\\\"],[14,5,\\\"font-size: small;\\\"],[12],[1,[30,11,[\\\"phase2OverruleEmployee\\\"]]],[13],[10,\\\"td\\\"],[12],[10,0],[14,5,\\\"display:flex; flex-direction:row;justify-content:space-evenly;    cursor: pointer;color: blue;text-decoration: underline;font-size: smaller;\\\"],[12],[11,0],[4,[38,2],[[30,0],\\\"getPackProfile\\\",[30,11,[\\\"validationId\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Profile\\\"],[13],[13],[13],[13]],[11]],null],[13],[13],[10,0],[14,5,\\\"display:flex;justify-content: flex-end;\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[33,20,[\\\"packsValidationInstrumentProfilePaginationList\\\"]]],null]],null],null,[[[11,\\\"button\\\"],[16,5,[29,[\\\"border-color: \\\",[52,[28,[37,21],[[30,12],\\\"...\\\"],null],\\\"white\\\",\\\"#4A6A9C\\\"],\\\";color: \\\",[52,[28,[37,21],[[30,12],\\\"...\\\"],null],\\\"black\\\",\\\"white\\\"],\\\";margin-right: 10px;font-size:small;padding: 5px;background-color: \\\",[52,[28,[37,21],[[30,12],\\\"...\\\"],null],\\\"white\\\",\\\"#4A6A9C\\\"]]]],[24,0,\\\"btn btn-primary\\\"],[24,4,\\\"button\\\"],[4,[38,2],[[30,0],\\\"jumpToPage\\\",[30,12]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[30,12]],[13]],[12]],null],[13],[13],[13],[13],[13]],[\\\"tabKey\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"selectOption\\\",\\\"profile\\\",\\\"page\\\"],false,[\\\"if\\\",\\\"isShowConfig\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"settingsConfig\\\",\\\"is-equal\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getTabKeys\\\",\\\"get\\\",\\\"showIrretrivableWarning\\\",\\\"mut\\\",\\\"getRigList\\\",\\\"frontendData\\\",\\\"getTypeList\\\",\\\"getApprovedRigCategoryList\\\",\\\"getSensorTypeList\\\",\\\"getPaginationPageSizesList\\\",\\\"get-packs-validation-progression\\\",\\\"get-packs-validation-verdict\\\",\\\"paginationSearchConfig\\\",\\\"eq\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/production/packsValidationMainPage.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"+mu6s1s2\",\"block\":\"[[[10,0],[14,0,\\\"progress-container\\\"],[12],[1,\\\"\\\\n  \\\"],[10,1],[14,0,\\\"progress-label\\\"],[12],[1,[30,1]],[13],[1,\\\"\\\\n  \\\"],[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[8,[30,2,[\\\"bar\\\"]],[[24,\\\"aria-label\\\",\\\"Loading\\\"]],[[\\\"@value\\\",\\\"@minValue\\\",\\\"@maxValue\\\",\\\"@showLabel\\\",\\\"@type\\\"],[[30,3],0,100,true,\\\"info\\\"]],null],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"],[13]],[\\\"@taskName\\\",\\\"pg\\\",\\\"@percentage\\\"],false,[\\\"bs-progress\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/progress-bar.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"4Xd6AbIe\",\"block\":\"[[[10,\\\"input\\\"],[15,1,[30,1]],[14,3,\\\"rdb\\\"],[14,2,\\\"raw\\\"],[15,\\\"checked\\\",[30,2]],[15,\\\"onclick\\\",[30,3]],[14,4,\\\"radio\\\"],[12],[13],[1,\\\"\\\\n\\\"],[10,\\\"label\\\"],[15,\\\"for\\\",[30,1]],[14,5,\\\"margin-left: 5px;margin-bottom: 0px;\\\"],[12],[1,[30,1]],[13],[10,\\\"br\\\"],[12],[13],[1,\\\"\\\\n\\\"]],[\\\"@type\\\",\\\"@checked\\\",\\\"@setValue\\\"],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/radio-buttons.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Qv8QaLEF\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[20,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"20\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[50,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"50\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[100,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"100\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[250,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"250\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[500,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"500\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[750,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"750\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[1000,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"1000\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[1500,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"1500\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[2000,1]]],\\\"raw-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"2000\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@pageSize\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/raw-drop-down.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YOaNogal\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[20,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"20\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[50,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"50\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[100,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"100\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[250,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"250\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[500,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"500\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[750,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"750\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[1000,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"1000\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[1500,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"1500\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"page_size\\\",\\\"page\\\"],[2000,1]]],\\\"raw-frequency-events-data\\\",[33,3]]],[[\\\"default\\\"],[[[[1,\\\"2000\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@pageSize\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/raw-frequency-events-drop-down.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"2XM+R3SN\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",\\\"raw-gateway-data\\\",[33,2]]],[[\\\"default\\\"],[[[[1,\\\"40\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@pageSize\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/raw-gateway-drop-down.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"c/RqMoYp\",\"block\":\"[[[8,[39,0],null,[[\\\"@closeOnMenuClick\\\"],[true]],[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\\\"ports\\\"]]],null]],null],null,[[[1,\\\"      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n          \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"page_size\\\",\\\"page\\\",\\\"port_number\\\"],[20,1,[30,4,[\\\"channel\\\"]]]]],\\\"raw-data\\\",[33,5]]],[[\\\"default\\\"],[[[[1,[30,4,[\\\"channel\\\"]]]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\\n\\\"]],[\\\"dd\\\",\\\"@port_number\\\",\\\"ddm\\\",\\\"port\\\"],false,[\\\"bs-dropdown\\\",\\\"each\\\",\\\"-track-array\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/raw-port-drop-down.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"gWJA+fqC\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"newAlertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"newAlertRepeat\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,8],true],null],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[15,2,[36,9]],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"newAlertInvert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[24,1,\\\"newAlertInvert\\\"],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,17]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,3],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,18]],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,19]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"repeats\\\",\\\"repeatWindow\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"izNbWRkl\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstrument_length\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Total bolt length (m):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"instrumentLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"instrumentLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstrumentLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"strokeLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"strokeLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectHeadExclusionLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Thread Exclusion Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"headExclusionLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"headExclusionLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectHeadExclusionLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectGaugeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Gauge Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"gaugeLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"gaugeLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectGaugeLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStacked\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stacked:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newInstrumentObjectStacked\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,1],[[30,0],\\\"stackedChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"elasticLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"elasticLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPlasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Plastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"plasticLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"plasticLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPlasticLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"ultimateLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"ultimateLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"elasticLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"elasticLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPlasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Plastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"plasticLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"plasticLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPlasticLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"ultimateLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"ultimateLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"WTVFqSOV\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"PApyq6ov\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[14,\\\"for\\\",\\\"alertRepeat\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Repeats:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Will the action occur each check of the alerts, or only when it switches to Alerted\\\"],[24,1,\\\"alertRepeat\\\"],[16,\\\"checked\\\",[33,2,[\\\"repeats\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"repeatChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[14,\\\"for\\\",\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Repeats After (min):\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"repeats\\\"]],true],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"If alert repeats, what is the minimum delay before it will repeat\\\"],[15,2,[33,2,[\\\"repeatWindow\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"repeatWindow\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectRepeatDelay\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TRIG\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Alarm\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,3],[14,6,\\\"https://kb.sandisk.com/app/answers/detail/a_id/17056/~/list-of-mobile-carrier-gateway-addresses\\\"],[14,\\\"target\\\",\\\"_blank\\\"],[14,\\\"title\\\",\\\"List of carrier SMS gateways\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"bold\\\"],[12],[1,\\\"Target (Phone #):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Number@Carrier\\\"],[14,\\\"title\\\",\\\"Format: number@gateway\\\\ne.g. 9999999999@msg.telus.com\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,10],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Inverts data values\\\"],[14,\\\"for\\\",\\\"alertInvert\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Inverted:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"alertInvert\\\"],[24,\\\"title\\\",\\\"Inverts data values\\\"],[16,\\\"checked\\\",[33,2,[\\\"inverted\\\"]]],[24,\\\"disabled\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"invertChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[44,[[28,[37,13],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[28,[37,8],[0,[33,9]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,10],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,10],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align: top;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"activeToggleButton\\\"],[16,\\\"title\\\",[36,14]],[24,\\\"disabled\\\",\\\"\\\"],[4,[38,0],[[30,0],\\\"toggleActive\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,15]],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[13],[1,\\\"Step Displacement\\\"]],[]],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[13],[1,\\\"Step Displacement\\\"]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,16]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,17],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Average\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,18]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"activeLabel\\\",\\\"buttonSymbol\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"NO/a6h/I\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Total Bolt Length (m):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"instrumentLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"strokeLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"headExclusionLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Thread Exclusion Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"headExclusionLength\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"gaugeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Gauge Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"gaugeLength\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"referenceAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"referenceAnchor\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"stacked\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stacked:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"field\\\",\\\"update\\\"],[[30,1],\\\"stacked\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"elasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"elasticLimitPct\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"plasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Plastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"plasticLimitPct\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"ultimateLimitPct\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"elasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"elasticLimitFce\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"plasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Plastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"plasticLimitFce\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"ultimateLimitFce\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Nodes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"stacked\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[30,1,[\\\"headAt\\\",\\\"id\\\"]],[30,1,[\\\"channelsNum\\\"]],[30,1,[\\\"stacked\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-input-numeric\\\",\\\"single-save-checkbox\\\",\\\"single-save-instrument-anchors-rebar\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"lFm+33OU\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"PtsNLiaf\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"TvMFpnJC\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,13],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,14],[[30,7,[\\\"id\\\"]],[28,[37,15],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"rebar/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"bEi2EhY9\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"axial-displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"axial-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"bending-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Bending Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"load-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Load\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ylLdVUgZ\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Stretch\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"axial-displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Total Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"axial-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"bending-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Bending Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"load-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Load\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebar/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"44bql0ik\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"AVG\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on average values of window length\\\"],[12],[1,\\\"Average\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SUS\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm by checking each (window length) most recent readings\\\"],[12],[1,\\\"Sustained\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"tcM8ATyo\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstrument_length\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Total bolt length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"instrumentLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"instrumentLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstrumentLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"strokeLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"strokeLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectStrokeLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectHeadExclusionLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Thread Exclusion Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"headExclusionLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"headExclusionLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectHeadExclusionLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectStacked\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stacked:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newInstrumentObjectStacked\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,1],[[30,0],\\\"stackedChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectYoungsModulus\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Young's Modulus (GPa):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"youngsModulus\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"youngsModulus\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectYoungsModulus\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"boltDiameter\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Bolt Diameter(mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"boltDiameter\\\"]]],[15,\\\"onchange\\\",[28,[37,1],[[30,0],\\\"handleBoltDiameterChange\\\"],null]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"boltDiameter\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBoltDiameter\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCrossSectionalArea\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Bolt Area(mm\\\"],[10,\\\"sup\\\"],[12],[1,\\\"2\\\"],[13],[1,\\\"):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"crossSectionalArea\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"crossSectionalArea\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectCrossSectionalArea\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"axialStiffness\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Axial Stiffness (kN/%): \\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"axialStiffness\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"axialStiffness\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAxialStiffness\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"elasticLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"elasticLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectElasticLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"ultimateLimitPct\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"ultimateLimitPct\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitPct\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"elasticLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"elasticLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjEctelasticLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"ultimateLimitFce\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"ultimateLimitFce\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectUltimateLimitFce\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"dTK/JEA0\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ilebt/mU\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"nfX79Btn\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Total Bolt Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"instrumentLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"strokeLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stroke Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"strokeLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"headExclusionLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Thread Exclusion Length (mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"headExclusionLength\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"referenceAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"referenceAnchor\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"stacked\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Stacked:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"field\\\",\\\"update\\\"],[[30,1],\\\"stacked\\\",[28,[37,0],[[30,0],\\\"updatePage\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"youngsModulus\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Young's Modulus (GPa):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"youngsModulus\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"boltDiameter\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Bolt Diameter(mm):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"inputType\\\",\\\"object\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\",\\\"update\\\"],[\\\"text\\\",[33,6],\\\"boltDiameter\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null],[28,[37,0],[[30,0],\\\"updateCrossSectionalArea\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"crossSectionalArea\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Bolt Area(mm\\\"],[10,\\\"sup\\\"],[12],[1,\\\"2\\\"],[13],[1,\\\"):\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"6\\\"],[15,2,[33,6,[\\\"crossSectionalArea\\\"]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"axialStiffness\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Axial Stiffness (kN/%): \\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,\\\"size\\\",\\\"6\\\"],[15,2,[33,6,[\\\"axialStiffness\\\"]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"br\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"elasticLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"elasticLimitPct\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitPct\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit strain (%):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"ultimateLimitPct\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calculatedElasticLimitForce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Elastic Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"calculatedElasticLimitForce\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null],false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"ultimateLimitFce\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ultimate Limit force (kN):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"ultimateLimitFce\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Node\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,13],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"isStacked\\\",\\\"stacked\\\",\\\"update\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[30,1,[\\\"headAt\\\",\\\"id\\\"]],[30,1,[\\\"channelsNum\\\"]],[30,1,[\\\"stacked\\\"]],true,[28,[37,0],[[30,0],\\\"updatePage\\\"],null],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-input-numeric\\\",\\\"single-save-checkbox\\\",\\\"single-save-instrument-anchors-rebar\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"hB6KaA1+\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"+tuccTTq\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"3r8Aa0Wl\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,13],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"rebarv2/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"I9jLEtIb\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"axial-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"bending-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Bending Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"load-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Load\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pFktYkyN\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"axial-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"bending-strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Bending Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"load-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Axial Load\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/rebarv2/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"DVEiCRiR\",\"block\":\"[[[10,0],[14,0,\\\"target-selector\\\"],[12],[1,\\\"\\\\n  \\\"],[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"openModal\\\"],null],[12],[1,\\\"Target (Phone #):\\\"],[13],[1,\\\"\\\\n\\\"],[41,[33,2],[[[6,[39,3],null,[[\\\"close\\\",\\\"translucentOverlay\\\"],[[28,[37,0],[[30,0],\\\"closeModal\\\"],null],true]],[[\\\"default\\\"],[[[[1,\\\"      \\\"],[1,[28,[35,4],null,[[\\\"onSelect\\\"],[[28,[37,0],[[30,0],\\\"selectRecord\\\"],null]]]]],[1,\\\"\\\\n\\\"]],[]]]]]],[]],null],[13],[1,\\\"\\\\n\\\\n\\\"]],[],false,[\\\"action\\\",\\\"if\\\",\\\"showModal\\\",\\\"ember-modal-dialog\\\",\\\"popup-list\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/record-selector.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"BTCvK3We\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"selectedDExtoError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to delete a dExto.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Index\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"dExto ID\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Head at\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Stroke length\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"justify-content: center;\\\"],[12],[1,\\\"Anchor Points\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,1],[[28,[37,1],[[30,1]],null]],null],null,[[[10,\\\"tr\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"id\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[6,[39,2],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,2,[\\\"instrumentID\\\"]]]],[[\\\"default\\\"],[[[[1,[30,2,[\\\"instrumentID\\\"]]]],[]]]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"position\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"strokeLength\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"min-height:175px;\\\"],[12],[1,[30,2,[\\\"anchorPoints\\\"]]],[13],[13]],[2]],null],[13],[13]],[\\\"@dExtoList\\\",\\\"dExto\\\"],false,[\\\"each\\\",\\\"-track-array\\\",\\\"link-to\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/selected-dExtos.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"7Zkv8eC6\",\"block\":\"[[[10,0],[14,5,\\\"font-size:25px;font-weight: 600;display: flex;flex-direction: row;align-items: center;\\\"],[12],[1,\\\"About\\\"],[13],[10,0],[14,5,\\\"padding:10px\\\"],[12],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Version \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"font-size: medium;\\\"],[12],[1,\\\"3.4.1 (Jan 19, 2026)    \\\"],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[13]],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/settings-about.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"yMUY5tg2\",\"block\":\"[[[10,0],[14,5,\\\"font-size:25px;font-weight: 600;display: flex;flex-direction: row;align-items: center;\\\"],[12],[1,\\\"General\\\"],[41,[33,1],[[[10,0],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[10,0],[14,5,\\\"padding:10px\\\"],[12],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Licence Keys \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: space-evenly;\\\"],[12],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"navigateToLicenseKeys\\\"],null]],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[1,\\\"Manage    \\\"],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Backend Logs \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: space-evenly;\\\"],[12],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"navigateToBackendLogs\\\"],null]],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[1,\\\"View    \\\"],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[13]],[],false,[\\\"if\\\",\\\"loading\\\",\\\"action\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/settings-general.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"1csP01jM\",\"block\":\"[[[6,[39,0],null,[[\\\"translucentOverlay\\\"],[true]],[[\\\"default\\\"],[[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;justify-content:space-between\\\"],[12],[10,\\\"h4\\\"],[12],[1,\\\"Warning\\\"],[13],[13],[10,0],[14,0,\\\"modal-body\\\"],[12],[10,0],[14,5,\\\"display: flex;flex-direction: column;align-items: center;min-width: 350px;\\\"],[14,0,\\\"edit-modal\\\"],[12],[10,0],[12],[13],[1,[34,1]],[13],[13],[10,0],[14,0,\\\"modal-footer\\\"],[12],[11,\\\"button\\\"],[24,0,\\\"btn btn-secondary\\\"],[4,[38,2],[[30,0],\\\"close\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Cancel\\\"],[13],[11,\\\"button\\\"],[24,0,\\\"btn btn-primary\\\"],[4,[38,2],[[30,0],\\\"save\\\",[33,3]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Confirm\\\"],[13],[13]],[]]]]]],[],false,[\\\"modal-dialog\\\",\\\"warningMessage\\\",\\\"action\\\",\\\"type\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/settings-more-clear-logs-confirmation-modal.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"N3jefytl\",\"block\":\"[[[10,0],[14,5,\\\"font-size:25px;font-weight: 600;display: flex;flex-direction: row;align-items: center;\\\"],[12],[1,\\\"More\\\"],[41,[33,1],[[[10,0],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[10,0],[14,5,\\\"padding:10px\\\"],[12],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Global Datetime Format  \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; \\\"],[12],[10,0],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[10,\\\"select\\\"],[14,5,\\\"font-size: small;\\\"],[15,\\\"onChange\\\",[28,[37,2],[[30,0],\\\"updateDatetimeFormat\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,4],[[28,[37,4],[[33,5]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,6],[[30,1,[\\\"id\\\"]],[33,7]],null]],[15,2,[29,[[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"title\\\"]]],[13]],[1]],null],[13],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[41,[33,8],[[[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Technical Backend Constants \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; justify-content: space-evenly;\\\"],[12],[10,0],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"navigateToLookups\\\"],null]],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[1,\\\"Configure Here    \\\"],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13]],[]],null],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Timezone  \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; \\\"],[12],[10,0],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[10,\\\"select\\\"],[14,5,\\\"font-size: small;\\\"],[15,\\\"onChange\\\",[28,[37,2],[[30,0],\\\"updateTimezone\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,4],[[28,[37,4],[[33,9]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,6],[[30,2,[\\\"id\\\"]],[33,10]],null]],[15,2,[29,[[30,2,[\\\"id\\\"]]]]],[12],[1,[30,2,[\\\"title\\\"]]],[13]],[2]],null],[13],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Server Storage  \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; \\\"],[12],[10,0],[14,0,\\\"settings-more-storage-parent\\\"],[12],[10,0],[15,5,[29,[\\\"width: \\\",[36,11],\\\"%\\\"]]],[14,0,\\\"settings-storage-used\\\"],[12],[13],[10,0],[15,5,[29,[\\\"width: \\\",[36,12],\\\"%\\\"]]],[14,0,\\\"settings-storage-free\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;justify-content: space-evenly;font-size:small;\\\"],[12],[10,0],[14,5,\\\"color:#f39c12;\\\"],[12],[1,\\\"Used: \\\"],[1,[34,13]],[1,\\\"/\\\"],[1,[34,11]],[1,\\\"%\\\"],[13],[10,0],[14,5,\\\"color:#2ecc71;\\\"],[12],[1,\\\"Free: \\\"],[1,[34,14]],[1,\\\"/\\\"],[1,[34,12]],[1,\\\"%\\\"],[13],[10,0],[14,5,\\\"color:black;\\\"],[12],[1,\\\"Total: \\\"],[1,[34,15]],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"PostGres Storage  \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; \\\"],[12],[10,0],[14,1,\\\"postgresParentStorageBar\\\"],[14,0,\\\"settings-more-storage-parent\\\"],[12],[13],[13],[10,0],[14,1,\\\"postgresLabelSection\\\"],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;justify-content: space-evenly;font-size:small;\\\"],[12],[13],[10,0],[14,5,\\\"margin-top:10px;width:auto;display:flex;flex-direction:row;align-items:center;justify-content:space-evenly;\\\"],[12],[41,[28,[37,6],[[33,16],true],null],[[[10,0],[14,5,\\\"font-size: small;\\\"],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"setClearLogsType\\\",\\\"all\\\"],null]],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[1,\\\"Clear All Logs\\\"],[13],[10,0],[14,5,\\\"font-size: small;\\\"],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"setClearLogsType\\\",\\\"log_viewer\\\"],null]],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[1,\\\"Clear LogViewer Logs\\\"],[13]],[]],null],[10,0],[14,5,\\\"font-size: small;\\\"],[15,\\\"onClick\\\",[28,[37,2],[[30,0],\\\"setClearLogsType\\\",\\\"user_logs\\\"],null]],[14,0,\\\"settings-sidebar-home-row-edit\\\"],[12],[1,\\\"Clear User Logs\\\"],[13],[13],[41,[28,[37,6],[[33,17],true],null],[[[10,0],[14,5,\\\"margin-top:10px;width:auto;display:flex;flex-direction:row;align-items:center;justify-content:space-evenly;\\\"],[12],[10,0],[14,5,\\\"font-size: small;\\\"],[14,0,\\\"my-profile-sidebar-home-row-value\\\"],[12],[1,[34,18]],[13],[13]],[]],null],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[10,0],[14,0,\\\"settings-sidebar-home-subtitle\\\"],[12],[1,\\\"Influx Storage  \\\"],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-section\\\"],[12],[10,0],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center; \\\"],[12],[10,0],[14,1,\\\"influxParentStorageBar\\\"],[14,0,\\\"settings-more-storage-parent\\\"],[12],[13],[13],[10,0],[14,1,\\\"influxLabelSection\\\"],[14,5,\\\"width:auto;display:flex;flex-direction:row;align-items:center;font-size:small;\\\"],[12],[13],[10,0],[14,0,\\\"settings-sidebar-home-row-divider\\\"],[12],[13],[13],[13],[41,[33,19],[[[1,[28,[35,20],null,[[\\\"warningMessage\\\",\\\"type\\\",\\\"closeModal\\\",\\\"confirmModal\\\"],[[33,21],[33,22],[28,[37,2],[[30,0],[33,23]],null],[28,[37,2],[[30,0],[33,24]],null]]]]]],[]],null]],[\\\"object\\\",\\\"object\\\"],false,[\\\"if\\\",\\\"loading\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"datetimeFormatArray\\\",\\\"is-equal\\\",\\\"selectedDatetimeFormat\\\",\\\"isStaffUser\\\",\\\"timeZones\\\",\\\"selectTimezone\\\",\\\"generalUsedPercent\\\",\\\"generalFreePercent\\\",\\\"generalUsedValue\\\",\\\"generalFreeValue\\\",\\\"generalTotalValue\\\",\\\"isMasterProfile\\\",\\\"showStorageMessage\\\",\\\"updateStorageMessage\\\",\\\"isShowClearLogsConfirmationModal\\\",\\\"settings-more-clear-logs-confirmation-modal\\\",\\\"getWarningMessage\\\",\\\"clearLogsConfirmationModalType\\\",\\\"close\\\",\\\"confirm\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/settings-more.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"6f2ehEWQ\",\"block\":\"[[[10,0],[14,5,\\\"width: 100%;display:flex;flex-direction:row;align-items:center;font-size:x-large;overflow-x: hidden;justify-content: center;\\\"],[12],[10,\\\"h3\\\"],[12],[1,\\\"Settings\\\"],[13],[13],[10,0],[14,0,\\\"settings-sidebar-section-divider\\\"],[12],[13],[10,0],[14,5,\\\"width:100%;padding:25px\\\"],[12],[10,0],[14,0,\\\"settings-sidebar-section-row\\\"],[12],[10,0],[14,5,\\\"margin-right:5px\\\"],[12],[1,[28,[35,0],null,[[\\\"icon\\\",\\\"size\\\"],[\\\"cog\\\",\\\"1x\\\"]]]],[13],[10,0],[14,5,\\\"font-size:large;\\\"],[15,\\\"onClick\\\",[28,[37,1],[[30,0],\\\"updateTab\\\",\\\"GENERAL\\\"],null]],[12],[1,\\\"General\\\"],[13],[13],[10,0],[14,0,\\\"settings-sidebar-section-row\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,[28,[35,0],null,[[\\\"icon\\\",\\\"size\\\",\\\"style\\\"],[\\\"tools\\\",\\\"1x\\\",\\\"margin-right:5px\\\"]]]],[13],[10,0],[14,5,\\\"font-size:large;\\\"],[15,\\\"onClick\\\",[28,[37,1],[[30,0],\\\"updateTab\\\",\\\"MORE\\\"],null]],[12],[1,\\\"More\\\"],[13],[13],[10,0],[14,0,\\\"settings-sidebar-section-row\\\"],[12],[10,0],[14,5,\\\"margin-right:5px;\\\"],[12],[1,[28,[35,0],null,[[\\\"icon\\\",\\\"variant\\\",\\\"size\\\",\\\"style\\\"],[\\\"info-circle\\\",\\\"light\\\",\\\"1x\\\",\\\"margin-right:5px\\\"]]]],[13],[10,0],[14,5,\\\"font-size:large;\\\"],[15,\\\"onClick\\\",[28,[37,1],[[30,0],\\\"updateTab\\\",\\\"ABOUT\\\"],null]],[12],[1,\\\"About\\\"],[13],[13],[13]],[],false,[\\\"fa-icon\\\",\\\"action\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/settings-sidebar.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"SGJxhJgE\",\"block\":\"[[[10,\\\"label\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2\\\"],[12],[8,[39,0],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Change and Save\\\",\\\"right\\\"]],null],[11,\\\"input\\\"],[16,1,[36,1]],[16,3,[36,1]],[16,\\\"checked\\\",[36,2]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"change\\\",[33,4]],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13]],[],false,[\\\"bs-tooltip\\\",\\\"field\\\",\\\"isChecked\\\",\\\"action\\\",\\\"object\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-checkbox.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"z6uWXEDm\",\"block\":\"[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,1],[[[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,2]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,2]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,5]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,3],[[30,0],\\\"save\\\",[33,6]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,7],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,8],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,3],[[30,0],\\\"cancel\\\",[33,6]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,7],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,8],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,3],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,7],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[34,9]],[13]],[]]],[13],[13],[13]],[],false,[\\\"if\\\",\\\"isEditing\\\",\\\"newValue\\\",\\\"action\\\",\\\"mut\\\",\\\"field\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"datetimeLabel\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-datetime-picker.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"eoWu0m/8\",\"block\":\"[[[41,[33,1],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[1,[28,[35,2],[[33,3,[\\\"id\\\"]],\\\"YY-MM-DD HH:mm:ss\\\"],null]],[13],[42,[28,[37,5],[[30,1,[\\\"values\\\"]]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[28,[37,8],[[33,9],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[41,[51,[33,11]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature (°C)\\\"],[12],[10,\\\"input\\\"],[15,2,[36,12]],[15,1,[29,[\\\"df\\\",[36,13]]]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[33,12]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[]],null],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"save\\\"],[4,[38,6],[[30,0],\\\"save\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,6],[[30,0],\\\"cancel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[1,[28,[35,2],[[30,1,[\\\"id\\\"]],\\\"YY-MM-DD HH:mm:ss\\\"],null]],[13],[42,[28,[37,5],[[30,1,[\\\"values\\\"]]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,5]],[12],[10,1],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"title\\\",\\\"Edit\\\"],[14,0,\\\"text has-tooltip-info\\\"],[12],[13],[1,[30,4]],[13]],[4,5]],null],[41,[51,[33,11]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,1],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"title\\\",\\\"Edit\\\"],[14,0,\\\"text has-tooltip-info\\\"],[12],[1,[34,12]],[13],[13]],[]],null],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,6],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,15],[[28,[37,16],[[33,17],[33,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,0],[14,5,\\\"display: flex; justify-content: center; margin-top: 2px; vertical-align: top;\\\"],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[13],[10,1],[14,0,\\\"small\\\"],[12],[1,\\\"Delete it?Are you sure?\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,6],[[30,0],\\\"remove\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,6],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[13],[13]],[]]]],[\\\"@gatewayValueObject\\\",\\\"value\\\",\\\"key\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isEditing\\\",\\\"moment-format\\\",\\\"gatewayValueObject\\\",\\\"each\\\",\\\"-each-in\\\",\\\"action\\\",\\\"mut\\\",\\\"get\\\",\\\"gatewayValueObjectValues\\\",\\\"unless\\\",\\\"omitTemperature\\\",\\\"temperatureObjectValue\\\",\\\"key\\\",\\\"fa-icon\\\",\\\"active-class\\\",\\\"get-array-element\\\",\\\"isRowDeleteConfirmationDialog\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-gateway-inputs-array-table-row-cells.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qh5SXBvw\",\"block\":\"[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,1],[[[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,2]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,2]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"#east\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,5]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"#north\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"#depth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,3],[[30,0],\\\"save\\\",[33,7]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,8],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,9],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,3],[[30,0],\\\"cancel\\\",[33,7]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,8],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,9],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[41,[33,10],[[[11,1],[24,0,\\\"text\\\"],[4,[38,3],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"east:\\\"],[1,\\\" \\\"],[1,[34,10]],[1,\\\", \\\"],[1,\\\"north:\\\"],[1,\\\" \\\"],[1,[34,11]],[1,\\\", \\\"],[1,\\\"depth:\\\"],[1,\\\" \\\"],[1,[34,12]],[1,\\\" \\\"],[8,[39,8],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,3],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"east:\\\"],[1,\\\", \\\"],[1,\\\"north:\\\"],[1,\\\", \\\"],[1,\\\"depth:\\\"],[1,\\\" \\\"],[8,[39,8],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,\\\"    \\\"],[13]],[]]]],[]]],[13],[13],[13]],[],false,[\\\"if\\\",\\\"isEditing\\\",\\\"newEast\\\",\\\"action\\\",\\\"mut\\\",\\\"newNorth\\\",\\\"newDepth\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-geo-input.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"rSD8M6Sz\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[41,[33,3],[[[10,\\\"input\\\"],[15,2,[36,4]],[15,\\\"oninput\\\",[28,[37,5],[[30,0],[28,[37,6],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[41,[33,8],[[[10,\\\"textarea\\\"],[14,\\\"rows\\\",\\\"3\\\"],[15,2,[36,4]],[15,\\\"oninput\\\",[28,[37,5],[[30,0],[28,[37,6],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[11,1],[24,0,\\\"save\\\"],[4,[38,5],[[30,0],\\\"save\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,5],[[30,0],\\\"cancel\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,12],[[33,9],[33,7]],null]],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,5,\\\"font-size: 24px\\\"],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"left\\\"]],null],[1,[28,[35,12],[[33,9],[33,7]],null]],[13],[13],[13],[13]],[]]]],[],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"isTextInput\\\",\\\"newValue\\\",\\\"action\\\",\\\"mut\\\",\\\"field\\\",\\\"isTextarea\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-input-InstType.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"f+XeCkvm\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[41,[33,3],[[[10,\\\"input\\\"],[15,2,[36,4]],[15,\\\"oninput\\\",[28,[37,5],[[30,0],[28,[37,6],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[41,[33,8],[[[10,\\\"textarea\\\"],[14,\\\"rows\\\",\\\"3\\\"],[15,2,[36,4]],[15,\\\"oninput\\\",[28,[37,5],[[30,0],[28,[37,6],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[11,1],[24,0,\\\"save\\\"],[4,[38,5],[[30,0],\\\"save\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,5],[[30,0],\\\"cancel\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,12],[[33,9],[33,7]],null]],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"right\\\"]],null],[1,[28,[35,12],[[33,9],[33,7]],null]],[13],[13],[13],[13]],[]]]],[],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"isTextInput\\\",\\\"newValue\\\",\\\"action\\\",\\\"mut\\\",\\\"field\\\",\\\"isTextarea\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-input-numeric.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"NKX/WzrR\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[41,[33,3],[[[10,\\\"input\\\"],[14,2,\\\"\\\"],[15,\\\"oninput\\\",[28,[37,4],[[30,0],[28,[37,5],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"password\\\"],[12],[13]],[]],null],[41,[33,8],[[[10,\\\"input\\\"],[14,\\\"rows\\\",\\\"3\\\"],[14,2,\\\"\\\"],[15,\\\"oninput\\\",[28,[37,4],[[30,0],[28,[37,5],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,7]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"password\\\"],[12],[13]],[]],null],[11,1],[24,0,\\\"save\\\"],[4,[38,4],[[30,0],\\\"save\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,4],[[30,0],\\\"cancel\\\",[33,9]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[41,[28,[37,12],[[28,[37,13],[[33,9],[33,7]],null],\\\"\\\"],null],[[[1,\\\"******\\\"]],[]],null],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,0,\\\"text\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,10],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"right\\\"]],null],[1,[28,[35,13],[[33,9],[33,7]],null]],[13],[13],[13],[13]],[]]]],[],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"isTextInput\\\",\\\"action\\\",\\\"mut\\\",\\\"newValue\\\",\\\"field\\\",\\\"isTextarea\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"not-eq\\\",\\\"get\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-input-password.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"QkpsSUSr\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[41,[33,3],[[[10,\\\"input\\\"],[15,\\\"size\\\",[36,4]],[15,2,[36,5]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,8]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[41,[33,9],[[[10,\\\"textarea\\\"],[14,\\\"rows\\\",\\\"3\\\"],[15,2,[36,5]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,8]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],null],[11,1],[24,0,\\\"save\\\"],[4,[38,6],[[30,0],\\\"save\\\",[33,10]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,11],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,6],[[30,0],\\\"cancel\\\",[33,10]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,11],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,13],[[33,10],[33,8]],null]],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,0,\\\"text\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"right\\\"]],null],[1,[28,[35,13],[[33,10],[33,8]],null]],[13],[13],[13],[13]],[]]]],[],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"isTextInput\\\",\\\"size\\\",\\\"newValue\\\",\\\"action\\\",\\\"mut\\\",\\\"field\\\",\\\"isTextarea\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-input.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"fOOltdCI\",\"block\":\"[[[41,[33,1],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[1,[28,[35,2],[[33,3,[\\\"id\\\"]],\\\"YYYY-MM-DD HH:mm:ss\\\"],null]],[13],[42,[28,[37,5],[[30,1,[\\\"values\\\"]]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[28,[37,8],[[33,9],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[41,[51,[30,4]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,11]],[15,1,[29,[\\\"df\\\",[36,12]]]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[33,11]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[]],null],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"save\\\"],[4,[38,6],[[30,0],\\\"save\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,6],[[30,0],\\\"cancel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[10,0],[14,0,\\\"row align-items-start\\\"],[12],[10,0],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"col-4\\\"],[12],[1,[28,[35,2],[[30,1,[\\\"id\\\"]],\\\"YYYY-MM-DD HH:mm:ss\\\"],null]],[13],[42,[28,[37,5],[[30,1,[\\\"values\\\"]]],null],null,[[[10,0],[15,\\\"data-title\\\",[30,6]],[14,0,\\\"col\\\"],[12],[41,[28,[37,14],[[30,5],[33,15]],null],[[[10,1],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"title\\\",\\\"Value is above Stroke Length. Graphs will use previous value.\\\"],[14,0,\\\"text red-text bold has-tooltip-info\\\"],[12],[1,\\\"⇑ \\\"],[13]],[]],null],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[41,[33,16],[[[1,[28,[35,17],[[30,5],3],null]]],[]],[[[1,[28,[35,17],[[30,5],2],null]]],[]]],[13],[13]],[5,6]],null],[10,0],[14,\\\"data-title\\\",\\\"Temperature\\\"],[14,0,\\\"col\\\"],[12],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,11]],[13],[13],[10,0],[14,0,\\\"col crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,6],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"crud edit has-tooltip-info\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,18],[[28,[37,8],[[33,19],[33,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"Delete it?\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"Are you sure?\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,6],[[30,0],\\\"remove\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,6],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[13]],[]]]],[\\\"@displacementValueObject\\\",\\\"value\\\",\\\"key\\\",\\\"@isWire\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isEditing\\\",\\\"moment-format\\\",\\\"displacementValueObject\\\",\\\"each\\\",\\\"-each-in\\\",\\\"action\\\",\\\"mut\\\",\\\"get\\\",\\\"displacementValueObjectValues\\\",\\\"unless\\\",\\\"temperatureObjectValue\\\",\\\"key\\\",\\\"fa-icon\\\",\\\"is-greater-than\\\",\\\"strokeLength\\\",\\\"isFine\\\",\\\"format-number\\\",\\\"active-class\\\",\\\"isRowDeleteConfirmationDialog\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-inputs-array-table-row-cells-2.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YQLq3opK\",\"block\":\"[[[41,[33,1],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\".001\\\"],[15,2,[33,2,[\\\"id\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[42,[28,[37,7],[[30,1,[\\\"values\\\"]]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[28,[37,8],[[33,9],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[41,[51,[30,4]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,11]],[15,1,[29,[\\\"df\\\",[36,12]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,11]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[]],null],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[41,[33,13],[[[10,0],[14,5,\\\"width: auto; padding-top:5px;\\\"],[14,0,\\\"center pulse_loader \\\"],[12],[13]],[]],null],[11,1],[24,0,\\\"save\\\"],[4,[38,3],[[30,0],\\\"save\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,3],[[30,0],\\\"cancel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[1,[34,15]],[13],[42,[28,[37,7],[[30,1,[\\\"values\\\"]]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,6]],[12],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,3],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[41,[33,16],[[[41,[28,[37,17],[[30,6],0],null],[[[41,[28,[37,17],[[30,5],1],null],[[[10,\\\"td\\\"],[14,5,\\\"padding:0px\\\"],[12],[1,\\\"X\\\"],[13]],[]],null]],[]],[[[41,[28,[37,17],[[30,6],7],null],[[[6,[39,18],[[33,0],[28,[37,17],[[30,5],2],null]],null,[[\\\"default\\\"],[[[[10,\\\"td\\\"],[14,5,\\\"padding:0px\\\"],[12],[1,\\\"Y\\\"],[13]],[]]]]]],[]],[[[41,[28,[37,17],[[30,6],14],null],[[[6,[39,18],[[33,0],[28,[37,17],[[30,5],3],null]],null,[[\\\"default\\\"],[[[[10,\\\"td\\\"],[14,5,\\\"padding:0px\\\"],[12],[1,\\\"Z\\\"],[13]],[]]]]]],[]],[[[41,[28,[37,17],[[30,6],21],null],[[[6,[39,18],[[33,0],[28,[37,17],[[30,5],4],null]],null,[[\\\"default\\\"],[[[[10,\\\"td\\\"],[14,5,\\\"padding:0px\\\"],[12],[1,\\\"R\\\"],[13]],[]]]]]],[]],[[[1,[28,[35,19],[[30,5],3],null]]],[]]]],[]]]],[]]]],[]]]],[]],[[[1,[28,[35,19],[[30,5],2],null]]],[]]],[13],[13]],[5,6]],null],[41,[51,[30,4]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,3],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,11]],[13],[13]],[]],null],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,3],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"crud edit has-tooltip-info\\\"],[4,[38,3],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,20],[[28,[37,21],[[33,22],[33,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"Delete it?\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"Are you sure?\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,3],[[30,0],\\\"remove\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,3],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13]],[]]]],[\\\"@displacementValueObject\\\",\\\"value\\\",\\\"key\\\",\\\"@isWire\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isEditing\\\",\\\"displacementValueObject\\\",\\\"action\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"each\\\",\\\"-each-in\\\",\\\"get\\\",\\\"displacementValueObjectValues\\\",\\\"unless\\\",\\\"temperatureObjectValue\\\",\\\"key\\\",\\\"loading\\\",\\\"fa-icon\\\",\\\"datetimeLabel\\\",\\\"isFine\\\",\\\"is-equal\\\",\\\"else\\\",\\\"format-number\\\",\\\"active-class\\\",\\\"get-array-element\\\",\\\"isRowDeleteConfirmationDialog\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-inputs-array-table-row-cells.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"etRljR9j\",\"block\":\"[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group\\\"],[12],[41,[51,[33,1]],[[[11,2],[24,0,\\\"warning-text empty-anchor-warning-rebar-v2 italic\\\"],[4,[38,2],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Please add all instrument anchors! They are needed to make calculations for graphs.\\\"],[13]],[]],null],[41,[33,4],[[[10,\\\"ul\\\"],[15,5,[36,5]],[15,0,[29,[\\\"anchor-distances-input \\\",[52,[33,6],\\\"anchor-distances-input has-tooltip-info\\\",\\\"has-tooltip-info reverse-anchors-counter\\\"]]]],[12],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 toe-label-rebarv2\\\"],[12],[1,\\\"Toe\\\"],[13],[13],[10,\\\"li\\\"],[14,0,\\\"tail\\\"],[12],[10,1],[14,0,\\\"tail collar-rebarv2\\\"],[12],[13],[13],[42,[28,[37,8],[[28,[37,8],[[33,9]],null]],null],null,[[[41,[51,[30,1,[\\\"isDeleted\\\"]]],[[[10,\\\"li\\\"],[14,0,\\\"anchor\\\"],[12],[10,\\\"input\\\"],[15,2,[28,[37,10],[[30,1],\\\"distance-a\\\"],null]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,2],[[30,0],\\\"inputNewValue\\\",[30,1],\\\"distance-a\\\"],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,11]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[10,1],[14,0,\\\"anchor-distance-rebar-l\\\"],[12],[1,[28,[35,10],[[30,1],\\\"number-a\\\"],null]],[13],[10,1],[14,0,\\\"instrument-pipe\\\"],[12],[13],[10,1],[14,0,\\\"anchor-distance-rebar-r\\\"],[12],[1,[28,[35,10],[[30,1],\\\"number-b\\\"],null]],[13],[10,\\\"input\\\"],[15,2,[28,[37,10],[[30,1],\\\"distance-b\\\"],null]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,2],[[30,0],\\\"inputNewValue\\\",[30,1],\\\"distance-b\\\"],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,11]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[]],null]],[1,2]],null],[10,\\\"li\\\"],[12],[10,1],[14,0,\\\"head collar-rebarv2\\\"],[12],[13],[13],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 toe-label-rebarv2\\\"],[12],[1,\\\"Head\\\"],[13],[13],[13],[41,[33,1],[[[11,1],[24,0,\\\"save\\\"],[4,[38,2],[[30,0],\\\"save\\\",[33,12]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,0,\\\"has-tooltip-info\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13]],[]],[[[10,1],[14,0,\\\"save inactive\\\"],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,0,\\\"has-tooltip-info\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Input all anchors before saving!\\\",\\\"top\\\"]],null],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13]],[]]],[11,1],[24,0,\\\"cancel\\\"],[4,[38,2],[[30,0],\\\"cancel\\\",[33,12]],[[\\\"allowedKeys\\\",\\\"on\\\"],[\\\"alt\\\",\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,0,\\\"has-tooltip-info\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,\\\"ul\\\"],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"top\\\"],[24,\\\"title\\\",\\\"Change properties to update.\\\"],[16,5,[36,5]],[16,0,[29,[[52,[33,6],\\\"anchor-distances-input has-tooltip-info\\\",\\\"anchor-distances-input has-tooltip-info reverse-anchors-counter\\\"]]]],[4,[38,2],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 toe-label-readonly-rebarv2\\\"],[12],[1,\\\"Toe\\\"],[13],[13],[10,\\\"li\\\"],[14,0,\\\"tail\\\"],[12],[10,1],[14,0,\\\"tail rebar collar\\\"],[12],[13],[13],[42,[28,[37,8],[[28,[37,8],[[33,9]],null]],null],null,[[[41,[51,[30,3,[\\\"isDeleted\\\"]]],[[[10,\\\"li\\\"],[14,0,\\\"anchor\\\"],[12],[10,1],[14,0,\\\"anchor-distance-rebar-l\\\"],[12],[1,[28,[35,10],[[30,3],\\\"distance-a\\\"],null]],[13],[10,1],[14,0,\\\"anchor-number-l\\\"],[12],[1,[28,[35,10],[[30,3],\\\"number-a\\\"],null]],[13],[10,1],[14,0,\\\"instrument-pipe\\\"],[12],[13],[10,1],[14,0,\\\"anchor-number-r\\\"],[12],[1,[28,[35,10],[[30,3],\\\"number-b\\\"],null]],[13],[10,1],[14,0,\\\"anchor-distance-rebar-r\\\"],[12],[1,[28,[35,10],[[30,3],\\\"distance-b\\\"],null]],[13],[13]],[]],null]],[3,4]],null],[10,\\\"li\\\"],[12],[10,1],[14,0,\\\"head rebar collar\\\"],[12],[13],[13],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 collar-label-readonly-rebarv2\\\"],[12],[1,\\\"Head\\\"],[13],[13],[13]],[]]],[13],[13]],[\\\"anchor\\\",\\\"i\\\",\\\"anchor\\\",\\\"i\\\"],false,[\\\"unless\\\",\\\"isAllAnchorsPopulated\\\",\\\"action\\\",\\\"if\\\",\\\"isEditing\\\",\\\"anchorsCSSCounteStyle\\\",\\\"isToe\\\",\\\"each\\\",\\\"-track-array\\\",\\\"listedAnchors\\\",\\\"get\\\",\\\"field\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-instrument-anchors-rebar.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"am5u0Lid\",\"block\":\"[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[33,1]],[[[11,2],[24,0,\\\"warning-text empty-anchor-warning italic\\\"],[4,[38,2],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Please add all instrument anchors! They are needed to make calculations for graphs.\\\"],[13]],[]],null],[41,[33,4],[[[10,\\\"ul\\\"],[15,5,[36,5]],[15,0,[29,[\\\"anchor-distances-input \\\",[52,[33,6],\\\"anchor-distances-input has-tooltip-info\\\",\\\"has-tooltip-info reverse-anchors-counter\\\"]]]],[12],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 toe-label\\\"],[12],[1,\\\"Borehole Toe\\\"],[13],[13],[41,[33,6],[[[10,\\\"li\\\"],[12],[10,1],[14,0,\\\"head toe\\\"],[12],[13],[13]],[]],[[[10,\\\"li\\\"],[14,0,\\\"tail\\\"],[12],[10,1],[14,0,\\\"tail collar\\\"],[12],[13],[13]],[]]],[42,[28,[37,8],[[28,[37,8],[[33,9]],null]],null],null,[[[41,[51,[30,1,[\\\"isDeleted\\\"]]],[[[10,\\\"li\\\"],[12],[10,1],[14,0,\\\"position\\\"],[12],[13],[10,1],[14,0,\\\"instrument-pipe\\\"],[12],[13],[10,\\\"input\\\"],[15,2,[30,1,[\\\"distance\\\"]]],[15,\\\"oninput\\\",[28,[37,2],[[30,0],[28,[37,2],[[30,0],\\\"inputNewValue\\\",[30,1]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,10]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[]],null]],[1,2]],null],[41,[33,11],[[[10,\\\"li\\\"],[12],[10,1],[14,0,\\\"head collar\\\"],[12],[13],[13]],[]],[[[10,\\\"li\\\"],[14,0,\\\"tail\\\"],[12],[10,1],[14,0,\\\"tail toe\\\"],[12],[13],[13]],[]]],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 collar-label\\\"],[12],[1,\\\"Borehole Collar\\\"],[13],[13],[13],[41,[33,1],[[[11,1],[24,0,\\\"save\\\"],[4,[38,2],[[30,0],\\\"save\\\",[33,12]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,0,\\\"has-tooltip-info\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13]],[]],[[[10,1],[14,0,\\\"save inactive\\\"],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,0,\\\"has-tooltip-info\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Input all anchors before saving!\\\",\\\"top\\\"]],null],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13]],[]]],[11,1],[24,0,\\\"cancel\\\"],[4,[38,2],[[30,0],\\\"cancel\\\",[33,12]],[[\\\"allowedKeys\\\",\\\"on\\\"],[\\\"alt\\\",\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,0,\\\"has-tooltip-info\\\"],[12],[8,[39,13],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,14],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,\\\"ul\\\"],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"top\\\"],[24,\\\"title\\\",\\\"Click on instrument to edit\\\"],[16,5,[36,5]],[16,0,[29,[[52,[33,6],\\\"anchor-distances-input has-tooltip-info\\\",\\\"anchor-distances-input has-tooltip-info reverse-anchors-counter\\\"]]]],[4,[38,2],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 toe-label\\\"],[12],[1,\\\"Borehole Toe\\\"],[13],[13],[41,[33,6],[[[10,\\\"li\\\"],[12],[10,1],[14,0,\\\"head toe\\\"],[12],[13],[13]],[]],[[[10,\\\"li\\\"],[14,0,\\\"tail\\\"],[12],[10,1],[14,0,\\\"tail collar\\\"],[12],[13],[13]],[]]],[42,[28,[37,8],[[28,[37,8],[[33,9]],null]],null],null,[[[41,[51,[30,3,[\\\"isDeleted\\\"]]],[[[10,\\\"li\\\"],[14,0,\\\"anchor\\\"],[12],[10,1],[14,0,\\\"position\\\"],[12],[13],[10,1],[14,0,\\\"instrument-pipe\\\"],[12],[13],[41,[28,[37,15],[[28,[37,16],[[30,3],\\\"distance\\\"],null]],null],[[[10,1],[14,0,\\\"anchor-distance warning-text empty-anchor-warning\\\"],[12],[1,\\\"NULL\\\"],[13]],[]],[[[10,1],[14,0,\\\"anchor-distance\\\"],[12],[1,[28,[35,16],[[30,3],\\\"distance\\\"],null]],[13]],[]]],[13]],[]],null]],[3,4]],null],[41,[33,11],[[[10,\\\"li\\\"],[12],[10,1],[14,0,\\\"head collar\\\"],[12],[13],[13]],[]],[[[10,\\\"li\\\"],[14,0,\\\"tail\\\"],[12],[10,1],[14,0,\\\"tail toe\\\"],[12],[13],[13]],[]]],[10,\\\"li\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 collar-label\\\"],[12],[1,\\\"Borehole Collar\\\"],[13],[13],[13]],[]]],[13],[13],[13]],[\\\"anchor\\\",\\\"i\\\",\\\"anchor\\\",\\\"i\\\"],false,[\\\"unless\\\",\\\"isAllAnchorsPopulated\\\",\\\"action\\\",\\\"if\\\",\\\"isEditing\\\",\\\"anchorsCSSCounteStyle\\\",\\\"isToe\\\",\\\"each\\\",\\\"-track-array\\\",\\\"sortedInstrumentAnchors\\\",\\\"field\\\",\\\"isCollar\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"if-empty-string-or-null\\\",\\\"get\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-instrument-anchors.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YLeC7XFi\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[10,\\\"select\\\"],[15,1,[36,3]],[15,\\\"onchange\\\",[28,[37,4],[[30,0],\\\"selectNewValue\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,1,[\\\"key\\\"]],[33,9]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,4],[[30,0],\\\"save\\\",[33,10]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,\\\"title\\\",\\\"Save\\\"],[14,0,\\\"fa fa-check has-tooltip-info\\\"],[12],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,4],[[30,0],\\\"cancel\\\",[33,11]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,\\\"title\\\",\\\"Cancel\\\"],[14,0,\\\"fa fa-times has-tooltip-info\\\"],[12],[13],[13]],[]],[[[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,12],[[33,11],[33,13]],null]],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Read only\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,12],[[33,11],[33,13]],null]],[13],[13],[13],[13]],[]]]],[\\\"selectOption\\\"],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"inputFieldId\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"selectOptionsArray\\\",\\\"is-equal\\\",\\\"newValue\\\",\\\"parentObject\\\",\\\"object\\\",\\\"get\\\",\\\"field\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-interval-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"vK6GY22H\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12 d-flex align-items-center\\\"],[12],[41,[51,[33,3]],[[[41,[33,4],[[[10,\\\"select\\\"],[15,1,[36,5]],[15,\\\"onchange\\\",[28,[37,6],[[30,0],\\\"selectNewValue\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Please choose a \\\"],[41,[33,7],[[[1,[28,[35,8],[[33,7],\\\".\\\"],null]]],[]],[[[1,[28,[35,8],[[33,9],\\\".\\\"],null]]],[]]],[13],[42,[28,[37,11],[[28,[37,11],[[33,12]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,13],[[30,1,[\\\"key\\\"]],[33,14]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[11,1],[24,0,\\\"blast-cancel ml-2\\\"],[4,[38,6],[[30,0],\\\"cancel\\\",[33,15]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,16],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,17],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,16],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,18],[[33,15],[33,19]],null]],[13]],[]]]],[]],null],[41,[33,3],[[[10,\\\"select\\\"],[15,1,[36,5]],[15,\\\"onchange\\\",[28,[37,6],[[30,0],\\\"selectNewValue\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,20],[[33,14]],null],[[[10,\\\"option\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Please choose a \\\"],[41,[33,7],[[[1,[28,[35,8],[[33,7],\\\".\\\"],null]]],[]],[[[1,[28,[35,8],[[33,9],\\\".\\\"],null]]],[]]],[13]],[]],null],[42,[28,[37,11],[[28,[37,11],[[33,12]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,13],[[30,2,[\\\"key\\\"]],[33,14]],null]],[15,2,[29,[[30,2,[\\\"key\\\"]]]]],[12],[1,[30,2,[\\\"value\\\"]]],[13]],[2]],null],[13]],[]],null],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,0,\\\"text\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,16],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"right\\\"]],null],[1,[28,[35,18],[[33,15],[33,19]],null]],[13],[13],[13],[13]],[]]]],[\\\"selectOption\\\",\\\"selectOption\\\"],false,[\\\"if\\\",\\\"isEditable\\\",\\\"unless\\\",\\\"isNew\\\",\\\"isEditing\\\",\\\"inputFieldId\\\",\\\"action\\\",\\\"fieldText\\\",\\\"concat\\\",\\\"value\\\",\\\"each\\\",\\\"-track-array\\\",\\\"selectOptionsArray\\\",\\\"is-equal\\\",\\\"newValue\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\",\\\"field\\\",\\\"not\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-lookup.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"6GiJurpN\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[10,\\\"select\\\"],[15,1,[36,3]],[15,\\\"onchange\\\",[28,[37,4],[[30,0],\\\"selectNewValue\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,1,[\\\"key\\\"]],[33,9]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,4],[[30,0],\\\"save\\\",[33,10]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,\\\"title\\\",\\\"Save\\\"],[14,0,\\\"fa fa-check has-tooltip-info\\\"],[12],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,4],[[30,0],\\\"cancel\\\",[33,11]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"top\\\"],[14,\\\"title\\\",\\\"Cancel\\\"],[14,0,\\\"fa fa-times has-tooltip-info\\\"],[12],[13],[13]],[]],[[[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,12],[[33,11],[33,13]],null]],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Read only\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,12],[[33,11],[33,13]],null]],[13],[13],[13],[13]],[]]]],[\\\"selectOption\\\"],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"inputFieldId\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"selectOptionsArray\\\",\\\"is-equal\\\",\\\"newValue\\\",\\\"parentObject\\\",\\\"object\\\",\\\"get\\\",\\\"field\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-select-alt.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9AvIOo6J\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[10,\\\"select\\\"],[15,1,[36,3]],[15,\\\"onchange\\\",[28,[37,4],[[30,0],\\\"selectNewValue\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,6],[[28,[37,6],[[33,7]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,1,[\\\"key\\\"]],[33,9]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,4],[[30,0],\\\"cancel\\\",[33,10]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,11],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[16,\\\"onchange\\\",[28,[37,4],[[30,0],\\\"getNewOptionValue\\\"],null]],[24,0,\\\"text\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,13],[[33,10],[33,14]],null]],[1,\\\" (mm)\\\"],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,0,\\\"text\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"right\\\"]],null],[1,[28,[35,13],[[33,10],[33,14]],null]],[1,\\\" (mm)\\\"],[13],[13],[13],[13]],[]]]],[\\\"selectOption\\\"],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"inputFieldId\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"selectOptionsArray\\\",\\\"is-equal\\\",\\\"newValue\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\",\\\"field\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-select-non-model.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"z62trK5s\",\"block\":\"[[[41,[33,1],[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,2],[[[41,[33,3],[[[10,\\\"select\\\"],[15,5,[29,[\\\"width: \\\",[36,3],\\\"px;\\\"]]],[15,1,[36,4]],[15,\\\"onchange\\\",[28,[37,5],[[30,0],\\\"selectNewValue\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[33,8]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,9],[[30,1,[\\\"key\\\"]],[33,10]],null]],[15,2,[29,[[30,1,[\\\"key\\\"]]]]],[12],[1,[30,1,[\\\"value\\\"]]],[13]],[1]],null],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,5],[[30,0],\\\"cancel\\\",[33,11]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,12],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[10,\\\"select\\\"],[15,1,[36,4]],[15,\\\"onchange\\\",[28,[37,5],[[30,0],\\\"selectNewValue\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,7],[[28,[37,7],[[33,8]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,9],[[30,2,[\\\"key\\\"]],[33,10]],null]],[15,2,[29,[[30,2,[\\\"key\\\"]]]]],[12],[1,[30,2,[\\\"value\\\"]]],[13]],[2]],null],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,5],[[30,0],\\\"cancel\\\",[33,11]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,12],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,13],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]]]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,14],[[33,11],[33,15]],null]],[13]],[]]],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"non-editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[11,1],[24,0,\\\"text\\\"],[4,[38,5],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Read Only\\\",\\\"right\\\"]],null],[1,[28,[35,14],[[33,11],[33,15]],null]],[13],[13],[13],[13]],[]]]],[\\\"selectOption\\\",\\\"selectOption\\\"],false,[\\\"if\\\",\\\"isEditable\\\",\\\"isEditing\\\",\\\"width\\\",\\\"inputFieldId\\\",\\\"action\\\",\\\"each\\\",\\\"-track-array\\\",\\\"selectOptionsArray\\\",\\\"is-equal\\\",\\\"newValue\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\",\\\"field\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-select.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"GfVi+dyU\",\"block\":\"[[[10,0],[14,0,\\\"editable-field\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[33,1],[[[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"format\\\",[36,2]],[15,2,[36,3]],[15,\\\"oninput\\\",[28,[37,4],[[30,0],[28,[37,5],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"focus-out\\\",\\\"'save' object\\\"],[15,1,[29,[[36,6]]]],[14,4,\\\"time\\\"],[12],[13],[13],[11,1],[24,0,\\\"save\\\"],[4,[38,4],[[30,0],\\\"save\\\",[33,7]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,8],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Save\\\",\\\"top\\\"]],null],[8,[39,9],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,4],[[30,0],\\\"cancel\\\",[33,7]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[12],[8,[39,8],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Cancel\\\",\\\"top\\\"]],null],[8,[39,9],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[11,1],[24,0,\\\"text\\\"],[4,[38,4],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,8],null,[[\\\"@title\\\",\\\"@placement\\\"],[\\\"Edit\\\",\\\"right\\\"]],null],[1,[28,[35,10],[[33,7],[33,6]],null]],[13]],[]]],[13],[13],[13]],[],false,[\\\"if\\\",\\\"isEditing\\\",\\\"format\\\",\\\"newValue\\\",\\\"action\\\",\\\"mut\\\",\\\"field\\\",\\\"object\\\",\\\"bs-tooltip\\\",\\\"fa-icon\\\",\\\"get\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/single-save-time-picker.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"/2hgjYUy\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,13]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,15]],[12],[42,[28,[37,17],[[28,[37,17],[[28,[37,18],[1,[33,19]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,20],[\\\"ch\\\",[30,1]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,20],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,15]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,17],[[28,[37,17],[[28,[37,18],[1,[33,19]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,20],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,20],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Active (Boolean 1/0)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],[[[1,\\\"Active (1/0)\\\"]],[]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"timeReference\\\",\\\"unless\\\",\\\"activeSize\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"2OYv92lQ\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstrument_length\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Burial Depth (m):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"instrumentLength\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"instrumentLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstrumentLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"0RP8+HPl\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"D/e+jPwI\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,\\\"title\\\",\\\"Target recipient for alert. Add cell number then click on link to find carrier network. \\\"],[24,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[24,0,\\\"col-12 col-form-label bold link\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,6],[[[6,[39,7],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,8],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,9],[33,6],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,15],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,16]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,17]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[1,[33,14]],null]],null]],null],null,[[[44,[[28,[37,19],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,17]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[28,[37,13],[0,[33,14]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,15],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,15],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Active (Boolean 1/0)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Active (Boolean 1/0)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],[[[1,\\\"Active (1/0)\\\"]],[]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,20]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,21],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,22]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"newAlertObject\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HpFa5p9+\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"referenceAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"referenceAnchor\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentLength\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Burial Depth (m):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"instrumentLength\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Nodes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[33,6,[\\\"headAt\\\",\\\"id\\\"]],[33,6,[\\\"channelsNum\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\",\\\"single-save-instrument-anchors\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"f2TERpdI\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"agor9vGv\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"SylSNNeo\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,13],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"slough/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ry3NePpe\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"digit(boolean)\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"iWkjQxJK\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"digit(boolean)\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/slough/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Ce/EZhq8\",\"block\":\"[[[1,[34,0]],[41,[33,2],[[[10,1],[15,0,[29,[\\\"th-sort horizontal-headers \\\",[52,[33,2],\\\"active\\\"]]]],[12],[41,[33,3],[[[11,1],[24,\\\"aria-hidden\\\",\\\"true\\\"],[24,0,\\\"sort-icons sort-asc\\\"],[4,[38,4],[[30,0],\\\"sortBy\\\",[33,5],true],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"sort-up\\\"]],null],[13]],[]],[[[11,1],[24,\\\"aria-hidden\\\",\\\"true\\\"],[24,0,\\\"sort-icons sort-desc\\\"],[4,[38,4],[[30,0],\\\"sortBy\\\",[33,5],false],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"sort-down\\\"]],null],[13]],[]]],[13]],[]],[[[10,1],[14,0,\\\"th-sort\\\"],[12],[11,1],[24,\\\"aria-hidden\\\",\\\"true\\\"],[24,0,\\\"sort-icons\\\"],[4,[38,4],[[30,0],\\\"sortBy\\\",[33,5],true],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"sort\\\"]],null],[13],[13]],[]]]],[],false,[\\\"title\\\",\\\"if\\\",\\\"isSelectedSort\\\",\\\"orderingAscending\\\",\\\"action\\\",\\\"sortProperty\\\",\\\"fa-icon\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/sortable-table-header.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HYIsRd57\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"1\\\"],null],[[[1,\\\"      Production\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"2\\\"],null],[[[1,\\\"      Development\\\\n\\\"]],[]],[[[1,\\\"      All\\\\n    \\\"]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"blast_type\\\"],[null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"blast_type\\\"],[1]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Production\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"blast_type\\\"],[2]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Development\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@blastType\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/spatial-blast-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"rgKgswW5\",\"block\":\"[[[41,[28,[37,1],[[30,1],\\\"1\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"2\\\"],null],[[[1,[28,[35,3],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"3\\\"],null],[[[1,[28,[35,4],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"4\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"5\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"6\\\"],null],[[[1,[28,[35,5],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"7\\\"],null],[[[1,[28,[35,6],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"8\\\"],null],[[[1,[28,[35,7],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"9\\\"],null],[[[1,[28,[35,8],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"10\\\"],null],[[[1,[28,[35,9],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"11\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"12\\\"],null],[[[1,\\\"Wire\\\"]],[]],[[[41,[28,[37,1],[[30,1],\\\"13\\\"],null],[[[1,[28,[35,10],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"15\\\"],null],[[[1,[28,[35,11],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"16\\\"],null],[[[1,[28,[35,12],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"17\\\"],null],[[[1,[28,[35,13],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"19\\\"],null],[[[1,[28,[35,14],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[1,[28,[35,2],null,[[\\\"selected\\\"],[\\\"Displacement\\\"]]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[\\\"@instrumentType\\\",\\\"@selected\\\",\\\"@instrumentId\\\"],false,[\\\"if\\\",\\\"eq\\\",\\\"pack/spatial-chart-dropdown\\\",\\\"cable/spatial-chart-dropdown\\\",\\\"rebar/spatial-chart-dropdown\\\",\\\"tilt/spatial-chart-dropdown\\\",\\\"slough/spatial-chart-dropdown\\\",\\\"thermo/spatial-chart-dropdown\\\",\\\"piezo/spatial-chart-dropdown\\\",\\\"hid/spatial-chart-dropdown\\\",\\\"adict/spatial-chart-dropdown\\\",\\\"vibe/spatial-chart-dropdown\\\",\\\"micro/spatial-chart-dropdown\\\",\\\"rebarv2/spatial-chart-dropdown\\\",\\\"dppc/spatial-chart-dropdown\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"n3mOMfBN\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"blast\\\"],null],[[[1,\\\"      Blast\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"seismic\\\"],null],[[[1,\\\"      Seismic\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"bluvibe\\\"],null],[[[1,\\\"      BluVibe\\\\n\\\"]],[]],[[[1,\\\"      All\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"event_type\\\",\\\"blast_type\\\",\\\"seismic_type\\\"],[null,null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"event_type\\\",\\\"blast_type\\\",\\\"seismic_type\\\"],[\\\"blast\\\",null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Blast\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"event_type\\\",\\\"blast_type\\\",\\\"seismic_type\\\"],[\\\"seismic\\\",null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Seismic\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@eventType\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/spatial-event-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"vfKvSF1r\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[33,2],[[[1,\\\"      Frequency\\\\n\\\"]],[]],[[[41,[33,3],[[[1,\\\"      Number of Samples\\\\n    \\\"]],[]],null]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"group_time\\\",\\\"group_window\\\",\\\"frequency_num\\\",\\\"frequency\\\"],[true,false,0,\\\"weekly\\\"]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,6],[[33,7],[33,8]],null]]],[[\\\"default\\\"],[[[[1,\\\"Frequency\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"group_time\\\",\\\"group_window\\\",\\\"frequency_num\\\",\\\"frequency\\\"],[false,true,50,\\\"\\\"]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,6],[[33,7],[33,8]],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Samples\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"groupTime\\\",\\\"groupWindow\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/spatial-group-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"91tNPrK9\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"1\\\"],null],[[[1,\\\"      Event\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"2\\\"],null],[[[1,\\\"      Blast\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"3\\\"],null],[[[1,\\\"      Noise\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"4\\\"],null],[[[1,\\\"      Other\\\\n\\\"]],[]],[[[1,\\\"      All\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[1]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Event\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[2]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Blast\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[3]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Noise\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[4]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Other\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@seismicType\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/spatial-seismic-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9CGKbI/j\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[1,[30,2]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"frequency_num\\\",\\\"frequency\\\",\\\"events_only\\\"],[0,\\\"daily\\\",false]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],[33,5]],null]]],[[\\\"default\\\"],[[[[1,\\\"Daily\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"frequency_num\\\",\\\"frequency\\\",\\\"events_only\\\"],[0,\\\"weekly\\\",false]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],[33,5]],null]]],[[\\\"default\\\"],[[[[1,\\\"Weekly\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"frequency_num\\\",\\\"frequency\\\",\\\"events_only\\\"],[0,\\\"monthly\\\",false]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],[33,5]],null]]],[[\\\"default\\\"],[[[[1,\\\"Monthly\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@frequencySelect\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/spatial-time-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"VEz5Ewo5\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    \\\"],[1,[30,2]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"frequency_num\\\",\\\"frequency\\\",\\\"events_only\\\"],[10,\\\"\\\",false]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],[33,5]],null]]],[[\\\"default\\\"],[[[[1,\\\"10\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"frequency_num\\\",\\\"frequency\\\",\\\"events_only\\\"],[20,\\\"\\\",false]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],[33,5]],null]]],[[\\\"default\\\"],[[[[1,\\\"20\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"frequency_num\\\",\\\"frequency\\\",\\\"events_only\\\"],[50,\\\"\\\",false]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],[33,5]],null]]],[[\\\"default\\\"],[[[[1,\\\"50\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@frequencySelect\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/spatial-window-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"kPTuQlpd\",\"block\":\"[[[10,0],[14,0,\\\"container\\\"],[12],[6,[39,0],null,[[\\\"viewbox\\\",\\\"xmlns\\\",\\\"width\\\",\\\"height\\\",\\\"class\\\"],[\\\"0 0 #{height} #{width}\\\",\\\"http://www.w3.org/2000/svg\\\",[33,1],[33,2],\\\"svg-container\\\"]],[[\\\"default\\\"],[[[[6,[39,3],null,null,[[\\\"default\\\"],[[[[6,[39,4],null,[[\\\"patternUnits\\\",\\\"width\\\",\\\"height\\\",\\\"id\\\"],[\\\"userSpaceOnUse\\\",\\\"21\\\",\\\"21\\\",\\\"p\\\"]],[[\\\"default\\\"],[[[[1,[28,[35,5],null,[[\\\"width\\\",\\\"height\\\",\\\"x\\\",\\\"y\\\",\\\"class\\\"],[\\\"20\\\",\\\"20\\\",\\\"0\\\",\\\"0\\\",\\\"grid-back\\\"]]]]],[]]]]]],[]]]]],[1,[28,[35,5],null,[[\\\"width\\\",\\\"height\\\",\\\"class\\\"],[[33,2],[33,1],\\\"grid-front\\\"]]]],[1,[28,[35,5],null,[[\\\"width\\\",\\\"height\\\",\\\"fill\\\"],[[33,2],[33,1],\\\"url(#p)\\\"]]]],[1,[28,[35,6],null,[[\\\"id\\\"],[\\\"chart-container\\\"]]]]],[]]]]],[13]],[],false,[\\\"svg\\\",\\\"height\\\",\\\"width\\\",\\\"defs\\\",\\\"pattern\\\",\\\"rect\\\",\\\"g\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/svg-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"+dUGbtYd\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"1\\\"],null],[[[1,\\\"      Production\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"2\\\"],null],[[[1,\\\"      Development\\\\n\\\"]],[]],[[[1,\\\"      All\\\\n    \\\"]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"blast_type\\\"],[null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"blast_type\\\"],[1]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Production\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"blast_type\\\"],[2]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Development\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@blastType\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-blast-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"zxIHy+9F\",\"block\":\"[[[41,[28,[37,1],[[30,1],\\\"1\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"2\\\"],null],[[[1,[28,[35,3],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"3\\\"],null],[[[1,[28,[35,4],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"4\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"5\\\"],null],[[[1,[28,[35,5],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"6\\\"],null],[[[1,[28,[35,6],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"7\\\"],null],[[[1,[28,[35,7],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"8\\\"],null],[[[1,[28,[35,8],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"9\\\"],null],[[[1,[28,[35,9],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"10\\\"],null],[[[1,[28,[35,10],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"11\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"12\\\"],null],[[[1,[28,[35,11],null,[[\\\"selected\\\",\\\"instrumentId\\\",\\\"port\\\"],[[30,2],[30,3],[30,4]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"13\\\"],null],[[[41,[28,[37,1],[[30,5,[\\\"vendorType\\\"]],\\\"MDT_MPBX\\\"],null],[[[1,[28,[35,12],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],null],[41,[28,[37,1],[[30,5,[\\\"vendorType\\\"]],\\\"MDT_CABLE\\\"],null],[[[1,[28,[35,13],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],null],[41,[28,[37,1],[[30,5,[\\\"vendorType\\\"]],\\\"GENERIC\\\"],null],[[[1,[28,[35,14],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],null],[41,[28,[37,1],[[30,5,[\\\"vendorType\\\"]],\\\"\\\"],null],[[[1,[28,[35,14],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],null]],[]],[[[41,[28,[37,1],[[30,1],\\\"15\\\"],null],[[[1,[28,[35,15],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"16\\\"],null],[[[1,[28,[35,16],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"17\\\"],null],[[[1,[28,[35,17],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"19\\\"],null],[[[1,[28,[35,18],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"20\\\"],null],[[[1,[28,[35,19],null,[[\\\"selected\\\",\\\"instrumentId\\\"],[[30,2],[30,3]]]]]],[]],[[[1,[28,[35,2],null,[[\\\"selected\\\"],[\\\"Displacement\\\"]]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[\\\"@instrumentType\\\",\\\"@selected\\\",\\\"@instrumentId\\\",\\\"@port\\\",\\\"@vendor\\\"],false,[\\\"if\\\",\\\"eq\\\",\\\"pack/temporal-chart-dropdown\\\",\\\"cable/temporal-chart-dropdown\\\",\\\"rebar/temporal-chart-dropdown\\\",\\\"dconv/temporal-chart-dropdown\\\",\\\"tilt/temporal-chart-dropdown\\\",\\\"slough/temporal-chart-dropdown\\\",\\\"thermo/temporal-chart-dropdown\\\",\\\"piezo/temporal-chart-dropdown\\\",\\\"hid/temporal-chart-dropdown\\\",\\\"wire/temporal-chart-dropdown\\\",\\\"adict/temporal-MPBX-chart-dropdown\\\",\\\"adict/temporal-CABLE-chart-dropdown\\\",\\\"adict/temporal-chart-dropdown\\\",\\\"vibe/temporal-chart-dropdown\\\",\\\"micro/temporal-chart-dropdown\\\",\\\"rebarv2/temporal-chart-dropdown\\\",\\\"dppc/temporal-chart-dropdown\\\",\\\"multiDExto/temporal-chart-dropdown\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HYyObotN\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[33,3],50],null],[[[1,\\\"      50\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],300],null],[[[1,\\\"      300\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],100],null],[[[1,\\\"      100\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],10],null],[[[1,\\\"      10\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],1],null],[[[1,\\\"      All\\\\n\\\"]],[]],[[[1,\\\"      100\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"display_records\\\"],[300]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,6],[[33,7],[33,8]],null]]],[[\\\"default\\\"],[[[[1,\\\"300\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"display_records\\\"],[100]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,6],[[33,7],[33,8]],null]]],[[\\\"default\\\"],[[[[1,\\\"100\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"display_records\\\"],[50]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,6],[[33,7],[33,8]],null]]],[[\\\"default\\\"],[[[[1,\\\"50\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"display_records\\\"],[10]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,6],[[33,7],[33,8]],null]]],[[\\\"default\\\"],[[[[1,\\\"10\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"display_records\\\"],[1]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,6],[[33,7],[33,8]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@display_records\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"display_records\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-display-records-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"czL6ImlB\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"blast\\\"],null],[[[1,\\\"      Blast\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"seismic\\\"],null],[[[1,\\\"      Seismic\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"bluvibe\\\"],null],[[[1,\\\"      BluVibe\\\\n\\\"]],[]],[[[1,\\\"      All\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"event_type\\\",\\\"blast_type\\\",\\\"seismic_type\\\"],[null,null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"event_type\\\",\\\"blast_type\\\",\\\"seismic_type\\\"],[\\\"blast\\\",null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Blast\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"event_type\\\",\\\"blast_type\\\",\\\"seismic_type\\\"],[\\\"seismic\\\",null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Seismic\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"event_type\\\",\\\"blast_type\\\",\\\"seismic_type\\\"],[\\\"bluvibe\\\",null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"BluVibe\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@eventType\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-event-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"/RLGukF8\",\"block\":\"[[[41,[28,[37,1],[[30,1],\\\"1\\\"],null],[[[1,[28,[35,2],null,[[\\\"selected\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\",\\\"chart_parent_gateway\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7],[30,8]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"2\\\"],null],[[[1,[28,[35,3],null,[[\\\"selected\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"3\\\"],null],[[[1,[28,[35,4],null,[[\\\"selected\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"4\\\"],null],[[[1,[28,[35,5],null,[[\\\"selected\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\",\\\"chart_parent_gateway\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7],[30,8]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"5\\\"],null],[[[1,[28,[35,6],null,[[\\\"selected\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\",\\\"chart_parent_gateway\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7],[30,8]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"6\\\"],null],[[[1,[28,[35,7],null,[[\\\"selected\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\",\\\"chart_parent_gateway\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7],[30,8]]]]]],[]],null]],[]]]],[]]]],[]]]],[]]]],[]]]],[\\\"@gatewayType\\\",\\\"@selected\\\",\\\"@gatewayId\\\",\\\"@gatewayTypeId\\\",\\\"@left_axis_field\\\",\\\"@right_axis_field\\\",\\\"@modelName\\\",\\\"@chart_parent_gateway\\\"],false,[\\\"if\\\",\\\"eq\\\",\\\"blucell/temporal-gateway-chart-dropdown\\\",\\\"blugate/temporal-gateway-chart-dropdown\\\",\\\"blu900gw/temporal-gateway-chart-dropdown\\\",\\\"blu900node/temporal-gateway-chart-dropdown\\\",\\\"oneforone/temporal-gateway-chart-dropdown\\\",\\\"vibe/temporal-gateway-chart-dropdown\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YwOTShrA\",\"block\":\"[[],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"moporFAf\",\"block\":\"[[[41,[28,[37,1],[[30,1],\\\"1\\\"],null],[[[1,[28,[35,2],null,[[\\\"gatewayId\\\",\\\"modelName\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"selected\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"2\\\"],null],[[[1,[28,[35,3],null,[[\\\"gatewayId\\\",\\\"modelName\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"selected\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"3\\\"],null],[[[1,[28,[35,4],null,[[\\\"gatewayId\\\",\\\"modelName\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"selected\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"4\\\"],null],[[[1,[28,[35,5],null,[[\\\"gatewayId\\\",\\\"modelName\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"selected\\\",\\\"chart_parent_gateway\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"5\\\"],null],[[[1,[28,[35,6],null,[[\\\"gatewayId\\\",\\\"modelName\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"selected\\\",\\\"chart_parent_gateway\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7]]]]]],[]],[[[41,[28,[37,1],[[30,1],\\\"6\\\"],null],[[[1,[28,[35,7],null,[[\\\"gatewayId\\\",\\\"modelName\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\",\\\"selected\\\",\\\"chart_parent_gateway\\\"],[[30,2],[30,3],[30,4],[30,5],[30,6],[30,7]]]]]],[]],null]],[]]]],[]]]],[]]]],[]]]],[]]]],[\\\"@gatewayType\\\",\\\"@gatewayId\\\",\\\"@modelName\\\",\\\"@right_axis_field\\\",\\\"@left_axis_field\\\",\\\"@selected\\\",\\\"@chart_parent_gateway\\\"],false,[\\\"if\\\",\\\"eq\\\",\\\"blucell/temporal-gateway-right-axis-dropdown\\\",\\\"blugate/temporal-gateway-right-axis-dropdown\\\",\\\"blu900gw/temporal-gateway-right-axis-dropdown\\\",\\\"blu900node/temporal-gateway-right-axis-dropdown\\\",\\\"oneforone/temporal-gateway-right-axis-dropdown\\\",\\\"vibe/temporal-gateway-right-axis-dropdown\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"eIV1mljJ\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[30,2],[[[41,[28,[37,2],[[30,2],60],null],[[[1,\\\"        1 Hour\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],480],null],[[[1,\\\"        8 Hours\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],1440],null],[[[1,\\\"        24 Hours\\\\n\\\"]],[]],[[[1,\\\"        \\\"],[1,[30,2]],[1,\\\"\\\\n      \\\"]],[]]]],[]]]],[]]]],[]],[[[1,\\\"      None\\\\n\\\"]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"window\\\"],[60]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"1 Hour\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"window\\\"],[480]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"8 Hours\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"window\\\"],[1440]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"24 Hours\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@window\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-group-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9eMzqIp8\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"1\\\"],null],[[[1,\\\"      Event\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"2\\\"],null],[[[1,\\\"      Blast\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"3\\\"],null],[[[1,\\\"      Noise\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"4\\\"],null],[[[1,\\\"      Other\\\\n\\\"]],[]],[[[1,\\\"      All\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"All\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[1]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Event\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[2]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Blast\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[3]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Noise\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"seismic_type\\\"],[4]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Other\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@seismicType\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-seismic-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pViyoFL2\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"minute\\\"],null],[[[1,\\\"      Per Minute\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"hourly\\\"],null],[[[1,\\\"      Hourly\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"daily\\\"],null],[[[1,\\\"      Daily\\\\n\\\"]],[]],[[[1,\\\"      None\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"frequency\\\"],[\\\"\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"None\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"frequency\\\"],[\\\"minute\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Per Minute\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"frequency\\\"],[\\\"hourly\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Hourly\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"frequency\\\"],[\\\"daily\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],[33,7]],null]]],[[\\\"default\\\"],[[[[1,\\\"Daily\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@frequency\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\",\\\"modelName\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/temporal-window-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"L1EzGtI2\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,13]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,15]],[12],[42,[28,[37,17],[[28,[37,17],[[28,[37,18],[0,[33,19]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,20],[\\\"ch\\\",[30,1]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,20],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,15]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,17],[[28,[37,17],[[28,[37,18],[0,[33,19]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,20],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,20],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"°C\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"timeReference\\\",\\\"unless\\\",\\\"activeSize\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"lCIj4gD4\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"eIQgvhqa\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"iXQVltrD\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\n e.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,13],[[28,[37,13],[[28,[37,14],[0,[33,15]],null]],null]],null],null,[[[44,[[28,[37,17],[[30,1],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,2],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[2]]]],[1]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[28,[37,14],[0,[33,15]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Temperature\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Temperature\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[13],[1,\\\"Step Displacement\\\"]],[]],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[13],[1,\\\"Step Displacement\\\"]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"°C\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"°C/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"°C/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"timeReference\\\",\\\"unless\\\",\\\"activeSize\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"concat\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"csBzVqla\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"sGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Spatial Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Nodes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"headAt\\\",\\\"channelsNum\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[30,1,[\\\"anchors\\\"]],[33,6,[\\\"headAt\\\",\\\"id\\\"]],[33,6,[\\\"channelsNum\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\",\\\"single-save-instrument-anchors\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"CdAjB9fY\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"aQ/BtuLu\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"cGBGylCN\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,12],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,13],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],false,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"thermo/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HiYvpJSt\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temp Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temp Grad\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"i+Es7xWr\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temp. Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temp. Grad\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/thermo/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HQ0Plf9S\",\"block\":\"[[],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/threeD.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"wGJ3xRde\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,13]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,15]],[12],[42,[28,[37,17],[[28,[37,17],[[28,[37,18],[0,[33,19]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,20],[\\\"ch\\\",[30,1]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,20],[\\\"Channel \\\",[28,[37,21],[[30,1],1],null]],null]],[1,\\\" \\\"],[13]],[1]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,15]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,17],[[28,[37,17],[[28,[37,18],[0,[33,19]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,20],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,20],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Tilt\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,22]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"timeReference\\\",\\\"unless\\\",\\\"activeSize\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"sum\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"h3Y6nNEZ\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"KbhMjEyp\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Tfjz4K7b\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,13],[[28,[37,13],[[28,[37,14],[0,[33,15]],null]],null]],null],null,[[[41,[28,[37,16],[[33,17],[28,[37,18],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[28,[37,19],[[30,1],1],null]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[28,[37,19],[[30,1],1],null]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,11]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[28,[37,14],[0,[33,15]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Tilt\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,20]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,21],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,22]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"timeReference\\\",\\\"unless\\\",\\\"activeSize\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"get\\\",\\\"anchorList\\\",\\\"concat\\\",\\\"sum\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"vl2nF0IG\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HKJJJnLj\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Mg0T8Nj2\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"ALERT! Multiple Modes detected in this set of data, using final value.\\\"],[13],[13],[13]],[]],null],[41,[33,4],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,5],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,4],[33,6],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,7],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,8]]]]],[13],[13]],[]],null],[41,[33,6],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,10],[[28,[37,10],[[33,7]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temperature\\\"],[13],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,11],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,10],[[28,[37,10],[[30,1]],null]],null],null,[[[1,[28,[35,13],null,[[\\\"format\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,14],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,15],true,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,16],[[30,7,[\\\"id\\\"]],[28,[37,17],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,8]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"multiple\\\",\\\"isVisibleCreateNewForm\\\",\\\"tilt/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"bMrPm+s0\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Tilt\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Ang. Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/tilt/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"MSyQ1Y85\",\"block\":\"[[],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vendor-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9+EjBeKe\",\"block\":\"[[[10,0],[14,0,\\\"chart-container\\\"],[12],[10,\\\"canvas\\\"],[14,1,\\\"chartjs-canvas\\\"],[14,\\\"width\\\",\\\"800\\\"],[14,\\\"height\\\",\\\"400\\\"],[12],[13],[13],[10,0],[14,5,\\\"margin-left:15px\\\"],[12],[10,0],[14,5,\\\"font-size:small;display:flex;flex-direction:row;justify-content:center\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Pan:\\\"],[13],[11,0],[24,1,\\\"scatterPanValue\\\"],[24,5,\\\"margin-right:15px;cursor:pointer;font-weight:bold;\\\"],[4,[38,0],[[30,0],\\\"handleScatterToolbarAction\\\",\\\"scatterPan\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"On\\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Zoom:\\\"],[13],[11,0],[24,1,\\\"scatterZoomValue\\\"],[24,5,\\\"margin-right:15px;cursor:pointer;font-weight:bold;\\\"],[4,[38,0],[[30,0],\\\"handleScatterToolbarAction\\\",\\\"scatterZoom\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Wheel\\\"],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[11,0],[24,5,\\\"margin-right:15px;cursor:pointer;font-weight:bold;\\\"],[4,[38,0],[[30,0],\\\"handleScatterToolbarAction\\\",\\\"reset\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset\\\"],[13],[13],[13],[13]],[],false,[\\\"action\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/chartjs-frequency-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"AH3eI/Qe\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,8,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,0,\\\"bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,9],[[[6,[39,10],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,11],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,12],[33,9],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,19]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,20]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,15],[[28,[37,15],[[28,[37,16],[0,[33,17]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,18],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,18],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"VEL\\\"],[12],[1,\\\"Velocity\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"ACC\\\"],[12],[1,\\\"Acceleration\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<=)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"alert\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"pJ8KKFkh\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"project\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"project\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectProject\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"level\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"level\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectLevel\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,3]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[],false,[\\\"newGatewayObject\\\",\\\"action\\\",\\\"mut\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"tIH3ur8i\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"zF7yToAF\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temperature\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\".001\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"YCMmbYeO\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,1]],[13]],[1]],null],[10,\\\"td\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[42,[28,[37,9],[[33,10]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,11],[[33,12],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp.\\\"],[12],[10,\\\"input\\\"],[15,2,[36,13]],[15,1,[29,[\\\"df\\\",[36,14]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,13]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"gateway\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"-each-in\\\",\\\"gatewayValueObjectValues\\\",\\\"get\\\",\\\"newGatewayValueObjectValues\\\",\\\"temperatureObjectValue\\\",\\\"key\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/create-new-raw-gateway-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"sWYCZYHY\",\"block\":\"[[[10,0],[12],[10,\\\"h5\\\"],[14,5,\\\"text-align: center;\\\"],[14,1,\\\"graphTitle\\\"],[12],[1,[34,0]],[13],[13],[10,0],[14,1,\\\"bluvibe_frequency_event_echarts\\\"],[14,5,\\\"width: 100%; min-height: 600px; border: solid;border-width: thin; border-color: lightgrey;border-radius: 20px;\\\"],[14,0,\\\"echart-container\\\"],[12],[13],[10,0],[14,5,\\\"margin:10px;\\\"],[12],[10,\\\"h6\\\"],[14,5,\\\"font-weight:bold;\\\"],[12],[1,\\\"Additional Information\\\"],[13],[10,0],[14,5,\\\"margin:10px\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Starting Timestamp:\\\"],[13],[10,0],[14,5,\\\"margin-left:10px;\\\"],[12],[1,[34,1]],[13],[13],[13],[13],[10,0],[14,5,\\\"margin:10px;\\\"],[12],[10,\\\"h6\\\"],[14,5,\\\"font-weight:bold;\\\"],[12],[1,\\\"Graph Tools\\\"],[13],[41,[33,3,[\\\"isShowXYZ3DInstructions\\\"]],[[[10,0],[14,5,\\\"margin:10px;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Controls:\\\"],[13],[10,0],[14,5,\\\"margin-left:10px;\\\"],[12],[1,[34,4]],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"margin:10px;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"3D:\\\"],[13],[10,\\\"button\\\"],[14,5,\\\"margin-left:10px;width: 60px;padding:5px;\\\"],[15,\\\"onClick\\\",[28,[37,5],[[30,0],\\\"handleToggle3D\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Toggle\\\"],[13],[13],[10,0],[14,5,\\\"width:25px\\\"],[12],[13],[41,[33,6],[[[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Integration Method:\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"integrationMethodButtonID\\\"],[14,5,\\\"margin-left:10px;padding:5px;\\\"],[15,\\\"onClick\\\",[28,[37,5],[[30,0],\\\"handleToggleIntegrationMethod\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"-\\\"],[13],[13]],[]],null],[13],[10,0],[15,5,[29,[\\\"margin:10px;display:\\\",[52,[30,0,[\\\"playbackOptions\\\",\\\"isVisible\\\"]],\\\"flex;\\\",\\\"none;\\\"],\\\";flex-direction:row;align-items:center;\\\"]]],[12],[10,0],[12],[1,\\\"Playback:\\\"],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,5,\\\"display: flex; flex-direction: row; align-items: center;\\\"],[12],[10,0],[14,1,\\\"playBackLoopSettings\\\"],[15,5,[29,[\\\"cursor:pointer; border-color: black; border: solid; border-radius: 5px; border-width: thin; padding: 2px;color:\\\",[52,[30,0,[\\\"playbackOptions\\\",\\\"isPlayLoop\\\"]],\\\"green;\\\",\\\"red;\\\"]]]],[15,\\\"onClick\\\",[28,[37,5],[[30,0],\\\"cyclePlayLoop\\\"],null]],[12],[1,\\\"Loop\\\"],[13],[10,0],[14,5,\\\"width:25px\\\"],[12],[13],[10,0],[14,1,\\\"playPauseSettings\\\"],[14,5,\\\"cursor:pointer; border-color: black; border: solid; border-radius: 5px; border-width: thin; padding: 2px;\\\"],[12],[1,\\\"Play/Pause\\\"],[13],[10,0],[14,5,\\\"width:25px\\\"],[12],[13],[10,0],[14,1,\\\"playBackSpeedSettings\\\"],[14,5,\\\"cursor:pointer;\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"playbackSpeedSelect\\\"],[15,\\\"onchange\\\",[28,[37,5],[[30,0],\\\"cyclePlaybackSpeed\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,8],[[28,[37,8],[[33,9,[\\\"playbackSpeedData\\\"]]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[30,1]],[15,\\\"selected\\\",[28,[37,10],[[30,1],[33,9,[\\\"playbackSpeed\\\"]]],null]],[12],[1,[30,1]],[13]],[1]],null],[13],[13],[13],[10,0],[14,5,\\\"display:flex;width:100%\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"width: 100%\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"playBackGraphSettings\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"range\\\"],[12],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"margin:10px;display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Scaling:\\\"],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[14,1,\\\"xGraphScaling\\\"],[14,5,\\\"margin-left:10px;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Max X:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"\\\"],[14,1,\\\"maxXGraph\\\"],[15,\\\"oninput\\\",[28,[37,5],[[30,0],\\\"updateGraphScaling\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Min X:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"\\\"],[14,1,\\\"minXGraph\\\"],[15,\\\"oninput\\\",[28,[37,5],[[30,0],\\\"updateGraphScaling\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,0],[14,1,\\\"yGraphScaling\\\"],[14,5,\\\"margin-left:10px;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Max Y:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"\\\"],[14,1,\\\"maxYGraph\\\"],[15,\\\"oninput\\\",[28,[37,5],[[30,0],\\\"updateGraphScaling\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Min Y:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"\\\"],[14,1,\\\"minYGraph\\\"],[15,\\\"oninput\\\",[28,[37,5],[[30,0],\\\"updateGraphScaling\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,0],[14,1,\\\"zGraphScaling\\\"],[14,5,\\\"margin-left:10px;display:flex;flex-direction:column;align-items:center;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Max Z:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"\\\"],[14,1,\\\"maxZGraph\\\"],[15,\\\"oninput\\\",[28,[37,5],[[30,0],\\\"updateGraphScaling\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;\\\"],[12],[10,0],[12],[1,\\\"Min Z:\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"margin-left:10px\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,5,\\\"\\\"],[14,1,\\\"minZGraph\\\"],[15,\\\"oninput\\\",[28,[37,5],[[30,0],\\\"updateGraphScaling\\\"],[[\\\"event\\\"],[\\\"target\\\"]]]],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13],[10,\\\"button\\\"],[14,5,\\\"margin-left:10px;width: 60px;padding:5px;\\\"],[15,\\\"onClick\\\",[28,[37,5],[[30,0],\\\"resetGraphScaling\\\"],null]],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Reset\\\"],[13],[13],[13],[13],[13]],[\\\"speedValue\\\"],false,[\\\"getGraphTitle\\\",\\\"getTimestamp\\\",\\\"if\\\",\\\"isShowConfig\\\",\\\"controlsText\\\",\\\"action\\\",\\\"setVisibleIntegrationMethod\\\",\\\"each\\\",\\\"-track-array\\\",\\\"playbackOptions\\\",\\\"eq\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/echarts-frequency-event.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"NsBVscYa\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Displacement\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<=)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"mm\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"VEL\\\"],null],[[[1,\\\"mm/day\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"ACC\\\"],null],[[[1,\\\"mm/day²\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"g6pGhFX2\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"7\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"project\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"level\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,6],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,5],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveGateway\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[41,[28,[37,7],[[30,1,[\\\"hasChildren\\\"]],true],null],[[[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[1,[28,[35,8],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\"],[[30,1,[\\\"children\\\"]],[28,[37,0],[[30,0],\\\"sortBy\\\"],null],[33,9]]]]],[13]],[]],null],[13]],[\\\"@gateway\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"single-save-input\\\",\\\"gateway\\\",\\\"single-save-datetime-picker\\\",\\\"eq\\\",\\\"gateway-list\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"IRgFmjOv\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,5,\\\"align-items: center;\\\"],[14,0,\\\"row\\\"],[12],[41,[28,[37,1],[[33,2],\\\"viewData\\\"],null],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,4],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13]],[]],null],[41,[28,[37,1],[[33,2],\\\"tGraph\\\"],null],[[[41,[33,5],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,4],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null]],[]],null],[41,[28,[37,1],[[33,2],\\\"fGraph\\\"],null],[[[41,[33,5],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"fGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,4],null,[[\\\"@icon\\\"],[\\\"chart-area\\\"]],null],[1,\\\" Frequency Graph\\\"],[13],[13]],[]],null]],[]],null],[41,[28,[37,1],[[33,2],\\\"fEvent\\\"],null],[[[41,[33,5],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"fEvent\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,4],null,[[\\\"@icon\\\"],[\\\"wave-square\\\"]],null],[1,\\\" Frequency Events\\\"],[13],[13]],[]],null]],[]],null],[41,[33,6],[[[10,0],[14,5,\\\"width: auto;\\\"],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,7],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,8],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,2,[\\\"id\\\"]],[33,2,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,2],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"subModel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Sub-Model:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"subModel\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"name\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"location\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],[33,2,[\\\"east\\\"]],[33,2,[\\\"north\\\"]],[33,2,[\\\"depth\\\"]],[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"azimuth\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"dip\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"borehole\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"zeroTimestamp\\\",[33,13,[\\\"value\\\"]],true,[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,12],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"installDate\\\",[33,13,[\\\"value\\\"]],true,[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"installedBy\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"text\\\",\\\"purpose\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,2],\\\"textarea\\\",\\\"notes\\\",[28,[37,3],[[30,0],\\\"stopEditField\\\"],null],[28,[37,3],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,14],null,[[\\\"object\\\",\\\"field\\\"],[[33,2],\\\"active\\\"]]]],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"if\\\",\\\"if-meet-sub-model-requirement\\\",\\\"instrument\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"hasGraphs\\\",\\\"showLoading\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"globalDatetimeFormat\\\",\\\"single-save-checkbox\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"CtxVK5Mr\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"    \\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"ppv\\\"],null],[[[1,\\\"      PPV vs Frequency\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"ppa\\\"],null],[[[1,\\\"      PPA vs Frequency\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"ppl\\\"],null],[[[1,\\\"      PPV vs Log(Frequency)\\\\n\\\"]],[]],[[[1,\\\"      PPV vs Frequency\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"ppv\\\"]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"PPV vs Frequency\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"ppl\\\"]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"PPV vs Log(Frequency)\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"ppa\\\"]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"PPA vs Frequency\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/frequency-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"P7kGYJnx\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"    \\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"lin_reg_raw\\\"],null],[[[1,\\\"      Linear Reg(RAW)\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"lin_reg_detrended\\\"],null],[[[1,\\\"      Linear Reg(Detrended)\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"fft\\\"],null],[[[1,\\\"      FFT\\\\n\\\"]],[]],[[[1,\\\"      Velocity/Displacement\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"lin_reg_raw\\\"]]],\\\"frequency-events\\\",[33,5]]],[[\\\"default\\\"],[[[[1,\\\"Linear Reg(RAW)\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"lin_reg_detrended\\\"]]],\\\"frequency-events\\\",[33,5]]],[[\\\"default\\\"],[[[[1,\\\"Linear Reg(Detrended)\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"fft\\\"]]],\\\"frequency-events\\\",[33,5]]],[[\\\"default\\\"],[[[[1,\\\"FFT\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"velo_and_disp\\\"]]],\\\"frequency-events\\\",[33,5]]],[[\\\"default\\\"],[[[[1,\\\"Velocity/Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/frequency-events-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"nKX+LARM\",\"block\":\"[[[11,\\\"button\\\"],[24,5,\\\"margin-top:15px; border-width: 0;background-color: white;padding: 0px;font-size: large;cursor: pointer;text-decoration: underline;color: #007bff;\\\"],[24,4,\\\"button\\\"],[4,[38,0],[[30,0],\\\"downloadScreenshot\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Export Graph\\\"],[13],[10,0],[14,1,\\\"GRAPH\\\"],[12],[10,0],[15,1,[36,1]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-frequency-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[13]],[],false,[\\\"action\\\",\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/nvd3-frequency-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"4FDmcwH5\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/nvd3-temporal-gateway-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9Md7egmt\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"2ASxrRrc\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[12],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"Visible Readings:\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,[34,0]],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"Total Readings:\\\"],[13],[10,\\\"label\\\"],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,1],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,2],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,4],[[[10,0],[14,5,\\\"overflow: auto; max-width: 1300px;\\\"],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,5],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,4],[33,6],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,7],\\\"YYYY-MM-DD HH:mm:ss.l\\\",[33,8]]]]],[13],[13]],[]],null],[41,[33,6],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,5,\\\"overflow: auto; display: inline-block; max-width: 1300px;\\\"],[14,0,\\\"row parent\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table child\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,10],[[28,[37,10],[[33,7]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp\\\"],[13],[10,\\\"th\\\"],[14,5,\\\"min-width: 75px;\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,11],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,10],[[28,[37,10],[[33,13]],null]],null],null,[[[1,[28,[35,14],null,[[\\\"format\\\",\\\"batchSelectedRows\\\",\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[33,15],[33,16],[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,17],true,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,18],[[30,7,[\\\"id\\\"]],[28,[37,19],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,8]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,1],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,2],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"getVisibleReadings\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"vibe/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"getDisplacementData\\\",\\\"single-save-inputs-array-table-row-cells\\\",\\\"globalDatetimeFormat\\\",\\\"batchSelectedRows\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"X9hOq39w\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[12],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"Visible:\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,[34,0]],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"Total:\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,[34,1]],[13],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,2],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-frequency-events-data\\\",\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,4],[[[10,0],[14,5,\\\"overflow: auto; max-width: 1300px;\\\"],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,5],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,4],[33,6],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,7],\\\"YYYY-MM-DD HH:mm:ss.l\\\",[33,8]]]]],[13],[13]],[]],null],[41,[33,6],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row parent\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table child\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"ID\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Event ID\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,10],[[28,[37,10],[[33,7]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,10],[[28,[37,10],[[33,11]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[1,[30,4,[\\\"id\\\"]]],[13],[10,\\\"td\\\"],[14,5,\\\"color:blue;cursor:pointer;\\\"],[15,\\\"onclick\\\",[28,[37,12],[[30,0],\\\"handleAction\\\",\\\"eventIDHotClick\\\",[30,4]],null]],[12],[1,[30,4,[\\\"parent_id\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,4,[\\\"timestamp\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[28,[35,13],[[30,4,[\\\"x\\\"]],5],null]],[13],[10,\\\"td\\\"],[12],[1,[28,[35,13],[[30,4,[\\\"y\\\"]],5],null]],[13],[10,\\\"td\\\"],[12],[1,[28,[35,13],[[30,4,[\\\"z\\\"]],5],null]],[13],[13]],[4]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,2],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-frequency-events-data\\\",\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@instrumentFreqEventData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"selectOption\\\"],false,[\\\"getVisibleReadings\\\",\\\"getTotalReadings\\\",\\\"pagination-links\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"vibe/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getFreqEventData\\\",\\\"action\\\",\\\"format-number\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/raw-frequency-events-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"r8Gsak78\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings:\\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"anchorDistances\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"gatewayType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,6]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[12],[1,\\\"Temp.\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"gateway\\\",\\\"gatewayType\\\",\\\"gatewayValueObject\\\",\\\"gatewayValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"setProp\\\",\\\"omitTemperature\\\"],[[30,2,[\\\"id\\\"]],[30,2],[30,2,[\\\"gatewayType\\\"]],[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[33,7],false]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-gateway-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@gatewayData\\\",\\\"@gateway\\\",\\\"anchor\\\",\\\"gatewayValue\\\",\\\"index\\\",\\\"@temperatureData\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"blucell/create-new-raw-gateway-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"anchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getGatewayData\\\",\\\"single-save-gateway-inputs-array-table-row-cells\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"gBOfj/jY\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"    \\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"frequency\\\"],null],[[[1,\\\"      Frequency\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"ppv\\\"],null],[[[1,\\\"      PPV\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"ppa\\\"],null],[[[1,\\\"      PPA\\\\n\\\"]],[]],[[[1,\\\"      Frequency\\\\n    \\\"]],[]]]],[]]]],[]]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"frequency\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Frequency\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"ppv\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"PPV\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"chart_type\\\"],[null,null,\\\"ppa\\\"]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[33,6],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"PPA\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"crlQnsu/\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware Version\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Temperature\\\",[30,4]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,5],[[33,6],\\\"temperature-gateway-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@left_axis_field\\\",\\\"ddm\\\",\\\"@right_axis_field\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/temporal-gateway-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"R0ZB2BGz\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[33,3],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[33,3],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Readings\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,2,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,4],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,5],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,6]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,7],[[33,8],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[2]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"selected\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"right_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/temporal-gateway-left-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"MH0LJhsI\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[41,[28,[37,2],[[30,2],\\\"Voltage\\\"],null],[[[1,\\\"      Voltage\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"RSSI\\\"],null],[[[1,\\\"      RSSI\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Readings\\\"],null],[[[1,\\\"      Number of Readings\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uptime\\\"],null],[[[1,\\\"      Uptime in Seconds\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Reconnection\\\"],null],[[[1,\\\"      Reconnection Attempts\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Uploads\\\"],null],[[[1,\\\"      Number of Uploads\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Firmware\\\"],null],[[[1,\\\"      Firmware Version\\\\n\\\"]],[]],[[[41,[28,[37,2],[[30,2],\\\"Temperature\\\"],null],[[[1,\\\"      Temperature\\\\n\\\"]],[]],[[[1,\\\"      Voltage\\\\n    \\\"]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[1,\\\"    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Voltage\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"voltage-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Voltage\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],[[24,\\\"action\\\",\\\"\\\"]],null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"RSSI\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"rssi-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"RSSI\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Readings\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"readings-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Readings\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uptime\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uptime-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Uptime in Seconds\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Reconnection\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"reconnection-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Reconnection Attempts\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Uploads\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"uploads-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Number of Uploads\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Firmware\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"firmware-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Firmware\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"right_axis_field\\\",\\\"left_axis_field\\\"],[null,null,\\\"Temperature\\\",[33,5]]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,6],[[33,7],\\\"temp-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Temperature\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@right_axis_field\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"if\\\",\\\"is-equal\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"left_axis_field\\\",\\\"array\\\",\\\"gatewayId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/vibe/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qnHfl0oZ\",\"block\":\"[[[41,[33,1],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[1,[28,[35,2],[[33,3,[\\\"id\\\"]],\\\"YYYY-MM-DD HH:mm:ss.SSS\\\"],null]],[13],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temp\\\"],[12],[10,\\\"input\\\"],[15,2,[36,4]],[15,1,[29,[\\\"df\\\",[36,5]]]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[42,[28,[37,9],[[30,1,[\\\"values\\\"]]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,6],[[30,0],[28,[37,7],[[28,[37,10],[[33,11],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"save\\\"],[4,[38,6],[[30,0],\\\"save\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[13],[11,1],[24,0,\\\"cancel\\\"],[4,[38,6],[[30,0],\\\"cancel\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap\\\"],[12],[1,[28,[35,2],[[30,1,[\\\"id\\\"]],\\\"YYYY-MM-DD HH:mm:ss.SSS\\\"],null]],[13],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[34,4]],[13],[13],[42,[28,[37,9],[[30,1,[\\\"values\\\"]]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,5]],[12],[41,[28,[37,13],[[30,4],[33,14]],null],[[[10,1],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"title\\\",\\\"Value is above Stroke Length. Graphs will use previous value.\\\"],[14,0,\\\"text red-text bold has-tooltip-info\\\"],[12],[1,\\\"⇑ \\\"],[13]],[]],null],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"text has-tooltip-info\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[41,[33,15],[[[1,[28,[35,16],[[30,4],3],null]]],[]],[[[1,[28,[35,16],[[30,4],2],null]]],[]]],[13],[13]],[4,5]],null],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,6],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[11,1],[24,\\\"data-toggle\\\",\\\"tooltip\\\"],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"crud edit has-tooltip-info\\\"],[4,[38,6],[[30,0],\\\"edit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,17],[[28,[37,18],[[33,19],[33,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"Delete it?\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"Are you sure?\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,6],[[30,0],\\\"remove\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,6],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[33,3,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13]],[]]]],[\\\"@displacementValueObject\\\",\\\"value\\\",\\\"key\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isEditing\\\",\\\"moment-format\\\",\\\"displacementValueObject\\\",\\\"temperatureObjectValue\\\",\\\"key\\\",\\\"action\\\",\\\"mut\\\",\\\"each\\\",\\\"-each-in\\\",\\\"get\\\",\\\"displacementValueObjectValues\\\",\\\"fa-icon\\\",\\\"is-greater-than\\\",\\\"strokeLength\\\",\\\"isFine\\\",\\\"format-number\\\",\\\"active-class\\\",\\\"get-array-element\\\",\\\"isRowDeleteConfirmationDialog\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire-single-save-inputs-array-table-row-cells.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Wf6L5z5P\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"padding-right: 3rem;\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[33,1],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,2],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],null],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"newAlertObjectSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"newAlertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name.\\\"],[15,2,[36,6]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectType\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"newAlertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"newAlertStaticDynamic\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newAlertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,1,\\\"newAlertEnabled\\\"],[24,\\\"checked\\\",\\\"\\\"],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,3],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"newAlertObjectResponseType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"newAlertResponse\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[24,\\\"title\\\",\\\"Target recipient for alert. Add cell number then click on link to find carrier network. \\\"],[24,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[24,0,\\\"col-12 col-form-label bold link\\\"],[4,[38,3],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,8],[[[6,[39,9],null,[[\\\"close\\\"],[[28,[37,3],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,10],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,11],[33,8],[28,[37,3],[[30,0],\\\"toggleModal\\\"],null],[28,[37,3],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,5,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,5,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"newAlertObjectAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,14],[[28,[37,14],[[28,[37,15],[0,[33,16]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,17],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,17],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,1,\\\"newAlertRefAnchor\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[36,18]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,18]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,\\\"for\\\",\\\"newAlertActiveChans\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,19]],[12],[42,[28,[37,14],[[28,[37,14],[[28,[37,15],[0,[33,16]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,17],[\\\"ch\\\",[30,2]],null]]]],[14,\\\"selected\\\",\\\"\\\"],[12],[1,[28,[35,17],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[2]],null],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,19]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,14],[[28,[37,14],[[28,[37,15],[0,[33,16]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,17],[\\\"ch\\\",[30,3]],null]]]],[12],[1,[28,[35,17],[\\\"Channel \\\",[30,3]],null]],[1,\\\" \\\"],[13]],[3]],null],[13],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newAlertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Pressure\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,5,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"kPa\\\"]],[]],null],[41,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]],[[[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"newAlertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,1,\\\"newAlertInstrument\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"newAlertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"newAlertInstrument\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[15,\\\"onchange\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Window Length (Seconds):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,7],[[33,5,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[51,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"SUS\\\"],null]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,7],[[33,5,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,5,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,4],[[33,5,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,1,\\\"newAlertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,20]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,3],[[30,0],\\\"createAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"channel\\\"],false,[\\\"if\\\",\\\"isVisibleError\\\",\\\"fieldError\\\",\\\"action\\\",\\\"mut\\\",\\\"newAlertObject\\\",\\\"username\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"createMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"IORMBXUL\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"row_details\\\"],[12],[10,\\\"tbody\\\"],[14,5,\\\"display:contents\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectName\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"Name\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"name\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectName\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectProject\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,1],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Project\\\",\\\"newInstrumentObjectProject\\\",[28,[37,1],[[30,0],\\\"setProject\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"project\\\"]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"location\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"location\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectLocation\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectCoordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"east\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"east\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectEast\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"north\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"north\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNorth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-4\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"depth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"depth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDepth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"azimuth\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"azimuth\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectAzimuth\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectDip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"dip\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"dip\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectDip\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectLevel\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[1,[28,[35,3],null,[[\\\"isNew\\\",\\\"isEditable\\\",\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"onSelectionChange\\\",\\\"inputFieldId\\\"],[true,true,[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",\\\"value\\\",\\\"Level\\\",\\\"newInstrumentObjectLevel\\\",[28,[37,1],[[30,0],\\\"setLevel\\\"],[[\\\"value\\\"],[[33,4,[\\\"value\\\"]]]]],\\\"level\\\"]]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align:top\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"borehole\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"borehole\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectBorehole\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectZeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,5]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"zeroTimestamp\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstallDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,6]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"installDate\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"installedBy\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"installedBy\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectInstalledBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,2,[33,0,[\\\"purpose\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"purpose\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectPurpose\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"textarea\\\"],[15,2,[33,0,[\\\"notes\\\"]]],[15,\\\"oninput\\\",[28,[37,1],[[30,0],[28,[37,2],[[33,0,[\\\"notes\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectNotes\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-bottom:5px;\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,5,\\\"margin-top: 1 rem;\\\"],[24,0,\\\"add-new\\\"],[4,[38,1],[[30,0],\\\"createInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Create\\\"],[13],[13],[13],[13],[13]],[\\\"@projectLookupList\\\",\\\"@levelLookupList\\\"],false,[\\\"newInstrumentObject\\\",\\\"action\\\",\\\"mut\\\",\\\"single-save-lookup\\\",\\\"target\\\",\\\"zeroTimestamp\\\",\\\"installDate\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"uU4Yepl4\",\"block\":\"[[[41,[33,1],[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"active newRecord\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"New data value\\\"],[13],[10,\\\"td\\\"],[15,\\\"colspan\\\",[33,2,[\\\"length\\\"]]],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item noWrap\\\"],[12],[11,1],[24,0,\\\"cancel-new mr-1\\\"],[4,[38,3],[[30,0],\\\"cancelNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-times\\\"],[12],[13],[1,\\\" Cancel\\\"],[13],[11,1],[24,0,\\\"save-new\\\"],[4,[38,3],[[30,0],\\\"saveNew\\\",[33,4]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"i\\\"],[14,\\\"aria-hidden\\\",\\\"true\\\"],[14,0,\\\"fa fa-check\\\"],[12],[13],[1,\\\" Save\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[12],[1,\\\"Date\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[33,2]],null]],null],null,[[[10,\\\"td\\\"],[12],[1,[30,1]],[13]],[1]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Date\\\"],[14,0,\\\"noWrap row_details form-inline input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,8]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newTimestampValue\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"data-title\\\",\\\"Temperature\\\"],[12],[10,\\\"input\\\"],[15,2,[36,9]],[15,1,[29,[\\\"df\\\",[36,10]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[33,9]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[42,[28,[37,11],[[33,12]],null],null,[[[10,\\\"td\\\"],[15,\\\"data-title\\\",[30,3]],[12],[10,\\\"input\\\"],[15,2,[30,2]],[15,1,[29,[\\\"df\\\",[30,3]]]],[15,\\\"oninput\\\",[28,[37,3],[[30,0],[28,[37,7],[[28,[37,13],[[33,14],[30,3]],null]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control inside-table-cell\\\"],[14,4,\\\"text\\\"],[12],[13],[13]],[2,3]],null],[13],[13],[13]],[]],null]],[\\\"anchor\\\",\\\"value\\\",\\\"key\\\"],false,[\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"instrumentAnchors\\\",\\\"action\\\",\\\"instruments\\\",\\\"each\\\",\\\"-track-array\\\",\\\"mut\\\",\\\"newTimestampValue\\\",\\\"temperatureObjectValue\\\",\\\"key\\\",\\\"-each-in\\\",\\\"displacementValueObjectValues\\\",\\\"get\\\",\\\"newDisplacementValueObjectValues\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/create-new-raw-data-value-form.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"6icwE8YL\",\"block\":\"[[[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,\\\"for\\\",\\\"alertSeverity\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Alert Severity:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Just for Notification.\\\"],[14,1,\\\"alertSeverity\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"severity\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"HIGH\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"High\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"HIGH\\\"],[12],[1,\\\"High\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"MED\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Medium\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"MED\\\"],[12],[1,\\\"Medium\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"severity\\\"]],\\\"LOW\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Low\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LOW\\\"],[12],[1,\\\"Low\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[14,\\\"for\\\",\\\"alertObjectCreatedBy\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Created By:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top:5px;\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Alert creator's name\\\"],[15,2,[33,2,[\\\"creator\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"creator\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectCreatedBy\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[14,\\\"for\\\",\\\"creationTimestamp\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Creation Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Date and time this alert was created\\\"],[12],[1,[33,2,[\\\"creationDate\\\"]]],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[14,\\\"for\\\",\\\"alertStaticDynamic\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Static Alert:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Alert must be cleared Manually\\\"],[24,1,\\\"alertStaticDynamic\\\"],[16,\\\"checked\\\",[33,2,[\\\"isPerm\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"staticChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Enable/disable alert\\\"],[14,\\\"for\\\",\\\"alertEnabled\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Enabled:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"label\\\"],[14,\\\"data-toggle\\\",\\\"tooltip\\\"],[14,\\\"data-placement\\\",\\\"right\\\"],[14,\\\"data-offset\\\",\\\"0 -7\\\"],[14,0,\\\"custom-control custom-checkbox empty-checkbox-title mr-sm-2 has-tooltip-info\\\"],[12],[11,\\\"input\\\"],[24,\\\"title\\\",\\\"Enable/disable alert\\\"],[24,1,\\\"alertEnabled\\\"],[16,\\\"checked\\\",[33,2,[\\\"isActive\\\"]]],[24,0,\\\"custom-control-input\\\"],[24,4,\\\"checkbox\\\"],[4,[38,0],[[30,0],\\\"activeChanged\\\"],[[\\\"on\\\"],[\\\"change\\\"]]],[12],[13],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,\\\"for\\\",\\\"alertResponseType\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Response Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for response when alert is triggered\\\"],[14,1,\\\"alertResponseType\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"response\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"VP\\\"],[12],[1,\\\"Display Only\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"EMAIL\\\"],[12],[1,\\\"E-Mail\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"SMS\\\"],[12],[1,\\\"SMS (Text Message)\\\"],[13]],[]]],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Target (None):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"EMAIL\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (Address):\\\"],[13]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[11,\\\"label\\\"],[4,[38,0],[[30,0],\\\"toggleModal\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Target (Phone #):\\\"],[13],[41,[33,5],[[[6,[39,6],null,[[\\\"close\\\"],[[28,[37,0],[[30,0],\\\"toggleModal\\\"],null]]],[[\\\"default\\\"],[[[[10,\\\"label\\\"],[12],[1,\\\"Select Carrier Gateway:\\\"],[13],[1,[28,[35,7],null,[[\\\"phoneNumber\\\",\\\"isShowingModal\\\",\\\"onClose\\\",\\\"onSelect\\\"],[[33,8],[33,5],[28,[37,0],[[30,0],\\\"toggleModal\\\"],null],[28,[37,0],[[30,0],\\\"handleSelection\\\"],null]]]]]],[]]]]]],[]],null]],[]],null],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[14,\\\"for\\\",\\\"alertObjectTarget\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Target (IP addr):\\\"],[13]],[]],null],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"SMS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Phone Number\\\"],[14,\\\"title\\\",\\\"Format: number \\\\ne.g. 9999999999 then click on Target (Phone #) link!\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"title\\\",\\\"Available in future release\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Target recipient for alert response\\\"],[15,2,[33,2,[\\\"target\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"target\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectTarget\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[14,\\\"for\\\",\\\"alertObjectMessage\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Additional Message:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"VP\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"response\\\"]],\\\"TRIG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Additional message appended to an alert response\\\"],[15,2,[33,2,[\\\"message\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"message\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectMessage\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[14,\\\"for\\\",\\\"alertObjectReferenceAnchor\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[41,[28,[37,4],[[33,2,[\\\"refAnchor\\\"]],[28,[37,14],[\\\"ch\\\",[30,1]],null]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,1]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,1]],null]],[1,\\\" \\\"],[13]],[]]]],[1]],null],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectReferenceAnchor\\\"],[14,\\\"title\\\",\\\"Anchor that is as a reference for this alert (default is Channel 0)\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"refAnchor\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,2,\\\"Ch0\\\"],[12],[1,\\\"None\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Time to use as a reference for zeroing the measurements.\\\"],[14,\\\"for\\\",\\\"timeReference\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Time Reference:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"datetime-picker-component\\\"],[12],[10,\\\"input\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,2,[33,2,[\\\"timeReference\\\"]]],[14,\\\"format\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,15]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"timeReference\\\"],[14,4,\\\"datetime-local\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,\\\"title\\\",\\\"Channels to test for this Alert (Hold CTRL to select multiple)\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[44,[[28,[37,18],[[30,2],[30,0,[\\\"referenceAnchors\\\"]]],null]],[[[41,[30,3],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,\\\" \\\"],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,2]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,2]],null]],[1,\\\" \\\"],[13]],[]]]],[3]]]],[2]],null],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"chan_select\\\"],[14,0,\\\"col-6 col-form-label\\\"],[12],[1,\\\"Active Channels:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"select\\\"],[14,3,\\\"chan_select\\\"],[14,1,\\\"chan_select\\\"],[14,\\\"multiple\\\",\\\"\\\"],[15,\\\"size\\\",[36,16]],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"updateSelectedAnchors\\\"],null]],[14,\\\"disabled\\\",\\\"\\\"],[12],[42,[28,[37,11],[[28,[37,11],[[28,[37,12],[0,[33,13]],null]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[28,[37,14],[\\\"ch\\\",[30,4]],null]]]],[12],[1,[28,[35,14],[\\\"Channel \\\",[30,4]],null]],[1,\\\" \\\"],[13]],[4]],null],[13],[13],[13]],[]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMetric\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Metric:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMetric\\\"],[14,\\\"title\\\",\\\"Metric used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"metric\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Pressure\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"DISP\\\"],[12],[1,\\\"Pressure\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"STP_DISP\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"STP_DISP\\\"],[12],[1,\\\"Step Displacement\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"TIME\\\"],[14,\\\"title\\\",\\\"Time since last message recieved.\\\"],[12],[1,\\\"Latest Response\\\"],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectDirection\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Direction:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"GT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"direction\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Less Than (<)\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,1,\\\"alertObjectDirection\\\"],[14,\\\"title\\\",\\\"Direction used to determine if this alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"direction\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"GT\\\"],[12],[1,\\\"Greater Than (>=)\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[14,\\\"for\\\",\\\"alertObjectValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Value:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Value compared against selected active channel(s) value(s) to see if the alert should trigger\\\"],[15,2,[33,2,[\\\"value\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectValue\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"DISP\\\"],null],[[[1,\\\"kPa\\\"]],[]],null],[41,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null],[[[1,\\\"minutes\\\"]],[]],null],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Alert Status\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Status:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"TRIGGERED\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"All Good\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"First Triggered:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[15,\\\"title\\\",[36,19]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"initTriggerStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isTriggered\\\"]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"clearAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Clear Alert\\\"],[13]],[]],[[[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"triggerTest\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Trigger Alert (Test)\\\"],[13]],[]]],[13],[13],[41,[28,[37,4],[[33,20],true],null],[[[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You have modified Response Type/Target/Add. Message!\\\"],[13],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"To test alert, please reset the page or save your changes.\\\"],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert handled?:\\\"],[13],[13],[10,\\\"td\\\"],[12],[41,[33,2,[\\\"isHandled\\\"]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Alert Responded\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"No Response\\\"],[13]],[]]],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Most recent handling:\\\"],[13],[13],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,2,\\\"target.value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[33,2,[\\\"handleStamp\\\"]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"td\\\"],[12],[11,\\\"button\\\"],[4,[38,0],[[30,0],\\\"resetHandle\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Reset Handle (Test)\\\"],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[10,\\\"h6\\\"],[12],[1,\\\"Calculation Method\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"metric\\\"]],\\\"TIME\\\"],null]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[14,\\\"title\\\",\\\"Method for choosing how alert will trigger\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"title\\\",\\\"Decide whether to trigger alarm based on the single most recent reading\\\"],[12],[1,\\\"Immediate\\\"],[13]],[]]],[13],[13],[13],[13],[13]],[]],[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectMethod\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Method:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"alertObjectMethod\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"method\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"IMM\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Immediate\\\"],[13],[13],[13],[13],[13],[13]],[]]],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,\\\"for\\\",\\\"alertObjectWindow\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[12],[1,\\\"Number of Readings\\\"],[13]],[]]],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"LT\\\"],null],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]],[[[10,\\\"option\\\"],[14,2,\\\"LT\\\"],[12],[1,\\\"Length of Time\\\"],[13]],[]]],[13]],[]],[[[10,\\\"select\\\"],[14,\\\"title\\\",\\\"Method for selecting how many recent readings will be checked\\\"],[14,1,\\\"alertObjectWindow\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowType\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"NR\\\"],[14,\\\"selected\\\",\\\"selected\\\"],[12],[1,\\\"Number of Readings\\\"],[13],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Check most recent reading to see if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (# Readings):\\\"],[13]],[]]]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"alertObjectWindowLength\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Window Length (Minutes):\\\"],[13]],[]]]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[41,[51,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"IMM\\\"],null]],[[[41,[28,[37,4],[[33,2,[\\\"windowType\\\"]],\\\"NR\\\"],null],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"SUS\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent readings to check if alert should be triggered\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most readings to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]],[[[41,[28,[37,4],[[33,2,[\\\"method\\\"]],\\\"AVG\\\"],null],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if average should trigger alert\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"input\\\"],[14,\\\"title\\\",\\\"Number of most recent minutes to check if alert should trigger\\\"],[15,2,[33,2,[\\\"windowLength\\\"]]],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"alertObjectWindowLength\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]]],[]]]],[]],[[[10,\\\"input\\\"],[14,2,\\\"1\\\"],[15,\\\"oninput\\\",[28,[37,0],[[30,0],[28,[37,1],[[33,2,[\\\"windowLength\\\"]]],null]],[[\\\"value\\\"],[\\\"1\\\"]]]],[14,\\\"title\\\",\\\"Check if most recent reading should trigger alert\\\"],[14,1,\\\"alertObjectWindowLength\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,1,\\\"add-new\\\"],[14,5,\\\"padding-bottom:5px\\\"],[14,0,\\\"add-new-item\\\"],[12],[10,1],[12],[1,[34,21]],[13],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveAlert\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Save\\\"],[13],[13],[13],[13],[13]],[\\\"channel\\\",\\\"channel\\\",\\\"result\\\",\\\"channel\\\"],false,[\\\"action\\\",\\\"mut\\\",\\\"alert\\\",\\\"if\\\",\\\"is-equal\\\",\\\"showModal\\\",\\\"modal-dialog\\\",\\\"popup-list\\\",\\\"phoneNumber\\\",\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"range\\\",\\\"channelCount\\\",\\\"concat\\\",\\\"timeReference\\\",\\\"activeSize\\\",\\\"let\\\",\\\"validate-initial-channels\\\",\\\"triggeredTimeText\\\",\\\"edited\\\",\\\"saveMessage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"T7XtE7Y3\",\"block\":\"[[[8,[39,0],null,[[\\\"@closeOnMenuClick\\\"],[true]],[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,2],[[28,[37,2],[[30,4]],null]],null],null,[[[1,\\\"      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[10,3],[14,6,\\\"\\\"],[15,\\\"onclick\\\",[28,[37,3],[[30,0],\\\"selectedProperty\\\",[33,4],[30,1,[\\\"closeDropdown\\\"]]],null]],[12],[1,\\\" \\\"],[1,[30,5,[\\\"channel\\\"]]],[13],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[5]],null],[1,\\\"  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\\n\\\"]],[\\\"dd\\\",\\\"@selectedPort\\\",\\\"ddm\\\",\\\"@ports\\\",\\\"port\\\"],false,[\\\"bs-dropdown\\\",\\\"each\\\",\\\"-track-array\\\",\\\"action\\\",\\\"item\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/edit-instrument-port-drop-down.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"vHRUrNw9\",\"block\":\"[[[8,[39,0],null,[[\\\"@customTabs\\\"],[true]],[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[39,1],null,[[\\\"@type\\\"],[\\\"tabs\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,3],[[28,[37,3],[[30,0,[\\\"ports\\\"]]],null]],null],null,[[[1,\\\"      \\\"],[8,[30,2,[\\\"item\\\"]],null,[[\\\"@active\\\"],[[28,[37,4],[[30,1,[\\\"activeId\\\"]],[30,4]],null]]],[[\\\"default\\\"],[[[[10,3],[14,6,\\\"#\\\"],[14,\\\"port.channel\\\",\\\"\\\"],[14,\\\"role\\\",\\\"tab\\\"],[15,\\\"onclick\\\",[28,[37,5],[[30,0],[30,1,[\\\"select\\\"]],[30,3,[\\\"channel\\\"]]],null]],[12],[1,[30,3,[\\\"title\\\"]]],[13]],[]]]]],[1,\\\"\\\\n\\\"]],[3]],null],[1,\\\"  \\\"]],[2]]]]],[1,\\\"\\\\n  \\\"],[10,0],[14,0,\\\"tab-content\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[37,3],[[28,[37,3],[[30,0,[\\\"ports\\\"]]],null]],null],null,[[[1,\\\"      \\\"],[8,[30,1,[\\\"pane\\\"]],null,[[\\\"@id\\\",\\\"@title\\\"],[\\\"port.channel\\\",\\\"port.title\\\"]],[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[1,\\\"wire/edit-instrument\\\"],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[5]],null],[1,\\\"  \\\"],[13],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"tab\\\",\\\"nav\\\",\\\"port\\\",\\\"@activePanel\\\",\\\"port\\\"],false,[\\\"bs-tab\\\",\\\"bs-nav\\\",\\\"each\\\",\\\"-track-array\\\",\\\"bs-eq\\\",\\\"action\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/edit-instrument-tabs.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"0kOQDXIB\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Data:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"viewData\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"database\\\"]],null],[1,\\\" View Data\\\"],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"col-sm-auto inst-buttons\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"tGraph\\\",[30,1,[\\\"id\\\"]]],null],[12],[8,[39,1],null,[[\\\"@icon\\\"],[\\\"chart-line\\\"]],null],[1,\\\" Temporal Graph\\\"],[13],[13]],[]],null],[13],[10,\\\"hr\\\"],[12],[13],[13],[13],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Alerts:\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,5],null,[[\\\"isInst\\\",\\\"instrumentId\\\",\\\"alerts\\\"],[true,[33,6,[\\\"id\\\"]],[33,6,[\\\"alerts\\\"]]]]]],[13],[13],[10,\\\"hr\\\"],[12],[13],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"h5\\\"],[12],[1,\\\"Properties:\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"justify-content: left;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"channelsNum\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Channels:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[33,6],\\\"text\\\",\\\"channelsNum\\\",false]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"name\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"project\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Project:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,2],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"project\\\"]],[30,1],\\\"value\\\",\\\"Project\\\",\\\"id\\\",\\\"project\\\",true]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"location\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"location\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"coordinates\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,9],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],[33,6,[\\\"east\\\"]],[33,6,[\\\"north\\\"]],[33,6,[\\\"depth\\\"]],[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"azimuth\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Azimuth:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"azimuth\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"dip\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Dip:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"dip\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"level\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Level:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,8],null,[[\\\"selectOptions\\\",\\\"style\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"fieldText\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,3],\\\"font-size: 23px\\\",\\\"id,value\\\",[30,1,[\\\"level\\\"]],[30,1],\\\"value\\\",\\\"Level\\\",\\\"id\\\",\\\"level\\\",true]]]],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[13],[10,\\\"hr\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[12],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"zeroTimestamp\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Zero timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"zeroTimestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installDate\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Install date:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\",\\\"showClear\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"installDate\\\",\\\"YYYY-MM-DD HH:mm:ss\\\",true,[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"installedBy\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Installed by:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"installedBy\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"purpose\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Purpose:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"purpose\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"notes\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Notes:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"textarea\\\",\\\"notes\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"referenceAnchor\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Reference Anchor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"referenceAnchor\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"active\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Active:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,11],null,[[\\\"object\\\",\\\"id\\\",\\\"field\\\"],[[33,6],\\\"activeCheck\\\",\\\"active\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"borehole\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Borehole:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,7],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"stopEditField\\\",\\\"editField\\\"],[[33,6],\\\"text\\\",\\\"borehole\\\",[28,[37,0],[[30,0],\\\"stopEditField\\\"],null],[28,[37,0],[[30,0],\\\"editField\\\"],null]]]]],[13],[13],[13],[13],[13],[13],[42,[28,[37,13],[[28,[37,13],[[33,14]],null]],null],[33,15],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"h5\\\"],[12],[1,\\\"Port \\\"],[1,[30,4,[\\\"port\\\"]]],[1,\\\":\\\"],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"1\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"vwvendor\\\"],[14,0,\\\"col-xs-12 col-form-label\\\"],[12],[1,\\\"Instrument Vendor:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"instrumentVendor\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"setVendor\\\",[30,4]],[[\\\"value\\\"],[[33,16,[\\\"value\\\"]]]]]],[14,0,\\\"form-control\\\"],[12],[42,[28,[37,13],[[28,[37,13],[[33,17]],null]],null],null,[[[41,[28,[37,18],[[30,4,[\\\"vendor\\\",\\\"id\\\"]],[30,5,[\\\"id\\\"]]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[30,5,[\\\"id\\\"]]]]],[12],[1,[30,5,[\\\"vendorName\\\"]]],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[30,5,[\\\"id\\\"]]]]],[12],[1,[30,5,[\\\"vendorName\\\"]]],[13]],[]]]],[5]],null],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"vwmodel\\\"],[14,0,\\\"col-xs-12 col-form-label\\\"],[12],[1,\\\"Instrument Model:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"instrumentModel\\\"],[15,\\\"onchange\\\",[28,[37,0],[[30,0],\\\"setModel\\\",[30,4]],[[\\\"value\\\"],[[33,16,[\\\"value\\\"]]]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Select\\\"],[13],[42,[28,[37,13],[[28,[37,13],[[30,4,[\\\"modelTypes\\\"]]],null]],null],null,[[[1,[30,4,[\\\"vwmodel\\\",\\\"id\\\"]]],[41,[28,[37,18],[[30,4,[\\\"vwmodel\\\",\\\"id\\\"]],[30,6,[\\\"id\\\"]]],null],[[[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[15,2,[29,[[30,6,[\\\"id\\\"]]]]],[12],[1,[30,6,[\\\"modelName\\\"]]],[13]],[]],[[[10,\\\"option\\\"],[15,2,[29,[[30,6,[\\\"id\\\"]]]]],[12],[1,[30,6,[\\\"modelName\\\"]]],[13]],[]]]],[6]],null],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details space-below\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,18],[[30,4,[\\\"vendor\\\",\\\"vendorName\\\"]],\\\"GEOKON\\\"],null],[[[1,[28,[35,19],null,[[\\\"port\\\",\\\"model\\\"],[[30,4],[30,4,[\\\"vwmodel\\\"]]]]]]],[]],null],[41,[28,[37,18],[[30,4,[\\\"vendor\\\",\\\"vendorName\\\"]],\\\"Roctest\\\"],null],[[[1,[28,[35,20],null,[[\\\"port\\\",\\\"model\\\"],[[30,4],[30,4,[\\\"vwmodel\\\"]]]]]]],[]],null],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"hr\\\"],[12],[13],[13],[13]],[4]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"td_details\\\"],[12],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"5\\\"],[14,0,\\\"add-new-item\\\"],[12],[13],[10,\\\"td\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,0],[[30,0],\\\"saveInstrument\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\" Return\\\"],[13],[13],[13],[13],[13]],[\\\"@instrument\\\",\\\"@projectLookupList\\\",\\\"@levelLookupList\\\",\\\"vwProperty\\\",\\\"selectOption\\\",\\\"selectOption\\\"],false,[\\\"action\\\",\\\"fa-icon\\\",\\\"if\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts-list\\\",\\\"instrument\\\",\\\"single-save-input\\\",\\\"single-save-lookup\\\",\\\"single-save-geo-input\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-checkbox\\\",\\\"each\\\",\\\"-track-array\\\",\\\"vwProperties\\\",\\\"vwProperty\\\",\\\"target\\\",\\\"vwVendors\\\",\\\"eq\\\",\\\"wire/geo-pt-edit\\\",\\\"wire/roc-pws-edit\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"uLTqLCJj\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items:center;justify-content: space-evenly;\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: baseline;\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"serial\\\"],[14,5,\\\"font-weight: bold;\\\"],[12],[1,\\\"Unit= \\\"],[13],[10,\\\"select\\\"],[15,1,[29,[[28,[37,0],[\\\"pressureUnitDropdown\\\",[33,1,[\\\"port\\\"]]],null]]]],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"handlePressureUnitChange\\\"],null]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"-\\\"],[12],[1,\\\"-\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"kPa\\\"],[12],[1,\\\"kPa\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"MPa\\\"],[12],[1,\\\"MPa\\\"],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:column;align-items:center\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;margin-left: 20px;\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef1\\\"],[14,5,\\\"font-weight: bold;\\\"],[12],[1,\\\"G(\\\"],[1,[30,0,[\\\"gPressureUnit\\\"]]],[1,\\\")=\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"min-width:100px;\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,3],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef1\\\"]]]],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;margin-left: 20px;\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef3\\\"],[14,5,\\\"font-weight: bold;\\\"],[12],[1,\\\"R\\\"],[10,\\\"sub\\\"],[12],[1,\\\"0\\\"],[13],[1,\\\" (Freq) =\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"min-width:100px;\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,3],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef3\\\"]]]],[13],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:column;align-items:center\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;margin-left: 20px;\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef2\\\"],[14,5,\\\"font-weight: bold;\\\"],[12],[1,\\\"K(\\\"],[1,[30,0,[\\\"kPressureUnit\\\"]]],[1,\\\")=\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"min-width:100px;\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,3],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef2\\\"]]]],[13],[13],[10,0],[14,5,\\\"display:flex;flex-direction:row;margin-left: 20px;\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef4\\\"],[14,5,\\\"font-weight: bold;\\\"],[12],[1,\\\"T\\\"],[10,\\\"sub\\\"],[12],[1,\\\"0\\\"],[13],[1,\\\" (°C) =\\\"],[13],[10,\\\"td\\\"],[14,5,\\\"min-width:100px;\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,3],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef4\\\"]]]],[13],[13],[13],[13],[13],[13]],[],false,[\\\"concat\\\",\\\"port\\\",\\\"action\\\",\\\"single-save-input-numeric\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/geo-pt-edit.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"hA3c39Ev\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-spatial-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-spatial-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/nvd3-spatial-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"36yqrPTv\",\"block\":\"[[[10,0],[15,1,[36,0]],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"450\\\"],[14,0,\\\"nvd3-temporal-line-chart-svg\\\"],[12],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13],[13],[10,0],[15,1,[36,0]],[14,5,\\\"width:92%\\\"],[14,0,\\\"nvd3-chart-tooltip-container\\\"],[12],[10,\\\"svg\\\"],[14,\\\"width\\\",\\\"1100\\\"],[14,\\\"height\\\",\\\"70\\\"],[14,0,\\\"nvd3-temporal-line-chart-focus-svg\\\"],[12],[13],[13]],[],false,[\\\"chartId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/nvd3-temporal-line-chart.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"3xGziC8A\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    Port \\\"],[1,[30,2]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\\\"sortedProperties\\\"]]],null]],null],null,[[[1,\\\"      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"model\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"calib\\\",\\\"linear\\\",\\\"depth\\\",\\\"port\\\"],[[30,5],[30,6],[30,7],[30,4,[\\\"port\\\"]]]]],\\\"raw-data\\\",[30,8]]],[[\\\"default\\\"],[[[[1,\\\"            Port \\\"],[1,[30,4,[\\\"port\\\"]]],[1,\\\"\\\\n\\\"]],[]]]]],[1,\\\"      \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@port\\\",\\\"ddm\\\",\\\"property\\\",\\\"@calib\\\",\\\"@linear\\\",\\\"@depth\\\",\\\"@instrumentId\\\"],false,[\\\"bs-dropdown\\\",\\\"each\\\",\\\"-track-array\\\",\\\"link-to\\\",\\\"-hash\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/raw-data-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"76aEoUIz\",\"block\":\"[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,3],[12],[1,\\\"Total Readings: \\\"],[13],[10,3],[12],[1,[30,1,[\\\"meta\\\",\\\"pagination\\\",\\\"total\\\"]]],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[41,[33,3],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col details newRecordDetails\\\"],[12],[1,[28,[35,4],null,[[\\\"isVisibleCreateNewForm\\\",\\\"isVisibleReadingCreated\\\",\\\"instrumentId\\\",\\\"instrumentType\\\",\\\"instrumentAnchors\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,3],[33,5],[30,2,[\\\"id\\\"]],[30,2,[\\\"instrumentType\\\"]],[33,6],\\\"YYYY-MM-DD HH:mm:ss\\\",[33,7]]]]],[13],[13]],[]],null],[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,\\\"Reading Added!\\\"],[13],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Temp.(°C)\\\"],[13],[42,[28,[37,9],[[28,[37,9],[[33,10]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,3]],[13]],[3]],null],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,11],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,12],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1]],null]],null],null,[[[1,[28,[35,13],null,[[\\\"instrumentId\\\",\\\"strokeLength\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"isWire\\\",\\\"isFine\\\",\\\"displacementValueObject\\\",\\\"displacementValuesModel\\\",\\\"temperatureValuesModel\\\",\\\"inputType\\\",\\\"fields\\\",\\\"tableRowIndex\\\",\\\"isZeroTimestampClass\\\",\\\"setProp\\\"],[[30,2,[\\\"id\\\"]],[30,2,[\\\"strokeLength\\\"]],[30,2],[30,2,[\\\"instrumentType\\\"]],[33,14],true,[30,4],[30,1],[30,6],\\\"text\\\",\\\"values\\\",[30,5],[52,[28,[37,15],[[30,7,[\\\"id\\\"]],[28,[37,16],[[30,1,[\\\"meta\\\"]],\\\"closest-zero-timestamp\\\"],null]],null],\\\"initialization-date\\\",\\\"\\\"],[33,7]]]]]],[4,5]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,0],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"meta\\\"]],\\\"raw-data\\\",[28,[37,1],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13]],[\\\"@displacementData\\\",\\\"@instrument\\\",\\\"anchor\\\",\\\"displacementValue\\\",\\\"index\\\",\\\"@temperatureData\\\",\\\"@displacementValue\\\"],false,[\\\"pagination-links\\\",\\\"hash\\\",\\\"if\\\",\\\"isVisibleCreateNewForm\\\",\\\"wire/create-new-raw-data-value-form\\\",\\\"isVisibleReadingCreated\\\",\\\"trueAnchorDistances\\\",\\\"setProp\\\",\\\"each\\\",\\\"-track-array\\\",\\\"anchorDistances\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"wire-single-save-inputs-array-table-row-cells\\\",\\\"isWire\\\",\\\"is-equal\\\",\\\"get-array-element\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"gFTT7m6x\",\"block\":\"[[[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef1\\\"],[14,0,\\\"col-xs-12 col-form-label\\\"],[12],[1,\\\"A=\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,0],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef1\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef2\\\"],[14,0,\\\"col-xs-12 col-form-label\\\"],[12],[1,\\\"B=\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,0],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef2\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef3\\\"],[14,0,\\\"col-xs-12 col-form-label\\\"],[12],[1,\\\"L\\\"],[10,\\\"sub\\\"],[12],[1,\\\"0\\\"],[13],[1,\\\" (Freq) =\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,0],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef3\\\"]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,5,\\\"vertical-align: top;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef4\\\"],[14,0,\\\"col-xs-12 col-form-label\\\"],[12],[1,\\\"C\\\"],[10,\\\"sub\\\"],[12],[1,\\\"t\\\"],[13],[1,\\\" (kPa/°C) =\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,0],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef4\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"calcCoef5\\\"],[14,0,\\\"col-xs-12 col-form-label\\\"],[12],[1,\\\"T\\\"],[10,\\\"sub\\\"],[12],[1,\\\"0\\\"],[13],[1,\\\" (°C) =\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,0],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[33,1],\\\"text\\\",\\\"calcCoef5\\\"]]]],[13],[13],[13],[13],[13],[13],[13],[13]],[],false,[\\\"single-save-input-numeric\\\",\\\"port\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/roc-pws-edit.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"1ceHpdH4\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,[30,2]],[10,1],[14,0,\\\"caret\\\"],[12],[13]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Displacement\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"velocity-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Velocity\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n        \\\"],[6,[39,1],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,2],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,3],[[33,4],\\\"strain-rate-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"Strain Rate\\\"]],[]]]]],[1,\\\"\\\\n      \\\"]],[]]]]],[1,\\\"\\\\n  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]]],[\\\"dd\\\",\\\"@selected\\\",\\\"ddm\\\"],false,[\\\"bs-dropdown\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"instrumentId\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/spatial-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"DoA2Z8d6\",\"block\":\"[[[8,[39,0],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"button\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n    Port \\\"],[1,[30,2]],[1,\\\"\\\\n    \\\"],[10,1],[14,0,\\\"caret\\\"],[12],[13],[1,\\\"\\\\n  \\\"]],[]]]]],[1,\\\"\\\\n  \\\"],[8,[30,1,[\\\"menu\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\\\"instrument\\\",\\\"vwproperty\\\"]]],null]],null],null,[[[1,\\\"      \\\"],[8,[30,3,[\\\"item\\\"]],null,null,[[\\\"default\\\"],[[[[1,\\\"\\\\n\\\"],[6,[39,3],null,[[\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"dropdown-item\\\",[28,[37,4],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\",\\\"port\\\"],[null,null,[30,4,[\\\"port\\\"]]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,5],[[30,5],\\\"displacement-values\\\"],null]]],[[\\\"default\\\"],[[[[1,\\\"            Port \\\"],[1,[30,4,[\\\"port\\\"]]],[1,\\\"\\\\n\\\"]],[]]]]],[1,\\\"      \\\"]],[]]]]],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"  \\\"]],[3]]]]],[1,\\\"\\\\n\\\"]],[1]]]]],[1,\\\"\\\\n\\\"]],[\\\"dd\\\",\\\"@port\\\",\\\"ddm\\\",\\\"property\\\",\\\"@instrumentId\\\"],false,[\\\"bs-dropdown\\\",\\\"each\\\",\\\"-track-array\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/components/wire/temporal-chart-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"sSZZQ3uM\",\"block\":\"[[[1,[28,[35,0],[\\\"Create Alert\\\"],null]],[10,0],[14,5,\\\"padding-top: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[41,[33,2],[[[1,[34,3]]],[]],null],[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,5],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\" A required field was not entered. Bolded fields are required.\\\"],[13]],[]],[[[41,[33,6],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Select at least one active channel.\\\"],[13]],[]],[[[41,[33,7],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ensure that your value entry only contains a numeric values (0-9) or a decimal point (\\\\\\\".\\\\\\\")\\\"],[13]],[]],[[[41,[33,8],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a window length larger than 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,9],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a window length larger than or equal to 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,10],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a target.\\\"],[13]],[]],[[[41,[33,11],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a valid phone number (numeric values only) followed by carrier.\\\"],[13],[1,\\\"To see available carriers, click on the \\\\\\\"Target (Phone #):\\\\\\\" link \\\"]],[]],[[[41,[33,12],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"You do not have permission to create an alert.\\\"],[13]],[]],null]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1.5rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectId\\\"],[14,5,\\\"font-size: 20px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Instrument ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,5,\\\"width: 50rem; padding-right: 0px; padding-left: 0px;\\\"],[14,0,\\\"col-4\\\"],[12],[41,[30,1,[\\\"instrument\\\"]],[[[10,\\\"label\\\"],[12],[1,[34,13]],[13]],[]],[[[41,[33,14],[[[10,0],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],[[[1,[28,[35,15],null,[[\\\"content\\\",\\\"selected\\\",\\\"id\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,16],[33,17],\\\"instrumentSelect\\\",\\\"title\\\",\\\"Instrument ID\\\",\\\"Filter\\\",false,[28,[37,18],[[30,0],\\\"setID\\\"],null]]]]]],[]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:1rem\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,19],[[33,20],1],null],[[[1,[28,[35,21],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],2],null],[[[1,[28,[35,23],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],3],null],[[[1,[28,[35,24],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],4],null],[[[1,[28,[35,21],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],5],null],[[[1,[28,[35,21],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],6],null],[[[1,[28,[35,25],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],7],null],[[[1,[28,[35,26],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],8],null],[[[1,[28,[35,27],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],9],null],[[[1,[28,[35,28],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],10],null],[[[1,[28,[35,29],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],11],null],[[[1,[28,[35,21],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],12],null],[[[1,[28,[35,30],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],13],null],[[[1,[28,[35,31],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],14],null],[[[1,\\\"Wire\\\"]],[]],null],[41,[28,[37,19],[[33,20],15],null],[[[1,[28,[35,32],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],16],null],[[[1,[28,[35,33],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],17],null],[[[1,[28,[35,34],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,19],[[33,20],19],null],[[[1,[28,[35,35],null,[[\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,1,[\\\"headAts\\\"]],[33,20],[33,13],[33,22],[28,[37,18],[[30,0],\\\"submit\\\"],null],[28,[37,18],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,37],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"if\\\",\\\"breadCrumbs\\\",\\\"bread-crumbs\\\",\\\"isVisibleError\\\",\\\"emptyBoldError\\\",\\\"noActChError\\\",\\\"nonNumericValueError\\\",\\\"wLError\\\",\\\"wLNegError\\\",\\\"targetError\\\",\\\"phoneNumError\\\",\\\"authError\\\",\\\"id\\\",\\\"loading\\\",\\\"searchable-select\\\",\\\"instruments\\\",\\\"initialInstrumentSelection\\\",\\\"action\\\",\\\"eq\\\",\\\"instType\\\",\\\"pack/create-alert\\\",\\\"store\\\",\\\"cable/create-alert\\\",\\\"rebar/create-alert\\\",\\\"tilt/create-alert\\\",\\\"slough/create-alert\\\",\\\"thermo/create-alert\\\",\\\"piezo/create-alert\\\",\\\"hid/create-alert\\\",\\\"wire/create-alert\\\",\\\"adict/create-alert\\\",\\\"vibe/create-alert\\\",\\\"micro/create-alert\\\",\\\"rebarv2/create-alert\\\",\\\"dppc/create-alert\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/create-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"IT94YJ1V\",\"block\":\"[[[1,[28,[35,0],[\\\"Create Alert\\\"],null]],[10,0],[14,5,\\\"padding-top: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[41,[33,2],[[[1,[34,3]]],[]],null],[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[41,[33,4],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the alert.\\\"],[13],[41,[33,5],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\" A required field was not entered. Bolded fields are required.\\\"],[13]],[]],[[[41,[33,6],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ensure that your value entry only contains a numeric values (0-9) or a decimal point (\\\\\\\".\\\\\\\")\\\"],[13]],[]],[[[41,[33,7],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a window length larger than 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,8],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a window length larger than or equal to 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,9],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a target.\\\"],[13]],[]],[[[41,[33,10],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"Enter a valid phone number (numeric values only) followed by carrier.\\\"],[13],[1,\\\"To see available carriers, click on the \\\\\\\"Target (Phone #):\\\\\\\" link \\\"]],[]],[[[41,[33,11],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label error-label-class\\\"],[12],[1,\\\"You do not have permission to create an alert.\\\"],[13]],[]],null]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1.5rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectId\\\"],[14,5,\\\"font-size: 20px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Gateway ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-2\\\"],[12],[41,[30,1,[\\\"gateway\\\"]],[[[10,\\\"label\\\"],[12],[1,[34,12]],[13]],[]],[[[1,[28,[35,13],null,[[\\\"content\\\",\\\"selected\\\",\\\"id\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,14],[33,15],\\\"gatewaySelect\\\",\\\"title\\\",\\\"Gateway ID\\\",\\\"Filter\\\",false,[28,[37,16],[[30,0],\\\"setID\\\"],null]]]]]],[]]],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:1rem\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,17],[[33,18],1],null],[[[1,[28,[35,19],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,20],[33,12],[33,21],[28,[37,16],[[30,0],\\\"submit\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,17],[[33,18],2],null],[[[1,[28,[35,22],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,20],[33,12],[33,21],[28,[37,16],[[30,0],\\\"submit\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,17],[[33,18],3],null],[[[1,[28,[35,23],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,20],[33,12],[33,21],[28,[37,16],[[30,0],\\\"submit\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,17],[[33,18],4],null],[[[1,[28,[35,24],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,20],[33,12],[33,21],[28,[37,16],[[30,0],\\\"submit\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,17],[[33,18],5],null],[[[1,[28,[35,25],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,20],[33,12],[33,21],[28,[37,16],[[30,0],\\\"submit\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,17],[[33,18],6],null],[[[1,[28,[35,26],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,20],[33,12],[33,21],[28,[37,16],[[30,0],\\\"submit\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,28],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"if\\\",\\\"breadCrumbs\\\",\\\"bread-crumbs\\\",\\\"isVisibleError\\\",\\\"emptyBoldError\\\",\\\"nonNumericValueError\\\",\\\"wLError\\\",\\\"wLNegError\\\",\\\"targetError\\\",\\\"phoneNumError\\\",\\\"authError\\\",\\\"id\\\",\\\"searchable-select\\\",\\\"gateways\\\",\\\"initialGatewaySelection\\\",\\\"action\\\",\\\"eq\\\",\\\"gwType\\\",\\\"blucell/create-alert\\\",\\\"instType\\\",\\\"store\\\",\\\"blugate/create-alert\\\",\\\"blu900gw/create-alert\\\",\\\"blu900node/create-alert\\\",\\\"oneforone/create-alert\\\",\\\"vibe/create-alert\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/create-gateway-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"W/CXOuc3\",\"block\":\"[[[1,[28,[35,0],[\\\"Create Gateway\\\"],null]],[10,0],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[41,[33,3],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the gateway.\\\"],[13],[41,[33,4],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Either you do not have permission or the gateway ID already exists.\\\"],[13]],[]],[[[41,[33,5],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You must select a gateway type.\\\"],[13]],[]],[[[41,[33,6],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],[[[41,[33,7],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Either you do not have permission or the gateway ID already exists.\\\"],[13]],[]],null]],[]]]],[]]]],[]]],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectId\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Gateway ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,\\\"oninput\\\",[28,[37,8],[[30,0],[28,[37,9],[[33,10]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newGatewayObjectId\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newGatewayObjectType\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Gateway Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newGatewayObjectType\\\"],[15,\\\"onchange\\\",[28,[37,8],[[30,0],\\\"choseForm\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Select a Gateway\\\"],[13],[42,[28,[37,12],[[28,[37,12],[[30,1,[\\\"gatewayTypes\\\"]]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,13],[[33,14,[\\\"id\\\"]],[30,2]],null]],[15,2,[29,[[30,2,[\\\"id\\\"]]]]],[12],[1,[30,2,[\\\"title\\\"]]],[13]],[2]],null],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:2rem; padding-bottom: 1rem; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,13],[[33,15],\\\"1\\\"],null],[[[1,[28,[35,16],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,15],[33,10],[33,17],[28,[37,8],[[30,0],\\\"submit\\\"],null],[28,[37,8],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,13],[[33,15],\\\"2\\\"],null],[[[1,[28,[35,18],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,15],[33,10],[33,17],[28,[37,8],[[30,0],\\\"submit\\\"],null],[28,[37,8],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,13],[[33,15],\\\"3\\\"],null],[[[1,[28,[35,19],null,[[\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,15],[33,10],[33,17],[28,[37,8],[[30,0],\\\"submit\\\"],null],[28,[37,8],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,13],[[33,15],\\\"4\\\"],null],[[[1,[28,[35,20],null,[[\\\"typeID\\\",\\\"gatewayList\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,15],[30,1,[\\\"gateways\\\"]],[33,10],[33,17],[28,[37,8],[[30,0],\\\"submit\\\"],null],[28,[37,8],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,13],[[33,15],\\\"5\\\"],null],[[[1,[28,[35,21],null,[[\\\"typeID\\\",\\\"gatewayList\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,15],[30,1,[\\\"gateways\\\"]],[33,10],[33,17],[28,[37,8],[[30,0],\\\"submit\\\"],null],[28,[37,8],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,13],[[33,15],\\\"6\\\"],null],[[[1,[28,[35,22],null,[[\\\"typeID\\\",\\\"gatewayList\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[33,15],[30,1,[\\\"gateways\\\"]],[33,10],[33,17],[28,[37,8],[[30,0],\\\"submit\\\"],null],[28,[37,8],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,24],null,null],null,null,null]],[\\\"@model\\\",\\\"gatewayTypeSelected\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"isVisibleError\\\",\\\"duplicateError\\\",\\\"typeError\\\",\\\"fieldError\\\",\\\"authError\\\",\\\"action\\\",\\\"mut\\\",\\\"id\\\",\\\"each\\\",\\\"-track-array\\\",\\\"eq\\\",\\\"gatewayType\\\",\\\"gatewayTypes\\\",\\\"blucell/create-gateway\\\",\\\"store\\\",\\\"blugate/create-gateway\\\",\\\"blu900gw/create-gateway\\\",\\\"blu900node/create-gateway\\\",\\\"oneforone/create-gateway\\\",\\\"vibe/create-gateway\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/create-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"0zFLWtLD\",\"block\":\"[[[1,[28,[35,0],[\\\"Create Instrument\\\"],null]],[10,0],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%\\\"],[12],[41,[33,3],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error creating the instrument.\\\"],[13],[41,[33,4],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Either you do not have permission or the instrument ID already exists.\\\"],[13]],[]],[[[41,[33,5],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You must select an instrument type.\\\"],[13]],[]],[[[41,[33,6],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],[[[41,[33,7],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Either you do not have permission or the instrument ID already exists.\\\"],[13]],[]],null]],[]]]],[]]]],[]]],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectId\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Instrument ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[15,\\\"disabled\\\",[28,[37,8],[[33,9],\\\"20\\\"],null]],[15,\\\"oninput\\\",[28,[37,10],[[30,0],[28,[37,11],[[33,12]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"newInstrumentObjectId\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newInstrumentObjectType\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Instrument type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newInstrumentObjectType\\\"],[15,\\\"onchange\\\",[28,[37,10],[[30,0],\\\"choseForm\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Select an Instrument\\\"],[13],[42,[28,[37,14],[[28,[37,14],[[33,15]],null]],null],null,[[[10,\\\"option\\\"],[15,\\\"selected\\\",[28,[37,8],[[30,1,[\\\"id\\\"]],[33,9]],null]],[15,2,[29,[[30,1,[\\\"id\\\"]]]]],[12],[1,[30,1,[\\\"title\\\"]]],[13]],[1]],null],[13],[13],[13],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:2rem; padding-bottom: 1rem; margin-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,8],[[33,9],\\\"1\\\"],null],[[[1,[28,[35,16],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"2\\\"],null],[[[1,[28,[35,18],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"3\\\"],null],[[[1,[28,[35,19],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"4\\\"],null],[[[1,[28,[35,16],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"5\\\"],null],[[[1,[28,[35,20],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"6\\\"],null],[[[1,[28,[35,21],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"7\\\"],null],[[[1,[28,[35,22],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"8\\\"],null],[[[1,[28,[35,23],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"9\\\"],null],[[[1,[28,[35,24],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"10\\\"],null],[[[1,[28,[35,25],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"11\\\"],null],[[[1,[28,[35,16],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"12\\\"],null],[[[1,[28,[35,26],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"vwModels\\\",\\\"vwVendors\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"vwModels\\\"]],[30,2,[\\\"vwVendors\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"13\\\"],null],[[[1,[28,[35,27],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"vendors\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[30,2,[\\\"vendors\\\"]],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"15\\\"],null],[[[1,[28,[35,28],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"16\\\"],null],[[[1,[28,[35,29],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"17\\\"],null],[[[1,[28,[35,30],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"19\\\"],null],[[[1,[28,[35,31],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,8],[[33,9],\\\"20\\\"],null],[[[1,[28,[35,32],null,[[\\\"levelLookupList\\\",\\\"projectLookupList\\\",\\\"headAts\\\",\\\"typeID\\\",\\\"id\\\",\\\"store\\\",\\\"submit\\\",\\\"setError\\\"],[[30,2,[\\\"levelLookupList\\\"]],[30,2,[\\\"projectLookupList\\\"]],[30,2,[\\\"headAts\\\"]],[33,9],[33,12],[33,17],[28,[37,10],[[30,0],\\\"submit\\\"],null],[28,[37,10],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,34],null,null],null,null,null]],[\\\"selectOption\\\",\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"isVisibleError\\\",\\\"duplicateError\\\",\\\"typeError\\\",\\\"fieldError\\\",\\\"authError\\\",\\\"eq\\\",\\\"instType\\\",\\\"action\\\",\\\"mut\\\",\\\"id\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getInstrumentTypes\\\",\\\"pack/create-instrument\\\",\\\"store\\\",\\\"cable/create-instrument\\\",\\\"rebar/create-instrument\\\",\\\"dconv/create-instrument\\\",\\\"tilt/create-instrument\\\",\\\"slough/create-instrument\\\",\\\"thermo/create-instrument\\\",\\\"piezo/create-instrument\\\",\\\"hid/create-instrument\\\",\\\"wire/create-instrument\\\",\\\"adict/create-instrument\\\",\\\"vibe/create-instrument\\\",\\\"micro/create-instrument\\\",\\\"rebarv2/create-instrument\\\",\\\"dppc/create-instrument\\\",\\\"multiDExto/create-instrument\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/create-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"PcE46/2C\",\"block\":\"[[[1,[28,[35,0],[\\\"Create Lookup\\\"],null]],[10,0],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%; text-align: left; border\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"width: 275px; text-align: left;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newLookupObjectName\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Lookup Name:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,1,\\\"newLookupObjectName\\\"],[14,\\\"required\\\",\\\"\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,4]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,\\\"selected\\\",\\\"\\\"],[12],[1,\\\"Select a Lookup\\\"],[13],[42,[28,[37,6],[[28,[37,6],[[30,1,[\\\"uniqueNames\\\"]]],null]],null],null,[[[10,\\\"option\\\"],[15,2,[29,[[30,2,[\\\"name\\\"]]]]],[12],[1,[30,2,[\\\"name\\\"]]],[13]],[2]],null],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"width: 275px; text-align: left;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newLookupObjectType\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Lookup Data Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[14,\\\"required\\\",\\\"\\\"],[14,1,\\\"newLookupObjectType\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],\\\"choseType\\\"],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,\\\"selected\\\",\\\"\\\"],[14,\\\"disabled\\\",\\\"\\\"],[14,2,\\\"\\\"],[12],[1,\\\"Select a Lookup Data Type\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"string\\\"],[12],[1,\\\"String\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"integer\\\"],[12],[1,\\\"Integer\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"boolean\\\"],[12],[1,\\\"Boolean\\\"],[13],[13],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details newRecordDetails\\\"],[12],[41,[28,[37,8],[[33,9],\\\"string\\\"],null],[[[10,\\\"td\\\"],[14,5,\\\"width: 275px; text-align: left;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newLookupObjectValue\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Lookup Value:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,\\\"placeholder\\\",\\\"Enter a string\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,10]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"required\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13]],[]],null],[41,[28,[37,8],[[33,9],\\\"integer\\\"],null],[[[10,\\\"td\\\"],[14,5,\\\"width: 275px; text-align: left;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newLookupObjectValue\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Lookup Value:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"newLookupObjectValue\\\"],[14,\\\"placeholder\\\",\\\"Enter an integer\\\"],[14,\\\"step\\\",\\\"1\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,10]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"required\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"number\\\"],[12],[13],[13],[13],[13]],[]],null],[41,[28,[37,8],[[33,9],\\\"boolean\\\"],null],[[[10,\\\"td\\\"],[14,5,\\\"width: 275px; text-align: left;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"newLookupObjectValue\\\"],[14,5,\\\"font-size: 23px;\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Lookup Value:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,0],[14,0,\\\"form-group row\\\"],[12],[10,0],[14,0,\\\"col-12\\\"],[12],[10,\\\"select\\\"],[15,\\\"onchange\\\",[28,[37,2],[[30,0],[28,[37,3],[[33,10]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,\\\"required\\\",\\\"\\\"],[14,0,\\\"form-control\\\"],[12],[10,\\\"option\\\"],[14,2,\\\"\\\"],[14,\\\"disabled\\\",\\\"\\\"],[12],[1,\\\"Select true or false\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"true\\\"],[12],[1,\\\"True\\\"],[13],[10,\\\"option\\\"],[14,2,\\\"false\\\"],[12],[1,\\\"False\\\"],[13],[13],[13],[13],[13]],[]],null],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"text-align: right; padding-bottom:5px;\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin-top: 1rem;\\\"],[24,4,\\\"submit\\\"],[4,[38,2],[[30,0],\\\"createLookup\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Create\\\"],[13],[13],[13],[13],[13],[46,[28,[37,12],null,null],null,null,null]],[\\\"@model\\\",\\\"selectOption\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"action\\\",\\\"mut\\\",\\\"name\\\",\\\"each\\\",\\\"-track-array\\\",\\\"if\\\",\\\"eq\\\",\\\"lookupType\\\",\\\"value\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/create-lookup.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"/t9Hcf09\",\"block\":\"[[],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/dash-map.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"VybYGkYm\",\"block\":\"[[[1,[28,[35,0],[\\\"Alert \\\",[30,1,[\\\"alert\\\",\\\"id\\\"]]],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[12],[41,[33,3],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error editting the alert.\\\"],[13],[41,[33,4],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],[[[41,[33,5],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Select at least one active channel.\\\"],[13]],[]],[[[41,[33,6],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ensure that your value entry only contains a numeric values (0-9) or a decimal point (\\\\\\\".\\\\\\\")\\\"],[13]],[]],[[[41,[33,7],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a window length larger than 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,8],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a window length larger than or equal to 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,9],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a target.\\\"],[13]],[]],[[[41,[33,10],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a valid phone number (numeric values only).\\\"],[13],[1,\\\"To see available carriers, click on the \\\\\\\"Target (Phone #):\\\\\\\" link. \\\"]],[]],[[[41,[33,11],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to make changes to an alert.\\\"],[13]],[]],null]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,5,\\\"font-size: 25px;\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Instrument ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[8,[39,12],[[24,5,\\\"font-size: 23px\\\"]],[[\\\"@route\\\",\\\"@model\\\"],[\\\"edit-instrument\\\",[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,\\\" \\\"],[1,[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"id\\\"]]],[1,\\\" \\\"]],[]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentType\\\"],[14,5,\\\"font-size: 25px\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Instrument type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,13],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentType\\\"]],\\\"text\\\",\\\"title\\\",false]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],1],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],2],null],[[[1,[28,[35,17],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],3],null],[[[1,[28,[35,18],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],4],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],5],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],6],null],[[[1,[28,[35,19],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],7],null],[[[1,[28,[35,20],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],8],null],[[[1,[28,[35,21],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],9],null],[[[1,[28,[35,22],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],10],null],[[[1,[28,[35,23],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],11],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],12],null],[[[1,[28,[35,24],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],13],null],[[[1,[28,[35,25],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],14],null],[[[1,\\\"Analog\\\"]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],15],null],[[[1,[28,[35,26],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],16],null],[[[1,[28,[35,27],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],17],null],[[[1,[28,[35,28],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],19],null],[[[1,[28,[35,29],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,31],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"isVisibleError\\\",\\\"emptyBoldError\\\",\\\"noActChError\\\",\\\"nonNumericValueError\\\",\\\"wLError\\\",\\\"wLNegError\\\",\\\"targetError\\\",\\\"phoneNumError\\\",\\\"authError\\\",\\\"link-to\\\",\\\"single-save-input-InstType\\\",\\\"eq\\\",\\\"pack/edit-alert\\\",\\\"action\\\",\\\"cable/edit-alert\\\",\\\"rebar/edit-alert\\\",\\\"tilt/edit-alert\\\",\\\"slough/edit-alert\\\",\\\"thermo/edit-alert\\\",\\\"piezo/edit-alert\\\",\\\"hid/edit-alert\\\",\\\"wire/edit-alert\\\",\\\"adict/edit-alert\\\",\\\"vibe/edit-alert\\\",\\\"micro/edit-alert\\\",\\\"rebarv2/edit-alert\\\",\\\"dppc/edit-alert\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/edit-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"P4MJPp5W\",\"block\":\"[[[1,[28,[35,0],[\\\"Alert \\\",[30,1,[\\\"alert\\\",\\\"id\\\"]]],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[12],[41,[33,3],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error editting the alert.\\\"],[13],[41,[33,4],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],[[[41,[33,5],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ensure that your value entry only contains a numeric values (0-9) or a decimal point (\\\\\\\".\\\\\\\")\\\"],[13]],[]],[[[41,[33,6],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a target.\\\"],[13]],[]],[[[41,[33,7],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a valid phone number (numeric values only).\\\"],[13],[1,\\\"To see available carriers, click on the \\\\\\\"Target (Phone #):\\\\\\\" link. \\\"]],[]],[[[41,[33,8],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to make changes to an alert.\\\"],[13]],[]],null]],[]]]],[]]]],[]]]],[]]],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,5,\\\"font-size: 25px;\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Gateway ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[8,[39,9],[[24,5,\\\"font-size: 23px\\\"]],[[\\\"@route\\\",\\\"@model\\\"],[\\\"edit-gateway\\\",[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,\\\" \\\"],[1,[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"id\\\"]]],[1,\\\" \\\"]],[]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentType\\\"],[14,5,\\\"font-size: 25px\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Gateway type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,10],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"gatewayType\\\"]],\\\"text\\\",\\\"title\\\",false]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,11],[[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"gatewayTypeID\\\"]],1],null],[[[1,[28,[35,12],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,13],[[30,0],\\\"saved\\\"],null],[28,[37,13],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,11],[[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"gatewayTypeID\\\"]],2],null],[[[1,[28,[35,14],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,13],[[30,0],\\\"saved\\\"],null],[28,[37,13],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,11],[[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"gatewayTypeID\\\"]],3],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,13],[[30,0],\\\"saved\\\"],null],[28,[37,13],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,11],[[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"gatewayTypeID\\\"]],4],null],[[[1,[28,[35,16],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,13],[[30,0],\\\"saved\\\"],null],[28,[37,13],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,11],[[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"gatewayTypeID\\\"]],5],null],[[[1,[28,[35,17],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,13],[[30,0],\\\"saved\\\"],null],[28,[37,13],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,11],[[30,1,[\\\"alert\\\",\\\"gateway\\\",\\\"gatewayTypeID\\\"]],6],null],[[[1,[28,[35,18],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,13],[[30,0],\\\"saved\\\"],null],[28,[37,13],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,20],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"isVisibleError\\\",\\\"emptyBoldError\\\",\\\"nonNumericValueError\\\",\\\"targetError\\\",\\\"phoneNumError\\\",\\\"authError\\\",\\\"link-to\\\",\\\"single-save-input-InstType\\\",\\\"eq\\\",\\\"blucell/edit-gateway-alert\\\",\\\"action\\\",\\\"blugate/edit-gateway-alert\\\",\\\"blu900gw/edit-gateway-alert\\\",\\\"blu900node/edit-gateway-alert\\\",\\\"oneforone/edit-gateway-alert\\\",\\\"vibe/edit-gateway-alert\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/edit-gateway-alert.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"m1HuxVLz\",\"block\":\"[[[1,[28,[35,0],[\\\"Gateway \\\",[30,1,[\\\"gateway\\\",\\\"id\\\"]]],null]],[10,0],[14,5,\\\"padding-bottom: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to edit a gateway.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,5,\\\"font-size: 25px;\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[34,2]],[1,\\\" ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,3],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[30,1,[\\\"gateway\\\"]],\\\"text\\\",\\\"id\\\",false]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"gatewayType\\\"],[14,5,\\\"font-size: 25px\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[34,2]],[1,\\\" Type:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"font-size:23px;\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,4],null,[[\\\"selectOptions\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,1,[\\\"gatewayTypes\\\"]],\\\"id,title\\\",[30,1,[\\\"gateway\\\",\\\"gatewayType\\\"]],[30,1,[\\\"gateway\\\"]],\\\"title\\\",\\\"id\\\",\\\"gatewayType\\\",true]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:2rem; padding-bottom: 2rem;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,6],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],1],null],[[[1,[28,[35,7],null,[[\\\"gateway\\\",\\\"gatewayList\\\",\\\"gatewayReadingIntervals\\\",\\\"gatewayUploadIntervals\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts\\\"],[[30,1,[\\\"gateway\\\"]],[30,1,[\\\"gateways\\\"]],[30,1,[\\\"gatewayReadingIntervals\\\"]],[30,1,[\\\"gatewayUploadIntervals\\\"]],[33,8],[33,9],[30,1,[\\\"alerts\\\"]]]]]]],[]],null],[41,[28,[37,6],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],2],null],[[[1,[28,[35,10],null,[[\\\"gateway\\\",\\\"gatewayList\\\",\\\"gatewayReadingIntervals\\\",\\\"gatewayUploadIntervals\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts\\\"],[[30,1,[\\\"gateway\\\"]],[30,1,[\\\"gateways\\\"]],[30,1,[\\\"gatewayReadingIntervals\\\"]],[30,1,[\\\"gatewayUploadIntervals\\\"]],[33,8],[33,9],[30,1,[\\\"alerts\\\"]]]]]]],[]],null],[41,[28,[37,6],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],3],null],[[[1,[28,[35,11],null,[[\\\"gateway\\\",\\\"gatewayList\\\",\\\"gatewayReadingIntervals\\\",\\\"gatewayUploadIntervals\\\",\\\"gatewayMeshCycleIntervals\\\",\\\"gatewayTransmissionPowerIntervals\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts\\\"],[[30,1,[\\\"gateway\\\"]],[30,1,[\\\"gateways\\\"]],[30,1,[\\\"gatewayReadingIntervals\\\"]],[30,1,[\\\"gatewayUploadIntervals\\\"]],[30,1,[\\\"gatewayMeshCycleIntervals\\\"]],[30,1,[\\\"gatewayRadioPowerLevelIntervals\\\"]],[33,8],[33,9],[30,1,[\\\"alerts\\\"]]]]]]],[]],null],[41,[28,[37,6],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],4],null],[[[1,[28,[35,12],null,[[\\\"gateway\\\",\\\"parentGateway\\\",\\\"gatewayList\\\",\\\"gatewayReadingIntervals\\\",\\\"gatewayUploadIntervals\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts\\\"],[[30,1,[\\\"gateway\\\"]],[33,13],[30,1,[\\\"gateways\\\"]],[30,1,[\\\"gatewayReadingIntervals\\\"]],[30,1,[\\\"gatewayUploadIntervals\\\"]],[33,8],[33,9],[30,1,[\\\"alerts\\\"]]]]]]],[]],null],[41,[28,[37,6],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],5],null],[[[1,[28,[35,14],null,[[\\\"gateway\\\",\\\"parentGateway\\\",\\\"gatewayList\\\",\\\"gatewayReadingIntervals\\\",\\\"gatewayUploadIntervals\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts\\\"],[[30,1,[\\\"gateway\\\"]],[33,13],[30,1,[\\\"gateways\\\"]],[30,1,[\\\"gatewayReadingIntervals\\\"]],[30,1,[\\\"gatewayUploadIntervals\\\"]],[33,8],[33,9],[30,1,[\\\"alerts\\\"]]]]]]],[]],null],[41,[28,[37,6],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],6],null],[[[1,[28,[35,15],null,[[\\\"gateway\\\",\\\"parentGateway\\\",\\\"gatewayList\\\",\\\"gatewayReadingIntervals\\\",\\\"gatewayUploadIntervals\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"alerts\\\"],[[30,1,[\\\"gateway\\\"]],[33,13],[30,1,[\\\"gateways\\\"]],[30,1,[\\\"gatewayReadingIntervals\\\"]],[30,1,[\\\"gatewayUploadIntervals\\\"]],[33,8],[33,9],[30,1,[\\\"alerts\\\"]]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,17],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"gatewayTypeLabel\\\",\\\"single-save-input-InstType\\\",\\\"single-save-select\\\",\\\"if\\\",\\\"eq\\\",\\\"blucell/edit-gateway\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"blugate/edit-gateway\\\",\\\"blu900gw/edit-gateway\\\",\\\"blu900node/edit-gateway\\\",\\\"parentGateway\\\",\\\"oneforone/edit-gateway\\\",\\\"vibe/edit-gateway\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/edit-gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"F4PenSt9\",\"block\":\"[[[1,[28,[35,0],[\\\"Instrument \\\",[30,1,[\\\"instrument\\\",\\\"id\\\"]]],null]],[10,0],[14,5,\\\"padding-bottom: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to edit an instrument.\\\"],[13],[13],[13],[13],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,5,\\\"font-size: 25px;\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Instrument ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,2],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[30,1,[\\\"instrument\\\"]],\\\"text\\\",\\\"id\\\",false]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentType\\\"],[14,5,\\\"font-size: 25px\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Instrument type:\\\"],[13],[13],[10,\\\"td\\\"],[14,5,\\\"font-size:23px;\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,3],null,[[\\\"selectOptions\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\",\\\"inputFieldId\\\",\\\"isEditable\\\"],[[30,1,[\\\"instrumentTypes\\\"]],\\\"id,title\\\",[30,1,[\\\"instrument\\\",\\\"instrumentType\\\"]],[30,1,[\\\"instrument\\\"]],\\\"title\\\",\\\"id\\\",\\\"instrumentType\\\",true]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:2rem; padding-bottom: 2rem;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],1],null],[[[1,[28,[35,6],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],2],null],[[[1,[28,[35,9],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],3],null],[[[1,[28,[35,10],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],4],null],[[[1,[28,[35,6],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],5],null],[[[1,[28,[35,11],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],6],null],[[[1,[28,[35,12],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],7],null],[[[1,[28,[35,13],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],8],null],[[[1,[28,[35,14],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],9],null],[[[1,[28,[35,15],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],10],null],[[[1,[28,[35,16],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],11],null],[[[1,[28,[35,6],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],12],null],[[[1,[28,[35,17],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"vwModels\\\",\\\"vwVendors\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"vwModels\\\"]],[30,1,[\\\"vwVendors\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],13],null],[[[1,[28,[35,18],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"vendors\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"vendors\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],14],null],[[[1,\\\"Analog\\\"]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],15],null],[[[1,[28,[35,19],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],false]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],16],null],[[[1,[28,[35,20],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],17],null],[[[1,[28,[35,21],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],19],null],[[[1,[28,[35,22],null,[[\\\"instrument\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,7],[33,8]]]]]],[]],null],[41,[28,[37,5],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],20],null],[[[1,[28,[35,23],null,[[\\\"instrument\\\",\\\"instrumentList\\\",\\\"projectLookupList\\\",\\\"levelLookupList\\\",\\\"headAts\\\",\\\"hasAlerts\\\"],[[30,1,[\\\"instrument\\\"]],[30,1,[\\\"instruments\\\"]],[30,1,[\\\"projectLookupList\\\"]],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"headAts\\\"]],[33,8]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,25],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"single-save-input-InstType\\\",\\\"single-save-select\\\",\\\"if\\\",\\\"eq\\\",\\\"pack/edit-instrument\\\",\\\"hasGraphs\\\",\\\"hasAlerts\\\",\\\"cable/edit-instrument\\\",\\\"rebar/edit-instrument\\\",\\\"dconv/edit-instrument\\\",\\\"tilt/edit-instrument\\\",\\\"slough/edit-instrument\\\",\\\"thermo/edit-instrument\\\",\\\"piezo/edit-instrument\\\",\\\"hid/edit-instrument\\\",\\\"wire/edit-instrument\\\",\\\"adict/edit-instrument\\\",\\\"vibe/edit-instrument\\\",\\\"micro/edit-instrument\\\",\\\"rebarv2/edit-instrument\\\",\\\"dppc/edit-instrument\\\",\\\"multiDExto/edit-instrument\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/edit-instrument.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Kxj+e0/r\",\"block\":\"[[[1,[28,[35,0],[\\\"Alert \\\",[30,1,[\\\"alert\\\",\\\"id\\\"]]],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,\\\"table\\\"],[14,5,\\\"width: 100%;\\\"],[12],[41,[33,3],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"error_message\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"There was an error editting the alert.\\\"],[13],[41,[33,4],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"A required field was not entered. Bolded fields are required.\\\"],[13]],[]],[[[41,[33,5],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Select at least one active channel.\\\"],[13]],[]],[[[41,[33,6],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Ensure that your value entry only contains a numeric values (0-9) or a decimal point (\\\\\\\".\\\\\\\")\\\"],[13]],[]],[[[41,[33,7],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a window length larger than 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,8],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a window length larger than or equal to 1 if method is not immediate.\\\"],[13]],[]],[[[41,[33,9],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a target.\\\"],[13]],[]],[[[41,[33,10],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Enter a valid phone number (numeric values only).\\\"],[13],[1,\\\"To see available carriers, click on the \\\\\\\"Target (Phone #):\\\\\\\" link. \\\"]],[]],[[[41,[33,11],[[[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have permission to make changes to an alert.\\\"],[13]],[]],null]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]]],[]]],[13],[13]],[]],null],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,5,\\\"font-size: 25px;\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Instrument ID:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[8,[39,12],[[24,5,\\\"font-size: 23px\\\"]],[[\\\"@route\\\",\\\"@model\\\"],[\\\"edit-instrument\\\",[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"id\\\"]]]],[[\\\"default\\\"],[[[[1,\\\" \\\"],[1,[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"id\\\"]]],[1,\\\" \\\"]],[]]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"padding-top: 2rem; padding-left: 2rem; padding-bottom: 1rem;\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"instrumentType\\\"],[14,5,\\\"font-size: 25px\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Instrument type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,13],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\",\\\"isEditable\\\"],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentType\\\"]],\\\"text\\\",\\\"title\\\",false]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[13],[13],[13],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"3\\\"],[14,5,\\\"padding-left:2rem; padding-right:1rem;\\\"],[14,0,\\\"td_details\\\"],[12],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],1],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],2],null],[[[1,[28,[35,17],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],3],null],[[[1,[28,[35,18],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],4],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],5],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],6],null],[[[1,[28,[35,19],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],7],null],[[[1,[28,[35,20],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],8],null],[[[1,[28,[35,21],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],9],null],[[[1,[28,[35,22],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],10],null],[[[1,[28,[35,23],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],11],null],[[[1,[28,[35,15],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],12],null],[[[1,[28,[35,24],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],13],null],[[[1,[28,[35,25],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],14],null],[[[1,\\\"Analog\\\"]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],15],null],[[[1,[28,[35,26],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],16],null],[[[1,[28,[35,27],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],17],null],[[[1,[28,[35,28],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[41,[28,[37,14],[[30,1,[\\\"alert\\\",\\\"instrument\\\",\\\"instrumentTypeID\\\"]],19],null],[[[1,[28,[35,29],null,[[\\\"alert\\\",\\\"saved\\\",\\\"setError\\\"],[[30,1,[\\\"alert\\\"]],[28,[37,16],[[30,0],\\\"saved\\\"],null],[28,[37,16],[[30,0],\\\"setError\\\"],null]]]]]],[]],null],[13],[13],[13],[13],[46,[28,[37,31],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"isVisibleError\\\",\\\"emptyBoldError\\\",\\\"noActChError\\\",\\\"nonNumericValueError\\\",\\\"wLError\\\",\\\"wLNegError\\\",\\\"targetError\\\",\\\"phoneNumError\\\",\\\"authError\\\",\\\"link-to\\\",\\\"single-save-input-InstType\\\",\\\"eq\\\",\\\"pack/edit-alert\\\",\\\"action\\\",\\\"cable/edit-alert\\\",\\\"rebar/edit-alert\\\",\\\"tilt/edit-alert\\\",\\\"slough/edit-alert\\\",\\\"thermo/edit-alert\\\",\\\"piezo/edit-alert\\\",\\\"hid/edit-alert\\\",\\\"wire/edit-alert\\\",\\\"adict/edit-alert\\\",\\\"vibe/edit-alert\\\",\\\"micro/edit-alert\\\",\\\"rebarv2/edit-alert\\\",\\\"dppc/edit-alert\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/edit-lookups.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"DIFWH3xk\",\"block\":\"[[[1,[28,[35,0],[\\\"Forgot Password\\\"],null]],[10,0],[14,5,\\\"justify-content: center;display: flex;\\\"],[12],[10,0],[14,1,\\\"auth_card\\\"],[12],[10,0],[14,5,\\\"font-size: 30px;color: white;justify-self: center;margin-bottom: 20px;\\\"],[12],[1,\\\"Forgot Your Password?\\\"],[13],[10,0],[14,5,\\\"margin: 10px;\\\"],[12],[41,[33,2],[[[10,0],[14,5,\\\"margin-bottom: 50px;color: white;font-size: medium;\\\"],[12],[1,\\\"Email has been sent if it exists!\\\"],[13]],[]],[[[10,0],[14,5,\\\"margin-bottom: 20px;color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[1,\\\"Don't worry, we will send you instructions to your email.\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"id_register_email\\\"],[14,\\\"placeholder\\\",\\\"email\\\"],[14,\\\"autocomplete\\\",\\\"email\\\"],[15,2,[30,0,[\\\"email\\\"]]],[15,\\\"onchange\\\",[28,[37,3],[[30,0],\\\"updateInfo\\\",\\\"email\\\"],null]],[12],[13],[10,0],[14,5,\\\"display: flex;flex-direction: column;align-items: center;margin: 10px;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"id_button\\\"],[4,[38,3],[[30,0],\\\"resetPassword\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Send\\\"],[13],[13]],[]]],[13],[41,[33,4],[[[10,0],[14,5,\\\"width: auto; padding-top:5px;\\\"],[14,0,\\\"center pulse_loader\\\"],[12],[13]],[]],null],[41,[33,5],[[[10,0],[12],[1,[30,0,[\\\"errorMessage\\\"]]],[13]],[]],null],[13],[13],[46,[28,[37,7],null,null],null,null,null]],[],false,[\\\"page-title\\\",\\\"if\\\",\\\"isSentResetRequest\\\",\\\"action\\\",\\\"loading\\\",\\\"errorMessage\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/forgot-password.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"dbfEA4c4\",\"block\":\"[[[1,[28,[35,0],[\\\"Frequency Events\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[41,[33,3,[\\\"isShowPopupNotification\\\"]],[[[10,0],[14,1,\\\"notificationPopup\\\"],[14,5,\\\"max-height:700px; display:flex; flex-direction:column; position:fixed; top:50%; left:50%; transform:translate(-50%, -50%); z-index:999; width:1000px;background: white;border-width: 1px;border-color: gray;border-style: solid;border-radius: 10px;\\\"],[12],[10,0],[14,5,\\\"display: flex; flex-direction: row;justify-content: space-between;width: 100%; \\\"],[12],[10,\\\"h5\\\"],[14,5,\\\"margin-left: 10px;\\\"],[12],[13],[11,\\\"label\\\"],[24,1,\\\"closeXButton\\\"],[24,5,\\\"margin-right: 10px;margin-bottom: 0;font-size: medium;cursor: pointer;color: grey;\\\"],[4,[38,4],[[30,0],\\\"closeNotificationPopup\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"X\\\"],[13],[13],[10,0],[14,1,\\\"notificationPopupContentBody\\\"],[14,5,\\\"overflow-x: scroll;overflow-y: scroll;padding-bottom: 10px; padding-left: 20px; display: flex; flex-direction: column;justify-content: space-between;width: 100%; padding-right: 20px;\\\"],[12],[13],[10,0],[14,1,\\\"confirmationCheckBoxSection\\\"],[14,5,\\\"display:none;align-items: center; justify-content: center;flex-direction: row;width:100%\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"confirmationCheckBox\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[10,\\\"label\\\"],[14,5,\\\"font-weight: bold;font-size: small;margin:0px\\\"],[12],[1,\\\"I confirm the data posted above is correct.\\\"],[13],[13],[10,0],[14,1,\\\"buttonsPanel\\\"],[14,5,\\\"padding:15px;justify-content: center;flex-direction: row;display: flex;width:100%\\\"],[12],[10,\\\"button\\\"],[14,1,\\\"notificationReadyButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ready                \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationRefreshButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Refresh\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationOkButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ok\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationAbortButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"ABORT\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationYesButton\\\"],[14,5,\\\"display:none; margin-left:10px;margin-right:10px;min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Yes \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationNoButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"No\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationSaveButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Save \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationPrintButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Print\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationExportButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Export\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationCancelButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Cancel\\\"],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,0],[12],[10,\\\"h3\\\"],[12],[1,\\\"Frequency Events\\\"],[13],[13],[41,[33,5],[[[10,0],[14,5,\\\"width: auto;margin-bottom: 8px;\\\"],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[10,\\\"h5\\\"],[12],[1,[52,[33,6],[33,7]]],[1,\\\" \\\"],[1,[52,[33,6],[33,8]]],[1,\\\"-\\\"],[1,[52,[33,6],[33,9]]],[13],[10,\\\"h6\\\"],[12],[1,[52,[33,6],[33,10]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-6 d-flex flex-column justify-content-center\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[1,[28,[35,11],null,[[\\\"instrumentId\\\",\\\"pageSize\\\"],[[33,12,[\\\"id\\\"]],[33,13,[\\\"meta\\\",\\\"pagination\\\",\\\"page_size\\\"]]]]]],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,14],null,[[\\\"filterType\\\",\\\"globalDatetimeFormat\\\",\\\"displayFrequencyEventsDropDown\\\",\\\"displayDateTimeFormat\\\",\\\"displayYAxistUnit\\\",\\\"requireXMaxMin\\\",\\\"requireYLeftMaxMin\\\",\\\"requireYRightMaxMin\\\",\\\"instrumentId\\\",\\\"instrumentType\\\"],[\\\"frequency-events\\\",[30,1,[\\\"globalDatetimeFormat\\\"]],false,true,false,false,false,false,[30,1,[\\\"instrument\\\",\\\"id\\\"]],[30,1,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[10,0],[12],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"Visible:\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,[34,15]],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,\\\"Total:\\\"],[13],[10,\\\"label\\\"],[14,5,\\\"margin-right: 5px;\\\"],[12],[1,[34,16]],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,17],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"class\\\"],[[33,13,[\\\"meta\\\"]],\\\"frequency-events\\\",\\\"text-md-right\\\"]]]],[13],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"ID\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Date\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Actions\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,19],[[28,[37,19],[[33,20]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,0],[12],[1,[30,2,[\\\"id\\\"]]],[13],[13],[10,\\\"td\\\"],[12],[1,[28,[35,21],[[30,2,[\\\"timestamp\\\"]],[33,22,[\\\"value\\\"]]],null]],[13],[10,\\\"td\\\"],[12],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;justify-content: space-evenly;\\\"],[12],[10,0],[14,5,\\\"color:blue;cursor: pointer;\\\"],[15,\\\"onclick\\\",[28,[37,4],[[30,0],\\\"actionsHotKey\\\",\\\"overview\\\",[30,2]],null]],[12],[1,\\\"Overview\\\"],[13],[10,0],[14,5,\\\"color:blue;cursor: pointer;\\\"],[15,\\\"onclick\\\",[28,[37,4],[[30,0],\\\"actionsHotKey\\\",\\\"data\\\",[30,2]],null]],[12],[1,\\\"Data\\\"],[13],[10,0],[15,5,[29,[\\\"color:blue;cursor: pointer;border-radius:\\\",[52,[28,[37,23],[[30,2]],null],\\\"100px;\\\",\\\";\\\"],\\\";border:\\\",[52,[28,[37,23],[[30,2]],null],\\\"0.5px solid red;\\\",\\\";\\\"],\\\";\\\"]]],[15,\\\"onclick\\\",[28,[37,4],[[30,0],\\\"actionsHotKey\\\",\\\"analytics\\\",[30,2]],null]],[12],[1,\\\"Analytics\\\"],[13],[10,0],[14,5,\\\"color:orange;cursor: pointer;\\\"],[15,\\\"onclick\\\",[28,[37,4],[[30,0],\\\"actionsHotKey\\\",\\\"edit\\\",[30,2]],null]],[12],[1,\\\"Edit\\\"],[13],[10,0],[14,5,\\\"color:red;cursor: pointer;\\\"],[15,\\\"onclick\\\",[28,[37,4],[[30,0],\\\"actionsHotKey\\\",\\\"delete\\\",[30,2]],null]],[12],[1,\\\"Delete\\\"],[13],[13],[13],[13]],[2]],null],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,17],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"class\\\"],[[33,13,[\\\"meta\\\"]],\\\"frequency-events\\\",\\\"text-md-right\\\"]]]],[13],[13],[13],[13]],[\\\"@model\\\",\\\"tableRow\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"isShowConfig\\\",\\\"action\\\",\\\"showLoading\\\",\\\"displayData\\\",\\\"instrumentType\\\",\\\"subModel\\\",\\\"instrumentId\\\",\\\"details\\\",\\\"raw-frequency-events-drop-down\\\",\\\"instrument\\\",\\\"bluvibeV2Profiles\\\",\\\"advanced-filter\\\",\\\"getVisibleReadings\\\",\\\"getTotalReadings\\\",\\\"pagination-links\\\",\\\"each\\\",\\\"-track-array\\\",\\\"getbluvibev2ProfileList\\\",\\\"make-timestamp-global-format-aware-bluvibe\\\",\\\"globalDatetimeFormat\\\",\\\"frequency-events-validate-for-red-warning\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/frequency-events.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"HT6pGF7C\",\"block\":\"[[[1,[28,[35,0],[\\\"Frequency Event\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[1,[34,1]],[13],[41,[33,3,[\\\"isShowPopupNotification\\\"]],[[[10,0],[14,1,\\\"notificationPopup\\\"],[14,5,\\\"max-height:700px; display:flex; flex-direction:column; position:fixed; top:50%; left:50%; transform:translate(-50%, -50%); z-index:999; width:1000px;background: white;border-width: 1px;border-color: gray;border-style: solid;border-radius: 10px;\\\"],[12],[10,0],[14,5,\\\"display: flex; flex-direction: row;justify-content: space-between;width: 100%; \\\"],[12],[10,\\\"h5\\\"],[14,5,\\\"margin-left: 10px;\\\"],[12],[13],[11,\\\"label\\\"],[24,1,\\\"closeXButton\\\"],[24,5,\\\"margin-right: 10px;margin-bottom: 0;font-size: medium;cursor: pointer;color: grey;\\\"],[4,[38,4],[[30,0],\\\"closeNotificationPopup\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"X\\\"],[13],[13],[10,0],[14,1,\\\"notificationPopupContentBody\\\"],[14,5,\\\"overflow-x: scroll;overflow-y: scroll;padding-bottom: 10px; padding-left: 20px; display: flex; flex-direction: column;justify-content: space-between;width: 100%; padding-right: 20px;\\\"],[12],[13],[10,0],[14,1,\\\"confirmationCheckBoxSection\\\"],[14,5,\\\"display:none;align-items: center; justify-content: center;flex-direction: row;width:100%\\\"],[12],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"confirmationCheckBox\\\"],[14,0,\\\"form-control\\\"],[14,4,\\\"checkbox\\\"],[12],[13],[13],[10,\\\"label\\\"],[14,5,\\\"font-weight: bold;font-size: small;margin:0px\\\"],[12],[1,\\\"I confirm the data posted above is correct.\\\"],[13],[13],[10,0],[14,1,\\\"buttonsPanel\\\"],[14,5,\\\"padding:15px;justify-content: center;flex-direction: row;display: flex;width:100%\\\"],[12],[10,\\\"button\\\"],[14,1,\\\"notificationReadyButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ready                \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationRefreshButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Refresh\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationOkButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Ok\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationAbortButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"ABORT\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationYesButton\\\"],[14,5,\\\"display:none; margin-left:10px;margin-right:10px;min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Yes \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationNoButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"No\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationSaveButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Save \\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationPrintButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Print\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationExportButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Export\\\"],[13],[10,\\\"button\\\"],[14,1,\\\"notificationCancelButton\\\"],[14,5,\\\"display:none; min-width: 50px;font-size:small;padding: 5px;\\\"],[14,0,\\\"btn btn-primary\\\"],[14,4,\\\"button\\\"],[12],[1,\\\"Cancel\\\"],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex\\\"],[12],[10,\\\"h3\\\"],[12],[1,\\\"Frequency Event \\\"],[1,[34,5]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[10,\\\"h5\\\"],[12],[1,[52,[33,6],[33,7]]],[1,\\\" \\\"],[1,[52,[33,6],[33,8]]],[1,\\\"-\\\"],[1,[52,[33,6],[33,9]]],[13],[10,\\\"h6\\\"],[12],[1,[52,[33,6],[33,10]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[46,\\\"frequency-event-tabs\\\",null,[[\\\"showLoading\\\",\\\"integrationMethod\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"selectedFreqEventTabKey\\\",\\\"selectedFreqEventSubTabKey\\\",\\\"selectedFreqEventSubSubTabKey\\\",\\\"bluvibeV2ModelProfiles\\\",\\\"bluvibeV2ModelData\\\"],[[33,12],[33,13],[33,14],[33,7],[33,15],[33,16],[33,17],[33,18],[33,19]]],null],[13],[13],[10,0],[15,5,[29,[\\\"display:\\\",[52,[30,0,[\\\"showLoading\\\"]],\\\"flex;\\\",\\\"none;\\\"],\\\";width: 125px;height: 100px;justify-self: center;margin-top: 50px;\\\"]]],[14,0,\\\"pulse_loader\\\"],[12],[13],[10,0],[15,5,[29,[\\\"margin:25px;display:\\\",[52,[30,0,[\\\"showLoading\\\"]],\\\"none;\\\",\\\"block;\\\"],\\\";\\\"]]],[12],[1,[28,[35,20],null,[[\\\"showLoading\\\",\\\"advancedYAxisUnit\\\",\\\"profileId\\\",\\\"integrationMethod\\\",\\\"selectedFreqEventSubSubTabKey\\\",\\\"selectedFreqEventSubTabKey\\\",\\\"selectedFreqEventTabKey\\\",\\\"instrument\\\",\\\"instrumentType\\\",\\\"bluvibeV2ModelProfiles\\\",\\\"bluvibeV2ModelPitchRollData\\\",\\\"bluvibeV2ModelData\\\",\\\"globalDatetimeFormat\\\"],[[33,12],[33,21],[33,22],[33,13],[33,17],[33,16],[33,15],[33,14],[33,7],[33,18],[33,23],[33,19],[33,24]]]]],[13],[13]],[],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"isShowConfig\\\",\\\"action\\\",\\\"getProfileID\\\",\\\"displayData\\\",\\\"instrumentType\\\",\\\"subModel\\\",\\\"instrumentId\\\",\\\"details\\\",\\\"component\\\",\\\"showLoading\\\",\\\"integrationMethod\\\",\\\"instrument\\\",\\\"selectedFreqEventTabKey\\\",\\\"selectedFreqEventSubTabKey\\\",\\\"selectedFreqEventSubSubTabKey\\\",\\\"bluvibeV2ModelProfiles\\\",\\\"bluvibeV2ModelData\\\",\\\"vibe/echarts-frequency-event\\\",\\\"advancedYAxisUnit\\\",\\\"profileId\\\",\\\"bluvibeV2ModelPitchRollData\\\",\\\"globalDatetimeFormat\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/frequency-events/frequency-event.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Ae+vsYkE\",\"block\":\"[[[10,0],[14,0,\\\"spinner-yp-logo v_centered_abs_pos h_centered_abs_pos mt-2\\\"],[12],[10,\\\"img\\\"],[14,\\\"src\\\",\\\"/assets/images/logo-no-text.png\\\"],[14,0,\\\"d-block mx-auto\\\"],[12],[13],[13]],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/frequency-events/frequency-graph-loading.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"CjsNCajd\",\"block\":\"[[[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,0]],[10,0],[14,0,\\\"mt-1\\\"],[12],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[10,\\\"h5\\\"],[12],[1,[52,[33,2],[33,3]]],[1,\\\" \\\"],[1,[52,[33,2],[33,4]]],[1,\\\" \\\"],[1,[52,[33,2],[33,5]]],[13],[10,\\\"h6\\\"],[12],[1,[52,[33,2],[33,6]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-7\\\"],[12],[41,[51,[33,8]],[[[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select instrument\\\"],[13],[1,[28,[35,9],null,[[\\\"content\\\",\\\"selected\\\",\\\"id\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,10],[33,11],\\\"instrumentSelect\\\",\\\"title\\\",\\\"Instrument ID\\\",\\\"Filter\\\",false,[28,[37,12],[[30,0],\\\"onUpdateTransitionTo\\\"],null]]]]],[13]],[]],null],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Chart\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,13],null,[[\\\"selected\\\",\\\"instrumentType\\\",\\\"instrumentId\\\"],[[33,14],[33,15],[33,5]]]]],[13],[13],[13],[41,[33,8],[[[10,0],[14,0,\\\"col\\\"],[12],[10,1],[12],[13],[10,\\\"td\\\"],[14,5,\\\"padding-right: 2rem;visibility: hidden;\\\"],[12],[10,0],[14,0,\\\"col-sm-auto mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Number of Display Records\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,16],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"display_records\\\"],[[33,5],[33,17],[33,18]]]]],[13],[13],[13],[13]],[]],null],[13],[41,[33,5],[[[1,[28,[35,19],null,[[\\\"filterType\\\",\\\"displayDateTimeFormat\\\",\\\"displayYAxistUnit\\\",\\\"requireXMaxMin\\\",\\\"requireYLeftMaxMin\\\",\\\"requireYRightMaxMin\\\",\\\"instrumentId\\\",\\\"chartType\\\",\\\"instrumentType\\\"],[\\\"frequency\\\",false,false,true,true,false,[33,5],[33,14],[33,3]]]]]],[]],null],[41,[51,[33,8]],[[[41,[33,5],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group d-inline-block\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,12],[[30,0],\\\"toggleLocalProperty\\\",\\\"adjust_scales\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"adjust_scales\\\",[33,21],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Adjust Scales\\\"],[13],[13],[13],[13],[13]],[]],null]],[]],null],[41,[33,21],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group d-inline-block\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,5,\\\"padding-left:15px\\\"],[14,0,\\\"col-md-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Primary Y-Axis\\\"],[13],[10,\\\"hr\\\"],[14,5,\\\"height: 2px; background: black;\\\"],[12],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,12],[[30,0],\\\"toggleLocalProperty\\\",\\\"auto_scale\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"auto_scale\\\",[33,22],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Auto Scale\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMaxValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Max:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,23]],[15,\\\"oninput\\\",[28,[37,12],[[30,0],[28,[37,24],[[33,23]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMax\\\"],[15,\\\"disabled\\\",[36,22]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMinValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Min:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,25]],[15,\\\"oninput\\\",[28,[37,12],[[30,0],[28,[37,24],[[33,25]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMin\\\"],[15,\\\"disabled\\\",[36,22]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[41,[33,5],[[[41,[28,[37,26],[[33,27],\\\"Displacement\\\"],null],[[[10,0],[14,0,\\\"col-lg-5 pull-right\\\"],[12],[10,0],[14,0,\\\"form-group d-inline-block pull-right\\\"],[12],[41,[33,28],[[[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-7\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[10,0],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group mb-0 mr-05\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,12],[[30,0],\\\"toggleProperty\\\",\\\"raw\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"raw\\\",[33,29],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Raw data\\\"],[13],[13],[13],[13],[13]],[]],null],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[41,[51,[33,28]],[[[10,0],[14,0,\\\"col-md-7\\\"],[12],[10,\\\"label\\\"],[12],[13],[13]],[]],null],[10,0],[14,5,\\\"width:100%\\\"],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group mb-0 mr-05\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,12],[[30,0],\\\"toggleProperty\\\",\\\"zeroed\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"zeroed\\\",[33,30],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Time reference\\\"],[13],[13],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[41,[33,28],[[[10,0],[14,5,\\\"width:100%\\\"],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group mb-0 mr-05\\\"],[12],[41,[28,[37,26],[[33,31],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,12],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,32],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]],[13],[13]],[]],[[[10,0],[14,5,\\\"width:100%\\\"],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group mb-0 mr-05\\\"],[12],[41,[28,[37,26],[[33,31],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,12],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,20],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,32],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]],[13],[13]],[]]],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[41,[51,[33,28]],[[[10,0],[14,5,\\\"width:100%\\\"],[14,0,\\\"col-md-7\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select ref. anchor\\\"],[13],[13]],[]],null],[41,[33,28],[[[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[11,\\\"input\\\"],[24,\\\"tagName\\\",\\\"button\\\"],[24,2,\\\"Temps\\\"],[24,0,\\\"btn btn-outline-primary\\\"],[24,4,\\\"button\\\"],[4,[38,12],[[30,0],\\\"selectTemps\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[13],[11,\\\"input\\\"],[24,\\\"tagName\\\",\\\"button\\\"],[24,2,\\\"Values\\\"],[24,0,\\\"btn btn-outline-primary\\\"],[24,4,\\\"button\\\"],[4,[38,12],[[30,0],\\\"selectReadings\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[13],[13],[13]],[]],null],[41,[51,[33,28]],[[[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[42,[28,[37,34],[[28,[37,34],[[33,35]],null]],null],null,[[[6,[39,36],null,[[\\\"tagName\\\",\\\"type\\\",\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"button\\\",\\\"button\\\",\\\"btn btn-outline-primary\\\",[28,[37,37],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\"],[\\\"\\\",[30,1,[\\\"number\\\"]]]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,38],[[33,5],[33,17]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,1,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[1]],null],[13],[13]],[]],null],[13],[13],[13]],[]],null]],[]],null],[41,[51,[33,8]],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[6,[39,36],null,[[\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,37],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"frequency-graphs.frequency-graph\\\",[28,[37,38],[[33,5],[33,17]],null]]],[[\\\"default\\\"],[[[[1,\\\"Reset zoom\\\"]],[]]]]],[13],[13]],[]],null],[13]],[]],null],[46,[28,[37,40],null,null],null,null,null],[13]],[\\\"anchor\\\"],false,[\\\"bread-crumbs\\\",\\\"if\\\",\\\"displayData\\\",\\\"instrumentType\\\",\\\"name\\\",\\\"instrumentId\\\",\\\"details\\\",\\\"unless\\\",\\\"bluVibe\\\",\\\"searchable-select\\\",\\\"instruments\\\",\\\"initialInstrumentSelection\\\",\\\"action\\\",\\\"vibe/frequency-chart-dropdown\\\",\\\"chart_type\\\",\\\"instrumentTypeId\\\",\\\"frequency-display-records-dropdown\\\",\\\"modelName\\\",\\\"display_records\\\",\\\"advanced-filter\\\",\\\"input\\\",\\\"adjust_scales\\\",\\\"auto_scale\\\",\\\"y_max\\\",\\\"mut\\\",\\\"y_min\\\",\\\"is-equal\\\",\\\"chartDataValueName\\\",\\\"isWire\\\",\\\"rawData\\\",\\\"timeRef\\\",\\\"refHeadPosition\\\",\\\"flipSigns\\\",\\\"each\\\",\\\"-track-array\\\",\\\"instrumentAnchorsSorted\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/frequency-graphs.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"3AxDxM+F\",\"block\":\"[[[10,0],[14,0,\\\"spinner-yp-logo v_centered_abs_pos h_centered_abs_pos mt-2\\\"],[12],[10,\\\"img\\\"],[14,\\\"src\\\",\\\"/assets/images/logo-no-text.png\\\"],[14,0,\\\"d-block mx-auto\\\"],[12],[13],[13]],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/frequency-graphs/frequency-graph-loading.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"xsyo1vBS\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,0,\\\"mb-1\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-12\\\"],[12],[1,[28,[35,2],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"zoomTempData\\\",\\\"raw\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[33,3,[\\\"fullRangeData\\\"]],[33,3,[\\\"zoomData\\\"]],[33,3,[\\\"zoomTempData\\\"]],[33,4],[33,3,[\\\"instrument\\\"]],[33,3,[\\\"graphs\\\"]],[33,3,[\\\"seismicEvents\\\"]],[33,3,[\\\"blastEvents\\\"]],[33,5],[33,6],[33,7],[33,8],[28,[37,9],[[30,0],\\\"updateProperties\\\"],null],[28,[37,9],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,9],[[30,0],\\\"setChart\\\"],null],[28,[37,9],[[30,0],\\\"setData\\\"],null]]]]],[13],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13]],[],false,[\\\"component\\\",\\\"-outlet\\\",\\\"vibe/nvd3-frequency-line-chart\\\",\\\"model\\\",\\\"raw\\\",\\\"flip_signs\\\",\\\"auto_scale\\\",\\\"y_min\\\",\\\"y_max\\\",\\\"action\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/frequency-graphs/frequency-graph.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"iRauJXRE\",\"block\":\"[[[1,[28,[35,0],[\\\"Gateway\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,2],null,[[\\\"searchValue\\\",\\\"pageValue\\\"],[[33,3],[33,4]]]]],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,5],null,[[\\\"page_size\\\",\\\"page_type\\\",\\\"model\\\"],[[33,6],\\\"gateway\\\",[30,1,[\\\"gateway\\\"]]]]]],[13],[13],[13],[10,0],[14,5,\\\"margin-top:2rem;\\\"],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"model\\\"],[[30,1,[\\\"gatewayStats\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,8],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"gateway\\\",\\\"meta\\\"]],\\\"gateway\\\",[28,[37,9],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,10],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\",\\\"showExpandColumn\\\",\\\"refreshRoute\\\"],[[30,1,[\\\"gateway\\\"]],[28,[37,11],[[30,0],\\\"sortBy\\\"],null],[33,12],true,[28,[37,11],[[30,0],\\\"refreshRoute\\\"],null]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,8],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"gateway\\\",\\\"meta\\\"]],\\\"gateway\\\",[28,[37,9],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"filter-text-input-gateway\\\",\\\"search\\\",\\\"page\\\",\\\"page-item-count\\\",\\\"page_size\\\",\\\"getTotalsGateway\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"gateway-list\\\",\\\"action\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/gateway.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"qakhCn5s\",\"block\":\"[[[1,[28,[35,0],[\\\"Index\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,5,\\\"background: #e9ecef; border-radius: 0.25rem; padding-top:0.65rem; padding-right:1rem; padding-bottom:0.65rem; padding-left:1rem; \\\"],[12],[10,3],[14,5,\\\"font-size: 1.2rem; font-family: Frutiger Arabic 45 Light\\\"],[14,6,\\\"/alerts\\\"],[14,\\\"title\\\",\\\"List of alerts\\\"],[12],[1,\\\"Alerts\\\"],[13],[13],[10,0],[14,5,\\\"margin-top:1rem;\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"margin-bottom: 1rem; width: 25rem\\\"],[12],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"margin-left: 3px;\\\"],[12],[1,[28,[35,1],null,[[\\\"searchValue\\\",\\\"pageValue\\\",\\\"target\\\",\\\"targetName\\\"],[[33,2],[33,3],[33,4],\\\"alert\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"margin-left: 3px;\\\"],[12],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"vertical-align:middle;\\\"],[12],[1,[28,[35,5],null,[[\\\"model\\\"],[[30,1]]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,\\\"hidden\\\",\\\"\\\"],[12],[10,\\\"td\\\"],[12],[1,[28,[35,6],null,[[\\\"alerts\\\",\\\"sortBy\\\",\\\"style\\\",\\\"ordering\\\"],[[30,1,[\\\"alertStats\\\"]],[28,[37,7],[[30,0],\\\"sortByA\\\"],null],\\\"width: 100%;\\\",[33,8]]]]],[13],[13],[13],[13],[10,0],[14,5,\\\"background: #e9ecef; border-radius: 0.25rem; padding-top:0.65rem; padding-right:1rem; padding-bottom:0.65rem; padding-left:1rem; \\\"],[12],[10,3],[14,5,\\\"font-size: 1.2rem; font-family: Frutiger Arabic 45 Light\\\"],[14,6,\\\"/instruments\\\"],[14,\\\"title\\\",\\\"List of instruments\\\"],[12],[1,\\\"Instruments\\\"],[13],[13],[10,0],[14,5,\\\"margin-top:1rem;\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"margin-bottom: 1rem; width: 25rem;\\\"],[12],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"margin-left: 3px;\\\"],[12],[1,[28,[35,9],null,[[\\\"searchValue\\\",\\\"pageValue\\\",\\\"target\\\",\\\"targetName\\\"],[[33,2],[33,3],[33,4],\\\"inst\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"margin-left: 3px;\\\"],[12],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"vertical-align:middle;\\\"],[12],[1,[28,[35,10],null,[[\\\"model\\\"],[[30,1,[\\\"instrumentStats\\\"]]]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,\\\"hidden\\\",\\\"\\\"],[12],[10,\\\"td\\\"],[12],[10,0],[14,5,\\\"margin-top: 10px;\\\"],[12],[1,[28,[35,11],null,[[\\\"instruments\\\",\\\"sortBy\\\",\\\"ordering\\\",\\\"levelLookupList\\\",\\\"projectLookupList\\\"],[[30,1,[\\\"instruments\\\"]],[28,[37,7],[[30,0],\\\"sortByI\\\"],null],[33,8],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"projectLookupList\\\"]]]]]],[13],[13],[13],[13],[13],[10,0],[14,5,\\\"background: #e9ecef; border-radius: 0.25rem; padding-top:0.65rem; padding-right:1rem; padding-bottom:0.65rem; padding-left:1rem; \\\"],[12],[10,3],[14,5,\\\"font-size: 1.2rem; font-family: Frutiger Arabic 45 Light\\\"],[14,6,\\\"/gateway\\\"],[14,\\\"title\\\",\\\"Gateway Health\\\"],[12],[1,\\\"Health\\\"],[13],[13],[10,0],[14,5,\\\"margin-top:1rem;\\\"],[12],[10,\\\"table\\\"],[14,5,\\\"margin-bottom: 1rem; width: 25rem;\\\"],[12],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"margin-left: 3px;\\\"],[12],[1,[28,[35,12],null,[[\\\"searchValue\\\",\\\"pageValue\\\",\\\"target\\\",\\\"targetName\\\"],[[33,2],[33,3],[33,4],\\\"gateway\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"margin-left: 3px;\\\"],[12],[10,\\\"tr\\\"],[12],[10,0],[14,5,\\\"vertical-align:middle;\\\"],[12],[1,[28,[35,13],null,[[\\\"model\\\"],[[30,1,[\\\"gatewayStats\\\"]]]]]],[13],[13],[13],[13],[10,\\\"tr\\\"],[14,\\\"hidden\\\",\\\"\\\"],[12],[10,\\\"td\\\"],[12],[10,0],[14,5,\\\"margin-top: 10px;\\\"],[12],[1,[28,[35,14],null,[[\\\"gateway\\\",\\\"sortBy\\\",\\\"ordering\\\",\\\"showExpandColumn\\\"],[[30,1,[\\\"gateway\\\"]],[28,[37,7],[[30,0],\\\"sortByG\\\"],null],[33,8],true]]]],[13],[13],[13],[13],[13],[13],[46,[28,[37,16],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"filter-text-input-alert\\\",\\\"search\\\",\\\"page\\\",\\\"searchTgt\\\",\\\"getTotalsAlerts\\\",\\\"alerts-list\\\",\\\"action\\\",\\\"ordering\\\",\\\"filter-text-input\\\",\\\"getTotalsInstruments\\\",\\\"instruments-list\\\",\\\"filter-text-input-gateway\\\",\\\"getTotalsGateway\\\",\\\"gateway-list\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/index.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"3ZWH2x6S\",\"block\":\"[[[1,[28,[35,0],[\\\"Instruments\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,2],null,[[\\\"searchValue\\\",\\\"pageValue\\\"],[[33,3],[33,4]]]]],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,5],null,[[\\\"page_size\\\",\\\"page_type\\\",\\\"model\\\"],[[33,6],\\\"instruments\\\",[30,1,[\\\"instruments\\\"]]]]]],[13],[13],[13],[10,0],[14,5,\\\"margin-top:2rem;\\\"],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"model\\\"],[[30,1,[\\\"instrumentStats\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,8],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"instruments\\\",\\\"meta\\\"]],\\\"instruments\\\",[28,[37,9],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,10],null,[[\\\"instruments\\\",\\\"sortBy\\\",\\\"ordering\\\",\\\"levelLookupList\\\",\\\"projectLookupList\\\"],[[30,1,[\\\"instruments\\\"]],[28,[37,11],[[30,0],\\\"sortBy\\\"],null],[33,12],[30,1,[\\\"levelLookupList\\\"]],[30,1,[\\\"projectLookupList\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,8],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"instruments\\\",\\\"meta\\\"]],\\\"instruments\\\",[28,[37,9],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"filter-text-input\\\",\\\"search\\\",\\\"page\\\",\\\"page-item-count\\\",\\\"page_size\\\",\\\"getTotalsInstruments\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"instruments-list\\\",\\\"action\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/instruments.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"n+dsCscc\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,0,\\\"mt-1\\\"],[12],[10,\\\"h3\\\"],[12],[1,\\\"Keys\\\"],[13],[13],[1,[34,2]],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table settings-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Company\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Start Date\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"End Date\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"# Instruments\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Version\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Modules\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Active\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Delete\\\"],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,4],[[28,[37,4],[[33,5,[\\\"licenceKeys\\\"]]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"companyName\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,1,[\\\"companyName\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"startDate\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,1,[\\\"startDate\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"endDate\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,1,[\\\"endDate\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"numInst\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[41,[28,[37,7],[[30,1,[\\\"numInst\\\"]],0],null],[[[10,\\\"label\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Unlimited\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,1,[\\\"numInst\\\"]]],[13]],[]]],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"softwareVersion\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,1,[\\\"softwareVersion\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"modules\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[41,[28,[37,8],[[33,9],[30,1,[\\\"id\\\"]]],null],[[[10,\\\"label\\\"],[14,5,\\\"\\\"],[14,\\\"for\\\",\\\"id\\\"],[15,\\\"title\\\",[29,[[28,[37,8],[[33,10],[30,1,[\\\"id\\\"]]],null]]]],[14,0,\\\"col-12 col-form-label has-tooltip-info link\\\"],[12],[1,\\\"[Modules]\\\"],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"API Only\\\"],[13]],[]]],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"isValidKey\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[41,[28,[37,8],[[33,11],[30,1,[\\\"id\\\"]]],null],[[[10,1],[14,5,\\\"font-size:25px;color:green\\\"],[12],[1,\\\"✓\\\"],[13]],[]],[[[10,1],[14,5,\\\"font-size:25px;color:red\\\"],[12],[1,\\\"✕\\\"],[13]],[]]],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,1,[\\\"id\\\"]]]]],[14,5,\\\"text-align:center;\\\"],[14,0,\\\"noWrap\\\"],[12],[41,[28,[37,12],[[28,[37,8],[[33,13],[30,1,[\\\"id\\\"]]],null]],null],[[[11,1],[24,5,\\\"float:left;margin-top: 0.5rem\\\"],[24,0,\\\"crud remove\\\"],[4,[38,14],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,1,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,15],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13]],[]],null],[41,[28,[37,8],[[33,13],[30,1,[\\\"id\\\"]]],null],[[[10,0],[14,5,\\\"position:relative;min-width:0px;float:left;padding-right: 0\\\"],[14,0,\\\"delete-confirmation active\\\"],[12],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,14],[[30,0],\\\"remove\\\",[33,5,[\\\"licenceKeys\\\"]],[30,1]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,14],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,1,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13]],[]],null],[13],[13]],[1]],null],[13],[13],[10,0],[14,0,\\\"pb-1\\\"],[12],[13],[13]],[\\\"key\\\"],false,[\\\"component\\\",\\\"-outlet\\\",\\\"key-import-form\\\",\\\"each\\\",\\\"-track-array\\\",\\\"model\\\",\\\"if\\\",\\\"eq\\\",\\\"get\\\",\\\"activeModules\\\",\\\"tooltip\\\",\\\"activeKeys\\\",\\\"not\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"action\\\",\\\"fa-icon\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/keys.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"VZ4ksmI0\",\"block\":\"[[[1,[28,[35,0],[\\\"Settings\\\"],null]],[46,[28,[37,2],null,null],null,null,null],[10,0],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,0,\\\"mt-1\\\"],[12],[10,\\\"h3\\\"],[12],[1,\\\"Lookup Values\\\"],[13],[13],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table settings-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"ID\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Name\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Type\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Value\\\"],[13],[41,[33,4],[[[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,5],[[30,0],\\\"createLookup\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13]],[]],null],[41,[28,[37,7],[[33,4]],null],[[[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[13]],[]],null],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,9],[[28,[37,9],[[30,1,[\\\"lookups\\\"]]],null]],null],null,[[[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"id\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"id\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"id\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"name\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"name\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"name\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"type\\\"]]]]],[14,0,\\\"noWrap\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"type\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"type\\\"]]],[13],[13],[10,\\\"td\\\"],[15,\\\"data-title\\\",[29,[[30,2,[\\\"id\\\"]]]]],[14,0,\\\"noWrap input-container\\\"],[12],[41,[28,[37,10],[[33,11],[30,2,[\\\"id\\\"]]],null],[[[10,\\\"input\\\"],[15,2,[30,2,[\\\"value\\\"]]],[15,1,[30,2,[\\\"id\\\"]]],[15,\\\"oninput\\\",[28,[37,5],[[30,0],[28,[37,12],[[30,2,[\\\"value\\\"]]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,0,\\\"form-control full-width-input\\\"],[14,4,\\\"text\\\"],[12],[13]],[]],[[[10,\\\"label\\\"],[14,\\\"for\\\",\\\"value\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,[30,2,[\\\"value\\\"]]],[13]],[]]],[13],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[41,[28,[37,10],[[33,11],[30,2,[\\\"id\\\"]]],null],[[[11,1],[24,0,\\\"crud remove\\\"],[4,[38,5],[[30,0],\\\"stopEditing\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"times\\\"]],null],[13],[11,1],[24,0,\\\"crud edit\\\"],[4,[38,5],[[30,0],\\\"save\\\",[30,2,[\\\"id\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"check\\\"]],null],[1,\\\"        \\\"],[13]],[]],[[[11,1],[24,0,\\\"crud remove\\\"],[4,[38,5],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[11,1],[24,\\\"data-placement\\\",\\\"right\\\"],[24,\\\"title\\\",\\\"Edit\\\"],[24,0,\\\"crud edit\\\"],[4,[38,5],[[30,0],\\\"startEditing\\\",[30,2,[\\\"id\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,6],null,[[\\\"@icon\\\"],[\\\"pencil-alt\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,13],[[28,[37,14],[[33,15],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"Delete it?\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"Are you sure?\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,5],[[30,0],\\\"remove\\\",[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,5],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13]],[]]],[13],[13]],[2]],null],[13],[13],[10,0],[14,0,\\\"pb-1\\\"],[12],[13],[13]],[\\\"@model\\\",\\\"lookup\\\"],false,[\\\"page-title\\\",\\\"component\\\",\\\"-outlet\\\",\\\"if\\\",\\\"licenceIsValid\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"not\\\",\\\"each\\\",\\\"-track-array\\\",\\\"eq\\\",\\\"editingId\\\",\\\"mut\\\",\\\"active-class\\\",\\\"get-array-element\\\",\\\"isRowDeleteConfirmationDialog\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/list-lookups.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"v5zYksAO\",\"block\":\"[[[1,[28,[35,0],[\\\"Log Viewer\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,2],null,[[\\\"searchValue\\\",\\\"pageValue\\\"],[[33,3],[33,4]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,5],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"logViewer\\\",\\\"meta\\\"]],\\\"log-viewer\\\",[28,[37,6],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"logViewer\\\",\\\"errorTypeLookups\\\",\\\"sortBy\\\",\\\"ordering\\\",\\\"showExpandColumn\\\",\\\"refreshRoute\\\"],[[30,1,[\\\"logViewer\\\"]],[33,8],[28,[37,9],[[30,0],\\\"sortBy\\\"],null],[33,10],true,[28,[37,9],[[30,0],\\\"refreshRoute\\\"],null]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,5],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"logViewer\\\",\\\"meta\\\"]],\\\"log-viewer\\\",[28,[37,6],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"filter-text-input-log-viewer\\\",\\\"search\\\",\\\"page\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"log-viewer-list\\\",\\\"errorTypeLookups\\\",\\\"action\\\",\\\"ordering\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/log-viewer.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"5SjOaT1t\",\"block\":\"[[[1,[28,[35,0],[\\\"Login\\\"],null]],[41,[30,1,[\\\"licence\\\",\\\"isValid\\\"]],[[[1,\\\"true\\\"]],[]],null],[10,0],[14,5,\\\"justify-content: center;display: flex;\\\"],[12],[10,0],[14,1,\\\"auth_card\\\"],[12],[10,0],[14,5,\\\"font-size: 30px;color: white;justify-self: center;margin-bottom: 20px;\\\"],[12],[1,\\\"Login\\\"],[13],[10,0],[14,5,\\\"width: 75%;margin: 10px;font-size: small;\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"id_username\\\"],[14,\\\"autocomplete\\\",\\\"username\\\"],[14,\\\"placeholder\\\",\\\"Username\\\"],[15,2,[36,2]],[15,\\\"onchange\\\",[28,[37,3],[[30,0],\\\"updateIdentification\\\"],null]],[12],[13],[13],[10,0],[14,5,\\\"width: 75%;margin: 10px;font-size: small;\\\"],[12],[10,\\\"input\\\"],[14,1,\\\"id_password\\\"],[14,\\\"placeholder\\\",\\\"Password\\\"],[14,\\\"autocomplete\\\",\\\"current-password\\\"],[15,2,[36,4]],[15,\\\"onchange\\\",[28,[37,3],[[30,0],\\\"updatePassword\\\"],null]],[14,4,\\\"password\\\"],[12],[13],[10,0],[14,5,\\\"width:100%;display: flex;justify-content: space-between;\\\"],[12],[11,0],[24,5,\\\"font-size: x-small;margin-left: 5px;font-weight: bold;cursor: pointer;color: #4A6A9C;\\\"],[4,[38,3],[[30,0],\\\"forgotPassword\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Forgot your password?\\\"],[13],[41,[33,5],[[[11,0],[24,5,\\\"font-size: x-small;margin-right: 5px;font-weight: bold;cursor: pointer;color: #4A6A9C;\\\"],[4,[38,3],[[30,0],\\\"resendVerification\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Resend Verification\\\"],[13]],[]],null],[13],[13],[10,0],[14,5,\\\"display: flex;flex-direction: column;align-items: center;margin: 10px;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"id_button\\\"],[4,[38,3],[[30,0],\\\"authenticateWithProvider\\\",\\\"login\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Login\\\"],[13],[10,0],[14,5,\\\"width: 100%;display: flex;flex-direction: row;align-items: center;font-size: x-small;justify-content: center;\\\"],[12],[10,0],[12],[1,\\\"Don't have an account?\\\"],[13],[11,0],[24,5,\\\"margin-left: 5px;font-weight: bold;cursor: pointer;color: #4A6A9C;\\\"],[4,[38,3],[[30,0],\\\"registerNewAccount\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Register\\\"],[13],[13],[10,0],[14,5,\\\"height:35px\\\"],[12],[13],[41,[28,[37,6],[[33,7,[\\\"loginAPI\\\"]],\\\"GOOGLE\\\"],null],[[[11,\\\"button\\\"],[24,1,\\\"id_button\\\"],[24,5,\\\"margin-bottom:10px;\\\"],[4,[38,3],[[30,0],\\\"authenticateWithProvider\\\",\\\"google-oauth2\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Login via Google\\\"],[13]],[]],null],[41,[28,[37,6],[[33,7,[\\\"loginAPI\\\"]],\\\"MICROSOFT\\\"],null],[[[11,\\\"button\\\"],[24,5,\\\"justify-content:center;display: flex;flex-direction: row;align-items: center;\\\"],[24,1,\\\"id_button\\\"],[4,[38,3],[[30,0],\\\"authenticateWithProvider\\\",\\\"azure-ad-oauth2\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[10,\\\"img\\\"],[14,\\\"width\\\",\\\"20px;\\\"],[14,\\\"src\\\",\\\"/assets/images/microsoft-icon.png\\\"],[12],[13],[10,0],[14,5,\\\"margin-left: 10px;\\\"],[12],[1,\\\"Sign in with Microsoft\\\"],[13],[13]],[]],null],[13],[41,[33,8],[[[10,0],[14,5,\\\"width: auto; padding-top:5px;\\\"],[14,0,\\\"center pulse_loader\\\"],[12],[13]],[]],null],[41,[33,9],[[[10,0],[12],[1,[34,9]],[13]],[]],null],[13],[13],[46,[28,[37,11],null,null],null,null,null]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"if\\\",\\\"identification\\\",\\\"action\\\",\\\"password\\\",\\\"showResendVerification\\\",\\\"is-equal\\\",\\\"model\\\",\\\"loading\\\",\\\"errorMessage\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/login.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"k7kl39zE\",\"block\":\"[[[1,[28,[35,0],[\\\"My Profile\\\"],null]],[10,0],[14,5,\\\"display:flex;flex-direction:row;\\\"],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,0,\\\"my-profile-sidebar\\\"],[12],[1,[28,[35,1],null,[[\\\"currentTab\\\"],[[33,2]]]]],[13],[41,[28,[37,4],[[33,2],\\\"HOME\\\"],null],[[[10,0],[14,0,\\\"my-profile-body\\\"],[12],[1,[34,5]],[13]],[]],null],[41,[28,[37,4],[[33,2],\\\"USERS\\\"],null],[[[10,0],[14,0,\\\"my-profile-body\\\"],[12],[1,[34,6]],[13]],[]],null],[41,[28,[37,4],[[33,2],\\\"ADDON\\\"],null],[[[10,0],[14,0,\\\"my-profile-body\\\"],[12],[1,[34,7]],[13]],[]],null],[41,[28,[37,4],[[33,2],\\\"MORE\\\"],null],[[[10,0],[14,0,\\\"my-profile-body\\\"],[12],[1,[34,8]],[13]],[]],null],[13],[46,[28,[37,10],null,null],null,null,null]],[],false,[\\\"page-title\\\",\\\"my-profile-sidebar\\\",\\\"currentTab\\\",\\\"if\\\",\\\"is-equal\\\",\\\"my-profile-sidebar-home\\\",\\\"my-profile-sidebar-users\\\",\\\"my-profile-sidebar-addon\\\",\\\"my-profile-sidebar-more\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/my-profile.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"uEsuQyDl\",\"block\":\"[[[1,[28,[35,0],[\\\"Packs Validation\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[34,2]],[13],[13],[13]],[],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"analytics/packsValidationAnalyticsMainPage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/packs-validation-analytics.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9qVtS3du\",\"block\":\"[[[1,[28,[35,0],[\\\"Packs Validation\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,2],null,[[\\\"sensorTypeList\\\",\\\"packTypeList\\\",\\\"typeList\\\",\\\"rigProfileList\\\",\\\"packProfileList\\\"],[[30,1,[\\\"sensorTypeList\\\"]],[30,1,[\\\"packTypeList\\\"]],[30,1,[\\\"typeList\\\"]],[30,1,[\\\"rigProfileList\\\"]],[30,1,[\\\"packProfileList\\\"]]]]]],[13],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"production/packsValidationMainPage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/packs-validation.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"lZDLp9Ws\",\"block\":\"[[[1,[28,[35,0],[\\\"Raw Data \\\",[30,1,[\\\"instrument\\\",\\\"id\\\"]]],null]],[10,0],[14,1,\\\"raw-content\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"mt-1\\\"],[12],[41,[33,3],[[[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13]],[]],null],[10,\\\"h5\\\"],[12],[1,[33,4,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]]],[1,\\\" \\\"],[1,[33,4,[\\\"instrument\\\",\\\"id\\\"]]],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-6 d-flex flex-column justify-content-center\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[1,[28,[35,5],null,[[\\\"instrumentId\\\",\\\"pageSize\\\"],[[30,1,[\\\"instrument\\\",\\\"id\\\"]],[30,1,[\\\"displacementValues\\\",\\\"meta\\\",\\\"pagination\\\",\\\"page_size\\\"]]]]]],[13],[13],[41,[33,6],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Port Selection\\\"],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"selected\\\",\\\"instrumentId\\\",\\\"calib\\\",\\\"linear\\\",\\\"depth\\\",\\\"port\\\",\\\"port_number\\\"],[[33,8],[30,1,[\\\"instrument\\\",\\\"id\\\"]],[33,9],[33,10],[33,11],[33,8],[33,12]]]]],[13],[13]],[]],null],[13],[41,[33,6],[[[10,0],[14,0,\\\"col-md-6\\\"],[12],[10,0],[14,0,\\\"form-group mb-0 mr-05\\\"],[12],[10,\\\"tr\\\"],[12],[1,[28,[35,13],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,14],[[30,0],\\\"toggleDataType\\\",\\\"raw\\\"],null],\\\"Raw Data\\\",\\\"checked\\\"]]]],[13],[10,\\\"tr\\\"],[12],[1,[28,[35,13],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,14],[[30,0],\\\"toggleDataType\\\",\\\"linear\\\"],null],\\\"Linear Data\\\",\\\"\\\"]]]],[13],[10,\\\"tr\\\"],[12],[1,[28,[35,13],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,14],[[30,0],\\\"toggleDataType\\\",\\\"calib\\\"],null],\\\"Calibrated Data\\\",\\\"\\\"]]]],[13],[10,\\\"tr\\\"],[12],[1,[28,[35,13],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,14],[[30,0],\\\"toggleDataType\\\",\\\"depth\\\"],null],\\\"Depth (Water)\\\",\\\"\\\"]]]],[13],[13],[13]],[]],null],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"mb-1\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin-top: 0.5rem; margin-bottom: 0.25rem\\\"],[16,0,[29,[\\\"btn btn-sm mr-1 \\\",[52,[33,15],\\\"btn-primary\\\",\\\"btn-secondary\\\"]]]],[24,4,\\\"button\\\"],[4,[38,14],[[30,0],\\\"toggleProperty\\\",\\\"isVisibleExportDataForm\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,16],null,[[\\\"@icon\\\"],[\\\"upload\\\"]],null],[1,\\\"  Export data\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"margin-top: 0.5rem; margin-bottom: 0.25rem\\\"],[16,0,[29,[\\\"btn btn-sm mr-1 \\\",[52,[33,17],\\\"btn-primary\\\",\\\"btn-secondary\\\"]]]],[24,4,\\\"button\\\"],[4,[38,14],[[30,0],\\\"toggleProperty\\\",\\\"isVisibleImportDataForm\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,16],null,[[\\\"@icon\\\"],[\\\"download\\\"]],null],[1,\\\"  Import data\\\"],[13],[1,[28,[35,18],null,[[\\\"instrumentId\\\",\\\"isVisibleExportDataForm\\\",\\\"instrument\\\"],[[30,1,[\\\"instrument\\\",\\\"id\\\"]],[33,15],[30,1,[\\\"instrument\\\"]]]]]],[1,[28,[35,19],null,[[\\\"instrumentId\\\",\\\"isVisibleImportDataForm\\\",\\\"instrument\\\"],[[30,1,[\\\"instrument\\\",\\\"id\\\"]],[33,17],[30,1,[\\\"instrument\\\"]]]]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,20],null,[[\\\"filterType\\\",\\\"displayDateTimeFormat\\\",\\\"displayYAxistUnit\\\",\\\"requireXMaxMin\\\",\\\"requireYLeftMaxMin\\\",\\\"requireYRightMaxMin\\\",\\\"instrumentId\\\",\\\"instrumentType\\\"],[\\\"raw-data\\\",true,true,false,false,false,[30,1,[\\\"instrument\\\",\\\"id\\\"]],[30,1,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],1],null],[[[1,[28,[35,22],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],2],null],[[[1,[28,[35,23],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],3],null],[[[1,[28,[35,24],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],4],null],[[[1,[28,[35,22],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],5],null],[[[1,[28,[35,22],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],6],null],[[[1,[28,[35,25],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],7],null],[[[1,[28,[35,26],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],8],null],[[[1,[28,[35,27],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],9],null],[[[1,[28,[35,28],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],10],null],[[[1,[28,[35,29],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],11],null],[[[1,[28,[35,22],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],12],null],[[[1,[28,[35,30],null,[[\\\"port\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\",\\\"depth\\\",\\\"calib\\\",\\\"linear\\\"],[[33,8],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null],[33,11],[33,9],[33,10]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],13],null],[[[1,[28,[35,31],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],14],null],[[[1,\\\"Analog\\\"]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],15],null],[[[1,[28,[35,32],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],16],null],[[[1,[28,[35,33],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],17],null],[[[1,[28,[35,34],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],18],null],[[[1,[28,[35,35],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],19],null],[[[1,[28,[35,36],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,21],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],20],null],[[[1,[28,[35,37],null,[[\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"headAts\\\",\\\"displacementData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"headAts\\\"]],[30,1,[\\\"displacementValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,14],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[13],[13],[46,[28,[37,39],null,null],null,null,null],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"permissionError\\\",\\\"model\\\",\\\"raw-drop-down\\\",\\\"isWire\\\",\\\"wire/raw-data-dropdown\\\",\\\"port\\\",\\\"calib\\\",\\\"linear\\\",\\\"depth\\\",\\\"port_number\\\",\\\"radio-buttons\\\",\\\"action\\\",\\\"isVisibleExportDataForm\\\",\\\"fa-icon\\\",\\\"isVisibleImportDataForm\\\",\\\"data-export-form\\\",\\\"data-import-form\\\",\\\"advanced-filter\\\",\\\"eq\\\",\\\"pack/raw-data\\\",\\\"cable/raw-data\\\",\\\"rebar/raw-data\\\",\\\"tilt/raw-data\\\",\\\"slough/raw-data\\\",\\\"thermo/raw-data\\\",\\\"piezo/raw-data\\\",\\\"hid/raw-data\\\",\\\"wire/raw-data\\\",\\\"adict/raw-data\\\",\\\"vibe/raw-data\\\",\\\"micro/raw-data\\\",\\\"rebarv2/raw-data\\\",\\\"bluecell/raw-data\\\",\\\"dppc/raw-data\\\",\\\"multiDExto/raw-data\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/raw-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"UPXqKg7Y\",\"block\":\"[[[1,[28,[35,0],[\\\"Raw Data \\\",[30,1,[\\\"instrument\\\",\\\"id\\\"]]],null]],[10,0],[14,1,\\\"raw-content\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"mt-1\\\"],[12],[41,[33,3],[[[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13]],[]],null],[10,0],[14,5,\\\"display:flex;flex-direction:row;align-items: center;\\\"],[12],[10,\\\"h3\\\"],[12],[1,[33,4,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]]],[1,\\\" \\\"],[1,[33,4,[\\\"instrument\\\",\\\"id\\\"]]],[13],[41,[33,5],[[[10,0],[14,5,\\\"width: auto;margin-bottom: 8px;\\\"],[14,0,\\\"pulse_loader\\\"],[12],[13]],[]],null],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[1,[28,[35,6],null,[[\\\"instrumentId\\\",\\\"pageSize\\\"],[[30,1,[\\\"instrument\\\",\\\"id\\\"]],[30,1,[\\\"instrumentFreqEventData\\\",\\\"meta\\\",\\\"pagination\\\",\\\"page_size\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,7],null,[[\\\"filterType\\\",\\\"globalDatetimeFormat\\\",\\\"displayDateTimeFormat\\\",\\\"displayYAxistUnit\\\",\\\"requireXMaxMin\\\",\\\"requireYLeftMaxMin\\\",\\\"requireYRightMaxMin\\\",\\\"instrumentId\\\",\\\"instrumentType\\\"],[\\\"raw-frequency-events-data\\\",[30,1,[\\\"globalDatetimeFormat\\\"]],true,true,false,false,false,[30,1,[\\\"instrument\\\",\\\"id\\\"]],[30,1,[\\\"instrument\\\",\\\"instrumentType\\\",\\\"title\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,8],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],15],null],[[[1,[28,[35,9],null,[[\\\"showLoading\\\",\\\"globalDatetimeFormat\\\",\\\"instrument\\\",\\\"instrumentFreqEventProfiles\\\",\\\"instrumentFreqEventData\\\",\\\"setProp\\\"],[[33,5],[30,1,[\\\"globalDatetimeFormat\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"instrumentFreqEventProfiles\\\"]],[30,1,[\\\"instrumentFreqEventData\\\"]],[28,[37,10],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[13],[13],[46,[28,[37,12],null,null],null,null,null],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"permissionError\\\",\\\"model\\\",\\\"showLoading\\\",\\\"raw-frequency-events-drop-down\\\",\\\"advanced-filter\\\",\\\"eq\\\",\\\"vibe/raw-frequency-events-data\\\",\\\"action\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/raw-frequency-events-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"PT6StJzz\",\"block\":\"[[[1,[28,[35,0],[\\\"Raw Gateway Data \\\",[30,1,[\\\"gateway\\\",\\\"id\\\"]]],null]],[10,0],[14,1,\\\"raw-content\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"mt-1\\\"],[12],[41,[33,3],[[[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13]],[]],null],[10,\\\"h5\\\"],[12],[1,[33,4,[\\\"gateway\\\",\\\"gatewayType\\\",\\\"title\\\"]]],[1,\\\" \\\"],[1,[33,4,[\\\"gateway\\\",\\\"id\\\"]]],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[1,[28,[35,5],null,[[\\\"gatewayId\\\",\\\"pageSize\\\"],[[30,1,[\\\"gateway\\\",\\\"id\\\"]],[30,1,[\\\"gatewayValues\\\",\\\"meta\\\",\\\"pagination\\\",\\\"page_size\\\"]]]]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"mb-1\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin-top: 0.5rem; margin-bottom: 0.25rem\\\"],[16,0,[29,[\\\"btn btn-sm mr-1 \\\",[52,[33,6],\\\"btn-primary\\\",\\\"btn-secondary\\\"]]]],[24,4,\\\"button\\\"],[4,[38,7],[[30,0],\\\"toggleProperty\\\",\\\"isVisibleExportDataForm\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,8],null,[[\\\"@icon\\\"],[\\\"upload\\\"]],null],[1,\\\"  Export data\\\"],[13],[11,\\\"button\\\"],[24,5,\\\"margin-top: 0.5rem; margin-bottom: 0.25rem\\\"],[16,0,[29,[\\\"btn btn-sm mr-1 \\\",[52,[33,9],\\\"btn-primary\\\",\\\"btn-secondary\\\"]]]],[24,4,\\\"button\\\"],[4,[38,7],[[30,0],\\\"toggleProperty\\\",\\\"isVisibleImportDataForm\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,8],null,[[\\\"@icon\\\"],[\\\"download\\\"]],null],[1,\\\"  Import data\\\"],[13],[1,[28,[35,10],null,[[\\\"gatewayId\\\",\\\"isVisibleExportDataForm\\\"],[[30,1,[\\\"gateway\\\",\\\"id\\\"]],[33,6]]]]],[1,[28,[35,11],null,[[\\\"gatewayId\\\",\\\"isVisibleImportDataForm\\\"],[[30,1,[\\\"gateway\\\",\\\"id\\\"]],[33,9]]]]],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[41,[28,[37,12],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],1],null],[[[1,[28,[35,13],null,[[\\\"gateway\\\",\\\"gatewayData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"gateway\\\"]],[30,1,[\\\"gatewayValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,7],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,12],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],2],null],[[[1,[28,[35,14],null,[[\\\"gateway\\\",\\\"gatewayData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"gateway\\\"]],[30,1,[\\\"gatewayValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,7],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,12],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],3],null],[[[1,[28,[35,15],null,[[\\\"gateway\\\",\\\"gatewayData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"gateway\\\"]],[30,1,[\\\"gatewayValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,7],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,12],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],4],null],[[[1,[28,[35,16],null,[[\\\"gateway\\\",\\\"raw_parent_gateway\\\",\\\"gatewayData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"gateway\\\"]],[33,17],[30,1,[\\\"gatewayValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,7],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,12],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],5],null],[[[1,[28,[35,18],null,[[\\\"gateway\\\",\\\"raw_parent_gateway\\\",\\\"gatewayData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"gateway\\\"]],[33,17],[30,1,[\\\"gatewayValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,7],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[41,[28,[37,12],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],6],null],[[[1,[28,[35,19],null,[[\\\"gateway\\\",\\\"raw_parent_gateway\\\",\\\"gatewayData\\\",\\\"temperatureData\\\",\\\"setProp\\\"],[[30,1,[\\\"gateway\\\"]],[33,17],[30,1,[\\\"gatewayValues\\\"]],[30,1,[\\\"temperatureValues\\\"]],[28,[37,7],[[30,0],\\\"updateProperty\\\"],null]]]]]],[]],null],[13],[13],[46,[28,[37,21],null,null],null,null,null],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"permissionError\\\",\\\"model\\\",\\\"raw-gateway-drop-down\\\",\\\"isVisibleExportDataForm\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"isVisibleImportDataForm\\\",\\\"data-export-gateway-form\\\",\\\"data-import-gateway-form\\\",\\\"eq\\\",\\\"blucell/raw-gateway-data\\\",\\\"blugate/raw-gateway-data\\\",\\\"blu900gw/raw-gateway-data\\\",\\\"blu900node/raw-gateway-data\\\",\\\"raw_parent_gateway\\\",\\\"oneforone/raw-gateway-data\\\",\\\"vibe/raw-gateway-data\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/raw-gateway-data.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ptRETwr3\",\"block\":\"[[[1,[28,[35,0],[\\\"Create Account\\\"],null]],[10,0],[14,5,\\\"justify-content: center;display: flex;\\\"],[12],[10,0],[14,1,\\\"auth_card\\\"],[14,5,\\\"width: 50%;\\\"],[12],[41,[33,2],[[[10,0],[14,5,\\\"font-size: 30px;color: white;justify-self: center;margin-bottom: 20px;\\\"],[12],[1,\\\"Verification Required\\\"],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:column;align-items:center;font-size: small;\\\"],[12],[10,0],[14,5,\\\"color: white;font-size: small;\\\"],[12],[1,\\\"To activate your VantagePoint account, at least one master user must approve your registration.\\\"],[13],[10,0],[14,5,\\\"color: white;font-size: small;\\\"],[12],[1,\\\"Request(s) has been sent to: \\\"],[13],[10,0],[14,5,\\\"color: white;font-size: small;\\\"],[12],[1,[30,0,[\\\"emailsSent\\\"]]],[13],[13],[10,0],[14,5,\\\"color: white;font-size: small;\\\"],[12],[1,\\\"Please contact email(s) listed above for approval.\\\"],[13],[10,0],[14,5,\\\"color: white;font-size: small;\\\"],[12],[1,\\\"If you have already verifed your email, you may close this page and re-login. \\\"],[13],[10,0],[14,5,\\\"display: flex;flex-direction: column;align-items: center;margin: 10px;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"id_button\\\"],[4,[38,3],[[30,0],\\\"resendVerification\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Resend\\\"],[13],[13],[41,[33,4],[[[10,0],[14,5,\\\"width: auto; padding-top:5px;\\\"],[14,0,\\\"center pulse_loader\\\"],[12],[13]],[]],null],[41,[33,5],[[[10,0],[12],[1,[34,5]],[13]],[]],null]],[]],[[[10,0],[14,5,\\\"font-size: 30px;color: white;justify-self: center;margin-bottom: 20px;\\\"],[12],[1,\\\"Create Account\\\"],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[14,5,\\\"width:50%;margin: 10px;\\\"],[12],[10,0],[14,5,\\\"color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[12],[1,\\\"First Name\\\"],[13],[10,0],[12],[1,\\\"*\\\"],[13],[13],[10,\\\"input\\\"],[14,1,\\\"id_register_firstname\\\"],[15,2,[30,0,[\\\"firstName\\\"]]],[15,\\\"onchange\\\",[28,[37,3],[[30,0],\\\"updateInfo\\\",\\\"firstname\\\"],null]],[12],[13],[13],[10,0],[14,5,\\\"width:50%;margin: 10px;\\\"],[12],[10,0],[14,5,\\\"color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[12],[1,\\\"Last name\\\"],[13],[10,0],[12],[1,\\\"*\\\"],[13],[13],[10,\\\"input\\\"],[14,1,\\\"id_register_lastname\\\"],[15,2,[30,0,[\\\"lastName\\\"]]],[15,\\\"onchange\\\",[28,[37,3],[[30,0],\\\"updateInfo\\\",\\\"lastname\\\"],null]],[12],[13],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[14,5,\\\"width:100%;margin: 10px;\\\"],[12],[10,0],[14,5,\\\"color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[12],[1,\\\"Email\\\"],[13],[10,0],[12],[1,\\\"*\\\"],[13],[13],[10,\\\"input\\\"],[14,1,\\\"id_register_email\\\"],[14,\\\"autocomplete\\\",\\\"email\\\"],[15,2,[30,0,[\\\"email\\\"]]],[15,\\\"oninput\\\",[30,0,[\\\"updateEmail\\\"]]],[12],[13],[41,[33,6],[[[10,0],[14,5,\\\"margin-top:5px; font-size: small; color:white;\\\"],[12],[1,[34,7]],[13]],[]],null],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[14,5,\\\"width:100%;margin: 10px;\\\"],[12],[10,0],[14,5,\\\"color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[12],[1,\\\"Username\\\"],[13],[10,0],[12],[1,\\\"*\\\"],[13],[13],[10,\\\"input\\\"],[14,1,\\\"id_register_username\\\"],[14,\\\"autocomplete\\\",\\\"username\\\"],[15,2,[30,0,[\\\"username\\\"]]],[15,\\\"oninput\\\",[30,0,[\\\"updateUsername\\\"]]],[12],[13],[41,[33,8],[[[10,0],[14,5,\\\"margin-top:5px; font-size: small; color:white;\\\"],[12],[1,[34,9]],[13]],[]],null],[13],[13],[10,0],[14,5,\\\"width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[14,5,\\\"width:100%;margin: 10px;\\\"],[12],[10,0],[14,5,\\\"color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[10,0],[12],[1,\\\"Password\\\"],[13],[10,0],[12],[1,\\\"*\\\"],[13],[13],[10,\\\"input\\\"],[14,1,\\\"id_register_password\\\"],[14,\\\"autocomplete\\\",\\\"current-password\\\"],[15,\\\"oninput\\\",[30,0,[\\\"updatePassword\\\"]]],[15,2,[30,0,[\\\"password\\\"]]],[14,4,\\\"password\\\"],[12],[13],[10,0],[14,5,\\\"margin-top:5px; font-size: small; color:white;\\\"],[12],[1,[30,0,[\\\"passwordStrengthText\\\"]]],[13],[10,0],[14,5,\\\"height:5px; width:100%; background:#ddd; border-radius:5px; overflow:hidden; margin-top:5px;\\\"],[12],[10,0],[15,5,[30,0,[\\\"passwordStrengthBarStyle\\\"]]],[12],[13],[13],[13],[13],[10,0],[14,5,\\\"display: flex;flex-direction: column;align-items: center;margin: 10px;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"id_button\\\"],[4,[38,3],[[30,0],\\\"submitRegistration\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Create\\\"],[13],[13],[41,[33,4],[[[10,0],[14,5,\\\"width: auto; padding-top:5px;\\\"],[14,0,\\\"center pulse_loader\\\"],[12],[13]],[]],null],[41,[33,5],[[[10,0],[12],[1,[30,0,[\\\"errorMessage\\\"]]],[13]],[]],null]],[]]],[13],[13],[46,[28,[37,11],null,null],null,null,null]],[],false,[\\\"page-title\\\",\\\"if\\\",\\\"isSuccessful\\\",\\\"action\\\",\\\"loading\\\",\\\"errorMessage\\\",\\\"isValidEmail\\\",\\\"emailTips\\\",\\\"isValidUsername\\\",\\\"usernameTips\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/register.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"NZO04Kda\",\"block\":\"[[[1,[28,[35,0],[\\\"Reset Password\\\"],null]],[10,0],[14,5,\\\"justify-content: center;display: flex;\\\"],[12],[10,0],[14,5,\\\"margin-top: 100px;width: 30%;border: solid;border-radius: 10px;padding: 15px;border-color: white;display: flex;flex-direction: column;align-items: center;background: linear-gradient(to bottom, #4A6A9C 0%, #ffffff 100%);\\\"],[12],[10,0],[14,5,\\\"font-size: 30px;color: white;justify-self: center;margin-bottom: 20px;\\\"],[12],[1,\\\"Reset Password\\\"],[13],[10,0],[14,5,\\\"margin: 10px;\\\"],[12],[41,[33,2],[[[10,0],[14,5,\\\"margin-bottom: 50px;color: white;font-size: medium;\\\"],[12],[1,\\\"Password has been updated. You can now log in.\\\"],[13]],[]],[[[10,0],[14,5,\\\"color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[1,\\\"Password\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"reset_password\\\"],[15,2,[36,3]],[15,\\\"onchange\\\",[28,[37,4],[[30,0],\\\"updateField\\\",\\\"password\\\"],null]],[14,4,\\\"password\\\"],[12],[13],[10,0],[14,5,\\\"margin-top: 20px;color: white;width:100%;display:flex;flex-direction:row;align-items:center;font-size: small;\\\"],[12],[1,\\\"Confirm Password\\\"],[13],[10,\\\"input\\\"],[14,1,\\\"reset_confirm_password\\\"],[15,2,[36,5]],[15,\\\"onchange\\\",[28,[37,4],[[30,0],\\\"updateField\\\",\\\"passwordConfirm\\\"],null]],[14,4,\\\"password\\\"],[12],[13],[10,0],[14,5,\\\"display: flex;flex-direction: column;align-items: center;margin: 10px;\\\"],[12],[11,\\\"button\\\"],[24,1,\\\"id_button\\\"],[4,[38,4],[[30,0],\\\"submit\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Save\\\"],[13],[13]],[]]],[13],[41,[33,6],[[[10,0],[14,5,\\\"width: auto; padding-top:5px;\\\"],[14,0,\\\"center pulse_loader\\\"],[12],[13]],[]],null],[41,[33,7],[[[10,0],[12],[1,[30,0,[\\\"errorMessage\\\"]]],[13]],[]],null],[13],[13],[46,[28,[37,9],null,null],null,null,null]],[],false,[\\\"page-title\\\",\\\"if\\\",\\\"success\\\",\\\"password\\\",\\\"action\\\",\\\"passwordConfirm\\\",\\\"loading\\\",\\\"errorMessage\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/reset-password.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9J3vvV7e\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,5,\\\"padding-top: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,2]],[10,0],[14,0,\\\"mt-1\\\"],[12],[41,[33,4],[[[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13]],[]],null],[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13],[10,\\\"h3\\\"],[12],[1,\\\"Events\\\"],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-3\\\"],[12],[1,[28,[35,5],null,[[\\\"searchValue\\\"],[[33,6]]]]],[13],[10,0],[14,0,\\\"col-sm-2\\\"],[12],[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,7],null,[[\\\"page_size\\\",\\\"page_type\\\",\\\"model\\\"],[[33,8],\\\"seismic-events\\\",[30,1,[\\\"seismicEvents\\\"]]]]]],[13],[13],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[11,\\\"button\\\"],[24,5,\\\"margin-top: 0.5rem; margin-bottom: 0.25rem\\\"],[16,0,[29,[\\\"btn btn-sm mr-1 \\\",[52,[33,9],\\\"btn-primary\\\",\\\"btn-secondary\\\"]]]],[24,4,\\\"button\\\"],[4,[38,10],[[30,0],\\\"toggleProperty\\\",\\\"isVisibleImportDataForm\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"download\\\"]],null],[1,\\\"  Import data\\\"],[13],[13],[41,[33,9],[[[1,[28,[35,12],null,[[\\\"isVisibleError\\\"],[[33,13]]]]]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,14],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"seismicEvents\\\",\\\"meta\\\"]],\\\"seismic-events\\\",[28,[37,15],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[1,[28,[35,16],null,[[\\\"seismicEvents\\\",\\\"seismicTypesSelectOptions\\\",\\\"seismicTypesSelectOptionsKyes\\\",\\\"vewRowDetails\\\",\\\"isVisibleCreateNewForm\\\",\\\"dateFormat\\\",\\\"setProp\\\"],[[33,17,[\\\"seismicEvents\\\"]],[33,17,[\\\"seismicTypes\\\"]],\\\"id,title\\\",[28,[37,10],[[30,0],\\\"vewRowDetails\\\"],null],[33,18],\\\"YYYY-MM-DD HH:mm:ss\\\",[28,[37,10],[[30,0],\\\"updateProperty\\\"],null]]]]],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[1,[28,[35,19],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Timestamp\\\",\\\"timestamp\\\",[33,20],[28,[37,10],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,19],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Location\\\",\\\"location\\\",[33,20],[28,[37,10],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,19],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Moment magnitude\\\",\\\"moment_magnitude\\\",[33,20],[28,[37,10],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,19],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Seismic moment\\\",\\\"seismic_moment\\\",[33,20],[28,[37,10],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,19],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sort\\\"],[\\\"Source Radius\\\",\\\"source_radius\\\",[33,20],[28,[37,10],[[30,0],\\\"sortBy\\\"],null]]]]],[1,[28,[35,19],null,[[\\\"title\\\",\\\"sortProperty\\\",\\\"selectedSortProperty\\\",\\\"sortBy\\\"],[\\\"Energy\\\",\\\"energy\\\",[33,20],[28,[37,10],[[30,0],\\\"sortBy\\\"],null]]]]],[10,\\\"th\\\"],[14,1,\\\"add-new\\\"],[14,0,\\\"add-new-item\\\"],[12],[11,1],[24,0,\\\"add-new\\\"],[4,[38,10],[[30,0],\\\"updateProperty\\\",\\\"isVisibleCreateNewForm\\\",\\\"true\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"plus\\\"]],null],[1,\\\" New\\\"],[13],[13],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,22],[[28,[37,22],[[33,17,[\\\"seismicEvents\\\"]]],null]],null],null,[[[10,\\\"tr\\\"],[15,0,[29,[[28,[37,23],[[28,[37,24],[[33,25],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"timestamp\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"location\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"momentMagnitude\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"seismicMoment\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"sourceRadius\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,2,[\\\"energy\\\"]]],[13],[10,\\\"td\\\"],[14,0,\\\"crud-td\\\"],[12],[11,1],[24,0,\\\"crud remove\\\"],[4,[38,10],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"trash\\\"]],null],[13],[11,1],[24,0,\\\"crud view\\\"],[4,[38,10],[[30,0],\\\"vewRowDetails\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[8,[39,11],null,[[\\\"@icon\\\"],[\\\"eye\\\"]],null],[13],[10,0],[15,0,[29,[\\\"delete-confirmation \\\",[28,[37,23],[[28,[37,24],[[33,26],[30,2,[\\\"id\\\"]]],null]],null]]]],[12],[10,1],[14,0,\\\"crud-delete-message\\\"],[12],[10,1],[12],[10,\\\"small\\\"],[12],[1,\\\"Delete it?\\\"],[13],[10,\\\"small\\\"],[12],[1,\\\"Are you sure?\\\"],[13],[13],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-confirm\\\"],[4,[38,10],[[30,0],\\\"remove\\\",[33,17,[\\\"seismicEvents\\\"]],[30,2]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"Yes\\\"],[13],[11,1],[24,0,\\\"crud-delete-action crud-delete-cancel\\\"],[4,[38,10],[[30,0],\\\"toggleRowDeleteConfirmationDialog\\\",[30,2,[\\\"id\\\"]]],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,\\\"No\\\"],[13],[13],[13],[13],[41,[28,[37,24],[[33,25],[30,2,[\\\"id\\\"]]],null],[[[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[12],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"2\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"timestamp\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Timestamp:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,27],null,[[\\\"object\\\",\\\"field\\\",\\\"format\\\"],[[30,2],\\\"timestamp\\\",\\\"YYYY-MM-DD HH:mm:ss\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"location\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Location:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"location\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"coordinates\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Coordinates:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,29],null,[[\\\"object\\\",\\\"east\\\",\\\"north\\\",\\\"depth\\\"],[[30,2],[30,2,[\\\"east\\\"]],[30,2,[\\\"north\\\"]],[30,2,[\\\"depth\\\"]]]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"comments\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Comments:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"textarea\\\",\\\"comments\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"isVisible\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Is visible:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,30],null,[[\\\"object\\\",\\\"field\\\"],[[30,2],\\\"isVisible\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"momentMagnitude\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Moment magnitude:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"momentMagnitude\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"seismicMoment\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Seismic moment:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"seismicMoment\\\"]]]],[13],[13],[13],[13],[13],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"4\\\"],[14,0,\\\"td_details\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"row_details form-inline\\\"],[12],[10,\\\"tbody\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"sourceRadius\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Source radius:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"sourceRadius\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"peakParticleVelocity\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"PPV (m/s):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"peakParticleVelocity\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"peakParticleAcceleration\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"PPA (m/s\\\"],[10,\\\"sup\\\"],[12],[1,\\\"2\\\"],[13],[1,\\\"):\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"peakParticleAcceleration\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"energy\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Energy:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,28],null,[[\\\"object\\\",\\\"inputType\\\",\\\"field\\\"],[[30,2],\\\"text\\\",\\\"energy\\\"]]]],[13],[13],[10,\\\"tr\\\"],[12],[10,\\\"td\\\"],[12],[10,\\\"label\\\"],[15,\\\"for\\\",[29,[[30,2,[\\\"seismicType\\\",\\\"title\\\"]]]]],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"Seismic type:\\\"],[13],[13],[10,\\\"td\\\"],[14,0,\\\"input\\\"],[12],[1,[28,[35,31],null,[[\\\"selectOptions\\\",\\\"selectOptionsKyes\\\",\\\"object\\\",\\\"parentObject\\\",\\\"field\\\",\\\"valueSource\\\"],[[33,17,[\\\"seismicTypes\\\"]],\\\"id,title\\\",[30,2,[\\\"seismicType\\\"]],[30,2],\\\"title\\\",\\\"id\\\"]]]],[13],[13],[13],[13],[13],[13]],[]],null]],[2]],null],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,14],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"seismicEvents\\\",\\\"meta\\\"]],\\\"seismic-events\\\",[28,[37,15],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,0,\\\"pb-1\\\"],[12],[13],[13]],[\\\"@model\\\",\\\"tableRow\\\"],false,[\\\"component\\\",\\\"-outlet\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"permissionError\\\",\\\"filter-text-input-events\\\",\\\"search\\\",\\\"page-item-count\\\",\\\"page_size\\\",\\\"isVisibleImportDataForm\\\",\\\"action\\\",\\\"fa-icon\\\",\\\"data-import-form-seis\\\",\\\"isVisibleError\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"create-new-seismic-event-form\\\",\\\"model\\\",\\\"isVisibleCreateNewForm\\\",\\\"sortable-table-header\\\",\\\"ordering\\\",\\\"each\\\",\\\"-track-array\\\",\\\"active-class\\\",\\\"get\\\",\\\"isVisibleRowDetails\\\",\\\"isRowDeleteConfirmationDialog\\\",\\\"single-save-datetime-picker\\\",\\\"single-save-input\\\",\\\"single-save-geo-input\\\",\\\"single-save-checkbox\\\",\\\"single-save-select\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/seismic-events.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"C7Gt2g8s\",\"block\":\"[[[1,[28,[35,0],[\\\"Sensor Calibration\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[34,2]],[13],[13],[13]],[],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"analytics/sensorCalibrationAnalyticsMainPage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/sensor-calibration-analytics.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ekjzLfGk\",\"block\":\"[[[1,[28,[35,0],[\\\"Sensor Calibration\\\"],null]],[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,1]],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[1,[28,[35,2],null,[[\\\"typeProfileList\\\",\\\"instrumentProfileList\\\",\\\"rigProfileList\\\",\\\"calibrationprofileList\\\"],[[30,1,[\\\"sensorTypeList\\\"]],[30,1,[\\\"instrumentProfileList\\\"]],[30,1,[\\\"rigProfileList\\\"]],[30,1,[\\\"calibrationProfileList\\\"]]]]]],[13],[13],[13]],[\\\"@model\\\"],false,[\\\"page-title\\\",\\\"bread-crumbs\\\",\\\"production/calibrationMainPage\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/sensor-calibration.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ISEdT0t3\",\"block\":\"[[[1,[28,[35,0],[\\\"Settings\\\"],null]],[10,0],[14,5,\\\"display:flex;flex-direction:row;\\\"],[14,0,\\\"container-fluid\\\"],[12],[10,0],[14,0,\\\"settings-sidebar\\\"],[12],[1,[28,[35,1],null,[[\\\"currentTab\\\"],[[33,2]]]]],[13],[41,[28,[37,4],[[33,2],\\\"GENERAL\\\"],null],[[[10,0],[14,0,\\\"settings-body\\\"],[12],[1,[28,[35,5],null,[[\\\"model\\\"],[[33,6]]]]],[13]],[]],null],[41,[28,[37,4],[[33,2],\\\"MORE\\\"],null],[[[10,0],[14,0,\\\"settings-body\\\"],[12],[1,[28,[35,7],null,[[\\\"model\\\"],[[33,6]]]]],[13]],[]],null],[41,[28,[37,4],[[33,2],\\\"ABOUT\\\"],null],[[[10,0],[14,0,\\\"settings-body\\\"],[12],[1,[28,[35,8],null,[[\\\"model\\\"],[[33,6]]]]],[13]],[]],null],[13],[46,[28,[37,10],null,null],null,null,null]],[],false,[\\\"page-title\\\",\\\"settings-sidebar\\\",\\\"currentTab\\\",\\\"if\\\",\\\"is-equal\\\",\\\"settings-general\\\",\\\"model\\\",\\\"settings-more\\\",\\\"settings-about\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/settings.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"As7gtHHM\",\"block\":\"[[[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,0]],[10,0],[14,0,\\\"mt-1\\\"],[12],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-9\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,[52,[33,2],[33,3]]],[1,\\\" \\\"],[1,[52,[33,2],[33,4]]],[1,\\\" \\\"],[1,[52,[33,2],[33,5]]],[13],[10,\\\"h6\\\"],[12],[1,[52,[33,2],[33,6]]],[13],[41,[33,7],[[[10,\\\"label\\\"],[12],[1,\\\"Thermostrings show the Temperature channel from the head as anchor 0.\\\"],[13]],[]],null],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Chart\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,8],null,[[\\\"selected\\\",\\\"instrumentType\\\",\\\"instrumentId\\\"],[[33,9],[33,10],[33,5]]]]],[13],[13],[13],[41,[33,11],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-05\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Group By\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,12],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"groupTime\\\",\\\"groupWindow\\\"],[[33,5],[33,13],[33,11],[33,14]]]]],[13],[13],[13]],[]],null],[41,[33,14],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-05\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Group By\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,12],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"groupTime\\\",\\\"groupWindow\\\"],[[33,5],[33,13],[33,11],[33,14]]]]],[13],[13],[13]],[]],null],[41,[33,11],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-05\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\" \\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,15],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"frequencySelect\\\"],[[33,5],[33,13],[33,16]]]]],[13],[13],[13]],[]],null],[41,[33,14],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-05\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\" \\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,17],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"frequencySelect\\\"],[[33,5],[33,13],[33,16]]]]],[13],[13],[13]],[]],null],[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Event type\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,18],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"eventType\\\"],[[33,5],[33,13],[33,19]]]]],[13],[13],[13],[41,[28,[37,20],[[33,19],\\\"blast\\\"],null],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Blast type\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,21],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"blastType\\\"],[[33,5],[33,13],[33,22]]]]],[13],[13],[13]],[]],null],[41,[28,[37,20],[[33,19],\\\"seismic\\\"],null],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Seismic type\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,23],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"seismicType\\\"],[[33,5],[33,13],[33,24]]]]],[13],[13],[13]],[]],null],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[6,[39,25],null,[[\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,26],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,27],[[33,5],[33,13]],null]]],[[\\\"default\\\"],[[[[1,\\\"Reset zoom\\\"]],[]]]]],[13],[13],[13],[10,0],[14,0,\\\"col-sm-3\\\"],[12],[10,0],[14,0,\\\"form-group mb-0 mr-05 pull-right\\\"],[12],[41,[33,5],[[[41,[28,[37,20],[[33,9],\\\"Displacement\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,28],[[30,0],\\\"toggleProperty\\\",\\\"zeroed\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,29],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"zeroed\\\",[33,30],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Time reference\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,20],[[33,31],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,29],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,28],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,29],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,32],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]],[13],[13],[41,[51,[33,34]],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select ref. anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[42,[28,[37,36],[[28,[37,36],[[33,37]],null]],null],null,[[[6,[39,25],null,[[\\\"tagName\\\",\\\"type\\\",\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"button\\\",\\\"button\\\",\\\"btn btn-outline-primary nowrap\\\",[28,[37,26],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\"],[\\\"\\\",[30,1,[\\\"number\\\"]]]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,27],[[33,5],[33,13]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,1,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[1]],null],[13],[13],[13],[13]],[]],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select ref. anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[42,[28,[37,36],[[28,[37,36],[[33,38]],null]],null],null,[[[6,[39,25],null,[[\\\"tagName\\\",\\\"type\\\",\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"button\\\",\\\"button\\\",\\\"btn btn-outline-primary nowrap\\\",[28,[37,26],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\"],[\\\"\\\",[30,2,[\\\"number\\\"]]]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,27],[[33,5],[33,13]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,2,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[2]],null],[13],[13],[13],[13]],[]]]],[]],null],[41,[28,[37,20],[[33,9],\\\"Displacement\\\"],null],[[[41,[33,39],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"Second group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[6,[39,25],null,[[\\\"tagName\\\",\\\"type\\\",\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"button\\\",\\\"button\\\",\\\"btn btn-outline-primary nowrap\\\",[28,[37,26],null,[[\\\"ref_head_position\\\",\\\"side\\\"],[\\\"\\\",\\\"A\\\"]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,27],[[33,5],[33,13]],null]]],[[\\\"default\\\"],[[[[1,\\\"Side A\\\"]],[]]]]],[6,[39,25],null,[[\\\"tagName\\\",\\\"type\\\",\\\"class\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[\\\"button\\\",\\\"button\\\",\\\"btn btn-outline-primary nowrap\\\",[28,[37,26],null,[[\\\"ref_head_position\\\",\\\"side\\\"],[\\\"\\\",\\\"B\\\"]]],\\\"spatial-graphs.spatial-graph\\\",[28,[37,27],[[33,5],[33,13]],null]]],[[\\\"default\\\"],[[[[1,\\\"Side B\\\"]],[]]]]],[13],[13],[13],[13]],[]],null]],[]],null],[41,[28,[37,20],[[33,9],\\\"Temperature\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,28],[[30,0],\\\"toggleProperty\\\",\\\"zeroed\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,29],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"zeroed\\\",[33,30],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Time reference\\\"],[13],[13],[13],[13]],[]],null]],[]],null],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[46,[28,[37,41],null,null],null,null,null],[13],[13],[13]],[\\\"anchor\\\",\\\"anchor\\\"],false,[\\\"bread-crumbs\\\",\\\"if\\\",\\\"displayData\\\",\\\"instrumentType\\\",\\\"name\\\",\\\"instrumentId\\\",\\\"details\\\",\\\"isThermo\\\",\\\"spatial-chart-dropdown\\\",\\\"chartDataValueName\\\",\\\"instrumentTypeId\\\",\\\"groupTime\\\",\\\"spatial-group-dropdown\\\",\\\"modelName\\\",\\\"groupWindow\\\",\\\"spatial-time-dropdown\\\",\\\"frequencySelect\\\",\\\"spatial-window-dropdown\\\",\\\"spatial-event-dropdown\\\",\\\"eventType\\\",\\\"is-equal\\\",\\\"spatial-blast-dropdown\\\",\\\"blastType\\\",\\\"spatial-seismic-dropdown\\\",\\\"seismicType\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"action\\\",\\\"input\\\",\\\"timeRef\\\",\\\"refHeadPosition\\\",\\\"flipSigns\\\",\\\"unless\\\",\\\"isAdictMDT\\\",\\\"each\\\",\\\"-track-array\\\",\\\"instrumentAnchorsSorted\\\",\\\"instrumentAnchorsForAdictMDT\\\",\\\"isRebar\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/spatial-graphs.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Ll1H94Yn\",\"block\":\"[[[10,0],[14,0,\\\"spinner-yp-logo v_centered_abs_pos h_centered_abs_pos mt-2\\\"],[12],[10,\\\"img\\\"],[14,\\\"src\\\",\\\"/assets/images/logo-no-text.png\\\"],[14,0,\\\"d-block mx-auto\\\"],[12],[13],[13]],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/spatial-graphs/spatial-graph-loading.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"Oy9RwLxC\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,0,\\\"mb-1\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-12\\\"],[12],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],1],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],2],null],[[[1,[28,[35,6],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],3],null],[[[1,[28,[35,7],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],4],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],5],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],6],null],[[[1,\\\"BluTilt\\\"]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],7],null],[[[1,[28,[35,8],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],8],null],[[[1,[28,[35,9],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],9],null],[[[1,[28,[35,10],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],10],null],[[[1,[28,[35,11],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],11],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],12],null],[[[1,[28,[35,12],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],13],null],[[[1,[28,[35,13],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],14],null],[[[1,\\\"Analog\\\"]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],15],null],[[[1,\\\"BluVibe\\\"]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],16],null],[[[1,[28,[35,14],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],17],null],[[[1,[28,[35,15],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],19],null],[[[1,[28,[35,16],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[13],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13]],[\\\"@model\\\"],false,[\\\"component\\\",\\\"-outlet\\\",\\\"if\\\",\\\"eq\\\",\\\"pack/nvd3-spatial-line-chart\\\",\\\"action\\\",\\\"cable/nvd3-spatial-line-chart\\\",\\\"rebar/nvd3-spatial-line-chart\\\",\\\"slough/nvd3-spatial-line-chart\\\",\\\"thermo/nvd3-spatial-line-chart\\\",\\\"piezo/nvd3-spatial-line-chart\\\",\\\"hid/nvd3-spatial-line-chart\\\",\\\"wire/nvd3-spatial-line-chart\\\",\\\"adict/nvd3-spatial-line-chart\\\",\\\"micro/nvd3-spatial-line-chart\\\",\\\"rebarv2/nvd3-spatial-line-chart\\\",\\\"dppc/nvd3-spatial-line-chart\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/spatial-graphs/spatial-graph.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"8EtNk+J0\",\"block\":\"[[[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,0]],[10,0],[14,0,\\\"mt-1\\\"],[12],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-6\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,[52,[33,2],\\\"\\\"]],[1,\\\" \\\"],[1,[52,[28,[37,3],[[33,4],\\\"Blu900\\\"],null],\\\"Selected Gateway:\\\"]],[1,\\\" \\\"],[1,[52,[28,[37,3],[[33,4],\\\"Blu900\\\"],null],[33,2]]],[1,\\\" \\\"],[13],[10,\\\"h5\\\"],[12],[1,[52,[33,5],[33,4]]],[1,\\\" \\\"],[1,[52,[33,5],[33,6]]],[1,\\\" \\\"],[1,[52,[33,5],[33,7]]],[13],[10,\\\"h6\\\"],[12],[1,[52,[33,5],[33,8]]],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Chart    \\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,9],null,[[\\\"selected\\\",\\\"gatewayType\\\",\\\"gatewayId\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\",\\\"chart_parent_gateway\\\"],[[33,10],[33,11],[33,6],[33,12],[33,13],[33,14],[33,2]]]]],[13],[13],[13],[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Secondary Axis\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,15],null,[[\\\"gatewayId\\\",\\\"gatewayType\\\",\\\"selected\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\",\\\"chart_parent_gateway\\\"],[[33,6],[33,11],[33,10],[33,12],[33,13],[33,14],[33,2]]]]],[13],[13],[13],[13],[41,[33,6],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,16],null,[[\\\"type\\\",\\\"name\\\",\\\"click\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"adjust_scales\\\",\\\"'toggleLocalProperty' 'adjust_scales'\\\",[33,17],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Adjust Scales\\\"],[13],[13],[13],[13],[41,[33,17],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group d-inline-block\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,5,\\\"padding-left:15px\\\"],[14,0,\\\"col-md-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Primary Y-Axis\\\"],[13],[10,\\\"hr\\\"],[14,5,\\\"height: 2px; background: black;\\\"],[12],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,16],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"click\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"auto_scale\\\",[33,18],\\\"'toggleLocalProperty' 'auto_scale'\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Auto Scale\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMaxValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Max:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,19]],[15,\\\"oninput\\\",[28,[37,20],[[30,0],[28,[37,21],[[33,19]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMax\\\"],[15,\\\"disabled\\\",[36,18]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMinValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Min:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,22]],[15,\\\"oninput\\\",[28,[37,20],[[30,0],[28,[37,21],[[33,22]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMin\\\"],[15,\\\"disabled\\\",[36,18]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[10,0],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group d-inline-block\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,5,\\\"padding-left:15px\\\"],[14,0,\\\"col-md-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Secondary Y-Axis\\\"],[13],[10,\\\"hr\\\"],[14,5,\\\"height: 2px; background: black;\\\"],[12],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,16],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"click\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"auto_scale_2\\\",[33,23],\\\"'toggleLocalProperty' 'auto_scale_2'\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Auto Scale\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMaxValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Max:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,24]],[15,\\\"oninput\\\",[28,[37,20],[[30,0],[28,[37,21],[[33,24]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMax2\\\"],[15,\\\"disabled\\\",[36,23]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMinValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Min:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,25]],[15,\\\"oninput\\\",[28,[37,20],[[30,0],[28,[37,21],[[33,25]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMin2\\\"],[15,\\\"disabled\\\",[36,23]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[13]],[]],null]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[6,[39,26],null,[[\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,27],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-gateway-graphs.temporal-gateway-graph\\\",[28,[37,28],[[33,6],[33,14]],null]]],[[\\\"default\\\"],[[[[1,\\\"Reset zoom\\\"]],[]]]]],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[46,[28,[37,30],null,null],null,null,null],[13],[13],[13]],[],false,[\\\"bread-crumbs\\\",\\\"if\\\",\\\"chart_parent_gateway\\\",\\\"eq\\\",\\\"gatewayType\\\",\\\"displayData\\\",\\\"gatewayId\\\",\\\"name\\\",\\\"details\\\",\\\"temporal-gateway-chart-dropdown\\\",\\\"chartDataValueName\\\",\\\"gatewayTypeId\\\",\\\"left_axis_field\\\",\\\"right_axis_field\\\",\\\"modelName\\\",\\\"temporal-gateway-right-axis-dropdown\\\",\\\"input\\\",\\\"adjust_scales\\\",\\\"auto_scale\\\",\\\"y_max\\\",\\\"action\\\",\\\"mut\\\",\\\"y_min\\\",\\\"auto_scale_2\\\",\\\"y_max_2\\\",\\\"y_min_2\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/temporal-gateway-graphs.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"gn1qkCa0\",\"block\":\"[[[10,0],[14,0,\\\"spinner-yp-logo v_centered_abs_pos h_centered_abs_pos mt-2\\\"],[12],[10,\\\"img\\\"],[14,\\\"src\\\",\\\"/assets/images/logo-no-text.png\\\"],[14,0,\\\"d-block mx-auto\\\"],[12],[13],[13]],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/temporal-gateway-graphs/temporal-gateway-graph-loading.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"9fgjp8FU\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,0,\\\"mb-1\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-12\\\"],[12],[41,[28,[37,3],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],1],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"zoomTempData\\\",\\\"depth\\\",\\\"gateway\\\",\\\"chartData\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,1,[\\\"gateway\\\"]],[30,1,[\\\"graphs\\\"]],[30,3],[30,4],[30,5],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],2],null],[[[1,[28,[35,6],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"zoomTempData\\\",\\\"depth\\\",\\\"gateway\\\",\\\"chartData\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,1,[\\\"gateway\\\"]],[30,1,[\\\"graphs\\\"]],[30,3],[30,4],[30,5],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],3],null],[[[1,[28,[35,7],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"zoomTempData\\\",\\\"depth\\\",\\\"gateway\\\",\\\"chartData\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,1,[\\\"gateway\\\"]],[30,1,[\\\"graphs\\\"]],[30,3],[30,4],[30,5],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],4],null],[[[1,[28,[35,8],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"zoomTempData\\\",\\\"depth\\\",\\\"gateway\\\",\\\"chartData\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,1,[\\\"gateway\\\"]],[30,1,[\\\"graphs\\\"]],[30,3],[30,4],[30,5],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],5],null],[[[1,[28,[35,9],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"zoomTempData\\\",\\\"depth\\\",\\\"gateway\\\",\\\"chartData\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,1,[\\\"gateway\\\"]],[30,1,[\\\"graphs\\\"]],[30,3],[30,4],[30,5],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"gateway\\\",\\\"gatewayTypeID\\\"]],6],null],[[[1,[28,[35,10],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"zoomTempData\\\",\\\"depth\\\",\\\"gateway\\\",\\\"chartData\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,1,[\\\"gateway\\\"]],[30,1,[\\\"graphs\\\"]],[30,3],[30,4],[30,5],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[13],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13]],[\\\"@model\\\",\\\"@depth\\\",\\\"@auto_scale\\\",\\\"@y_min\\\",\\\"@y_max\\\"],false,[\\\"component\\\",\\\"-outlet\\\",\\\"if\\\",\\\"eq\\\",\\\"blucell/nvd3-temporal-gateway-line-chart\\\",\\\"action\\\",\\\"blugate/nvd3-temporal-gateway-line-chart\\\",\\\"blu900gw/nvd3-temporal-gateway-line-chart\\\",\\\"blu900node/nvd3-temporal-gateway-line-chart\\\",\\\"oneforone/nvd3-temporal-gateway-line-chart\\\",\\\"vibe/nvd3-temporal-gateway-line-chart\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/temporal-gateway-graphs/temporal-gateway-graph.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"ZpGx1k2m\",\"block\":\"[[],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/temporal-gateway-right-axis-dropdown.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"R/+WXzlI\",\"block\":\"[[[10,0],[14,0,\\\"container-fluid\\\"],[12],[1,[34,0]],[10,0],[14,0,\\\"mt-1\\\"],[12],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-6\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"h5\\\"],[12],[1,[52,[33,2],[33,3]]],[1,\\\" \\\"],[1,[52,[33,2],[33,4]]],[1,\\\" \\\"],[1,[52,[33,2],[33,5]]],[13],[10,\\\"h6\\\"],[12],[1,[52,[33,2],[33,6]]],[13],[41,[33,7],[[[10,\\\"label\\\"],[12],[1,\\\"Thermostrings show the Temperature channel from the head as anchor 0.\\\"],[13]],[]],null],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Chart \\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[41,[33,8],[[[1,[28,[35,9],null,[[\\\"selected\\\",\\\"instrumentType\\\",\\\"instrumentId\\\",\\\"instrument\\\"],[[33,10],[33,11],[33,5],[33,12]]]]]],[]],null],[41,[51,[33,8]],[[[41,[33,14],[[[1,[28,[35,9],null,[[\\\"selected\\\",\\\"instrumentType\\\",\\\"instrumentId\\\",\\\"instrument\\\"],[[33,10],[33,11],[33,5],[33,12]]]]]],[]],null],[41,[51,[33,14]],[[[41,[33,15],[[[1,[28,[35,9],null,[[\\\"selected\\\",\\\"instrumentType\\\",\\\"instrumentId\\\",\\\"instrument\\\"],[[33,10],[33,11],[33,5],[33,12]]]]]],[]],[[[1,[28,[35,9],null,[[\\\"selected\\\",\\\"instrumentType\\\",\\\"instrumentId\\\",\\\"instrument\\\",\\\"vendor\\\",\\\"port\\\"],[[33,16],[33,11],[33,5],[33,12],[33,17],[33,18]]]]]],[]]]],[]],null]],[]],null],[13],[13],[13],[41,[33,8],[[[10,0],[14,0,\\\"col\\\"],[12],[10,1],[12],[13],[10,\\\"td\\\"],[14,5,\\\"padding-right: 2rem;visibility: hidden;\\\"],[12],[10,0],[14,0,\\\"col-sm-auto mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Number of Display Records:\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,19],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"display_records\\\"],[[33,5],[33,20],[33,21]]]]],[13],[13],[13],[13]],[]],null],[41,[33,22],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-05\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Group By\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,23],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"window\\\"],[[33,5],[33,20],[33,24]]]]],[13],[13],[13],[41,[33,8],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Event type\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,25],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"eventType\\\"],[[33,5],[33,20],[33,26]]]]],[13],[13],[13]],[]],null],[41,[33,27],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select BluVibe\\\"],[13],[1,[28,[35,28],null,[[\\\"content\\\",\\\"selected\\\",\\\"id\\\",\\\"sortBy\\\",\\\"prompt\\\",\\\"searchPrompt\\\",\\\"isClearable\\\",\\\"on-change\\\"],[[33,29],[33,30],\\\"vibeSelect\\\",\\\"title\\\",\\\"BluVibe ID\\\",\\\"Filter\\\",false,[28,[37,31],[[30,0],\\\"onUpdateTransitionToVibe\\\"],null]]]]],[13],[13]],[]],null],[41,[33,8],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-05\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Group Window\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,32],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"frequency\\\"],[[33,5],[33,20],[33,33]]]]],[13],[13],[13]],[]],null]],[]],null],[41,[28,[37,34],[[33,26],\\\"blast\\\"],null],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Blast type\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,35],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"blastType\\\"],[[33,5],[33,20],[33,36]]]]],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,26],\\\"seismic\\\"],null],[[[10,0],[14,0,\\\"col-sm-auto\\\"],[12],[10,0],[14,0,\\\"form-group pull-left mr-1\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Seismic type\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,37],null,[[\\\"instrumentId\\\",\\\"modelName\\\",\\\"seismicType\\\"],[[33,5],[33,20],[33,38]]]]],[13],[13],[13]],[]],null],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"click\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"adjust_scales\\\",\\\"'toggleLocalProperty' 'adjust_scales'\\\",[33,40],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Adjust Scales\\\"],[13],[13],[13],[13],[41,[33,5],[[[41,[28,[37,34],[[33,16],\\\"Displacement\\\"],null],[[[1,[28,[35,41],null,[[\\\"filterType\\\",\\\"displayDateTimeFormat\\\",\\\"displayYAxistUnit\\\",\\\"requireXMaxMin\\\",\\\"requireYLeftMaxMin\\\",\\\"requireYRightMaxMin\\\",\\\"instrumentId\\\",\\\"chartType\\\",\\\"instrumentType\\\"],[\\\"temporal\\\",false,true,false,false,false,[33,5],[33,10],[33,3]]]]]],[]],null]],[]],null],[41,[33,40],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group d-inline-block\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,5,\\\"padding-left:15px\\\"],[14,0,\\\"col-md-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Primary Y-Axis\\\"],[13],[10,\\\"hr\\\"],[14,5,\\\"height: 2px; background: black;\\\"],[12],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"click\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"auto_scale\\\",[33,42],\\\"'toggleLocalProperty' 'auto_scale'\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Auto Scale\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMaxValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Max:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,43]],[15,\\\"oninput\\\",[28,[37,31],[[30,0],[28,[37,44],[[33,43]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMax\\\"],[15,\\\"disabled\\\",[36,42]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMinValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Min:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,45]],[15,\\\"oninput\\\",[28,[37,31],[[30,0],[28,[37,44],[[33,45]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMin\\\"],[15,\\\"disabled\\\",[36,42]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13],[41,[51,[33,8]],[[[10,0],[14,0,\\\"col-md-5\\\"],[12],[10,0],[14,0,\\\"form-group d-inline-block\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,5,\\\"padding-left:15px\\\"],[14,0,\\\"col-md-12\\\"],[12],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Secondary Y-Axis\\\"],[13],[10,\\\"hr\\\"],[14,5,\\\"height: 2px; background: black;\\\"],[12],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"click\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"auto_scale_2\\\",[33,46],\\\"'toggleLocalProperty' 'auto_scale_2'\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Auto Scale\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMaxValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Max:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,47]],[15,\\\"oninput\\\",[28,[37,31],[[30,0],[28,[37,44],[[33,47]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMax2\\\"],[15,\\\"disabled\\\",[36,46]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row no-gutters\\\"],[12],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"label\\\"],[14,\\\"for\\\",\\\"yMinValue\\\"],[14,0,\\\"col-12 col-form-label bold\\\"],[12],[1,\\\"Y-Min:\\\"],[13],[13],[10,0],[14,0,\\\"col-md-4\\\"],[12],[10,\\\"input\\\"],[15,2,[36,48]],[15,\\\"oninput\\\",[28,[37,31],[[30,0],[28,[37,44],[[33,48]],null]],[[\\\"value\\\"],[\\\"target.value\\\"]]]],[14,1,\\\"yScaleMin2\\\"],[15,\\\"disabled\\\",[36,46]],[14,0,\\\"form-control\\\"],[14,4,\\\"text\\\"],[12],[13],[13],[13],[13],[13],[13]],[]],null],[13]],[]],null],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[6,[39,49],null,[[\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,50],null,[[\\\"start_timestamp\\\",\\\"end_timestamp\\\"],[null,null]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"Reset zoom\\\"]],[]]]]],[13],[13],[13],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"form-group mb-0 mr-05 pull-right\\\"],[12],[10,\\\"td\\\"],[14,5,\\\"padding-right: 2rem;\\\"],[12],[41,[33,52],[[[10,\\\"tr\\\"],[12],[1,[28,[35,53],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,31],[[30,0],\\\"toggleDataType\\\",\\\"raw\\\"],null],\\\"Raw Data\\\",[33,54]]]]],[13],[10,\\\"tr\\\"],[12],[1,[28,[35,53],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,31],[[30,0],\\\"toggleDataType\\\",\\\"linear\\\"],null],\\\"Linear Data\\\",[33,55]]]]],[13],[10,\\\"tr\\\"],[12],[1,[28,[35,53],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,31],[[30,0],\\\"toggleDataType\\\",\\\"calib\\\"],null],\\\"Calibrated Data\\\",[33,56]]]]],[13],[10,\\\"tr\\\"],[12],[1,[28,[35,53],null,[[\\\"setValue\\\",\\\"type\\\",\\\"checked\\\"],[[28,[37,31],[[30,0],\\\"toggleDataType\\\",\\\"depth\\\"],null],\\\"Depth (Water)\\\",[33,57]]]]],[13]],[]],null],[41,[51,[33,8]],[[[41,[33,5],[[[41,[28,[37,34],[[33,16],\\\"Displacement\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"zeroed\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"zeroed\\\",[33,58],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Time reference\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[33,52],[[[41,[28,[37,34],[[33,59],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,60],\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]]],[]],[[[41,[28,[37,34],[[33,59],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,60],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]]],[]]],[13],[13],[41,[51,[33,61]],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,34],[[33,3],\\\"multi-dExto\\\"],null],[[[10,\\\"label\\\"],[12],[13]],[]],[[[10,\\\"label\\\"],[12],[1,\\\"Select Reference Anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[13],[42,[28,[37,63],[[28,[37,63],[[33,64]],null]],null],null,[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[30,1,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[30,1,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[30,1,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,1,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[1]],null],[13]],[]]],[13],[13]],[]],[[[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Reference Anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[13],[42,[28,[37,63],[[28,[37,63],[[33,67]],null]],null],null,[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[30,2,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[30,2,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[30,2,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,2,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[2]],null],[13],[13]],[]]]],[]],null]],[]],null],[41,[28,[37,34],[[33,16],\\\"Tilt\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"zeroed\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"zeroed\\\",[33,58],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Time reference\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,60],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13],[13],[13],[41,[33,68],[[[41,[28,[37,34],[[33,68],0],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt Mode: Raw \\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,68],1],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt Mode: Vector\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,68],2],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt Mode: 2-Angle\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,68],3],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt Mode: 3-Angle\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,68],2],null],[[[41,[28,[37,34],[[33,69],0],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt_Z_Up: +Z is UP\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,69],1],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt_Z_Up: +Y is UP\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,69],2],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt_Z_Up: +X is UP\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,69],3],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt_Z_Up: +Z is DOWN\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,69],4],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt_Z_Up: +Y is DOWN\\\"],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,69],5],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Tilt_Z_Up: +X is DOWN\\\"],[13],[13],[13],[13]],[]],null]],[]],null]],[]],null]],[]],null],[41,[28,[37,34],[[33,16],\\\"Stretch\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"zeroed\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"zeroed\\\",[33,58],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Time reference\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,34],[[33,59],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,60],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Reference Anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[42,[28,[37,63],[[28,[37,63],[[33,64]],null]],null],null,[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[30,3,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[30,3,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[30,3,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,3,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[3]],null],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,16],\\\"Axial Displacement\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"zeroed\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"zeroed\\\",[33,58],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Time reference\\\"],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,34],[[33,59],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,60],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Reference Anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[42,[28,[37,63],[[28,[37,63],[[33,64]],null]],null],null,[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[30,4,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[30,4,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[30,4,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,4,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[4]],null],[13],[13],[13],[13]],[]],null],[41,[28,[37,34],[[33,16],\\\"Velocity\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,34],[[33,59],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,60],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]],[13],[13],[41,[51,[33,61]],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,34],[[33,3],\\\"multi-dExto\\\"],null],[[[10,\\\"label\\\"],[12],[13]],[]],[[[10,\\\"label\\\"],[12],[1,\\\"Select Reference Anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[13],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[42,[28,[37,63],[[28,[37,63],[[33,64]],null]],null],null,[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[30,5,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[30,5,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[30,5,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,5,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[5]],null],[13]],[]]],[13],[13]],[]],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Select Reference Anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[41,[28,[37,70],[[30,6,[\\\"referenceAnchor\\\"]],[33,71,[\\\"number\\\"]]],null],[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[33,71,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[33,71,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[33,71,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[33,71,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[]],[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[33,71,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[33,71,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[33,71,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[33,71,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[]]],[13],[13],[13],[13]],[]]]],[]],null],[41,[28,[37,34],[[33,16],\\\"Acceleration\\\"],null],[[[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,\\\"label\\\"],[12],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,34],[[33,59],\\\"hac\\\"],null],[[[10,\\\"label\\\"],[14,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"disabled\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",true,\\\"disabled\\\",\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]],[[[11,\\\"label\\\"],[24,0,\\\"custom-control custom-checkbox mr-sm-2\\\"],[4,[38,31],[[30,0],\\\"toggleProperty\\\",\\\"flip_signs\\\"],[[\\\"on\\\"],[\\\"click\\\"]]],[12],[1,[28,[35,39],null,[[\\\"type\\\",\\\"name\\\",\\\"checked\\\",\\\"class\\\"],[\\\"checkbox\\\",\\\"flip_signs\\\",[33,60],\\\"custom-control-input\\\"]]]],[10,1],[14,0,\\\"custom-control-indicator\\\"],[12],[13],[10,1],[14,0,\\\"custom-control-description noselect\\\"],[12],[1,\\\"Flip signs\\\"],[13],[13]],[]]],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[41,[28,[37,34],[[33,3],\\\"multi-dExto\\\"],null],[[[10,\\\"label\\\"],[12],[13]],[]],[[[10,\\\"label\\\"],[12],[1,\\\"Select Reference Anchor\\\"],[13],[10,0],[14,\\\"role\\\",\\\"toolbar\\\"],[14,\\\"aria-label\\\",\\\"Toolbar with button groups\\\"],[14,0,\\\"btn-toolbar mr-05\\\"],[12],[10,0],[14,\\\"role\\\",\\\"group\\\"],[14,\\\"aria-label\\\",\\\"First group\\\"],[14,0,\\\"btn-group btn-group-sm\\\"],[12],[42,[28,[37,63],[[28,[37,63],[[33,64]],null]],null],null,[[[6,[39,49],null,[[\\\"class\\\",\\\"tagName\\\",\\\"type\\\",\\\"click\\\",\\\"query\\\",\\\"route\\\",\\\"models\\\"],[[28,[37,65],[[30,7,[\\\"number\\\"]],[33,66]],null],\\\"button\\\",\\\"button\\\",[28,[37,31],[[30,0],\\\"handleAnchorSelection\\\",[30,7,[\\\"number\\\"]]],null],[28,[37,50],null,[[\\\"ref_head_position\\\",\\\"ref_anchor\\\",\\\"selectedAnchor\\\"],[\\\"\\\",[30,7,[\\\"number\\\"]],[33,66]]]],\\\"temporal-graphs.temporal-graph\\\",[28,[37,51],[[33,5],[33,20]],null]]],[[\\\"default\\\"],[[[[1,\\\"- \\\"],[1,[30,7,[\\\"number\\\"]]],[1,\\\" -\\\"]],[]]]]]],[7]],null],[13],[13]],[]]],[13],[13]],[]],null]],[]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-sm-12\\\"],[12],[46,[28,[37,73],null,null],null,null,null],[13],[13],[13]],[\\\"anchor\\\",\\\"anchor\\\",\\\"anchor\\\",\\\"anchor\\\",\\\"anchor\\\",\\\"@instrument\\\",\\\"anchor\\\"],false,[\\\"bread-crumbs\\\",\\\"if\\\",\\\"displayData\\\",\\\"instrumentType\\\",\\\"name\\\",\\\"instrumentId\\\",\\\"details\\\",\\\"isThermo\\\",\\\"bluVibe\\\",\\\"temporal-chart-dropdown\\\",\\\"chart_type\\\",\\\"instrumentTypeId\\\",\\\"instrument\\\",\\\"unless\\\",\\\"isPiezo\\\",\\\"isDPPC\\\",\\\"chartDataValueName\\\",\\\"vendor\\\",\\\"port\\\",\\\"temporal-display-records-dropdown\\\",\\\"modelName\\\",\\\"display_records\\\",\\\"isVelocityGraph\\\",\\\"temporal-group-dropdown\\\",\\\"window\\\",\\\"temporal-event-dropdown\\\",\\\"eventType\\\",\\\"bluVibeEvent\\\",\\\"searchable-select\\\",\\\"vibes\\\",\\\"vibeSelection\\\",\\\"action\\\",\\\"temporal-window-dropdown\\\",\\\"frequency\\\",\\\"is-equal\\\",\\\"temporal-blast-dropdown\\\",\\\"blastType\\\",\\\"temporal-seismic-dropdown\\\",\\\"seismicType\\\",\\\"input\\\",\\\"adjust_scales\\\",\\\"advanced-filter\\\",\\\"auto_scale\\\",\\\"y_max\\\",\\\"mut\\\",\\\"y_min\\\",\\\"auto_scale_2\\\",\\\"y_max_2\\\",\\\"y_min_2\\\",\\\"link-to\\\",\\\"-hash\\\",\\\"array\\\",\\\"isWire\\\",\\\"radio-buttons\\\",\\\"rawChecked\\\",\\\"linearChecked\\\",\\\"calibChecked\\\",\\\"depthChecked\\\",\\\"timeRef\\\",\\\"refHeadPosition\\\",\\\"flipSigns\\\",\\\"isAdictMDT\\\",\\\"each\\\",\\\"-track-array\\\",\\\"instrumentAnchorsSorted\\\",\\\"buttonclass\\\",\\\"selectedAnchor\\\",\\\"instrumentAnchorsForAdictMDT\\\",\\\"tiltMode\\\",\\\"tiltZUp\\\",\\\"eq\\\",\\\"anchor\\\",\\\"component\\\",\\\"-outlet\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/temporal-graphs.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"WUDvn2rD\",\"block\":\"[[[10,0],[14,0,\\\"spinner-yp-logo v_centered_abs_pos h_centered_abs_pos mt-2\\\"],[12],[10,\\\"img\\\"],[14,\\\"src\\\",\\\"/assets/images/logo-no-text.png\\\"],[14,0,\\\"d-block mx-auto\\\"],[12],[13],[13]],[],false,[]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/temporal-graphs/temporal-graph-loading.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"z4i9Hkvs\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,0,\\\"mb-1\\\"],[12],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-12\\\"],[12],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],1],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],2],null],[[[1,[28,[35,6],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],3],null],[[[1,[28,[35,7],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],4],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],5],null],[[[1,[28,[35,8],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],6],null],[[[1,[28,[35,9],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"tiltMode\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"tiltMode\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],7],null],[[[1,[28,[35,10],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],8],null],[[[1,[28,[35,11],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],9],null],[[[1,[28,[35,12],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],10],null],[[[1,[28,[35,13],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],11],null],[[[1,[28,[35,4],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],12],null],[[[1,[28,[35,14],null,[[\\\"port\\\",\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\",\\\"calib\\\",\\\"depth\\\",\\\"linear\\\"],[[33,15],[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null],[33,16],[33,17],[33,18]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],13],null],[[[1,[28,[35,19],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],14],null],[[[1,\\\"Analog\\\"]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],15],null],[[[1,[28,[35,20],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"chart_type\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],\\\"frequency\\\",[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],16],null],[[[1,[28,[35,21],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],17],null],[[[1,[28,[35,22],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],19],null],[[[1,[28,[35,23],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[41,[28,[37,3],[[30,1,[\\\"instrument\\\",\\\"instrumentTypeID\\\"]],20],null],[[[1,[28,[35,24],null,[[\\\"fullRangeChartData\\\",\\\"zoomChartData\\\",\\\"vibeEvents\\\",\\\"zoomTempData\\\",\\\"linear\\\",\\\"calib\\\",\\\"depth\\\",\\\"instrument\\\",\\\"chartData\\\",\\\"seismicEvents\\\",\\\"blastEvents\\\",\\\"flipSigns\\\",\\\"autoAxis\\\",\\\"axis_min\\\",\\\"axis_max\\\",\\\"updateProperties\\\",\\\"getQueryParams\\\",\\\"setChart\\\",\\\"setData\\\"],[[30,1,[\\\"fullRangeData\\\"]],[30,1,[\\\"zoomData\\\"]],[30,1,[\\\"vibeEvents\\\"]],[30,1,[\\\"zoomTempData\\\"]],[30,2],[30,3],[30,4],[30,1,[\\\"instrument\\\"]],[30,1,[\\\"graphs\\\"]],[30,1,[\\\"seismicEvents\\\"]],[30,1,[\\\"blastEvents\\\"]],[30,5],[30,6],[30,7],[30,8],[28,[37,5],[[30,0],\\\"updateProperties\\\"],null],[28,[37,5],[[30,0],\\\"getQueryParams\\\"],null],[28,[37,5],[[30,0],\\\"setChart\\\"],null],[28,[37,5],[[30,0],\\\"setData\\\"],null]]]]]],[]],null],[13],[13],[13],[10,0],[14,0,\\\"mb-1\\\"],[12],[13]],[\\\"@model\\\",\\\"@linear\\\",\\\"@calib\\\",\\\"@depth\\\",\\\"@flip_signs\\\",\\\"@auto_scale\\\",\\\"@y_min\\\",\\\"@y_max\\\"],false,[\\\"component\\\",\\\"-outlet\\\",\\\"if\\\",\\\"eq\\\",\\\"pack/nvd3-temporal-line-chart\\\",\\\"action\\\",\\\"cable/nvd3-temporal-line-chart\\\",\\\"rebar/nvd3-temporal-line-chart\\\",\\\"dconv/nvd3-temporal-line-chart\\\",\\\"tilt/nvd3-temporal-line-chart\\\",\\\"slough/nvd3-temporal-line-chart\\\",\\\"thermo/nvd3-temporal-line-chart\\\",\\\"piezo/nvd3-temporal-line-chart\\\",\\\"hid/nvd3-temporal-line-chart\\\",\\\"wire/nvd3-temporal-line-chart\\\",\\\"port\\\",\\\"calib\\\",\\\"depth\\\",\\\"linear\\\",\\\"adict/nvd3-temporal-line-chart\\\",\\\"vibe/nvd3-temporal-line-chart\\\",\\\"micro/nvd3-temporal-line-chart\\\",\\\"rebarv2/nvd3-temporal-line-chart\\\",\\\"dppc/nvd3-temporal-line-chart\\\",\\\"multiDExto/nvd3-temporal-line-chart\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/temporal-graphs/temporal-graph.hbs\",\"isStrictMode\":false});","export default Ember.HTMLBars.template({\"id\":\"dZYn1KCk\",\"block\":\"[[[46,[28,[37,1],null,null],null,null,null],[10,0],[14,5,\\\"padding-top: 1rem;\\\"],[14,0,\\\"container-fluid\\\"],[12],[1,[34,2]],[10,0],[14,0,\\\"mt-1\\\"],[12],[41,[33,4],[[[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13]],[]],null],[10,\\\"table\\\"],[14,5,\\\"width: 100%; margin-bottom: 1rem;\\\"],[14,\\\"hidden\\\",\\\"\\\"],[14,1,\\\"instrumentEditError\\\"],[12],[10,\\\"tr\\\"],[14,0,\\\"details\\\"],[12],[10,\\\"td\\\"],[14,\\\"colspan\\\",\\\"6\\\"],[14,5,\\\"padding-top: 1rem; padding-bottom: 1rem;\\\"],[14,0,\\\"td_details error\\\"],[12],[10,\\\"label\\\"],[14,1,\\\"error_message_details\\\"],[14,0,\\\"col-12 col-form-label\\\"],[12],[1,\\\"You do not have sufficent permissions.\\\"],[13],[13],[13],[13],[10,\\\"h3\\\"],[12],[1,\\\"Events\\\"],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col-md-3\\\"],[12],[1,[28,[35,5],null,[[\\\"searchValue\\\"],[[33,6]]]]],[13],[10,0],[14,0,\\\"col-sm-2\\\"],[12],[10,0],[14,0,\\\"form-group\\\"],[12],[10,\\\"label\\\"],[12],[1,\\\"Rows\\\"],[13],[10,0],[14,0,\\\"dropdown\\\"],[12],[1,[28,[35,7],null,[[\\\"page_size\\\",\\\"page_type\\\",\\\"model\\\"],[[33,8],\\\"vibration-events\\\",[30,1,[\\\"vibrationEvents\\\"]]]]]],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,9],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"vibrationEvents\\\",\\\"meta\\\"]],\\\"vibration-events\\\",[28,[37,10],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,5,\\\"overflow: auto; display: inline-block; max-width: 1300px;;\\\"],[14,0,\\\"row parent\\\"],[12],[10,0],[14,0,\\\"col-md-3\\\"],[12],[10,\\\"table\\\"],[14,0,\\\"table table-striped responsive-table child\\\"],[12],[10,\\\"thead\\\"],[12],[10,\\\"tr\\\"],[12],[10,\\\"th\\\"],[12],[1,\\\"Timestamp\\\"],[13],[10,\\\"th\\\"],[12],[1,\\\"Instrument\\\"],[13],[42,[28,[37,12],[[28,[37,12],[[33,13]],null]],null],null,[[[10,\\\"th\\\"],[12],[1,[30,2]],[13]],[2]],null],[13],[13],[10,\\\"tbody\\\"],[12],[42,[28,[37,12],[[28,[37,12],[[33,14,[\\\"vibrationEvents\\\"]]],null]],null],null,[[[10,\\\"tr\\\"],[15,0,[29,[\\\"horizontal-text \\\",[28,[37,15],[[28,[37,16],[[33,17],[30,3,[\\\"id\\\"]]],null]],null]]]],[12],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"timestamp\\\"]]],[13],[10,\\\"td\\\"],[12],[6,[39,18],null,[[\\\"route\\\",\\\"model\\\"],[\\\"edit-instrument\\\",[30,3,[\\\"instrument\\\"]]]],[[\\\"default\\\"],[[[[1,[30,3,[\\\"instrument\\\"]]]],[]]]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ch1\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"trigger01\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"frequency01\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"amplitude01\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppv01\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppa01\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"duration01\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ch2\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"trigger02\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"frequency02\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"amplitude02\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppv02\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppa02\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"duration02\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ch3\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"trigger03\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"frequency03\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"amplitude03\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppv03\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppa03\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"duration03\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ch4\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"trigger04\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"frequency04\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"amplitude04\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppv04\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"ppa04\\\"]]],[13],[10,\\\"td\\\"],[12],[1,[30,3,[\\\"duration04\\\"]]],[13],[13]],[3]],null],[13],[13],[13],[13],[10,0],[14,0,\\\"row\\\"],[12],[10,0],[14,0,\\\"col\\\"],[12],[10,0],[14,0,\\\"pull-right\\\"],[12],[1,[28,[35,9],null,[[\\\"meta\\\",\\\"routeLink\\\",\\\"extraQueryParams\\\",\\\"class\\\"],[[30,1,[\\\"vibrationEvents\\\",\\\"meta\\\"]],\\\"vibration-events\\\",[28,[37,10],null,[[\\\"paginate_from_zero\\\"],[\\\"\\\"]]],\\\"text-md-right\\\"]]]],[13],[13],[13],[10,0],[14,0,\\\"pb-1\\\"],[12],[13],[13]],[\\\"@model\\\",\\\"title\\\",\\\"tableRow\\\"],false,[\\\"component\\\",\\\"-outlet\\\",\\\"bread-crumbs\\\",\\\"if\\\",\\\"permissionError\\\",\\\"filter-text-input-events\\\",\\\"search\\\",\\\"page-item-count\\\",\\\"page_size\\\",\\\"pagination-links\\\",\\\"hash\\\",\\\"each\\\",\\\"-track-array\\\",\\\"headerTitles\\\",\\\"model\\\",\\\"active-class\\\",\\\"get\\\",\\\"isVisibleRowDetails\\\",\\\"link-to\\\"]]\",\"moduleName\":\"geotechnical-data-platform-new/templates/vibration-events.hbs\",\"isStrictMode\":false});","import DS from 'ember-data';\n\nexport default DS.Transform.extend({\n  deserialize(serialized) {\n    return serialized; //do nothing\n  },\n\n  serialize(deserialized) {\n    if(deserialized == null) {\n      deserialized = false;\n    }\n    return deserialized; // returns value or null\n  }\n});","define(\"geotechnical-data-platform-new/transforms/date\", [\"exports\", \"@ember-data/serializer/-private\"], function (_exports, _private) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _private.DateTransform;\n    }\n  });\n});\n","import DS from 'ember-data';\n\nexport default DS.Transform.extend({\n  deserialize(serialized) {\n    return serialized; //do nothing\n  },\n\n  serialize(deserialized) {\n    if(deserialized === \"\") {\n      deserialized = null;\n    }\n    return deserialized; // returns value or null\n  }\n});","define(\"geotechnical-data-platform-new/transforms/number\", [\"exports\", \"@ember-data/serializer/-private\"], function (_exports, _private) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _private.NumberTransform;\n    }\n  });\n});\n","import Transform from '@ember-data/serializer/transform';\n\nexport default class ObjectTransform extends Transform {\n  deserialize(serialized) {\n    return serialized || {};\n  }\n\n  serialize(deserialized) {\n    return deserialized || {};\n  }\n}","define(\"geotechnical-data-platform-new/transforms/string\", [\"exports\", \"@ember-data/serializer/-private\"], function (_exports, _private) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _private.StringTransform;\n    }\n  });\n});\n","import DS from 'ember-data';\n\nexport default DS.Transform.extend({\n  deserialize(serialized) {\n    return serialized; //do nothing\n  },\n\n  serialize(deserialized) {\n    if(deserialized === null) {\n      deserialized = \"\";\n    }\n    return deserialized; // returns value or null\n  }\n});","define(\"geotechnical-data-platform-new/uploaders/s3\", [\"exports\", \"ember-uploader/uploaders/s3\"], function (_exports, _s) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _s.default;\n    }\n  });\n});\n","define(\"geotechnical-data-platform-new/uploaders/uploader\", [\"exports\", \"ember-uploader/uploaders/uploader\"], function (_exports, _uploader) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  Object.defineProperty(_exports, \"default\", {\n    enumerable: true,\n    get: function () {\n      return _uploader.default;\n    }\n  });\n});\n","// app/utils/api-config.js\nimport ENV from 'geotechnical-data-platform-new/config/environment';\nfunction isValid(value) {\n  return (\n    value !== undefined &&\n    value !== null &&\n    typeof value === \"string\" &&\n    !value.startsWith(\"__\")\n  );\n}\nexport function getApiConfig() {\n  const runtime = window.RUNTIME_CONFIG || {};\n  return {\n    protocol: isValid(runtime.API_PROTOCOL) ? runtime.API_PROTOCOL : ENV.API_PROTOCOL,\n    host:     isValid(runtime.API_URL)      ? runtime.API_URL      : ENV.API_URL,\n    port:     isValid(runtime.API_PORT)     ? runtime.API_PORT     : ENV.API_PORT,\n  };\n}\n\nexport function getApiBaseUrl() {\n  const { protocol, host, port } = getApiConfig();\n  return `${protocol}${host}:${port}`;\n}\n\nexport function getApiBasePort() {\n  const { protocol, host, port } = getApiConfig();\n  return `${port}`;\n}","\n","define('geotechnical-data-platform-new/config/environment', [], function() {\n  var prefix = 'geotechnical-data-platform-new';\ntry {\n  var metaName = prefix + '/config/environment';\n  var rawConfig = document.querySelector('meta[name=\"' + metaName + '\"]').getAttribute('content');\n  var config = JSON.parse(decodeURIComponent(rawConfig));\n\n  var exports = { 'default': config };\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n  return exports;\n}\ncatch(err) {\n  throw new Error('Could not read config from meta tag with name \"' + metaName + '\".');\n}\n\n});\n","\n          if (!runningTests) {\n            require(\"geotechnical-data-platform-new/app\")[\"default\"].create({\"name\":\"geotechnical-data-platform-new\",\"version\":\"0.0.0+3eb4797b\"});\n          }\n        \n"],"names":["ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","DS","JSONAPIAdapter","extend","host","session","buildURL","type","id","record","_super","headers","Accept","withCredentials","Authorization","localStorage","token","handleResponse","status","payload","requestData","url","includes","isAuthenticated","invalidate","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","updateRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","deleteRecord","CalibrationCalibrationProfileAdapter","ApplicationAdapter","handleResponse","status","headers","payload","requestData","error","errors","title","detail","CalibrationTypeAdapter","ApplicationAdapter","handleResponse","status","headers","payload","requestData","error","errors","title","detail","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","DS","RESTAdapter","extend","DataAdapterMixin","authorizer","host","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","logViewer_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","PackValidationTypeAdapter","ApplicationAdapter","handleResponse","status","headers","payload","requestData","error","errors","title","detail","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","RigProfileAdapter","ApplicationAdapter","handleResponse","status","headers","payload","requestData","error","errors","title","detail","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","instrument_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","undefined","vendorType","ApplicationAdapter","extend","buildURL","modelName","id","snapshot","requestType","query","host","gateway_id","createRecord","store","type","data","serializer","serializerFor","serializeIntoHash","includeId","url","adapterOptions","replace","ajax","updateRecord","deleteRecord","App","config","modulePrefix","podModulePrefix","Resolver","Ember","deprecate","BasicAuth","Base","restore","data","promise","Ember","RSVP","Promise","resolve","reject","Error","invalidate","access","localStorage","removeItem","logoutUrl","refreshToken","getItem","replace","api","fetch","method","headers","body","JSON","stringify","type","attributes","code","error","console","warn","authenticate","provider","options","jwtExchangeUrl","credentials","base64","encode","username","password","jwtResponse","ok","errorText","text","refresh","json","setItem","licensesUrl","licenseResponse","expirationTime","set","licence","isValid","limit","modules","ex","userProfileURL","userProfileResponse","userProfileData","userProfileService","loadFromServer","sessionData","auth","user","userProfile","JwtAuthenticator","BaseAuthenticator","restore","data","Promise","resolve","reject","access","invalidate","localStorage","removeItem","logoutUrl","refreshToken","getItem","replace","api","fetch","method","headers","body","JSON","stringify","type","attributes","code","error","console","warn","authenticate","options","loginUrl","loginResponse","username","password","ok","err","json","catch","Error","refresh","setItem","licensesUrl","licenseResponse","Authorization","licence","isValid","limit","modules","profileUrl","userProfileResponse","errorText","text","userProfileData","userProfileService","loadFromServer","sessionData","auth","user","provider","userProfile","$","RSVP","Ember","CustomAuthenticator","Base","restore","data","promise","Promise","resolve","reject","Error","authenticate","auth","ajax","type","username","password","success","error","then","localStorage","setItem","url","endsWith","login","base64","encode","response","api","fetch","method","headers","Authorization","token","ok","expirationTime","set","licence","isValid","limit","modules","json","attributes","ex","user","text","er","JSON","parse","hasOwnProperty","detail","OAuthJwtAuthenticator","BaseAuthenticator","restore","data","access","Promise","resolve","reject","authenticate","options","provider","providerConfig","oauthConfig","loadProviderConfig","ENV","torii","providers","clientId","client_id","tenantId","tenant_id","redirectUri","redirect_uri","scope","responseType","authResponse","open","loginUrl","loginResponse","api","fetch","method","headers","body","JSON","stringify","code","authorizationCode","ok","err","json","catch","Error","error","refresh","localStorage","setItem","licensesUrl","licenseResponse","Authorization","licence","isValid","limit","modules","attributes","profileUrl","profileResponse","userProfileData","sessionData","auth","userProfile","invalidate","removeItem","logoutUrl","refreshToken","getItem","replace","type","console","warn","OAuth2Bearer","extend","extend","extend","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isRefAnchorDisabled","isTimeReferenceDisabled","timeReference","computed","get","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","activeChannels","selectedOptions","Array","from","target","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","unallowedValues","includes","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","isValidPhoneNumber","phoneNumber","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","instrumentStiffness","elasticLimitPct","ultimateLimitPct","elasticLimitFce","ultimateLimitFce","CreateAdictInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","vendorTypeChanged","object","badValues","includes","formDisabled","vendor","vendors","selectedVendor","vendorType","fieldVisible","strokeLengthChanged","strokeLength","createInstrument","store","get","newInstrumentObject","setError","error","instrumentType","peekRecord","headAt","active","zeroTimestamp","moment","format","installDate","newInstrument","dup","createRecord","err","message","save","then","results","anchorCount","parseInt","substring","length","ctr","number","distance","instrument","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","getInstrument","instrumentId","findRecord","anchorDistances","computed","inst","anchors","anchorNumber","length","isMDT","dist","map","anchor","counter","label","getAnchorLabel","isAdictMDT","vendor","vendorType","includes","e","instrumentAnchorsLength","instrumentAnchorsSorted","sort","instrumentAnchorsForAdictMDT","instrumentAnchors","pop","newDisplacementValuesObject","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","newDisplacementValueObjectValues","convertMMToAdictBits","arrayMMs","bitsArray","mmValue","push","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","mmVals","bitsVals","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","referenceAnchors","loading","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","anchorList","computed","channelCount","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","$","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","instrumentChannels","Ember","computed","channelsNum","get","vendor","vendorType","type","modelName","options","id","value","updatePage","instrument","stiffness","set","ex","save","strokeLengthChanged","object","console","log","vendorTypeChanged","badValues","includes","fieldVisible","formDisabled","form","vendors","find","fieldsEnabled","elasticLimitPct","ultimateLimitPct","elasticLimitFce","ultimateLimitFce","instrumentStiffness","viewData","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","transitionTo","queryParams","tGraph","sGraph","editField","stopEditField","saveInstrument","_this","t","confirm","window","location","href","didInsertElement","store","queryRecord","then","catch","error","isNaN","isFinite","Math","round","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","isMDT","instrumentVendor","instrument","vendor","vendorType","includes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","temporaryChartData","pop","modelName","unshift","error","fullRangeDataPoints","temporaryValue","console","log","JSON","stringify","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","length","anchors","anchor","splice","anchorMidDistances","copy","midDistances","i","mid","push","toFixed","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","anchorDist","chartLine","chartLineIndex","dataPoint","dataPointIndex","concat","fullRangeChartLinesData","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","forEach","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","yAxis","axisLabel","distXAxis","ticks","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","state","focus","line","syncBrushing","independentBrushing","showYAxis","fullRangeChartXDomainLength","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","title","yAxisUnit","init","_super","arguments","queryParams","URLSearchParams","window","location","search","yAxisUnitParam","get","set","seismicEventsChartDistXData","computed","key","type","color","values","map","event","valueOf","isMDT","instrument","vendor","vendorType","includes","anchorCount","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","discreteData","item","linesKeys","Object","keys","toJSON","chartData","getProperties","length","zoomDataPoints","modelName","push","valueArray","Array","isArray","pop","convertDataAndReverse","convertedData","multiplier","DENOMINATOR","forEach","toFixed","parseFloat","reverse","fullRangeDataPoints","linesKyes","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","dataValuesCount","error","anchors","anchor","midPoints","ctr","unshift","zoomChartLinesData","_this","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","shift","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","substr","lastIndexOf","replace","promise","queryRecord","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","tickValues","zoomChartXDomainLength","startDate","Date","endDate","interval","i","getTime","xAxis","tickPadding","showMaxMin","tickFormat","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","utils","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","getDateAutoscaleFormat","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","isMDT","computed","vendor","get","vendorType","includes","anchorDistances","anchors","anchorNumber","length","dist","map","anchor","index","counter","label","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","approvedInstrForYAxisUnit","router","page","page_size","displayFrequencyEventsDropDown","advancedSearchLoading","startDate","undefined","chartType","endDate","xMin","xMax","yLeftMin","yLeftMax","yRightMin","yRightMax","yAxisUnit","selectedFrequencyEventsDropdownDate","visibleAdvancedFilter","isFrequencyGraph","init","_super","arguments","setFieldsFromURL","isInstrumentApproved","computed","includes","instrumentType","getFrequencyEventsDropDownData","data","get","forEach","timestampString","index","push","queryParams","URLSearchParams","window","location","search","startDateParam","endDateParam","yAxisUnitParam","xMinParam","xMaxParam","yLeftMinParam","yLeftMaxParam","yRightMinParam","yRightMaxParam","selectedFreqEventDateParam","set","trim","unitSymbolTranslator","formatDateForDatetimeLocal","dateStr","date","Date","toISOString","slice","dispatchRequest","mode","id","chart_type","selectedFreqEventDate","transitionTo","then","isDestroyed","isDestroying","newYAxisUnit","meterValue","millimeterValue","footValue","inchValue","microValue","RAWValue","actions","updateFrequencyEventsSelectedDatetime","input","console","log","length","toggleVisibility","visiblity","toggleYAxisUnit","property","updateDateProperty","propertyName","changeEvent","target","value","reset","Ember","Component","extend","router","deleteConfirmation","actions","toggleRowDeleteConfirmationDialog","id","curVal","get","set","createAlert","instID","transitionTo","queryParams","inst_id","Ember","Component","extend","authError","router","isRowDeleteConfirmationDialog","actions","toggleRowDeleteConfirmationDialog","id","errBox","document","getElementById","hidden","curVal","get","set","createAlert","instID","transitionTo","queryParams","inst_id","remove","model","object","_this","_store","hidd","save","then","deleteRecord","unloadRecord","catch","reason","status","errors","Ember","Component","extend","store","router","session","mainChartData","requestParams","y","x","is_distinct","secondary","date_min","date_max","options","isEmptyData","chartYAxisOriginal","chartXAxisOriginal","mainDataSelectionLabels","key","value","dateDataSelectionLabels","employeeGroupDataSelectionLabels","init","_super","arguments","run","scheduleOnce","getResponse","mainDataSelectComp","document","getElementById","dateDataSelectComp","usersSectionComp","startRangeDateComponent","endRangeDateComponent","showLegendCheckBoxComp","checked","getMainDataSelections","computed","data","get","forEach","elementObj","index","push","id","title","code","getDateDataSelections","getEmployeeGroupDataSelections","showLegendObserver","observer","showLegend","target","emptyDataWarningListener","set","length","mainSelectionDropDownHandlerOberserver","employeeGroupDataSelectComp","actions","applyButton","resetButton","resetScaleForm","labelID","yAxisMaxComponent","min","scales","max","update","updateScaleForm","e","componentKey","componentValue","console","log","Number","parseInt","didInsertElement","Ember","Component","extend","store","router","session","mainChartData","requestParams","x","y","is_distinct","secondary","date_min","date_max","options","isEmptyData","chartYAxisOriginal","chartXAxisOriginal","mainDataSelectionLabels","key","value","dateDataSelectionLabels","employeeGroupDataSelectionLabels","init","_super","arguments","run","scheduleOnce","getResponse","mainDataSelectComp","document","getElementById","usersSectionComp","startRangeDateComponent","endRangeDateComponent","showLegendCheckBoxComp","checked","getMainDataSelections","computed","data","get","forEach","elementObj","index","push","id","title","code","getDateDataSelections","getEmployeeGroupDataSelections","showLegendObserver","observer","showLegend","target","emptyDataWarningListener","set","length","mainSelectionDropDownHandlerOberserver","employeeGroupDataSelectComp","dateDataSelectComp","actions","applyButton","resetButton","resetScaleForm","labelID","yAxisMaxComponent","min","scales","max","update","updateScaleForm","e","componentKey","componentValue","console","log","Number","parseInt","didInsertElement","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeSize","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","username","get","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","checkChanged","object","staticChanged","document","getElementById","checked","activeChanged","repeatChanged","invertChanged","toggleActive","big","createAlert","selector","$","selected","val","forEach","selection","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","instrument","peekRecord","newAlert","createRecord","err","alertObjectValue","respType","addType","value","cb","wl","target","sel","selectedIndex","setError","isNaN","includes","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","catch","reason","errors","status","resetNewGatewayObject","_this","console","log","set","CreateBluCellGateway","createGateway","object","store","get","newGatewayObject","setError","error","id","installDate","depth","gatewayType","peekRecord","active","interval_upload","query","filter","interval_value","interval_group_name","then","results","gatewayUploadInterval","catch","interval_read","gatewayReadInterval","interval_mesh_cycle","gatewayMeshCycleInterval","interval_transmission_power","gatewayRadioPowerLevelInterval","moment","format","newGateway","dup","createRecord","err","message","includes","save","reason","init","arguments","resetNewRawDataValueObject","_this","gatewayValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newGatewayValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newGatewayValueObjectValues","actions","saveNew","gatewayValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","indexPositions","result","Array","newGatewayValues","savedGatewayValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","console","log","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","ajax","inject","service","store","tr","instID","activeSize","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","handleAlertObjectChange","console","log","onMetricChanged","metric","get","set","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","anchorList","computed","isSelected","forEach","element","channelCount","instrument","pos","length","numChans","parseInt","substring","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","$","headers","Authorization","localStorage","token","actions","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","selectedCh","newAnchor","createRecord","save","destroyRecord","result","findRecord","then","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","gatewayReadingsIntervals","init","_super","arguments","store","Ember","inject","service","isAuthenticated","selectedModel","editing","getGatewayUploadIntervalID","computed","gw","get","gatewayUploadInterval","id","toString","getGatewayReadIntervalID","gatewayReadInterval","getMeshCycleIntervalID","gatewayMeshCycleInterval","getTransmissionPowerIntervalsID","gatewayRadioPowerLevelInterval","setGatewayInterval","event","gateway","selectedOptions","Array","from","target","selectedValue","parseInt","map","option","value","intervalType","notSelected","findRecord","then","interval","notSelectedIntervalValue","group_name","query","filter","interval_value","interval_group_name","results","set","save","console","log","catch","error","updatePage","viewData","transitionTo","tGraph","editField","stopEditField","saveGateway","_this","t","confirm","window","location","href","sortBy","property","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Coordinator","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","Temperature","var_1","var_2","var_3","zoomTempPoints","zoomTempData","get","forEach","item","i","linesKyes","keys","toJSON","chartData","getProperties","push","values","zoomDataPointsLeftAxis","zoomChartData","leftAxisIndex","zoomLeftAxis","map","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","temp","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","getGatewayData","fields","items","filteredData","get","forEach","item","values","firmware","voltage","rssi","sigma_d_readings","sigma_t_modem_on_duration","reconnection_attempts","number_of_uploads","temp","mesh_id","length","push","id","originalValue","save_values","actions","updateProperty","propertyName","propertyValue","set","didInsertElement","_super","arguments","Ember","Component","extend","LeftAxisDropdown","extend","tGraph","id","modelName","params","get","transitionTo","extend","rightAxisField","routeValue","defaultRightAxisField","getRouteValue","selected","toLowerCase","set","actions","handleRightAxisFieldChange","newValue","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeSize","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","username","get","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","checkChanged","object","staticChanged","document","getElementById","checked","activeChanged","repeatChanged","invertChanged","toggleActive","big","createAlert","selector","$","selected","val","forEach","selection","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","instrument","peekRecord","newAlert","createRecord","err","alertObjectValue","respType","addType","value","cb","wl","target","sel","selectedIndex","setError","isNaN","includes","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","catch","reason","errors","status","resetNewGatewayObject","_this","set","CreateBluCellGateway","setError","error","value","Ember","createGateway","object","store","get","parent","console","log","newGatewayObject","parentGatewayId","id","parentGateway","installDate","depth","gatewayType","peekRecord","typeID","active","interval_upload","query","filter","interval_value","interval_group_name","then","results","gatewayUploadInterval","catch","interval_read","gatewayReadInterval","moment","format","newGateway","dup","createRecord","err","message","includes","save","childRelation","childGateway","isCurrent","reason","window","localStorage","setItem","setID","gw","findRecord","init","arguments","loadGateways","gatewayList","rawData","filteredGateways","gateway","title","toLowerCase","mappedGateways","map","parentId","type","resetNewRawDataValueObject","_this","gatewayValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newGatewayValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newGatewayValueObjectValues","actions","saveNew","gatewayValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newGatewayValues","savedGatewayValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","console","log","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","ajax","inject","service","store","tr","instID","activeSize","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","handleAlertObjectChange","console","log","onMetricChanged","metric","get","set","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","anchorList","computed","isSelected","forEach","element","channelCount","instrument","pos","length","numChans","parseInt","substring","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","$","headers","Authorization","localStorage","token","actions","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","selectedCh","newAnchor","createRecord","save","destroyRecord","result","findRecord","then","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditGateway","extend","store","Ember","inject","service","gatewayReadingsIntervals","initialSelection","isAuthenticated","selectedModel","editing","parent","init","_super","arguments","loadGateways","gatewayList","gateway","node","rawData","filteredGateways","filter","active","get","title","toLowerCase","selectedItem","mappedGateways","map","gw","value","type","id","currentParent","set","computed","gateways","getGatewayUploadIntervalID","gatewayUploadInterval","toString","getGatewayReadIntervalID","gatewayReadInterval","addParentToGateway","childGateway","newParentGateway","newRelation","createRecord","parentGateway","isCurrent","save","then","addObject","catch","error","console","log","setGatewayInterval","event","selectedOptions","Array","from","target","selectedValue","parseInt","option","intervalType","notSelected","findRecord","interval","notSelectedIntervalValue","group_name","query","interval_value","interval_group_name","results","updatePage","viewData","transitionTo","queryParams","tGraph","badCodes","includes","localStorage","getItem","editField","stopEditField","saveGateway","_this","t","confirm","window","location","href","sortBy","property","setID","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Coordinator","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","var_1","var_2","var_3","Temperature","zoomDataPointsLeftAxis","zoomChartData","get","leftAxisIndex","parentGateway","coordinatorPosition","zoomLeftAxis","filter","item","coordinator","values","map","zoomDataPointsRightAxis","rightAxisIndex","zoomRightAxis","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","newFullRangePoints","filteredPoints","linesKeys","keys","toJSON","getProperties","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","zoomTempPoints","temp","push","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","ticks","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","forEach","i","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","getGatewayData","items","filteredData","get","forEach","item","firmware","values","coordinator","voltage","rssi","mesh_id","length","temperature","push","id","originalValue","save_values","console","log","actions","updateProperty","propertyName","propertyValue","set","extend","selected","defaultSelected","actions","handleSelectedFieldChange","newValue","set","LeftAxisDropdown","extend","tGraph","id","modelName","params","get","transitionTo","extend","rightAxisField","routeValue","defaultRightAxisField","getRouteValue","selected","toLowerCase","set","actions","handleRightAxisFieldChange","newValue","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","createMessage","isPerm","isActive","repeats","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","username","get","data","authenticated","onResponseChanged","response","actions","checkChanged","object","activeChanged","document","getElementById","checked","repeatChanged","createAlert","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","gateway","peekRecord","newAlert","createRecord","err","val","alertObjectValue","respType","addType","value","cb","target","setError","length","isNaN","includes","save","then","results","id","catch","reason","errors","status","resetNewGatewayObject","_this","set","CreateBluCellGateway","createGateway","object","store","get","newGatewayObject","setError","error","id","installDate","depth","gatewayType","peekRecord","active","moment","format","newGateway","dup","createRecord","err","message","includes","save","then","results","catch","reason","init","arguments","resetNewRawDataValueObject","_this","gatewayValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newGatewayValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newGatewayValueObjectValues","actions","saveNew","gatewayValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newGatewayValues","savedGatewayValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","console","log","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","ajax","inject","service","store","tr","gwID","saveMessage","initTriggerStamp","isVisibleError","emptyBoldError","nonNumericValueError","targetError","phoneNumError","authError","handleAlertObjectChange","console","log","onResponseChanged","response","get","set","creationDateText","computed","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","$","method","headers","Authorization","localStorage","token","actions","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","val","cb","setError","length","isNaN","document","getElementById","value","includes","save","then","broken","catch","reason","errors","status","activeChanged","isActive","checked","repeatChanged","repeats","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","gatewayReadingsIntervals","init","_super","arguments","store","Ember","inject","service","isAuthenticated","selectedModel","editing","getGatewayUploadIntervalID","computed","gw","get","gatewayUploadInterval","id","toString","getGatewayReadIntervalID","gatewayReadInterval","setGatewayInterval","event","gateway","selectedOptions","Array","from","target","selectedValue","parseInt","map","option","value","intervalType","notSelected","findRecord","then","interval","notSelectedIntervalValue","group_name","query","filter","interval_value","interval_group_name","results","set","save","console","log","catch","error","updatePage","viewData","transitionTo","tGraph","editField","stopEditField","saveGateway","_this","t","confirm","window","location","href","sortBy","property","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Coordinator","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","var_1","var_2","var_3","Temperature","zoomDataPointsLeftAxis","zoomChartData","get","leftAxisIndex","zoomLeftAxis","map","item","i","values","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","linesKyes","keys","toJSON","getProperties","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","zoomTempPoints","temp","push","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","forEach","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","getGatewayData","fields","items","filteredData","get","forEach","item","values","firmware","voltage","rssi","carrier","readings","uptime","recon","uploads","temperature","length","push","id","originalValue","save_values","actions","updateProperty","propertyName","propertyValue","set","extend","selected","defaultSelected","actions","handleSelectedFieldChange","newValue","set","LeftAxisDropdown","extend","tGraph","id","modelName","params","get","transitionTo","extend","rightAxisField","routeValue","defaultRightAxisField","getRouteValue","selected","toLowerCase","set","actions","handleRightAxisFieldChange","newValue","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeSize","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","username","get","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","checkChanged","object","staticChanged","document","getElementById","checked","activeChanged","repeatChanged","invertChanged","toggleActive","big","createAlert","selector","$","selected","val","forEach","selection","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","instrument","peekRecord","newAlert","createRecord","err","alertObjectValue","respType","addType","value","cb","wl","target","sel","selectedIndex","setError","isNaN","includes","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","catch","reason","errors","status","Ember","Component","extend","ajax","inject","service","store","tr","instID","activeSize","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","handleAlertObjectChange","onMetricChanged","metric","get","set","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","anchorList","computed","isSelected","forEach","element","channelCount","instrument","pos","length","numChans","parseInt","substring","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","console","log","$","headers","Authorization","localStorage","token","actions","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","selectedCh","newAnchor","createRecord","save","destroyRecord","result","findRecord","then","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","gatewayReadingsIntervals","init","_super","arguments","store","Ember","inject","service","isAuthenticated","selectedModel","editing","getGatewayUploadIntervalID","computed","gw","get","gatewayUploadInterval","id","toString","getGatewayReadIntervalID","gatewayReadInterval","setGatewayInterval","event","gateway","selectedOptions","Array","from","target","selectedValue","parseInt","map","option","value","intervalType","notSelected","findRecord","then","interval","notSelectedIntervalValue","group_name","query","filter","interval_value","interval_group_name","results","set","save","console","log","catch","error","updatePage","viewData","transitionTo","tGraph","editField","stopEditField","saveGateway","_this","t","confirm","window","location","href","sortBy","property","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Coordinator","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","var_1","var_2","var_3","Temperature","zoomDataPointsLeftAxis","zoomChartData","get","console","log","leftAxisIndex","zoomLeftAxis","map","item","i","values","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","linesKyes","keys","toJSON","getProperties","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","zoomTempPoints","temp","push","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","forEach","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","Temperature","var_1","var_2","var_3","zoomTempPoints","zoomTempData","get","forEach","item","i","linesKyes","keys","toJSON","chartData","getProperties","push","values","zoomDataPointsLeftAxis","zoomChartData","leftAxisIndex","zoomLeftAxis","map","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","temp","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","getGatewayData","fields","items","filteredData","get","forEach","item","values","firmware","voltage","rssi","carrier","readings","uptime","recon","uploads","temperature","length","push","id","originalValue","save_values","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","LeftAxisDropdown","extend","tGraph","id","modelName","params","get","transitionTo","TemporalGatewayRightAxisDropdown","extend","setSelection","selected","set","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeSize","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","username","get","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","checkChanged","object","staticChanged","document","getElementById","checked","activeChanged","repeatChanged","invertChanged","toggleActive","big","createAlert","selector","$","selected","val","forEach","selection","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","instrument","peekRecord","newAlert","createRecord","err","alertObjectValue","respType","addType","value","cb","wl","target","sel","selectedIndex","setError","isNaN","includes","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","catch","reason","errors","status","resetNewGatewayObject","_this","set","CreateBluCellGateway","createGateway","object","store","get","newGatewayObject","setError","error","id","installDate","depth","gatewayType","peekRecord","active","interval_upload","query","filter","interval_value","interval_group_name","then","results","gatewayUploadInterval","catch","console","log","interval_read","gatewayReadInterval","moment","format","newGateway","dup","createRecord","err","message","includes","save","reason","init","arguments","resetNewRawDataValueObject","_this","gatewayValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newGatewayValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newGatewayValueObjectValues","actions","saveNew","gatewayValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newGatewayValues","savedGatewayValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","console","log","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","store","inject","service","tr","instID","activeSize","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","handleAlertObjectChange","onMetricChanged","metric","get","set","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","anchorList","computed","isSelected","forEach","element","channelCount","instrument","pos","length","numChans","parseInt","substring","creationDateText","date","creationDate","triggeredTimeText","actions","updateSelectedAnchors","thing","update","Event","$","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","selectedCh","newAnchor","createRecord","save","destroyRecord","result","findRecord","id","then","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","gatewayReadingsIntervals","init","_super","arguments","store","Ember","inject","service","isAuthenticated","selectedModel","editing","getGatewayUploadIntervalID","computed","gw","get","gatewayUploadInterval","id","toString","getGatewayReadIntervalID","gatewayReadInterval","setGatewayInterval","event","gateway","selectedOptions","Array","from","target","selectedValue","parseInt","map","option","value","intervalType","notSelected","findRecord","then","interval","notSelectedIntervalValue","group_name","query","filter","interval_value","interval_group_name","results","set","save","console","log","catch","error","updatePage","viewData","transitionTo","tGraph","editField","stopEditField","saveGateway","_this","t","confirm","window","location","href","sortBy","property","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Coordinator","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","var_1","var_2","var_3","Temperature","zoomDataPointsLeftAxis","zoomChartData","get","leftAxisIndex","zoomLeftAxis","map","item","i","values","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","linesKyes","keys","toJSON","getProperties","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","zoomTempPoints","temp","push","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","forEach","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","Temperature","var_1","var_2","var_3","zoomTempPoints","zoomTempData","get","forEach","item","i","linesKyes","keys","toJSON","chartData","getProperties","push","values","zoomDataPointsLeftAxis","zoomChartData","leftAxisIndex","zoomLeftAxis","map","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","temp","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","getGatewayData","fields","items","filteredData","get","forEach","item","values","firmware","voltage","rssi","carrier","readings","uptime","recon","uploads","temperature","length","push","id","originalValue","save_values","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","LeftAxisDropdown","extend","tGraph","id","modelName","params","get","transitionTo","TemporalGatewayRightAxisDropdown","extend","setSelection","selected","set","BreadCrumbs","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","instrumentStiffness","elasticLimitPct","ultimateLimitPct","elasticLimitFce","ultimateLimitFce","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","bulbed","plated","active","ex","strokeLength","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","catch","reason","bulbChanged","document","getElementById","checked","plateChanged","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","metric","get","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","isShowingModal","showModal","phoneNumber","carrier","referenceAnchors","loading","isValidPhoneNumber","regex","test","computed","target","atIndex","indexOf","substring","onTimeReferenceChanged","timeReference","handleAlertObjectChange","onCarrierChanged","onMetricChanged","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","console","log","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","instrument","pos","length","numChans","parseInt","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","$","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","toggleModal","toggleProperty","handleSelection","selectedValue","EditInstrument","extend","updatePage","store","get","instrument","stiffness","Math","round","set","ex","save","viewData","id","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","transitionTo","queryParams","tGraph","editField","stopEditField","sGraph","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","plated","splice","unshift","push","length","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","anchors","anchor","anchorAXDistances","midPoints","headExclusion","leftAnchors","center","Math","ceil","concat","slice","midLeft","ctr","$","v","i","mid_temp","shift","pop","anchorBXDistances","anchorMidDistances","copy","midDistances","finalSize","mid","toFixed","len","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","fullRangeChartLinesData","forEach","element","ad","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","ticks","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","yAxisUnit","init","_super","arguments","queryParams","URLSearchParams","window","location","search","yAxisUnitParam","get","set","seismicEventsChartDistXData","computed","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","tempSeismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","display","blastEvents","data_set","displayTime","displayTimestamp","displayEventSize","displayTonnes","displayLocation","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","plated","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","dataValuesCount","length","error","anchors","anchor","midPoints","ctr","mid","toFixed","splice","unshift","zoomChartLinesData","_this","vibeEventsChartDistXData","mName","forEach","element","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","pop","shift","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","buildScatterChartDataSet","context","dataArray","axisProperties","xAxisDisplay","xAxisLabel","yAxisDisplay","yAxisLabel","colorPalette","datasets","forEach","dataObj","index","dataSetObj","push","chart","options","scales","x","title","display","text","y","updateScatterXYMinMax","error","console","updateChart","scatterConvertedDataset","data","update","renderChart","ctx","document","getElementById","getContext","xMin","get","xMax","yMin","yMax","noDataPlugin","id","beforeDraw","hasData","some","ds","length","width","height","save","textAlign","textBaseline","font","fillStyle","fillText","restore","Chart","register","zoomPlugin","type","responsive","min","undefined","max","plugins","tooltip","callbacks","tooltipItems","dataset","label","tooltipItem","xLabel","yLabel","date","raw","zoom","pan","enabled","mode","wheel","drag","updateScatterZoomPan","log","getXYValueObj","xyValueObj","queryParams","URLSearchParams","window","location","search","advancedEndDate","advancedStartDate","advancedXMax","advancedXMin","advancedYAxisUnit","advancedYLeftMax","advancedYLeftMin","Number","parseFloat","resetNewBlastEventObject","_this","set","isVisible","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","newBlastEventObject","dateFormat","timeFormat","timestamp","delay","blastType","dateTimePicker","datePicker","east","north","depth","project","level","selectOptionsArray","computed","map","item","blastTypesSelectOptionsKyes","get","split","key","value","handleIsVisibleCreateNewFormChange","observer","actions","setProject","event","selectedId","target","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","addNew","object","saveNew","moment","format","peekRecord","newBlastEvent","createRecord","save","then","results","currentRouteName","currentRouteInstance","refresh","catch","error","console","cancelNew","didRender","willDestroyElement","datetimepicker","resetNewSeismicEventObject","_this","set","isVisible","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","newSeismicEventObject","dateFormat","timestamp","seismicType","dateTimePicker","east","north","depth","selectOptionsArray","computed","map","item","seismicTypesSelectOptionsKyes","get","split","key","value","handleIsVisibleCreateNewFormChange","observer","actions","addNew","object","saveNew","moment","format","peekRecord","newSeismicEvent","createRecord","savedObject","save","then","results","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","didInsertElement","map","L","center","lat","lng","zoom","imageOverlay","mapBounds","addTo","marker","popupContent","bindPopup","openPopup","computed","Ember","Component","extend","ajax","inject","service","session","isVisibleExportDataForm","instrumentId","fileFormat","loading","fileFormats","key","value","fileName","computed","get","fileLink","base","handleIsVisibleCreateNewFormChange","observer","set","isExportLinkReady","actions","downloadFile","$t","$","currentUrl","window","location","href","urlSegments","split","originator","length","includes","params","URLSearchParams","keys","forEach","has","urlWithOriginator","filename","request","method","url","headers","Authorization","localStorage","token","success","download","bind","done","msg","updateProperties","propertyNames","propertyValues","_this","propertyName","i","Array","isArray","cancel","Ember","Component","extend","ajax","inject","service","session","isVisibleExportDataForm","gatewayId","fileFormat","loading","fileFormats","key","value","fileName","computed","get","fileLink","base","handleIsVisibleCreateNewFormChange","observer","set","isExportLinkReady","actions","downloadFile","$t","$","filename","console","log","split","includes","request","method","url","headers","Authorization","localStorage","token","success","download","bind","done","msg","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","Array","isArray","cancel","Ember","Component","extend","isVisibleImportDataForm","isVisibleError","instrumentId","loading","fileFormat","fileFormats","key","value","isSubmitting","fileSettings","instrument_id","file_format","actions","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","set","Array","isArray","importFile","get","cancelImport","notSubmitting","errorHappened","message","console","log","run","scheduleOnce","Ember","Component","extend","isVisibleImportDataForm","isVisibleError","loading","isVisibleErrorChangeObserver","observer","get","error","instrumentId","fileFormat","dateFormat","dateFormats","key","value","fileFormats","isRAW","uniqueInstruments","showIsRAW","computed","uniqueInstrumentsKeys","Object","keys","includes","instrumentType","title","getUnitInstrComment","isSubmitting","fileSettings","instrument_id","file_format","date_format","actions","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","set","Array","isArray","importFile","cancelImport","notSubmitting","errorHappened","message","console","log","replace","run","scheduleOnce","Ember","Component","extend","isVisibleImportDataForm","isVisibleError","loading","isVisibleErrorChangeObserver","observer","get","error","gatewayId","fileFormat","dateFormat","dateFormats","key","value","fileFormats","isSubmitting","fileSettings","gateway_id","file_format","date_format","actions","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","set","Array","isArray","importFile","cancelImport","notSubmitting","errorHappened","message","console","log","replace","run","scheduleOnce","Ember","Component","extend","dataLegends","computed","objectKyes","Object","keys","get","toJSON","recordValues","item","getProperties","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreateDConvInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","baseLength","instrumentType","peekRecord","headAt","active","strokeLength","zeroTimestamp","moment","format","installDate","newInstrument","dup","createRecord","err","message","includes","save","then","results","number","distance","instrument","anchorCount","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","isShowingModal","showModal","phoneNumber","carrier","referenceAnchors","loading","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","substring","onCarrierChanged","onTimeReferenceChanged","timeReference","handleAlertObjectChange","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","instrument","pos","length","numChans","parseInt","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","console","log","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","toggleModal","toggleProperty","handleSelection","selectedValue","EditInstrument","extend","viewData","id","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","get","transitionTo","queryParams","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","unshift","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","length","anchors","anchor","splice","anchorMidDistances","copy","midDistances","i","mid","push","toFixed","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","anchorDist","chartLine","chartLineIndex","dataPoint","dataPointIndex","concat","fullRangeChartLinesData","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","forEach","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","value1","value2","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","dataValuesCount","length","error","anchors","anchor","midPoints","ctr","toFixed","unshift","zoomChartLinesData","_this","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","pop","shift","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","forEach","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","substring","timeReference","instrument","peekRecord","undefined","console","log","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","active","instrumentStiffness","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","anchorCount","parseInt","substring","length","ctr","number","distance","instrument","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","referenceAnchors","loading","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","computed","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","viewData","id","get","transitionTo","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","plated","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","length","anchors","anchor","splice","anchorAXDistances","midPoints","headExclusion","leftAnchors","center","Math","ceil","concat","slice","midLeft","ctr","$","v","i","unshift","mid_temp","push","shift","pop","anchorBXDistances","anchorMidDistances","copy","midDistances","mid","toFixed","len","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","fullRangeChartLinesData","forEach","element","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","vibeEventsChartDistXData","events","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","vibeEventsArray","ppa","ppv","freq","zoomTempPoints","item","discreteData","linesKeys","Object","keys","toJSON","chartData","getProperties","length","zoomDataPoints","linesKyes","KPA_TO_MMH20","modelName","chartType","attrs","getQueryParams","plated","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","anchors","numPorts","startVal","maxVal","ctr","dataValuesCount","error","anchor","midPoints","mid","toFixed","splice","headExclusion","leftAnchors","rightAnchors","center","Math","ceil","concat","slice","midLeft","midRight","shift","pop","unshift","sort","a","b","zoomChartLinesData","_this","mName","forEach","element","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","temp","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","undefined","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX2","onDistXTooltipShowCall","distX0","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","displacementData2","computed","dv","displacementData","forEach","value","values","shift","anchorDistances","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","DropdownOptionComponent","Component","isSelected","args","value","selectValue","Ember","Component","extend","session","userProfileService","init","_super","arguments","console","log","get","disableBasedOnAdminLevel","computed","parentUserProfile","profile","is_staff","canUploadToVP","can_upload_vantagepoint","canLoginToVP","can_login_vantagepoint","getCompany","company","getPosition","position","getIsActive","is_active","getIsStaff","getIsMasterUser","is_master_key_account","actions","close","save","data","companyTB","document","getElementById","value","positionTB","canLoginVPCheckbox","checked","canUploadVPCheckbox","FileField","extend","session","isSubmitting","isSubmittingChangeObserver","Ember","observer","get","send","uploader","files","ajaxSettings","headers","Accept","withCredentials","Authorization","localStorage","token","fileSettings","filesDidChange","Uploader","create","url","paramName","set","actions","submitFile","object","_this","isEmpty","format","file_format","dateFormat","date_format","filename","name","substring","lastIndexOf","ext","ok","id","gateway_id","errMsg","confirm","includes","upload","then","data","window","location","reload","error","responseJSON","sendAction","responseText","statusText","cancel","FileField","extend","session","isSubmitting","isSubmittingChangeObserver","Ember","observer","get","send","uploader","files","ajaxSettings","headers","Accept","withCredentials","Authorization","localStorage","token","fileSettings","filesDidChange","Uploader","create","url","paramName","set","actions","submitFile","object","_this","isEmpty","format","file_format","dateFormat","date_format","filename","name","substring","lastIndexOf","ext","ok","id","instrument_id","errMsg","upload","then","data","window","location","reload","error","responseJSON","sendAction","responseText","statusText","cancel","FileField","extend","session","isSubmitting","isSubmittingChangeObserver","Ember","observer","get","send","uploader","files","ajaxSettings","headers","Accept","withCredentials","Authorization","localStorage","token","fileSettings","filesDidChange","Uploader","create","url","paramName","set","actions","submitFile","object","_this","isEmpty","format","file_format","dateFormat","date_format","filename","name","substring","lastIndexOf","ext","ok","id","instrument_id","errMsg","confirm","includes","upload","then","data","window","location","reload","error","responseJSON","sendAction","responseText","statusText","cancel","Ember","Component","extend","pageValue","actions","updateProperty","propertyName","propertyValue","set","get","window","location","href","keyDown","e","keyCode","caller","target","send","value","Ember","Component","extend","sv","pv","searchValue","computed","get","attrs","value","set","pageValue","actions","updateProperty","propertyName","propertyValue","keyDown","e","keyCode","send","quickTableFilter","Ember","Component","extend","pageValue","actions","updateProperty","propertyName","propertyValue","set","get","window","location","href","keyDown","e","keyCode","caller","target","send","value","Ember","Component","extend","pageValue","startDate","endDate","search","init","_super","arguments","setSearchFieldsFromURL","queryParams","URLSearchParams","window","location","set","get","startDateParam","endDateParam","decodedStartDate","decodeURIComponent","console","log","decodedEndDate","formatDateForDatetimeLocal","dateStr","date","Date","toISOString","slice","actions","updateProperty","propertyName","changeEvent","target","value","newEndDate","calculateEndDate","searchValue","href","encodeURIComponent","reset","startDateObj","moment","add","format","keyDown","e","keyCode","caller","send","Ember","Component","extend","pageValue","actions","updateProperty","propertyName","propertyValue","set","get","window","location","href","keyDown","e","keyCode","caller","target","send","value","Ember","Component","extend","extend","router","session","selectedFreqEventTabKey","selectedFreqEventSubTabKey","selectedFreqEventSubSubTabKey","buildTabsInstrTypeDependent","Ember","computed","tabs","instrumentType","get","id","label","buildSubTabsInstrTypeDependent","buildSubSubTabsInstrTypeDependent","willDestroyElement","_super","arguments","set","actions","updateSelectedTab","newTabId","updateSelectedSubTab","bluvibeV2ModelProfiles","length","updateSelectedSubSubTab","run","next","Ember","Component","extend","authError","router","isRowDeleteConfirmationDialog","gwId","processedGatewayAlerts","computed","gatewayAlerts","map","alertRow","actions","getId","alert","toggleRowDeleteConfirmationDialog","id","errBox","document","getElementById","hidden","curVal","get","set","createAlert","gwID","transitionTo","queryParams","gw_id","remove","model","object","_this","_store","hidd","save","then","deleteRecord","unloadRecord","catch","reason","status","errors","Ember","Component","extend","session","isRowDeleteConfirmationDialog","rdcd","store","childDict","init","_super","arguments","loadChildren","gateway","get","gatewayId","findRecord","reload","then","children","childObjects","map","child","toJSON","set","catch","error","console","inspectGateway","gw","gwc","toArray","setRDCD","value","notifyPropertyChange","gatewayChildren","computed","actions","toggleRowDeleteConfirmationDialog","id","curVal","remove","model","object","_this","_store","errBox","document","getElementById","hidd","save","deleteRecord","unloadRecord","reason","status","errors","hidden","Ember","Component","extend","store","router","session","expandedRowsArray","isRowDeleteConfirmationDialog","isRowExpanded","licenceIsValid","computed","valid","data","authenticated","isValid","expandedRows","index","gatewayChildren","gateway","get","children","get_id","id","actions","toggleExpansion","createGateway","transitionTo","toggleRowDeleteConfirmationDialog","curVal","set","toggleExpandedRow","row","remove","model","object","active","save","then","sendAction","catch","reason","console","log","removeGatewayWithoutNodes","errBox","document","getElementById","hidd","deleteRecord","unloadRecord","status","errors","hidden","removeGatewayWithNodes","_this","_store","badCodes","gatewayType","orphanGateway","findRecord","createRecord","name","includes","saveNodes","nodes","Promise","all","map","node","deleteGateway","refresh","GatewaySelectorComponent","Component","selectGateway","gateway","concatenatedValue","PhoneNumber","Carrier","args","onSelect","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","substring","timeReference","instrument","peekRecord","undefined","console","log","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","active","instrumentStiffness","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","anchorCount","parseInt","substring","length","ctr","number","distance","instrument","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","anchorList","computed","isSelected","forEach","element","channelCount","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","selectedCh","newAnchor","createRecord","save","destroyRecord","result","findRecord","then","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","viewData","id","get","transitionTo","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","plated","splice","unshift","push","length","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","anchors","anchor","half_anchors","gauge","pop","last","sort","a","b","forEach","index","shift","anchorAXDistances","midPoints","headExclusion","leftAnchors","center","Math","ceil","concat","slice","midLeft","ctr","$","v","i","mid_temp","anchorBXDistances","anchorMidDistances","copy","midDistances","finalSize","mid","toFixed","len","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","fullRangeChartLinesData","element","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","vibeEventsChartDistXData","events","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","plated","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","anchors","numPorts","startVal","maxVal","ctr","dataValuesCount","length","error","anchor","midPoints","mid","toFixed","splice","headExclusion","leftAnchors","rightAnchors","center","Math","ceil","concat","slice","midLeft","midRight","shift","pop","unshift","sort","a","b","zoomChartLinesData","_this","mName","forEach","element","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","temp","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","inst_id","actions","setID","inst","set","id","setValue","instrumentTypeID","Ember","Component","extend","router","session","isRowDeleteConfirmationDialog","licenceIsValid","computed","valid","data","authenticated","isValid","actions","createInstrument","get","transitionTo","toggleRowDeleteConfirmationDialog","id","curVal","set","remove","model","object","_this","_store","errBox","document","getElementById","hidd","save","then","deleteRecord","unloadRecord","catch","reason","status","errors","hidden","Ember","Component","extend","isVisibleImportKeyForm","isVisibleError","isSubmitting","loading","actions","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","set","Array","isArray","importKey","cancelImport","errorHappened","message","console","log","run","scheduleOnce","FileField","extend","session","api","isSubmitting","isSubmittingChangeObserver","Ember","observer","get","send","uploader","files","ajaxSettings","headers","Accept","withCredentials","Authorization","localStorage","token","fileSettings","filesDidChange","Uploader","create","url","paramName","set","updateLicence","endsWith","response","fetch","method","ok","licence","json","data","authenticated","attributes","actions","submitFile","object","console","log","_this","isEmpty","value","$","css","upload","then","error","sendAction","statusText","cancel","LogViewerTableComponent","Component","logViewers","store","findAll","loadLogViewers","query","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","substring","timeReference","instrument","peekRecord","undefined","console","log","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","strokeLength","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","instrumentType","peekRecord","headAt","active","zeroTimestamp","moment","format","installDate","newInstrument","dup","createRecord","err","message","includes","save","then","results","number","distance","instrument","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","anchorList","computed","isSelected","forEach","element","channelCount","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","unallowedValues","undefined","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","selectedCh","newAnchor","createRecord","save","destroyRecord","result","findRecord","then","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","viewData","id","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","get","transitionTo","queryParams","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","unshift","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","length","anchors","anchor","splice","anchorMidDistances","copy","midDistances","i","mid","push","toFixed","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","concat","fullRangeChartLinesData","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","forEach","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","yAxisUnit","init","_super","arguments","queryParams","URLSearchParams","window","location","search","yAxisUnitParam","get","set","seismicEventsChartDistXData","computed","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","dataValuesCount","length","error","anchors","anchor","midPoints","ctr","toFixed","unshift","zoomChartLinesData","_this","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","pop","shift","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","forEach","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","index","modifiedDisplacementData","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","resetNewInstrumentObject","_this","set","CreateMultiExtoInstrument","onDropdownSearch","value","searchForExto","store","get","respData","query","small","search","then","data","loadInstruments","error","setID","instr","instrumentList","selectedInstruments","length","includes","addObject","resetInstrument","object","createInstrument","newInstrumentObject","setError","id","instrumentType","peekRecord","headAt","active","newInstrumentID","zeroTimestamp","moment","format","dup","forEach","index","instrumentPosition","existingInstrument","unloadRecord","newInstrument","createRecord","err","console","log","message","save","results","catch","reason","init","arguments","instruments","rawData","filteredInstruments","filter","instrument","title","toLowerCase","mappedGateways","map","instrumentID","position","buildInstrumentID","newID","buildInstrumentChannels","selectedInstrList","numberOfChannels","instrID","channel","substring","Ember","Component","extend","session","isRowDeleteConfirmationDialog","store","rowData","masterModifiedRawData","init","_super","arguments","displaceRowvalues","get","tempRowValues","objectAt","Number","key","buildMainRowData","multiExtoInstr","values","console","log","mainData","i","instr_position_index","instrumenPositionObj","subExtoID","id","channels","subRowData","length","slice","push","set","buildCustomAnchors","computed","extoInstrumentObj","anchors","instrumentID","instrPositionAttributesObj","findRecord","then","instrument","anchorPt","obj","forEach","element","catch","reason","getSpecificRowData","currMultiDExto","currentExtoInstr","index","actions","updateProperty","propertyName","propertyValue","Ember","Component","extend","session","isRowDeleteConfirmationDialog","store","init","_super","arguments","getAnchors","slaveInstrID","slaveInstrObjDataPromises","map","positionLabel","instrumentPosition","get","instrumentPositionID","instrPositionAttributesObj","then","anchors","anchorDistances","anchor","id","reason","slaveInstrObjData","Promise","all","filter","obj","set","actions","updateProperty","propertyName","propertyValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","setID","instr","instrumentList","get","selectedInstruments","length","includes","addObject","viewData","id","transitionTo","tGraph","editField","stopEditField","saveInstrument","t","confirm","window","location","href","init","arguments","loadSelectedInstruments","instrument","selectedInstrs","i","instrPositionLabel","instrPositionObj","instrPositionAttributesObj","store","findRecord","then","anchorPt","obj","forEach","element","strokeLen","anchors","strokeLength","catch","reason","title","instrumentID","position","data","anchorPoints","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","actions","saveImage","console","log","document","querySelector","then","canvas","downloadLink","createElement","setAttribute","toBlob","blob","url","URL","createObjectURL","click","toggleLine","lineIndex","lineSettings","JSON","parse","localStorage","getItem","setItem","stringify","d3","select","style","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","indx","dataArry","mainArr","adjustedDataArry","lastPointDataIndicies","slaveInstrID","positionLabel","index","instrumentPosition","subArry","anchorIndex","value","push","Number","parseInt","slice","offsetValue","forEach","val","parseFloat","includes","modelName","fullRangeDataPoints","instrumentID","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","dataValuesCount","length","error","slaveInstrObjDataPromises","positionObjID","instrPositionAttributesObj","anchors","anchor","id","reason","slaveInstrObjData","Promise","all","filter","obj","finalAnchorDistances","slaveExto","i","concat","distance","newDist","toFixed","modifiedAnchorDistances","midPoints","unshift","ctr","zoomChartLinesData","_this","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","finalVal","pop","shift","temp","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","didInsertElement","zoomChartSVG","fullRangeChartSVG","apiCallsPromises","randomHexColorCode","n","Math","random","toString","colorArray","numColor","colorHEX","RSVP","results","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","duration","showDistX","noData","legend","rightAlign","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","init","_super","arguments","getSelectedExtos","instrument","isVisibleCreateNewForm","store","router","session","selectedInstrs","i","instrPositionLabel","instrPositionObj","instr","title","id","instrumentID","position","data","set","selectedInstruments","actions","updateProperty","propertyName","propertyValue","Ember","Component","extend","session","isRowDeleteConfirmationDialog","rdcd","store","childDict","init","_super","arguments","actions","Ember","Component","extend","Ember","Component","extend","session","userProfileService","api","provider1","isLoading","oauthProfile","isShowMicrosoftADTestMessage","microsoftADTestMessages","isEditingClientID","isEditingTenantID","isEditingRedirectURI","isEditingTokenURL","isEditingClientSecret","init","_super","arguments","getOAuthProfile","isMasterUser","computed","profile","is_master_key_account","set","url","response","fetch","method","headers","Authorization","localStorage","token","status","responseData","json","getClientID","client_id","getTenantID","tenant_id","getClientSecret","getRedirectURI","redirect_uri","getTokenURL","token_url","updateIsEditing","key","actions","updateIsEditingProperty","clearMicrosoftADTestMessages","updateProperty","docuKey","typeKey","dataobj","docu","document","getElementById","undefined","value","trim","body","JSON","stringify","result","ok","newProfile","testMicrosoftADConnection","success","error","console","e","Ember","Component","extend","session","userProfileService","api","userProfile","isEditingFirstName","isEditingLastName","isEditingEmail","isEditingUsername","isEditingCompany","isEditingPosition","isValidUsername","usernameTips","isValidEmail","emailTips","showEmailError","emailErrorMessage","showUsernameError","emailUsernameMessage","isMasterUser","computed","profile","is_master_key_account","getFirstName","first_name","getLastName","last_name","getEmail","email","getUsername","username","getCompany","company","getPosition","position","updateIsEditing","key","set","resetError","updateError","typeKey","errorMessage","validateEmail","length","emailRegex","test","validateUsername","inputUsername","usernameRegex","actions","updateEmail","event","target","value","updateUsername","updateIsEditingProperty","updateProperty","docuKey","dataobj","docu","document","getElementById","undefined","trim","url","response","fetch","method","headers","Authorization","localStorage","token","body","JSON","stringify","result","json","updatedObj","updated","ok","join","updateField","Ember","Component","extend","session","userProfileService","api","isLoading","paginationSearchConfig","searchObject","settingsConfig","MAX_TIMEOUT_AWAITING_SAMPLING","ASCENDING_CONST","DESCENDING_CONST","calibrationDateOrdering","pagination","page","pageSize","totalPages","paginationPageSizes","calibrationInstrumentProfilePaginationList","resetPasswordMessage","isShowResetPasswordMessage","init","_super","arguments","getActivityLogList","set","payload","page_size","get","url","queryString","URLSearchParams","toString","response","fetch","method","headers","Authorization","localStorage","token","status","responseData","json","rawList","data","included","map","record","flattenActivityLog","metaPaginationData","updatePaginationList","attrs","attributes","relationships","activity_message","action_date","instrument_id","instrument","id","gateway_id","gateway","range","maxPageToShow","paginationObj","push","i","isStaffUser","computed","profile","is_staff","actions","sendResetPasswordLink","email","alert","body","JSON","stringify","err","console","error","setTimeout","accessAdmin","event","preventDefault","URL","window","location","href","port","open","columnCycleOrdering","instrument_id_sortComp","document","getElementById","textContent","action_date_sortComp","gateway_id_sortComp","jumpToPage","Number","parseInt","Ember","Component","extend","session","userProfileService","api","isEditModalOpen","selectedUser","isLoading","paginationSearchConfig","searchObject","settingsConfig","MAX_TIMEOUT_AWAITING_SAMPLING","ASCENDING_CONST","DESCENDING_CONST","init","_super","arguments","getUsers","set","payload","get","url","queryString","URLSearchParams","toString","response","fetch","method","headers","Authorization","localStorage","token","status","responseData","json","users","editTitle","computed","id","closeEditUserModal","saveUserEdits","updatedData","body","JSON","stringify","console","log","actions","openEditUserModal","user","columnCycleOrdering","idColumnComp","document","getElementById","textContent","firstNameColumnComp","lastNameColumnComp","usernameColumnComp","lastLoginColumnComp","dateJoinedColumnComp","Ember","Component","extend","userProfileService","api","init","_super","arguments","profileImage","computed","profile","profile_picture","isMasterUser","is_master_key_account","firstName","first_name","lastName","last_name","actions","triggerImageUpload","document","getElementById","click","updateTab","value","set","uploadProfileImage","event","file","target","files","allowedTypes","includes","type","alert","MAX_SIZE_MB","size","formData","FormData","append","url","response","fetch","method","headers","Authorization","localStorage","token","body","result","json","ok","updateField","e","console","error","navbar","apiPort","ENV","API_PORT","navigateToSettings","router","transitionTo","navigateToMyProfile","username","wrapper","userProfileService","firstName","lastName","profile","first_name","length","last_name","isValid","get","data","authenticated","undefined","hasPermissionAnalyticsTab","is_superuser","can_view_packs_validation_analytics","can_view_sensor_calibration_analytics","hasPermissionPacksValidationAnalytics","hasPermissionSensorCalibrationAnalytics","hasPermissionProductionTab","can_view_sensor_calibration","can_view_packs_validation","hasPermissionSensorCalibration","hasPermissionPacksValidation","isWithinLimit","limit","modules","hasAlerts","perms","session","navigateToSensorCalibrationAnalytics","event","preventDefault","url","URL","window","location","href","navigateToPacksValidationAnalytics","navigateToSensorCalibration","navigateToPacksValidation","logout","console","log","invalidate","error","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeSize","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","username","get","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","checkChanged","object","staticChanged","document","getElementById","checked","activeChanged","repeatChanged","invertChanged","toggleActive","big","createAlert","selector","$","selected","val","forEach","selection","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","instrument","peekRecord","newAlert","createRecord","err","alertObjectValue","respType","addType","value","cb","wl","target","sel","selectedIndex","setError","isNaN","includes","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","catch","reason","errors","status","resetNewGatewayObject","_this","set","CreateBluCellGateway","createGateway","object","store","get","newGatewayObject","setError","error","id","installDate","depth","gatewayType","peekRecord","typeID","active","interval_upload","query","filter","interval_value","interval_group_name","then","results","gatewayUploadInterval","catch","console","log","interval_read","gatewayReadInterval","moment","format","newGateway","dup","createRecord","err","message","includes","save","reason","setID","gw","parent","findRecord","value","parentGateway","init","arguments","loadGateways","gatewayList","rawData","filteredGateways","gateway","title","toLowerCase","mappedGateways","map","parentId","type","resetNewRawDataValueObject","_this","gatewayValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newGatewayValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newGatewayValueObjectValues","actions","saveNew","console","log","gatewayValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newGatewayValues","savedGatewayValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","ajax","inject","service","store","tr","instID","activeSize","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","handleAlertObjectChange","console","log","onMetricChanged","metric","get","set","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","anchorList","computed","isSelected","forEach","element","channelCount","instrument","pos","length","numChans","parseInt","substring","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","$","headers","Authorization","localStorage","token","actions","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","selectedCh","newAnchor","createRecord","save","destroyRecord","result","findRecord","then","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditGateway","extend","store","Ember","inject","service","gatewayReadingsIntervals","initialSelection","isAuthenticated","selectedModel","editing","init","_super","arguments","loadGateways","gatewayList","rawData","filteredGateways","filter","gateway","active","get","title","toLowerCase","parent","selectedItem","mappedGateways","map","gw","value","type","id","set","computed","gateways","getGatewayUploadIntervalID","gatewayUploadInterval","toString","getGatewayReadIntervalID","gatewayReadInterval","setGatewayInterval","event","selectedOptions","Array","from","target","selectedValue","parseInt","option","intervalType","notSelected","findRecord","then","interval","notSelectedIntervalValue","group_name","query","interval_value","interval_group_name","results","save","console","log","catch","error","updatePage","viewData","transitionTo","tGraph","editField","stopEditField","saveGateway","_this","t","confirm","window","location","href","sortBy","property","setID","parentGateway","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","console","log","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Coordinator","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","Temperature","var_1","var_2","var_3","zoomTempPoints","zoomTempData","get","forEach","item","i","linesKyes","keys","toJSON","chartData","getProperties","push","values","zoomDataPointsLeftAxis","zoomChartData","leftAxisIndex","zoomLeftAxis","map","JSON","stringify","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","temp","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","getGatewayData","fields","items","filteredData","get","forEach","item","values","firmware","coordinator","voltage","rssi","mesh_id","length","push","id","originalValue","save_values","actions","updateProperty","propertyName","propertyValue","console","log","set","extend","selected","defaultSelected","console","log","actions","handleSelectedFieldChange","newValue","set","LeftAxisDropdown","extend","tGraph","id","modelName","params","console","log","get","transitionTo","extend","rightAxisField","routeValue","defaultRightAxisField","console","log","getRouteValue","selected","toLowerCase","set","actions","handleRightAxisFieldChange","newValue","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","username","channelCount","id","pos","length","count","onCarrierChanged","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","activeSize","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","toggleModal","toggleProperty","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","unallowedValues","includes","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","newAlertObj","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","reason","errors","status","catch","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","instrumentType","peekRecord","headAt","active","strokeLength","zeroTimestamp","moment","format","installDate","newInstrument","dup","createRecord","err","message","includes","save","then","results","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","metric","get","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","timeReference","editing","isShowingModal","showModal","phoneNumber","carrier","isRefAnchorDisabled","isTimeReferenceDisabled","referenceAnchors","loading","edited","isValidPhoneNumber","regex","test","computed","target","atIndex","indexOf","console","log","substring","handleAlertObjectChange","onMetricChanged","send","document","getElementById","onCarrierChanged","onMethodChanged","method","onResponseChanged","response","onVarChanged","onTimeReferenceChanged","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","instrument","pos","length","numChans","parseInt","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","toggleModal","toggleProperty","handleSelection","selectedValue","EditInstrument","extend","didReceiveAttrs","_super","arguments","project","level","setProject","event","selectedId","target","value","foundObject","projectLookupList","find","lookup","id","set","setLevel","levelLookupList","viewData","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","get","transitionTo","queryParams","tGraph","sGraph","editField","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","unshift","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","length","anchors","anchor","splice","anchorMidDistances","copy","midDistances","i","mid","push","toFixed","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","anchorDist","chartLine","chartLineIndex","dataPoint","dataPointIndex","concat","fullRangeChartLinesData","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","forEach","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","yAxisUnit","init","_super","arguments","queryParams","URLSearchParams","window","location","search","yAxisUnitParam","get","set","actions","saveImage","console","log","document","querySelector","then","canvas","downloadLink","createElement","setAttribute","toBlob","blob","url","URL","createObjectURL","click","toggleLine","lineIndex","lineSettings","JSON","parse","localStorage","getItem","setItem","stringify","d3","select","style","seismicEventsChartDistXData","computed","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","dataValuesCount","length","error","anchors","anchor","midPoints","ctr","toFixed","unshift","zoomChartLinesData","_this","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","pop","shift","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","didInsertElement","zoomChartSVG","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","results","toString","forEach","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","rightAlign","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","router","paginatorSize","newPage","currentPage","computed","get","pagination","page","totalPages","totalVisibleLinksCount","halfOfTotalVisibleLinksCount","Math","ceil","firstPageLink","queryParams","isQueryParams","values","lastPageLink","paginationLinks","routeLink","startPageOffset","endPageOffset","i","push","linkName","params","actions","goToPage","new_page","pages","id","transitionTo","keyDown","e","keyCode","send","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","active","instrumentStiffness","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","anchorCount","parseInt","substring","length","ctr","number","distance","instrument","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","computed","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","viewData","id","get","transitionTo","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","plated","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","length","anchors","anchor","splice","anchorAXDistances","midPoints","headExclusion","leftAnchors","center","Math","ceil","concat","slice","midLeft","ctr","$","v","i","unshift","mid_temp","push","shift","pop","anchorBXDistances","anchorMidDistances","copy","midDistances","mid","toFixed","len","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","fullRangeChartLinesData","forEach","element","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","vibeEventsChartDistXData","events","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","vibeEventsArray","ppa","ppv","freq","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","KPA_TO_MMH20","modelName","chartType","attrs","getQueryParams","console","log","plated","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","anchors","numPorts","startVal","maxVal","ctr","dataValuesCount","length","error","anchor","midPoints","mid","toFixed","splice","headExclusion","leftAnchors","rightAnchors","center","Math","ceil","concat","slice","midLeft","midRight","shift","pop","unshift","sort","a","b","zoomChartLinesData","_this","mName","forEach","element","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","temp","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","undefined","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX2","onDistXTooltipShowCall","distX0","distX1","distXIndex","activeTooltipContent","windowResize","update","e","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","displacementData2","computed","dv","displacementData","forEach","value","values","shift","anchorDistances","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","isShowingModal","host","computed","document","location","split","carrierList","data","get","carrierValue","item","atIndex","indexOf","substring","length","actions","close","set","selectGateway","phoneNumber","concatenatedValue","console","log","sendAction","toggleModal","toggleProperty","closeTargetSelector","gateways","sortedData","Object","values","carrier_list","sort","a","b","Country","localeCompare","reduce","acc","curr","Carrier","Ember","Component","extend","store","router","session","settingsConfig","softwareVersion","internalVersion","BATCH_SENSORS_COUNT","UNFILLEDCONSTANT","CALIBRATIONSPECIFICPERMISSIONS","APPROVEDINSTRUMENTTYPES","APPROVEDRIGCATEGORIES","stepper","pump","chatLocked","streamingTextBox","phaseITextbox","phaseIITextbox","MAX_TIMEOUT_AWAITING_SAMPLING","ASCENDING_CONST","DESCENDING_CONST","isShowConfig","tabs","home","calibSensorList","isShowSettings","isShowCalibForm","isShowRigForm","isShowPopupNotification","isShowCommandConsole","isShowLiveGraphs","isFormEditing","paginationSearchConfig","searchObject","calibrationDateOrdering","pagination","page","pageSize","totalPages","paginationPageSizes","calibrationInstrumentProfilePaginationList","userInputtedData","selectedRigProfile","selectedCalibrationProfile","selectedSensorData","batchSensorData","batchCheckboxData","selectedAnchorData","frontendData","packValidationCompletedProfileList","calibrationInstrumentProfileList","rigNotificationData","calibrationData","phaseISampleLookupData","phaseILookupData","phaseIISampleCalibrationDataValueData","phaseIICalibrationDataValueData","phaseIISampleCurrentData","phaseIICurrentData","phaseIISlopeData","phaseIIOffsetData","calibrationIsSamplingData","isPhaseISampling","isPhaseIICalibrationDataValueSampling","isPhaseIISampling","dashboardStatusBarData","status","connection","calibration","current","target","formRigData","formCalibData","emergencyController","AbortController","showIrretrivableWarning","progressInterval","isTriggered","init","_super","arguments","getCalibrationSpecificPermission","getSensorProfileList","getCompletedPackProfileList","setTimeout","set","run","scheduleOnce","pageSizeComp","document","getElementById","value","get","forEach","rigObj","index","data","messages","approvedObject","typeObject","sendCommandFromConsoleTxtbox","cmdConsole","trim","cmd","split","buildAnchorDiagram","type","channels","masterDiagramSection","upperMasterSection","anchorMasterSection","lowerMasterSection","dCable","typeValue","dExto","dMPBX","style","display","dRebar","visualAnchorPoints","i","push","e","console","log","upperTBSection","anchorPointsSection","lowerTBSection","innerHTML","firstBufferSection","createElement","width","height","appendChild","channel","tdElement","classList","add","inputElement","setAttribute","id","fontSize","padding","addEventListener","event","Number","parseFloat","headDiv","background","borderRadius","anchorSpace","justifyContent","alignItems","flexDirection","anchorPoint","borderStyle","borderWidth","anchorUpperTBComponent","channelArray","visualAnchorMidPointPosition","upperHalfValues","slice","lowerHalfvalues","anchorPointPosition","anchorLowerTBComponent","buildValidationPopupContent","failedObjects","popupContentSectionComponent","subtitleSection","textContent","key","Object","hasOwnProperty","call","length","rigCheckerSection","paddingLeft","rigLabelCheckerSection","paddingRight","rigValueCheckerSection","color","buildAnchorLiveViews","anchorSections","textDiv","borderSection","border","borderColor","getTabKeys","computed","getApprovedInstrumentTypeList","title","getApprovedRigCategoryList","getPaginationPageSizesList","pageSizeList","responseData","permissionObj","error","payload","page_size","rawSensorProfileList","element","metaPaginationData","totalRowsComp","updatePaginationList","rawCompletedPackProfileList","packProfileObject","range","maxPageToShow","paginationObj","clearBatchCBData","batchMasterElement","checked","currBatchCheckboxData","keys","constructor","schedule","calibrationID","batchCBElement","getRigList","rigList","dbID","rigName","rigIP","getTypeList","sensorTypeList","getCalibrationProfileList","calibProfList","minLimit","maxLimit","calibrationConfigButton","observer","rigConfigButton","calibProfileCalibFormLoad","selectedCalibFormCalibData","calibTypeComp","channelsComp","minLimitComp","maxLimitComp","checkpointSampleSizeComp","checkpointSpeedComp","typeIDComp","checkpointUnit","checkpointCurrentTargetBufferComp","checkpointDelayComp","checkpointPositionsComp","calibCreationEmployeeComp","calibData","calibProf","toString","calibType","unit","typeID","checkpointSampleSize","checkpointSpeed","checkpointCurrentTargetBuffer","checkpointDelay","checkpointPositions","calibCreationEmployee","rigProfileRigFormLoad","selectedRigFormRigData","rigIPComp","rigNameComp","rigCategoryComp","rigReferenceIDComp","rigReferenceCalibrationValueComp","rigReferenceCalibrationDateComp","rigData","rigProf","date","time","toLowerCase","rigCategory","creationEmployee","rigReferenceID","rigReferenceCalibrationValue","rigReferenceCalibrationDate","calibProfileLoad","selectedProfile","currentDate","Date","month","getMonth","padStart","year","getFullYear","message","currArr","sensorData","sensorID","sensorName","sampleDataDump","sampleCurrentDataDump","lookupData","calibrationDataData","currentData","slopeData","offsetData","isSamplingData","isSamplingCurrentData","isSamplingCalibrationData","sensorIDTBComponent","chart","labels","datasets","update","datasetArr","label","fill","tension","rigProfileLoad","rig","dashboardStatusBarObserver","statusObj","statusComponent","connectionComponent","calibrationComponent","dashboardStatusBarObserver2","currentComponent","targetComponent","actions","cycleInternalHotButton","startVerificationPress","elementID","holdDuration","mode","button","startTime","now","setInterval","elapsedTime","progress","Math","min","toFixed","send","clearInterval","err","cancelVerificationPress","triggerAction","JSON","stringify","abort","assistiveTooltip","reconnectWebSocket","viewCalibratedData","anchorDataValue","packProfileData","packID","validationID","viewPhaseIICalibratedData","showBatchSensors","cycleView","viewRigNotifications","viewPhaseIIConclusionCalibrationSheet","viewFromInventoryEditSheet","profile","viewCalibrationSheet","getCalibProfile","sensorProfile","packProfile","scrollTop","window","scrollTo","top","behavior","scrollDashboard","scrollIntoView","block","copyChatToClipboard","chatBox","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","execCommand","unlockChatScroll","lockChatScroll","scrollHeight","showLiveGraphs","curr","showCommandConsole","sendCommand","onKeyDown","exportChatToFile","chatContent","innerText","blob","Blob","downloadLink","href","URL","createObjectURL","download","click","controlPanel","closeNotificationPopup","notificationPopupContentBody","cycleVisualSettings","validatePriorCalibration","updateRigFormData","toUpperCase","updateCalibFormData","updateSensorFormData","selectedPackProfile","parseInt","resetSort","calibrationIDColumnComp","jobIDColumnComp","calibrationDateColumnComp","sensorIDColumnComp","updateSearchObjData","choseRig","oldRigObject","choseSensorType","cycleEditMode","cycleAddNewRigMode","cycleAddNewCalibProfileMode","cycleShowAnchorDiagramMode","isShowAnchorDiagram","formDeleteButton","calibSubmittedObject","location","reload","rigSubmittedObject","formSaveButton","validationKeys","missingKeysMsgArr","userProfile","authenticated","validationKeys2","missingKeysMsgArr2","userProfile2","activityLog","jumpToPage","search","resetPage","resetSearch","calibrationIDFilter","searchCalibrationIDComponent","searchJobIDComponent","searchSensorIDComponent","batchCertificate","isVisiblePopup","rowCheckbox","checkboxElementID","cbElement","columnCycleOrdering","didInsertElement","ctx","getContext","Chart","options","responsive","maintainAspectRatio","scales","x","y","plugins","legend","position","usePointStyle","generateLabels","map","dataset","text","fillStyle","strokeStyle","lineWidth","hidden","isDatasetVisible","datasetIndex","font","size","family","weight","boxWidth","boxHeight","tooltip","enabled","elements","point","radius","Ember","Component","extend","store","router","session","userInputtedData","selectedRigProfile","selectedPackType","selectedPackData","frontendData","packsValidationProfileList","rigNotificationData","manufacturedPacksData","completedFullPacksData","settingsConfig","tabs","home","calibSensorList","phaseENV","phase","canCycle","isRepairing","softwareVersion","internalVersion","APPROVEDRIGCATEGORIES","stepper","pump","chatLocked","streamingTextBox","phaseITextbox","phaseIITextbox","MAX_TIMEOUT_AWAITING_SAMPLING","ASCENDING_CONST","DESCENDING_CONST","paginationSearchConfig","searchObject","validationIdOrdering","packIdOrdering","phase1ValidationDateOrdering","phase2ValidationDateOrdering","rigIDOrdering","pagination","page","pageSize","totalPages","paginationPageSizes","packsValidationInstrumentProfilePaginationList","packsValidationData","phase1UnloadData","phase1LoadData","phase2UnloadData1","phase2LoadData1","phase2LoadData2","phase2UnloadData2","phase1ValidityData","unload","load","final","phase2ValidityData","load1","unload1","unload2","load2","packValidationIsSamplingData","currentStage","isPhaseISampling","isPhaseIISampling","isShowConfig","isShowRigForm","isShowPackTypeForm","isShowCommandConsole","isShowLiveGraphs","isFormEditing","isShowPopupNotification","isShowSettings","dashboardStatusBarData","status","connection","calibration","current","target","formRigData","formPackTypeData","emergencyController","AbortController","showIrretrivableWarning","progressInterval","isTriggered","init","_super","arguments","getPackProfileList","setTimeout","set","run","scheduleOnce","pageSizeComp","document","getElementById","value","get","forEach","rigObj","index","data","messages","userProfile","authenticated","phaseIDLabelComponent","style","fontSize","fontStyle","marginLeft","cycleViewComp","display","controlPanelComp","console","log","textContent","getCompletedP1PackProfiles","buildValidationPopupContent","failedObjects","popupContentSectionComponent","innerHTML","subtitleSection","createElement","appendChild","key","Object","hasOwnProperty","call","split","length","rigCheckerSection","width","flexDirection","alignItems","paddingLeft","rigLabelCheckerSection","paddingRight","rigValueCheckerSection","color","buildAnchorLiveViews","channels","anchorSections","i","textDiv","borderSection","border","borderWidth","borderRadius","borderColor","id","responseData","responseArr","element","attributes","title","push","dbID","packID","packId","validationID","validationId","rigID","rigId","getCompletedFullPackProfiles","getTabKeys","computed","getApprovedRigCategoryList","payload","page_size","rawSensorProfileList","metaPaginationData","totalRowsComp","updatePaginationList","error","range","maxPageToShow","paginationObj","sendCommandFromConsoleTxtbox","cmdConsole","trim","dataTranslatorVersion","cmd","getPaginationPageSizesList","pageSizeList","getRigList","rigList","rigName","rigIP","getTypeList","packTypeList","packType","coilsProfile","totalCoilsCount","min","max","getSensorTypeList","sensorTypeList","typeValue","packTypeConfigButton","observer","rigConfigButton","selectedPackTypeDPCalibFormObserver","selectedPackTypeFormTypeData","minComp","maxComp","phase1LoadMinRangeComp","phase1LoadMaxRangeComp","phase1UnloadMinRangeComp","phase1UnloadMaxRangeComp","phase2LoadMinRange2Comp","phase2LoadMaxRange2Comp","phase2UnloadMinRange2Comp","phase2UnloadMaxRange2Comp","acceptedUnloadVarianceComp","acceptedLoadVarianceComp","checkpointDelayComp","activeCoilsCountComp","totalCoilsCountComp","referenceUnfilledCoilsPositionsComp","generalCoilsPositionsComp","packTypeComp","packTypeProf","toString","join","packTypeName","sensorTypeObj","coilsNumber","phase1LoadMinRange","phase1LoadMaxRange","phase1UnloadMinRange","phase1UnloadMaxRange","phase2LoadMinRange2","phase2LoadMaxRange2","phase2UnloadMinRange2","phase2UnloadMaxRange2","acceptedUnloadVariance","acceptedLoadVariance","checkpointDelay","activeCoilsCount","referenceUnfilledCoilsPositions","generalCoilsPositions","rigProfileRigFormLoad","selectedRigFormRigData","rigIPComp","rigNameComp","rigCategoryComp","rigReferenceIDComp","rigReferenceCalibrationValueComp","rigReferenceCalibrationDateComp","rigData","rigProf","date","time","toLowerCase","rigCategory","creationEmployee","rigReferenceID","rigReferenceCalibrationValue","rigReferenceCalibrationDate","packProfileLoadPhaseI","packTypeData","typeProf","selectedProfile","progressBarSection","progressValueText","Number","parseInt","packProfileLoadPhaseII","manufacturedPackType","packTypeObj","packProfileLoadCompleted","completedPacksData","rigProfileLoad","rig","dashboardStatusBarObserver","statusObj","statusComponent","connectionComponent","calibrationComponent","phaseENVObeserver1","currPhase","actions","startVerificationPress","elementID","holdDuration","mode","button","startTime","Date","now","setInterval","elapsedTime","progress","Math","toFixed","send","clearInterval","err","message","cancelVerificationPress","triggerAction","abort","chart","labels","datasets","update","JSON","stringify","assistiveTooltip","type","reconnectWebSocket","viewPacksData","sensorData","minLimit","maxLimit","viewPhaseIICalibratedData","cycleView","viewRigNotifications","viewPhaseIIConclusionCalibrationSheet","getPackProfile","packProfile","rigProfile","packData","scrollTop","window","scrollTo","top","behavior","scrollDashboard","scrollIntoView","block","copyChatToClipboard","chatBox","createRange","selectNodeContents","selection","getSelection","removeAllRanges","addRange","execCommand","unlockChatScroll","lockChatScroll","scrollHeight","showLiveGraphs","curr","showCommandConsole","sendCommand","onKeyDown","event","exportChatToFile","chatContent","innerText","blob","Blob","downloadLink","href","URL","createObjectURL","download","click","controlPanel","closeNotificationPopup","notificationPopupContentBody","cycleVisualSettings","cycleIsRepair","validatePriorCalibration","updateRigFormData","toUpperCase","updatePackTypeFormData","typeObj","updatePackFormData","updateSearchObjData","choseRig","oldRigObject","choseSensorType","cycleEditMode","cyclePhase","cycleAddNewRigMode","cycleAddNewPackTypeMode","cycleInternalHotButton","formDeleteButton","packTypeSubmittedObject","location","reload","rigSubmittedObject","formSaveButton","validationKeys","missingKeysMsgArr","map","validationKeys2","missingKeysMsgArr2","userProfile2","activityLog","jumpToPage","search","resetPage","resetSearch","calibrationIDFilter","searchValidationIDComponent","searchPackIDComponent","searchPackNameComponent","searchCompanyComponent","resetSort","validationIdColumnComp","packIdColumnColumnComp","phase1ValidationDateColumnComp","phase2ValidationDateColumnComp","overruledColumnComp","columnCycleOrdering","didInsertElement","ctx","getContext","Chart","options","responsive","maintainAspectRatio","scales","x","y","plugins","legend","position","usePointStyle","generateLabels","dataset","text","label","fillStyle","strokeStyle","lineWidth","hidden","isDatasetVisible","datasetIndex","font","size","family","weight","boxWidth","boxHeight","padding","tooltip","enabled","elements","point","radius","RawDropDown","RawDropDown","RawPortDropDown","showPort","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeSize","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","username","get","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","checkChanged","object","staticChanged","document","getElementById","checked","activeChanged","repeatChanged","invertChanged","toggleActive","big","createAlert","selector","element","querySelector","selected","elem","selectedOptions","value","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","instrument","peekRecord","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","target","sel","selectedIndex","setError","isNaN","includes","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","catch","reason","errors","status","resetNewInstrumentObject","_this","set","CreatePackInstrument","createInstrument","object","store","get","newInstrumentObject","setError","error","id","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","stacked","active","strokeLength","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","number","distance","instrument","anchorCount","parseInt","substring","length","ctr","gauge","gaugeLength","headExclusionLength","isNaN","catch","reason","stackedChanged","document","getElementById","checked","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","ajax","inject","service","store","tr","instID","activeSize","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","handleAlertObjectChange","console","log","onMetricChanged","metric","get","set","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","preLoadActiveChannels","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","computed","instrument","pos","length","numChans","parseInt","substring","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","$","headers","Authorization","localStorage","token","actions","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","updatePage","store","get","instrument","anchors","forEach","anchor","index","number","total","length","gauge","distance","isNaN","set","save","setTimeout","alert","viewData","id","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","transitionTo","queryParams","tGraph","sGraph","editField","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","plated","splice","unshift","push","length","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","anchors","anchor","half_anchors","gauge","pop","last","sort","a","b","forEach","index","shift","anchorAXDistances","midPoints","headExclusion","leftAnchors","center","Math","ceil","concat","slice","midLeft","ctr","$","v","i","mid_temp","anchorBXDistances","anchorMidDistances","copy","midDistances","finalSize","mid","toFixed","len","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","fullRangeChartLinesData","element","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","yAxisUnit","init","_super","arguments","queryParams","URLSearchParams","window","location","search","yAxisUnitParam","get","set","seismicEventsChartDistXData","computed","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","plated","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","anchors","numPorts","startVal","maxVal","ctr","dataValuesCount","length","error","anchor","midPoints","mid","toFixed","splice","headExclusion","leftAnchors","rightAnchors","center","Math","ceil","concat","slice","midLeft","midRight","shift","pop","unshift","sort","a","b","zoomChartLinesData","_this","mName","forEach","element","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","temp","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distXIndex","distX0","distX1","distX2","activeTooltipContent","onDistXTooltipShowCall","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","setAxialStiffness","stiffness","get","toFixed","CreatePackInstrument","youngsModulus","console","log","bolt","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","handleBoltDiameterChange","event","boltDiameter","target","area","Math","PI","pow","axialStiffness","createInstrument","object","store","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","stacked","active","crossSectionalArea","elasticLimitFce","strokeLength","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","number","distance","instrument","anchorCount","parseInt","substring","length","ctr","gauge","gaugeLength","headExclusionLength","isNaN","catch","reason","stackedChanged","document","getElementById","checked","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","isShowingModal","showModal","phoneNumber","carrier","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","handleAlertObjectChange","onCarrierChanged","onTimeReferenceChanged","timeReference","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","instrument","pos","length","numChans","parseInt","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","toggleModal","toggleProperty","handleSelection","selectedValue","EditInstrument","extend","init","_super","arguments","get","set","onYoungsModulusChanged","youngsModulus","console","log","bolt","handleElastLimitForce","Ember","observer","elf","toFixed","updateCrossSectionalArea","instrument","diameter","boltDiameter","area","Math","PI","pow","crossSectionalArea","axialStiffness","save","then","updatePage","store","anchors","forEach","anchor","index","number","distance","total","length","viewData","id","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","transitionTo","queryParams","tGraph","sGraph","editField","stopEditField","saveInstrument","_this","t","confirm","window","location","href","isStacked","computed","stackChanged","toggleProperty","property","object","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","isStacked","computed","get","zoomDataPoints","map","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","side","attrs","getQueryParams","length","values","splice","push","shift","ch1","ch2","ch3","ch4","ch5","ch6","error","fullRangeDataPoints","zoomTimePoints","itemTime","fullRangeTimePoints","anchorDistances","instType","instrument","dataValuesCount","counter","side_a","side_b","midPoints","anchors","anchor","console","log","indx","unshift","sort","a","b","forEach","point","ex","set","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorMidDistances","anchDist","anchorDistance","key","type","inlineHoverValuesSideOffset","offSet","zoomChartLinesData","_this","chartLine","chartLineIndex","dp","timestamp","dataPoint","dataPointIndex","sortBy","concat","fullRangeChartLinesData","ad","chartLineName","valueOf","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","switchTitle","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","color","duration","showDistX","showLegend","showXAxis","noData","forceX","addGraph","xAxis","tickPadding","showMaxMin","ticks","yAxis","axisLabel","tickFormat","format","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","legend","datum","call","dispatch","on","brushExtent","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","windowResize","update","e","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","yAxisUnit","init","_super","arguments","queryParams","URLSearchParams","window","location","search","yAxisUnitParam","get","set","seismicEventsChartDistXData","computed","key","type","color","values","map","event","valueOf","vibeEventsChartDistXData","events","console","log","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","data_set","tonnes","vibeEventsArray","ppa","ppv","freq","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","isStacked","zoomDataPoints","modelName","side","attrs","getQueryParams","length","splice","push","shift","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","dataValuesCount","error","anchors","anchor","singleAnchorDistance","side_a","side_b","midPoints","forEach","value","index","indx","anchorCount","newAnchorDistances","obj","sideA","sideB","zoomChartLinesData","_this","mName","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","pop","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distX2","distXIndex","activeTooltipContent","windowResize","update","e","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","TargetSelectorComponent","Component","openModal","showModal","closeModal","selectRecord","record","args","onSelect","handleRecordSelection","getCarriers","Ember","Component","extend","session","userProfileService","Ember","Component","extend","session","router","userProfileService","loading","actions","navigateToLicenseKeys","set","transitionTo","navigateToBackendLogs","Ember","Component","extend","session","userProfileService","init","_super","arguments","actions","close","get","save","type","console","log","Ember","Component","extend","session","router","userProfileService","api","selectedDatetimeFormat","selectTimezone","isShowClearLogsConfirmationModal","clearLogsConfirmationModalType","confirmMessage","all","log_viewer","user_logs","NA_CONSTANT","generalUsedValue","generalUsedPercent","generalFreeValue","generalFreePercent","generalTotalValue","postgresGeneralLogsValue","postgresGeneralLogsPercent","postgresUserLogsValue","postgresUserLogsPercent","postgresInstrValue","postgresInstrPercent","postgresGWValue","postgresGWPercent","postgresOthersValue","postgresOthersPercent","postgresTotalValue","showStorageMessage","updateStorageMessage","loading","init","_super","arguments","records","get","toArray","i","length","set","getStorage","url","response","fetch","method","headers","Authorization","localStorage","token","status","responseData","json","processGeneralData","data","general","processPostGresData","postgres","processInfluxData","influx","errorGeneralData","errorPostGresData","errorInfluxData","usedData","used","freeData","free","totalData","total","toFixed","unit","e","console","log","tableLabel","colorLabel","database","parentStorageBarSection","document","getElementById","parentLabelSection","label","value","title","percentage","bar","createElement","className","style","width","backgroundColor","appendChild","text","color","whiteSpace","textContent","totalText","innerHTML","note","isMasterProfile","computed","profile","is_master_key_account","err","isStaffUser","is_staff","datetimeFormatArray","id","timeZones","getWarningMessage","clearLogs","key","dataobj","body","JSON","stringify","result","message","ok","setTimeout","close","confirm","type","actions","setClearLogsType","navigateToLookups","transitionTo","updateDatetimeFormat","newValue","setting","find","r","error","save","then","catch","updateTimezone","Ember","Component","extend","userProfileService","init","_super","arguments","actions","updateTab","value","set","Ember","Component","extend","isChecked","computed","get","key","instrument","set","value","actions","change","object","_this","save","catch","reason","editError","document","getElementById","hidden","field","checked","window","scrollTo","update","originVal","field","Ember","Component","extend","datetimeLabel","init","_super","arguments","set","formattedField","object","get","editChanged","observer","editField","stopEditField","rawValue","standardizedFormat","format","parsedMoment","moment","isValid","isEditing","dateTimePicker","showClear","actions","edit","currentValue","Date","element","tabindex","focus","save","value","newDate","catch","reason","editError","document","getElementById","hidden","window","scrollTo","cancel","willDestroyElement","datetimepicker","keyDown","e","keyCode","send","ctrlKey","Ember","Component","extend","isEditing","tagName","classNameBindings","isRowDeleteConfirmationDialog","rdcd","gatewayType","setRDCD","value","get","set","notifyPropertyChange","valueOver","computed","self","tableRowIndexString","String","gatewayValueObjectValues","obj","Object","assign","actions","edit","save","_this","values","gatewayValueObj","adapterOptions","then","results","_internalModel","_record","gatewayTime","catch","reason","console","log","errors","status","setProp","window","location","reload","cancel","remove","gatewayValuesModel","gatewayValueObject","badValues","undefined","originalValue","deleteRecord","removeObject","toggleRowDeleteConfirmationDialog","id","list","didRender","keyDown","e","keyCode","send","originEast","originNorth","originDepth","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","isEditing","east","north","depth","actions","edit","set","element","tabindex","focus","save","object","catch","reason","editError","document","getElementById","hidden","undefined","window","scrollTo","cancel","keyDown","e","keyCode","send","Ember","Component","extend","isEditable","isEditing","isTextInput","computed","get","isTextarea","actions","edit","set","element","tabindex","focus","save","object","cancel","keyDown","e","keyCode","send","ctrlKey","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","isEditable","isEditing","isTextInput","computed","isTextarea","actions","edit","set","element","tabindex","focus","save","object","parseFloat","then","update","cancel","keyDown","e","keyCode","send","ctrlKey","originVal","field","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","isEditable","isEditing","isTextInput","computed","isTextarea","actions","edit","set","element","tabindex","focus","save","object","catch","reason","editError","document","getElementById","hidden","undefined","window","scrollTo","cancel","keyDown","e","keyCode","send","ctrlKey","originVal","field","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","isEditable","isEditing","isTextInput","computed","isTextarea","actions","edit","set","element","tabindex","focus","save","object","console","log","catch","reason","editError","document","getElementById","hidden","undefined","window","scrollTo","cancel","keyDown","e","keyCode","send","ctrlKey","Ember","Component","extend","isEditing","tagName","classNameBindings","isRowDeleteConfirmationDialog","instrumentType","valueOver","computed","self","value","tableRowIndexString","String","get","displacementValueObjectValues","obj","Object","assign","temperatureValuesObject","objectAt","temperatureObjectValue","temporaryTemperature","e","actions","edit","set","save","_this","values","unshift","adapterOptions","then","results","instType","_internalModel","_record","shift","cancel","remove","displacementValueObject","displacementValuesModel","temperatureValuesModel","deleteRecord","removeObject","toggleRowDeleteConfirmationDialog","id","curVal","didRender","keyDown","keyCode","send","Ember","Component","extend","isEditing","datetimeLabel","init","_super","arguments","set","formattedField","displacementValueObject","get","tagName","classNameBindings","isRowDeleteConfirmationDialog","rdcd","instrumentType","loading","setRDCD","value","notifyPropertyChange","rawDate","standardizedFormat","format","formattedValue","parsed","moment","isValid","valueOver","computed","self","tableRowIndexString","String","displacementValueObjectValues","obj","instType","Object","assign","temperatureValuesObject","objectAt","temperatureObjectValue","temporaryTemperature","tempObject","vals","toFixed","e","console","log","isCheckedHelper","batchSelectedRowsObj","index","convertMMToAdictBits","arrayMMs","bitsArray","forEach","mmValue","push","parseFloat","actions","toggleIndivSwitch","document","getElementById","checked","edit","save","_this","values","unshift","oldObj","adapterOptions","then","results","_internalModel","_record","shift","catch","reason","errors","status","setProp","cancel","remove","displacementValuesModel","temperatureValuesModel","deleteRecord","removeObject","toggleRowDeleteConfirmationDialog","id","list","didRender","keyDown","keyCode","send","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","isEditing","store","inject","service","channelsNum","isToe","computed","isCollar","anchorsAmount","length","isAllAnchorsPopulated","allPopulated","objectLength","map","obj","indexOf","sortProperties","sortedInstrumentAnchors","sort","listedAnchors","object","newSet","anchorCount","forEach","anchor","hash","push","shift","temp","reverse","anchorsCSSCounteStyle","String","htmlSafe","actions","updateAnchorsCounter","j","set","edit","element","tabindex","focus","inputNewValue","currentAnchor","anchorKey","anchorValue","anchKeyPart","substring","currentAnchorNumber","replace","trim","notifyPropertyChange","prePopulateAnchors","anchorsArray","emptyAnchorsAmount","i","newAnchor","createRecord","number","distance","pushObjects","send","isAnchorNumbersCorrupted","save","currentObject","objectAt","cancel","rollbackAttributes","didRender","keyDown","e","keyCode","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","isEditing","store","inject","service","channelsNum","isToe","computed","isCollar","anchorsAmount","_anchorCount","length","set","key","value","isAllAnchorsPopulated","objectLength","map","obj","indexOf","sortProperties","sortedInstrumentAnchors","sort","anchorsCSSCounteStyle","String","htmlSafe","actions","updateAnchorsCounter","object","j","forEach","edit","element","tabindex","focus","inputNewValue","currentAnchor","newValue","notifyPropertyChange","prePopulateAnchors","anchorsArray","emptyAnchorsAmount","i","newAnchor","createRecord","number","distance","push","pushObjects","send","save","currentObject","objectAt","cancel","rollbackAttributes","didRender","keyDown","e","keyCode","Ember","Component","extend","originVal","field","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","store","inject","service","isEditable","isEditing","isRelational","isNew","selectOptionsArray","computed","map","item","selectOptionsKyes","split","key","value","modelName","actions","selectNewValue","set","send","onSelectionChange","edit","element","tabindex","focus","save","object","newSelectValue","findRecord","catch","reason","editError","document","getElementById","hidden","window","scrollTo","cancel","keyDown","e","keyCode","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","store","inject","service","isEditable","isEditing","isRelational","selectOptionsArray","computed","map","item","selectOptionsKyes","split","key","value","modelName","actions","selectNewValue","set","edit","element","tabindex","focus","save","object","cancel","didRender","keyDown","e","keyCode","send","originVal","field","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","store","inject","service","isEditable","isEditing","isRelational","selectOptionsArray","computed","valueArray","items","selectOptionsKyes","split","selectOptions","map","item","key","value","modelName","getOption","selectOptionKey","object","getProperties","queryValue","find","id","getOptionValue","actions","getNewOptionValue","selectNewValue","set","parent","send","edit","element","tabindex","focus","save","newSelectValue","catch","reason","editError","document","getElementById","hidden","window","scrollTo","cancel","keyDown","e","keyCode","originVal","field","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","store","inject","service","isEditable","isEditing","isRelational","selectOptionsArray","computed","map","item","selectOptionsKyes","split","key","value","modelName","actions","selectNewValue","set","onSelectionChange","send","edit","element","tabindex","focus","save","object","newSelectValue","peekRecord","catch","reason","editError","document","getElementById","hidden","window","scrollTo","cancel","keyDown","e","keyCode","originVal","field","Ember","Component","extend","editChanged","observer","get","editField","stopEditField","isEditing","dateTimePicker","showClear","actions","edit","object","set","moment","Date","format","element","tabindex","focus","save","value","newDate","catch","reason","editError","document","getElementById","hidden","window","scrollTo","cancel","willDestroyElement","datetimepicker","keyDown","e","keyCode","send","ctrlKey","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isRefAnchorDisabled","isTimeReferenceDisabled","activeSize","computed","get","username","data","authenticated","channelCount","id","pos","length","count","substring","onMetricChanged","metric","console","log","onMethodChanged","method","onResponseChanged","response","actions","checkChanged","object","staticChanged","document","getElementById","checked","activeChanged","repeatChanged","invertChanged","toggleActive","big","createAlert","selector","element","querySelector","selected","elem","selectedOptions","value","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","instrument","peekRecord","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","target","sel","selectedIndex","setError","isNaN","includes","save","then","results","newAnchorObject","newAnchor","alert","selectedCh","catch","reason","errors","status","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","bulbed","plated","stacked","active","instrumentStiffness","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","computed","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","viewData","id","get","transitionTo","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","plated","splice","unshift","push","length","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","anchors","anchor","half_anchors","gauge","pop","last","sort","a","b","forEach","index","shift","anchorAXDistances","midPoints","headExclusion","leftAnchors","center","Math","ceil","concat","slice","midLeft","ctr","$","v","i","mid_temp","anchorBXDistances","anchorMidDistances","copy","midDistances","finalSize","mid","toFixed","len","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","fullRangeChartLinesData","element","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","plated","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","anchors","numPorts","startVal","maxVal","ctr","dataValuesCount","length","error","anchor","midPoints","mid","toFixed","splice","headExclusion","leftAnchors","rightAnchors","center","Math","ceil","concat","slice","midLeft","midRight","shift","pop","unshift","sort","a","b","zoomChartLinesData","_this","mName","forEach","element","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","temp","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","tagName","orderingAscending","isSelectedSort","computed","selectedSortProperty","get","indexOf","substring","actions","sortBy","sortProperty","toggleProperty","sort","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","SvgInstrumentComponent","Component","height","args","width","orientation","anchors","type","Ember","Component","extend","BaseTemporalChartDropdownComponent","Component","constructor","arguments","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","active","instrumentStiffness","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","computed","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","viewData","id","get","transitionTo","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","plated","splice","unshift","push","length","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","anchors","anchor","half_anchors","gauge","pop","last","sort","a","b","forEach","index","shift","anchorAXDistances","midPoints","headExclusion","leftAnchors","center","Math","ceil","concat","slice","midLeft","ctr","$","v","i","mid_temp","anchorBXDistances","anchorMidDistances","copy","midDistances","finalSize","mid","toFixed","len","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","fullRangeChartLinesData","element","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","plated","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","instType","instrument","anchors","numPorts","startVal","maxVal","ctr","dataValuesCount","length","error","anchor","midPoints","mid","toFixed","splice","headExclusion","leftAnchors","rightAnchors","center","Math","ceil","concat","slice","midLeft","midRight","shift","pop","unshift","sort","a","b","zoomChartLinesData","_this","vibeEventsChartDistXData","mName","forEach","element","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","temp","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","toString","id","axisName","units","e","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","anchorDistances","computed","anchors","get","dist","map","anchor","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","strokeLength","instrumentType","peekRecord","headAt","active","instrumentStiffness","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","number","distance","instrument","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","shift","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","unshift","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","onTimeReferenceChanged","timeReference","get","handleAlertObjectChange","console","log","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","computed","instrument","pos","length","numChans","parseInt","substring","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","target","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","EditInstrument","extend","viewData","id","get","transitionTo","tGraph","sGraph","editField","set","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","zoomDataPoints","modelName","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","val","zoomChartLinesData","_this","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","length","pop","shift","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","forEach","id","instType","axisName","units","raw","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","getQueryParams","Ember","Component","extend","isVisibleCreateNewForm","isVisibleReadingCreated","multi","anchorDistances","computed","data","get","mode","toJSON","values","onCreateNewVisible","observer","set","actions","updateProperty","propertyName","propertyValue","Ember","Component","extend","toriiIframePlaceholder","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","unallowedValues","includes","error","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewGatewayObject","_this","set","CreateBluCellGateway","createGateway","object","store","get","newGatewayObject","setError","error","id","installDate","depth","gatewayType","peekRecord","active","interval_upload","query","filter","interval_value","interval_group_name","then","results","gatewayUploadInterval","catch","console","log","interval_read","gatewayReadInterval","moment","format","newGateway","dup","createRecord","err","message","includes","save","reason","init","arguments","resetNewInstrumentObject","_this","set","CreatePackInstrument","setProject","value","selectedId","foundObject","projectLookupList","find","lookup","id","setLevel","levelLookupList","createInstrument","object","store","get","newInstrumentObject","setError","error","zeroTimestamp","installDate","instrumentType","peekRecord","headAt","active","instrumentStiffness","moment","format","newInstrument","dup","createRecord","err","message","includes","save","then","results","number","distance","instrument","catch","reason","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","shift","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","unshift","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","resetNewRawDataValueObject","_this","gatewayValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newGatewayValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newGatewayValueObjectValues","actions","saveNew","gatewayValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","newGatewayValues","savedGatewayValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","console","log","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","is3D","controlsText","playbackOptions","isVisible","isPlayLoop","playbackSpeed","playbackSpeedData","graphScaling","x","min","max","y","z","init","_super","arguments","isShowConfig","isShowXYZ3DInstructions","getTimestamp","computed","bluvibeV2ModelProfile","getCurrentBluvibeV2ModelProfile","timestamp","get","globalDatetimeFormat","standardizedFormat","parsed","moment","convertedTimestamp","format","getControlsText","tab","subTab","subSubTab","ctrlsKey","v","bluvibeV2ModelProfiles","obj","forEach","profileObj","parseInt","trim","rebuildEChartsComponent","chartDom","document","getElementById","setGraphVisibleScaling","setPlaybackVisible","echarts","dispose","data","xAxisLabel","yAxisLabel","zAxisLabel","xDataLabel","yDataLabel","zDataLabel","set","integrationMethodButton","textContent","xGraphScaling","yGraphScaling","zGraphScaling","style","display","visibility","getPlaybackSpeed","getGraphTitle","title_key","setVisibleIntegrationMethod","visible","showLoadingObserver","observer","actions","cyclePlayLoop","cyclePlaybackSpeed","value","Number","console","log","updateSimulationIndex","updateChartPosition","toggleSimulationPlay","toggleProperty","isPlaying","animate","cancelAnimationFrame","animationFrame","resetGraphScaling","maxXGraph","minXGraph","maxYGraph","minYGraph","maxZGraph","minZGraph","updateGraphScaling","component","tbID","target","id","tbValue","parseFloat","handleToggle3D","curr3D","handleToggleIntegrationMethod","buttonElement","Ember","Component","extend","router","inject","service","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","isShowingModal","showModal","phoneNumber","carrier","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","handleAlertObjectChange","onCarrierChanged","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","instrument","pos","length","numChans","parseInt","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","onTimeReferenceChanged","timeReference","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","toggleModal","toggleProperty","handleSelection","selectedValue","EditInstrument","extend","gatewayReadingsIntervals","init","_super","arguments","store","Ember","inject","service","isAuthenticated","selectedModel","editing","getGatewayUploadIntervalID","computed","gw","get","gatewayUploadInterval","id","toString","getGatewayReadIntervalID","gatewayReadInterval","setGatewayInterval","event","gateway","selectedOptions","Array","from","target","selectedValue","parseInt","map","option","value","intervalType","notSelected","findRecord","then","interval","notSelectedIntervalValue","group_name","query","filter","interval_value","interval_group_name","results","set","save","console","log","catch","error","updatePage","viewData","transitionTo","tGraph","editField","stopEditField","saveGateway","_this","t","confirm","window","location","href","sortBy","property","EditInstrument","extend","init","_super","arguments","set","viewData","id","subModel","get","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","console","log","transitionTo","queryParams","undefined","tGraph","fEvent","fGraph","editField","stopEditField","saveInstrument","_this","t","confirm","window","location","href","Ember","Component","extend","Ember","Component","extend","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","worker","Worker","capitalizeFirstLetter","string","charAt","toUpperCase","slice","getXYValueObj","xyValueObj","queryParams","URLSearchParams","window","location","search","advancedEndDate","get","advancedStartDate","advancedXMax","advancedXMin","advancedYAxisUnit","advancedYLeftMax","advancedYLeftMin","Number","parseFloat","chartMetric","computed","attrs","getQueryParams","recordsToDisplay","chDataPoints","chartData","ordinalValue","filteredData","firstValue","secondValue","map","item","anchorDistances","zoomDataPoints","zoomChartData","zoomTimePoints","i","temporaryObject","Object","valueOf","values","swap","items","leftIndex","rightIndex","temp","partition","left","right","pivot","maxValue","Math","floor","j","quickSort","index","length","_data","out","max","sortBy","getData","itemID","zoomChartLinesData","graphPointValidator","x","y","xMin","xMax","yLeftMin","yLeftMax","points","data","channels","frequency","chart_type","valuesOfValues","log10","push","timestamp","size","shape","xGraphIndex","yGraphIndex","key","chartDataModelName","query","model_name","yAxisLegend","measurementTitle","substr","lastIndexOf","replace","promise","queryRecord","title","y1AxisTitle","units","axisName","trim","mainPartTitle","x1AxisTitle","didInsertElement","_this","zoomChartSVG","d3","select","apiCallsPromises","RSVP","Promise","all","then","results","x_axisName","type","zoomChart","nv","models","scatterChart","margin","top","bottom","d","color","scale","category10","range","duration","showDistX","showDistY","showLegend","noData","addGraph","xAxis","axisLabel","axisLabelDistance","tickPadding","showMaxMin","tickFormat","format","yAxis","forceY","yScale","linear","xScale","distX","tooltip","contentGenerator","obj","toolTipText","timestampFormatter","time","newDate","Date","datum","transition","call","utils","windowResize","update","dispatch","on","e","log","JSON","stringify","sendAction","captureLargeDOM","element","chunkHeight","canvas","document","createElement","context","getContext","totalHeight","scrollHeight","totalWidth","scrollWidth","width","height","yOffset","console","viewport","cloneNode","style","overflow","transform","chunkCanvas","drawImage","resolve","toBlob","blob","actions","downloadScreenshot","getElementById","quality","dataUrl","link","download","href","click","error","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","temperaturePoints","distXRiseUpAnimationDuration","leftAxis","computed","attrs","getQueryParams","rightAxis","GATEWAY_ENUM","Object","freeze","Firmware","Coordinator","Voltage","RSSI","carrier","Readings","Uptime","Reconnection","Uploads","var_1","var_2","var_3","Temperature","zoomDataPointsLeftAxis","zoomChartData","get","console","log","leftAxisIndex","zoomLeftAxis","map","item","i","values","zoomDataPointsRightAxis","zoomRightAxis","rightAxisIndex","zoomDataPoints","left","fullRangeDataPoints","fullRangePoints","itemHolder","linesKyes","keys","toJSON","getProperties","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","seismicEventsChartDistXData","blastEventsChartDistXData","tempPoints","mName","chartLineName","chartLineIndex","key","type","yAxis","dataPoint","dataPointIndex","valueOf","zoomTempPoints","temp","push","concat","fullRangeChartLinesData","fullRangeTempPoints","sortBy","temperature","chartDataModelName","query","model_name","yAxisLegend","chartTitle","promise","queryRecord","title","getTitleAndUnits","axis","axisValues","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","useInteractiveGuideline","x","d","y","color","scale","category10","range","duration","showLegend","showDistX","noData","showYAxis","y2Axis","legend","addGraph","xAxis","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","length","utils","getDateAutoscaleFormat","Date","axis1Title","axis2Title","y1Axis","axisLabel","axisLabelDistance","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","format","datum","call","controls","forEach","disabled","dispatch","on","brushExtent","set","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","eventSize","timestamp","distXMouseMove","seismicEventsArray","distX0","onDistXTooltipShowCall","blastEventsArray","distX1","vibeEventsArray","distX2","distXIndex","data_set","activeTooltipContent","windowResize","update","usesPoints","chartName","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","yAxisUnit","init","_super","arguments","queryParams","URLSearchParams","window","location","search","yAxisUnitParam","get","set","seismicEventsChartDistXData","computed","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","data_set","tonnes","zoomTempPoints","zoomTempData","zoomChartData","item","linesKyes","Object","keys","toJSON","chartData","getProperties","filterArray","filter","elem","some","ele","capitalizeFirstLetter","string","charAt","toUpperCase","slice","chartMetric","attrs","getQueryParams","trim","recordsToDisplay","chDataPoints","metric","filteredData","zoomDataPoints","zoomTimePoints","i","temporaryObject","swap","items","leftIndex","rightIndex","temp","partition","left","right","pivot","maxValue","Math","floor","j","quickSort","index","length","_data","out","max","fullRangeDataPoints_OLD","fullRangeDataPoints","fullRangeChartData","fullRangeTimePoints","itemID","anchorDistances","zoomChartLinesData","_this","zoomChannelData","channelChartBarData","push","chartDataModelName","channelCount","forEach","barChartData","yAxis","dataPoint","dataPointIndex","dataPointValue","fullRangeChartLinesData","fullRangeChannelData","fullChartData","query","model_name","yAxisLegend","chartTitle","substr","lastIndexOf","replace","promise","queryRecord","title","y1AxisTitle","units","axisName","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","bottom","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","mainHeight","attr","mainMargin","customTickFunction","xAxis","tickPadding","ticks","showMaxMin","tickFormat","zoomChartXDomainLength","first","last","tickDate","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","getData","points","data","channels","valuesOfValues","shape","dispatch","on","brushExtent","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","sendAction","graph_type","scatter","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","Ember","Component","extend","batchSelectedRows","isMaxBatch","isVisibleCreateNewForm","getVisibleReadings","computed","get","length","anchorDistances","dist","getDisplacementValueObject","getDisplacementData","displacementData","getXYValueObj","xyValueObj","queryParams","URLSearchParams","window","location","search","advancedEndDate","advancedStartDate","advancedXMax","advancedXMin","advancedYAxisUnit","advancedYLeftMax","advancedYLeftMin","Number","parseFloat","maxBatchSwitchObserver","observer","isCheckedRowsValues","i","set","actions","toggleAllBatch","document","getElementById","checked","updateProperty","propertyName","propertyValue","updateTable","property","Ember","Component","extend","router","batchSelectedRows","isMaxBatch","isVisibleCreateNewForm","init","_super","arguments","getVisibleReadings","computed","get","length","getTotalReadings","pagination","total","anchorDistances","dist","getFreqEventData","instrumentFreqEventProfiles","instrumentFreqEventData","globalDatetimeFormat","standardizedFormat","data","forEach","dataObj","index","rowObj","parsed","moment","format","push","maxBatchSwitchObserver","observer","isCheckedRowsValues","i","set","actions","handleAction","actionCategory","rowDataObj","instrument","transitionTo","queryParams","page","selectedFreqEventDate","advancedYAxisUnit","analysis_category","updateProperty","propertyName","propertyValue","Ember","Component","extend","isVisibleCreateNewForm","anchorDistances","computed","getGatewayData","fields","items","filteredData","get","forEach","item","values","firmware","voltage","rssi","carrier","readings","uptime","recon","uploads","temperature","length","push","id","originalValue","save_values","actions","updateProperty","propertyName","propertyValue","set","Ember","Component","extend","Ember","Component","extend","LeftAxisDropdown","extend","tGraph","id","modelName","params","get","transitionTo","TemporalGatewayRightAxisDropdown","extend","setSelection","selected","set","Ember","Component","extend","isEditing","tagName","classNameBindings","isRowDeleteConfirmationDialog","rdcd","instrumentType","setRDCD","value","get","set","notifyPropertyChange","valueOver","computed","self","tableRowIndexString","String","displacementValueObjectValues","obj","instType","Object","assign","temperatureValuesObject","objectAt","temperatureObjectValue","temporaryTemperature","toFixed","e","actions","edit","save","_this","values","unshift","adapterOptions","then","results","_internalModel","_record","shift","catch","reason","console","log","errors","status","setProp","cancel","remove","instrument_id","displacementValueObject","displacementValuesModel","temperatureValuesModel","list","id","deleteRecord","removeObject","toggleRowDeleteConfirmationDialog","didRender","keyDown","keyCode","send","resetNewAlertObject","_this","newAlertObject","set","Ember","Component","extend","init","_super","arguments","store","inject","service","session","dateFormat","installDate","activeExpanded","buttonSymbol","activeLabel","createMessage","isPerm","isActive","repeats","inverted","creationTimestamp","isAuthenticated","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","isShowingModal","showModal","phoneNumber","carrier","activeChannels","isRefAnchorDisabled","isTimeReferenceDisabled","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","timeReference","instrument","peekRecord","undefined","zeroTimestamp","activeSize","username","data","authenticated","channelCount","id","pos","length","count","onMetricChanged","metric","onMethodChanged","method","onResponseChanged","response","actions","handleActiveSelectChange","event","selectedOptions","Array","from","selectedValues","map","option","value","checkChanged","object","staticChanged","document","getElementById","checked","repeatChanged","invertChanged","createAlert","error","unallowedValues","includes","isTriggered","isHandled","initTriggerStamp","handleStamp","format","creator","newAlert","createRecord","err","val","alertObjectValue","respType","addType","cb","wl","sel","selectedIndex","setError","isNaN","save","then","results","newAnchorObject","newAnchor","forEach","alert","selectedCh","catch","reason","errors","status","toggleModal","toggleProperty","handleSelection","selectedValue","resetNewInstrumentObject","_this","set","CreatePackInstrument","extend","modelList","get","shortModelList","toArray","forEach","element","id","push","getModelById","modelId","find","model","is4500HH","selectedModel","modelName","isTypeGeoPt","selectedVendor","isTypeRocPws","vwProperties","authError","isAuthenticated","newInstrumentObject","headAt","zeroTimestamp","installDate","calcCoef1","calcCoef2","calcCoef3","calcCoef4","calcCoef5","project","level","actions","setProject","value","selectedId","foundObject","projectLookupList","lookup","setLevel","levelLookupList","setVendor","vendorID","send","setModel","modelID","setValue","prop","val","createInstrument","object","store","setError","error","instrumentType","peekRecord","active","moment","format","console","log","newInstrument","dup","createRecord","err","message","includes","save","then","results","findBy","anchorCount","parseInt","substring","length","ctr","number","distance","instrument","createVwProperties","vwPropertyData","index","vwp","port","propertyResults","catch","reason","channelsNum","channel","vwProperty","init","arguments","resetNewRawDataValueObject","_this","displacementValueObjectValues","get","set","format","Object","keys","forEach","key","index","Ember","Component","extend","store","inject","service","router","isVisibleCreateNewForm","dateFormat","dateTimePicker","temperatureObjectValue","newTimestampValue","newDisplacementValuesObject","computed","id","newTemperatureValuesObject","handleIsVisibleCreateNewFormChange","observer","i","length","newDisplacementValueObjectValues","actions","saveNew","displacementValues","temperatureValues","values","newTemperatureValues","createRecord","savedTemperatureValuesObject","save","adapterOptions","then","results","unshift","newDisplacementValues","savedDisplacementValuesObject","currentRouteName","currentRouteInstance","lookup","refresh","catch","reason","errors","status","setProp","cancelNew","object","didRender","willDestroyElement","datetimepicker","Ember","Component","extend","init","_super","arguments","set","initialAnchors","preLoadActiveChannels","store","inject","service","ajax","tr","instID","activeExpanded","buttonSymbol","activeLabel","saveMessage","updatedAnchors","anchors","initTriggerStamp","isVisibleError","emptyBoldError","noActChError","nonNumericValueError","wLError","wLNegError","targetError","phoneNumError","authError","editing","isShowingModal","showModal","phoneNumber","carrier","isValidPhoneNumber","regex","test","computed","target","get","atIndex","indexOf","console","log","substring","handleAlertObjectChange","onTimeReferenceChanged","timeReference","onCarrierChanged","onMetricChanged","metric","send","document","getElementById","onMethodChanged","method","onResponseChanged","response","findRecord","reload","then","alertObj","channels","forEach","anchor","push","isSelected","element","selectedCh","channelCount","instrument","pos","length","numChans","parseInt","activeSize","creationDateText","date","creationDate","triggeredTimeText","triggerTestAlert","id","url","headers","Authorization","localStorage","token","actions","editField","stopEditField","updateSelectedAnchors","thing","update","Event","val","dict","obj","saveAlert","_this","alertObjectTarget","respType","alertObjectValue","noTarget","addType","changes","Map","key","hasOwnProperty","anchorsFinal","newAnchorObject","value","entries","alert","newAnchor","createRecord","save","destroyRecord","result","post","cb","wl","sel","selectedIndex","setError","isNaN","includes","big","broken","catch","reason","errors","status","staticChanged","isPerm","checked","activeChanged","isActive","toggleActive","triggerTest","isTriggered","theDate","Date","dateString","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","clearAlert","isHandled","handleStamp","resetHandle","toggleModal","toggleProperty","handleSelection","selectedValue","EditInstrumentPortDropDown","extend","editing","selectedVendor","selectedModel","selectedVendorID","Ember","computed","vendor","get","toArray","set","id","ex","selectedModelID","model","modelList","shortModelList","forEach","element","push","vendorName","EditInstrument","extend","didReceiveAttrs","_super","arguments","inst","instrument","init","vwProperties","get","length","console","log","createVwProperties","vwproperty","undefined","properties","toArray","forEach","prop","index","vendor","modelTypes","modelList","id","push","getModel","vwProperty","model","editing","selectedVendor","selectedModel","selectedProperty","project","level","Ember","computed","port","selectedVendorID","set","ex","selectedModelID","vendorId","shortModelList","element","vendorName","setProject","event","selectedId","target","value","foundObject","projectLookupList","find","lookup","setLevel","levelLookupList","willDestroyElement","args","selectProperty","findBy","serial","viewData","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","baseUnit","transitionTo","queryParams","tGraph","fGraph","setVendor","indexOf","setModel","modelID","vwmodel","save","editField","stopEditField","saveInstrument","_this","t","confirm","window","location","href","channelsNum","parseInt","channel","vwp","store","createRecord","then","propertyResults","catch","reason","Ember","Component","extend","gVariableUnit2","kVariableUnit2","gPressureUnit","kPressureUnit","store","inject","service","router","init","_super","arguments","vwProperty","get","console","log","initUnit","run","next","dropdown","document","getElementById","value","buildAndUpdateGUnit","buildAndUpdateKUnit","getPressureUnit","computed","pressureUnit","getGPressureUnit","newUnit","newU","set","didInsertElement","actions","handlePressureUnitChange","event","newValue","target","correspondingVWProperty","save","then","Ember","Component","extend","store","inject","service","chartId","startTimestamp","endTimestamp","progressAnimationDuration","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","get","key","type","color","values","map","event","valueOf","blastEventsChartDistXData","seismicEventsArray","timestamp","format","eventSize","momentMagnitude","sortBy","blastEventsArray","tonnes","zoomDataPoints","item","linesKyes","Object","keys","toJSON","chartData","getProperties","modelName","unshift","error","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","dataValuesCount","length","anchors","anchor","splice","anchorMidDistances","copy","midDistances","i","mid","push","toFixed","anchorColors","d3","scale","category10","range","anchorDistancesChartReferencePoints","anchorDistance","inlineHoverValuesSideOffset","zoomChartLinesData","_this","chartLine","chartLineIndex","dataPoint","dataPointIndex","concat","fullRangeChartLinesData","chartLineName","numLines","lineDrawDelay","chartDataModelName","query","model_name","yAxisLegend","promise","title","substr","lastIndexOf","replace","didInsertElement","zoomChartSVG","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","then","results","instrument","toString","forEach","id","axisName","units","zoomChart","nv","models","lineChartProgressAnimationAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","distXAxisScale","duration","showDistX","showLegend","showXAxis","noData","ex","forceX","addGraph","xAxis","tickPadding","showMaxMin","yAxis","axisLabel","tickFormat","distXAxis","fullRangeChartXDomainLength","utils","getDateAutoscaleFormat","Date","distX","size","distXTooltipBottomOffset","distXRiseUpAnimationDelay","lineWidth","datum","call","dispatch","on","brushExtent","set","tooltip","hidden","attrs","updateProperties","extent","fullRangeChart","onBrushCall","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","activeTooltipContent","windowResize","update","e","log","JSON","stringify","state","focus","line","syncBrushing","independentBrushing","showYAxis","getQueryParams","Ember","Component","extend","store","inject","service","modelName","init","_super","arguments","loadModelName","updateCalibColLabel","get","filterEventsByAttributes","events","instrumentAttributes","eventAttributes","filter","event","i","length","instrumentAttr","eventAttr","eventAttrValue","calibColLabel","chartId","startTimestamp","endTimestamp","isDistXTooltip","distXRiseUpAnimationDuration","seismicEventsChartDistXData","computed","key","type","color","values","map","valueOf","blastEventsChartDistXData","instrument","blastEvents","seismicEventsArray","time","timestamp","format","eventSize","momentMagnitude","location","sortBy","getLevelId","instrumentLevelId","id","error","getProjectId","instrumentProject","fetchValueFromStore","record","findRecord","console","blastEventsArray","instrumentProjectId","levelValue","projectValue","data_set","tonnes","project","level","zoomTempPoints","chartDataResult","zoomTempData","item","toJSON","linesKeys","Object","keys","chartData","getProperties","currentPort","port","attrs","getQueryParams","zoomDataPoints","zoomData","linesKyes","push","fullRangeDataPoints","zoomTimePoints","fullRangeTimePoints","anchorDistances","zoomChartLinesData","_this","chartLineName","chartLineIndex","yAxis","dataPoint","dataPointIndex","pop","shift","temp","concat","fullRangeChartLinesData","chartDataModelName","query","model_name","yAxisLegend","promise","queryRecord","title","substr","lastIndexOf","replace","modelNames","vwmodelName","then","vwproperties","forEach","vwproperty","log","vwPropertyArr","set","vwProp","didInsertElement","zoomChartSVG","d3","select","fullRangeChartSVG","apiCallsPromises","RSVP","Promise","all","results","toString","instType","axisName","units","usesPoints","chartName","zoomChart","nv","models","lineChartWithFocusAPI","margin","top","right","bottom","left","useInteractiveGuideline","x","d","y","scale","category10","range","duration","showDistX","noData","legend","addGraph","xAxis","ticks","tickPadding","showMaxMin","tickFormat","zoomChartXDomainLength","utils","getDateAutoscaleFormat","Date","y1Axis","axisLabel","axisLabelDistance","y2Axis","distX","size","distXTooltipBottomOffset","isFixedDistXTooltip","distXRiseUpAnimationDelay","lineWidth","numDecimals","datum","call","dispatch","on","brushExtent","tooltip","hidden","updateProperties","extent","fullRangeChart","onBrushCall","selectControls","series","disabled","updateDistXTooltip","tooltipContent","tooltipText","tooltipClass","ppv","ppa","freq","distXMouseMove","distX0","onDistXTooltipShowCall","distX1","distXIndex","distX2","activeTooltipContent","windowResize","update","e","JSON","stringify","state","sendAction","graph_type","scatter","line","focus","syncBrushing","independentBrushing","showXAxis","showYAxis","fullRangeChartXDomainLength","ex","DropdownComponent","Component","constructor","arguments","loadInstrument","instrument","store","findRecord","args","instrumentId","Ember","Component","extend","calibColLabel","init","_super","arguments","updateCalibColLabel","get","isVisibleCreateNewForm","store","inject","service","trueAnchorDistances","channelsNum","iterations","Math","floor","linear","calib","depth","set","i","push","console","log","modelNames","computed","vwmodelName","query","then","vwproperties","length","forEach","vwproperty","portObserver","observer","activePort","currentPort","vwProp","anchorDistances","channel","actions","updateProperty","propertyName","propertyValue","Ember","Component","extend","Ember","Component","extend","DropdownComponent","Component","constructor","arguments","loadInstrument","instrument","store","findRecord","args","instrumentId","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","ApplicationController","invalidateSession","localStorage","clear","session","invalidate","Ember","Controller","extend","_my_init","run","scheduleOnce","queryParams","page_size","eventsMeta","ordering","search","isVisibleRowDetails","isRowDeleteConfirmationDialog","isVisibleCreateNewForm","permissionError","project","level","breadCrumbs","label","path","actions","updateProperty","propertyName","propertyValue","set","vewRowDetails","id","curVal","get","toggleRowDeleteConfirmationDialog","remove","model","object","_this","deleteRecord","save","then","removeObject","catch","reason","errors","status","send","sortBy","property","setProject","event","selectedId","target","value","foundObjects","foundObject","find","lookup","console","log","setLevel","Ember","Controller","extend","store","inject","service","instType","id","gwType","gwId","isVisibleError","duplicateError","typeError","fieldError","instruments","searchedValue","loading","_my_init","set","newInstr","query","small","exclude","then","map","instr","title","get","value","type","on","allInstruments","computed","filter","instrument","instrumentChanged","instrumentTypeID","model","allGateways","gateways","gateway","gatewayChanged","gatewayTypeID","breadCrumbs","obj","label","path","actions","submit","transitionToRoute","setError","error","setValue","property","setID","inst","console","log","Ember","Controller","extend","gwType","id","isVisibleError","duplicateError","typeError","fieldError","allGateways","computed","filter","gateway","gateways","map","title","get","value","type","gatewayChanged","set","gatewayTypeID","model","breadCrumbs","obj","label","path","actions","submit","transitionToRoute","setError","error","setValue","property","setID","gw","CreateGatewayController","label","path","choseForm","value","console","log","Ember","set","submit","id","transitionToRoute","setError","error","CreateInstrumentController","label","path","choseForm","value","Ember","set","store","query","instrument_type","then","vendors","submit","id","transitionToRoute","setError","error","sortTypesByTitle","typesArray","sort","a","b","title","getInstrumentTypes","types","model","instrumentTypes","newTypesArr","forEach","element","push","resetNewLookupObject","_this","set","CreateInstrumentController","label","path","choseType","value","Ember","submit","id","transitionToRoute","createLookup","object","store","get","newLookupObject","name","type","alert","console","log","JSON","stringify","newLookup","dup","createRecord","err","setError","message","save","then","results","error","catch","reason","init","arguments","Ember","Controller","extend","breadCrumbs","get","alert","obj","label","path","model","instrumentTypeName","set","instrument","actions","saved","transitionToRoute","setError","error","value","Ember","Controller","extend","breadCrumbs","get","alert","obj","label","path","model","gatewayTypeName","set","instrument","actions","saved","transitionToRoute","setError","error","value","Ember","Controller","extend","session","queryParams","init","_super","arguments","queryParamParentGateway","parentGateway","window","localStorage","setItem","storedParentGateway","getItem","set","get","_parentGateway","key","value","breadCrumbs","gateway","obj","label","path","model","gatewayTypeLabel","computed","modelTemp","gatewayType","title","hasGraphs","getPerms","undefined","hasAlerts","perms","data","authenticated","modules","actions","viewData","id","transitionToRoute","tGraph","chart","saveToLocalStorage","loadFromLocalStorage","Ember","Controller","extend","session","breadCrumbs","get","instrument","obj","label","path","model","hasGraphs","getPerms","undefined","hasAlerts","perms","data","authenticated","modules","ports","computed","channelsNum","parseInt","ex","numberOfPorts","channel","push","route","console","log","JSON","stringify","actions","selectProperty","value","inst","prop","toArray","findBy","vendor","serial","viewData","id","transitionToRoute","tGraph","chart","sGraph","fGraph","Ember","Controller","extend","breadCrumbs","get","alert","obj","label","path","model","instrumentTypeName","set","instrument","actions","saved","transitionToRoute","setError","error","value","ForgotPasswordController","resetPassword","loading","response","api","fetch","method","headers","body","JSON","stringify","email","json","isSentResetRequest","err","console","log","errorMessage","updateInfo","type","e","target","value","Ember","Component","extend","router","session","isRowDeleteConfirmationDialog","showLoading","init","_super","arguments","on","handleRouteChange","bind","transition","to","name","set","isShowConfig","isShowPopupNotification","licenceIsValid","computed","valid","data","authenticated","isValid","getVisibleReadings","get","length","getTotalReadings","pagination","total","breadCrumbs","instrument","obj","label","path","id","model","displayData","instrumentId","getbluvibev2ProfileList","list","actions","closeNotificationPopup","notificationPopupContentBody","document","getElementById","innerHTML","actionsHotKey","key","profile_obj","transitionTo","parent","endDateObj","moment","startDateObj","subtract","format","formattedEndDateObj","queryParams","profile_id","advancedYAxisUnit","analysis_category","Ember","Controller","extend","router","session","init","_super","arguments","actions","Ember","Controller","extend","router","session","showLoading","integrationMethod","selectedFreqEventTabKey","selectedFreqEventSubTabKey","selectedFreqEventSubSubTabKey","advancedYAxisUnit","raw","tabs","isShowConfig","isShowPopupNotification","init","_super","arguments","initializeGraphDataFromTabKeys","key","profiles","get","profileObj","objectAt","endPoint","timestamp","profileID","instrID","method","analysisCategory","set","instrument_id","selectedFreqEventDate","profile_id","analysis_category","run_analysis","then","response1","data","catch","error","console","response","response2","run","next","err","log","message","stack","updateRedWarning","computed","hasOwnProperty","length","subTabObserver","observer","subTab","loadProfiles","tab","breadCrumbs","instrument","obj","label","path","id","model","getProfileID","bluvibeV2ModelProfiles","displayData","instrumentId","buildTabsInstrTypeDependent","instrumentType","actions","closeNotificationPopup","notificationPopupContentBody","document","getElementById","innerHTML","redWarningNotification","updateProperties","propertyNames","propertyValues","_this","forEach","propertyName","i","getQueryParams","variable","toggleProperty","property","Ember","Controller","extend","xyRangeObj","router","inject","service","instrumentId","instrumentType","instrumentTypeId","name","location","level","borehole","project","modelName","activeInstrumentMeta","frequencyGraphController","controller","chartDataValueName","frequency","chartData","chart","chartDataPoints","adjust_scales","auto_scale","x_min","x_max","x_min_old","x_max_old","x_min_auto","x_max_auto","y_min","y_max","y_min_old","y_max_old","y_min_auto","y_max_auto","auto_scale_2","y_min_2","y_max_2","y_min_old_2","y_max_old_2","y_min_auto_2","y_max_auto_2","lastClick","instrumentAnchors","instrumentAnchorsSorting","chart_type","log_frequency","display_records","breadCrumbs","computed","get","mName","instID","instrument","toUpperCase","obj","label","path","query","model","chartChanged","observer","xyRangeValues","yDomain","yAxis","scale","domain","xDomain","xAxis","set","toFixed","xValueChanged","update","error","console","valueChanged","autoScaleChanged","getInstrumentObject","displayData","details","detailString","projectId","projectName","levelId","levelName","badCodes","includes","undefined","substr","length","bluVibe","instrumentAnchorsSorted","sort","refHeadPosition","rawData","timeRef","flipSigns","allInstruments","filter","instruments","map","title","value","initialInstrumentSelection","id","writeCookie","findBy","actions","updateNav","licence","modules","isValid","withinLimit","temporal","document","getElementById","style","display","spatial","alerts","updateProperties","propertyNames","propertyValues","_this","forEach","propertyName","i","toggleProperty","property","send","toggleLocalProperty","onUpdateTransitionTo","selection","RouterService","transitionTo","setChart","setData","data","selectTemps","points","ctr","disabled","userDisabled","selectReadings","activate","inst","readCookie","run","scheduleOnce","days","date","expires","Date","setTime","getTime","toGMTString","cookie","c","ca","nameEQ","split","charAt","substring","indexOf","Ember","Controller","extend","queryParams","start_timestamp","end_timestamp","num_points_requested","ref_head_position","ref_anchor","zeroed","modelName","flip_signs","frequency","chart","chart_type","display_records","raw","actions","setData","data","send","setChart","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","set","getQueryParams","variable","get","toggleProperty","property","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","refreshRoute","send","Ember","Controller","extend","_my_init","run","scheduleOnce","store","inject","service","queryParams","page_size","instrumentsMeta","ordering","search","searchTgt","page","lat","lng","zoom","mapBounds","computed","actions","sortByA","property","set","sortByI","sortByG","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","KeysController","updateActive","theModel","valid","active","ctr","tooltip","licenceKeys","forEach","theItem","id","isValidKey","count","numInst","modules","key","type","capitalizeFirstLetter","key2","set","remove","model","object","_this","_store","get","deleteRecord","save","then","unloadRecord","catch","reason","status","errors","errBox","hidden","toggleRowDeleteConfirmationDialog","curVal","Ember","string","charAt","toUpperCase","slice","ListLookupController","Ember","computed","valid","session","data","authenticated","isValid","startEditing","lookupId","lookup","console","log","set","stopEditing","setRDCD","value","rdcd","get","notifyPropertyChange","createLookup","router","transitionTo","updateActive","model","lookups","forEach","item","JSON","stringify","toggleRowDeleteConfirmationDialog","id","list","save","_this","_store","then","catch","reason","status","errors","errBox","hidden","remove","object","deleteRecord","unloadRecord","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","refreshRoute","send","LoginController","registerNewAccount","url","router","urlFor","window","open","forgotPassword","authenticateWithProvider","providerName","errorMessage","session","authenticate","username","identification","password","provider","isAuthenticated","loading","handleAuthentication","error","msg","message","includes","showResendVerification","resendVerification","alert","payload","email","response","api","fetch","method","headers","body","JSON","stringify","data","json","updateIdentification","e","target","value","updatePassword","Ember","Component","extend","session","currentTab","init","_super","arguments","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","refreshRoute","send","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","refreshRoute","send","ApplicationController","addTask","taskName","tasks","pushObject","name","percentage","updateTask","task","findBy","removeTask","removeObject","updateTaskStatus","taskId","response","api","fetch","status","json","setTimeout","Ember","Controller","extend","isVisibleExportDataForm","isVisibleImportDataForm","displacementValuesMeta","permissionError","linear","calib","depth","port_number","port","breadCrumbs","computed","get","instrument","obj","label","path","id","model","hasPorts","channelsNum","parseInt","ports","numberOfPorts","channel","push","linearData","calibData","depthData","isWire","prop","actions","updateProperty","propertyName","propertyValue","set","toggleDataType","property","toggleProperty","Ember","Controller","extend","router","session","isVisibleExportDataForm","isVisibleImportDataForm","permissionError","showLoading","init","_super","arguments","on","handleRouteChange","bind","transition","to","name","set","breadCrumbs","computed","get","instrument","obj","label","path","id","model","actions","updateProperty","propertyName","propertyValue","toggleProperty","property","Ember","Controller","extend","queryParams","isVisibleExportDataForm","isVisibleImportDataForm","gatewayValuesMeta","permissionError","linear","calib","depth","raw_parent_gateway","breadCrumbs","computed","get","console","log","gateway","obj","label","path","id","model","actions","updateProperty","propertyName","propertyValue","set","toggleProperty","property","RegisterController","resendVerification","loading","email","errorMessage","url","response","api","fetch","method","headers","body","JSON","stringify","data","json","ok","alert","error","message","err","submitRegistration","event","console","log","username","first_name","firstName","last_name","lastName","password","isSuccessful","updateEmailsSent","updateUsername","validateUsername","target","value","set","inputUsername","length","usernameRegex","test","updateEmail","validateEmail","emailRegex","updatePassword","calculateStrength","score","pw","passwordStrength","emailsSentArr","result","forEach","element","passwordStrengthText","passwordStrengthBarStyle","width","color","barWidth","barColor","c","updateInfo","type","e","ResetPasswordController","updateField","field","event","target","value","submit","errorMessage","password","passwordConfirm","token","model","response","api","fetch","method","headers","body","JSON","stringify","data","json","ok","error","success","Ember","Controller","extend","_my_init","run","scheduleOnce","queryParams","page_size","eventsMeta","ordering","search","isVisibleImportDataForm","isVisibleRowDetails","isRowDeleteConfirmationDialog","isVisibleCreateNewForm","permissionError","breadCrumbs","label","path","actions","updateProperty","propertyName","propertyValue","set","vewRowDetails","id","curVal","get","toggleRowDeleteConfirmationDialog","toggleProperty","property","remove","model","object","_this","deleteRecord","save","then","removeObject","catch","reason","errors","status","send","sortBy","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","refreshRoute","send","Ember","Controller","extend","page_size","page","search","breadCrumbs","label","path","actions","sortBy","property","set","updateProperty","propertyName","propertyValue","refreshRoute","send","Ember","Component","extend","session","currentTab","loading","router","inject","service","authorized","computed","settings","get","auth","forEach","element","datetimeFormatArray","id","title","timeZones","resetLoading","set","actions","onClickLog","transitionTo","activate","console","log","Ember","Controller","extend","_my_init","run","scheduleOnce","on","instrumentId","instrumentType","instrumentTypeId","name","location","level","project","borehole","modelName","activeInstrumentMeta","spatialGraphController","inject","controller","eventType","blastType","seismicType","chartDataValueName","chartData","instrumentAnchors","instrumentAnchorsSorting","vendor","breadCrumbs","computed","get","chart","mName","instID","instrument","obj","label","path","query","model","id","store","peekRecord","isThermo","isRebar","displayData","details","detailString","projectId","projectName","levelId","levelName","badCodes","includes","undefined","substr","length","isAdictMDT","toLowerCase","vendorType","instrumentAnchorsSorted","sort","instrumentAnchorsForAdictMDT","pop","allInstruments","filter","refHeadPosition","timeRef","flipSigns","instruments","map","title","value","frequencySelect","groupTime","groupWindow","initialInstrumentSelection","writeCookie","findBy","actions","updateNav","licence","modules","isValid","withinLimit","temporal","document","getElementById","style","display","spatial","frequency","alerts","updateProperties","propertyNames","propertyValues","_this","forEach","propertyName","i","set","toggleProperty","property","send","updateActivefrequency","capitalize","frequency_num","events_only","updateGroupMode","group_window","freq","group_time","onUpdateTransitionTo","selection","typeID","isRebarGraph","RouterService","transitionTo","setChart","setData","data","activate","inst","readCookie","days","date","expires","Date","setTime","getTime","toGMTString","cookie","c","ca","nameEQ","split","charAt","substring","indexOf","Ember","Controller","extend","queryParams","start_timestamp","end_timestamp","num_points_requested","ref_head_position","ref_anchor","zeroed","modelName","flip_signs","event_type","blast_type","seismic_type","frequency","frequency_num","events_only","group_time","group_window","side","actions","setData","data","send","setChart","chart","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","set","getQueryParams","variable","get","toggleProperty","property","Ember","Controller","extend","queryParams","_my_init","run","scheduleOnce","on","gatewayId","gatewayType","gatewayTypeId","name","location","level","project","modelName","activeGatewayMeta","temporalGatewayGraphController","inject","controller","chartDataValueName","chartData","chart","chartDataPoints","adjust_scales","auto_scale","y_min","y_max","y_min_old","y_max_old","y_min_auto","y_max_auto","auto_scale_2","y_min_2","y_max_2","y_min_old_2","y_max_old_2","y_min_auto_2","y_max_auto_2","lastClick","gatewayAnchors","gatewayAnchorsSorting","depthChecked","chart_type","display_records","left_axis_field","right_axis_field","port","chart_parent_gateway","parentGateway","rawChecked","computed","get","breadCrumbs","badCodes","mName","gateway","gatewayID","id","includes","obj","label","path","query","model","chartChanged","observer","domain","y1Axis","scale","set","toFixed","y2Axis","send","valueChanged","yDomain1","update","autoScaleChanged","valueChanged2","yDomain2","autoScaleChanged2","window_value","window","displayData","details","detailString","substring","length","temperatureIsValid","gatewayAnchorsSorted","sort","depthData","depth","timeRef","allGateway","filter","map","title","value","initialGatewaySelection","writeCookie","findBy","actions","selectAxis","setDepth","updateNav","licence","modules","isValid","withinLimit","temporal","document","getElementById","style","display","spatial","frequency","alerts","updateProperties","propertyNames","propertyValues","_this","forEach","propertyName","i","toggleDataType","property","toggleProperty","toggleLocalProperty","propValue","updateLocalProperty","propertyValue","onUpdateTransitionTo","selection","tra","setChart","setData","data","disableTemp","points","element","yAxis","disabled","userDisabled","saveImage","html2canvas","querySelector","allowTaint","foreignObjectRendering","onrendered","canvas","downloadLink","createElement","setAttribute","toBlob","blob","url","URL","createObjectURL","click","selectTemps","ctr","selectReadings","activate","readCookie","transitionToRoute","numDecimals","roundVal","Math","pow","answer","ceil","floor","days","date","expires","Date","setTime","getTime","toGMTString","cookie","c","ca","nameEQ","split","charAt","indexOf","Ember","Controller","extend","queryParams","start_timestamp","end_timestamp","num_points_requested","ref_anchor","zeroed","depth","modelName","window","chart","chart_type","display_records","right_axis_field","left_axis_field","port","chart_parent_gateway","temporalGraphsController","inject","controller","depthObserver","observer","get","send","actions","toggleDataType","property","set","setData","data","setChart","updateWindow","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","getQueryParams","variable","toggleProperty","propValue","Ember","Controller","extend","willDestroy","_super","arguments","activeInstrumentMeta","get","set","init","_my_init","on","instrumentId","instrumentType","instrumentTypeId","name","location","level","borehole","project","modelName","temporalGraphController","inject","controller","eventType","blastType","seismicType","chartDataValueName","chartData","frequency","tiltMode","chart","chartDataPoints","adjust_scales","zeroed","auto_scale","y_min","y_max","y_min_old","y_max_old","y_min_auto","y_max_auto","auto_scale_2","y_min_2","y_max_2","y_min_old_2","y_max_old_2","y_min_auto_2","y_max_auto_2","lastClick","instrumentAnchors","instrumentAnchorsSorting","test","linearChecked","calibChecked","depthChecked","tiltZUp","chart_type","display_records","previousAnchor","router","service","vendor","port","selectedAnchor","shouldRerender","instrument","computed","content","getAnchor","instrumentTypeTitle","title","getInstrumentTypeToLower","toLowerCase","isDPPC","rawChecked","id","store","peekRecord","breadCrumbs","mName","instID","obj","label","path","query","model","chartChanged","observer","domain","y1Axis","scale","toFixed","y2Axis","send","valueChanged","yDomain1","update","autoScaleChanged","valueChanged2","yDomain2","autoScaleChanged2","isVelocityGraph","bluVibeEvent","window_value","window","typeSelect","isThermo","isPiezo","isWire","displayData","details","detailString","projectId","projectName","levelId","levelName","badCodes","includes","undefined","substr","length","displacementIsValid","axialDisplacementIsValid","velocityIsValid","temporalVelocityName","accelerationIsValid","temporalAccelerationName","strainIsValid","temporalStrainName","strainRateIsValid","temporalStrainRateName","axialIsValid","bendingIsValid","loadIsValid","temporalLoadName","temperatureIsValid","bluVibe","isAdictMDT","vendorType","e","console","log","instSelectedAnchor","instrumentAnchorsSorted","sort","instrumentAnchorsForAdictMDT","pop","refHeadPosition","linearData","calibData","depthData","depth","timeRef","flipSigns","allInstruments","filter","instruments","map","value","initialInstrumentSelection","writeCookie","findBy","randomValue","actions","setRandomValue","Math","floor","random","updatePort","newPortValue","currentPortValue","resetZoom","start_timestamp","end_timestamp","transitionTo","queryParams","handleAnchorSelection","event","save","setDepth","setLinear","setCalib","updateNav","licence","modules","isValid","withinLimit","temporal","document","getElementById","style","display","spatial","alerts","updateProperties","propertyNames","propertyValues","_this","forEach","propertyName","i","toggleDataType","property","toggleProperty","toggleZeroedGraph","toggleLocalProperty","propValue","updateLocalProperty","propertyValue","onUpdateTransitionTo","selection","RouterService","onUpdateTransitionToVibe","setChart","setData","data","disableTemp","points","element","yAxis","disabled","userDisabled","saveImage","html2canvas","querySelector","allowTaint","foreignObjectRendering","then","canvas","downloadLink","createElement","setAttribute","toBlob","blob","url","URL","createObjectURL","click","selectTemps","ctr","selectReadings","activate","inst","readCookie","run","scheduleOnce","numDecimals","roundVal","pow","answer","ceil","days","date","expires","Date","setTime","getTime","toGMTString","cookie","c","ca","nameEQ","split","charAt","substring","indexOf","Ember","Controller","extend","queryParams","start_timestamp","end_timestamp","num_points_requested","ref_head_position","ref_anchor","zeroed","linear","calib","depth","modelName","flip_signs","event_type","blast_type","tiltMode","window","seismic_type","frequency","chart","chart_type","display_records","port","selectedAnchor","temporalGraphsController","inject","controller","linearObserver","observer","get","send","calibObserver","depthObserver","actions","toggleDataType","property","set","setData","data","setChart","updateVibe","vibeID","updateWindow","updateProperties","propertyNames","propertyValues","_this","length","forEach","propertyName","i","getQueryParams","variable","toggleProperty","propValue","queryParamsDidChange","changes","from","to","Ember","Controller","extend","_my_init","run","scheduleOnce","headerTitles","computed","titles","queryParams","page_size","eventsMeta","ordering","search","isVisibleRowDetails","isRowDeleteConfirmationDialog","isVisibleCreateNewForm","permissionError","breadCrumbs","label","path","actions","updateProperty","propertyName","propertyValue","set","vewRowDetails","id","curVal","get","toggleRowDeleteConfirmationDialog","remove","model","object","_this","deleteRecord","save","then","removeObject","catch","reason","errors","status","send","sortBy","property","activeClass","val","Ember","Helper","helper","alertGetId","alertRow","gw","get","gwId","appVersion","_","hash","version","config","APP","versionOnly","hideSha","shaOnly","hideVersion","match","showExtended","versionExtendedRegExp","versionRegExp","shaRegExp","arrayAt","params","arr","index","undefined","anchorDistances","Ember","Helper","helper","buttonclass","anchor","ref_anchor","String","assistiveToolTipLibrary","key","connectionStatusLibrary","code","statusObject","key","value","color","calibrationStatusLibrary","generalStatusLibrary","incomingMessageLibrary","context","rigProfile","get","hasOwnProperty","push","getCurrentDateTime","parsedData","parseMessage","updateAnchorBoardLiveViewData","updateAnchorChartLiveViewData","calculateAveragePhaseIModule","calculateAverageCalibrationDataPhaseIIModule","batchSensorData","i","sensorObj","sensorIsSamplingData","sensorData","trim","calculateAveragePhaseIV2Module","calculateAverageCalibrationDataPhaseIIV2Module","customStatusObj1","set","calculateAverageCurrentPhaseIIModule","calculateAverageCurrentPhaseIIV2Module","customStatusObj2","outgoingMessageLibrary","cmd","type","calibProfile","msg","data","checkpointSpeed","showPopup","sendBatchCommands","ws","appendLiveLog","send","generalPermissionLibrary","messageArray","mode","seconds","popup","document","getElementById","popupBody","existingStyles","querySelectorAll","forEach","styleElement","remove","animationName","replace","styleSheet","createElement","id","innerHTML","head","appendChild","style","animation","offsetHeight","borderColor","visibility","opacity","message","subtitleSection","fontSize","textAlign","textContent","overflowWrap","fadeOutTimeout","closeButton","cursor","textDecoration","onclick","clearTimeout","setTimeout","fadeOut","setInterval","clearInterval","buildRigActivityNotificationBoard","responseData","sendGETRequest","Ember","run","scheduleOnce","masterPopupContent","calibTableTitle","marginTop","fontWeight","table","thead","borderBottom","trColumns","row1HeaderObject","label","columnObject","index","thColumn","border","borderWidth","tbody","length","rigID","activityJSON","trRows","tdRowData","refreshButtonComponent","display","marginRight","okButtonComponent","buildRigNotificationNotificationBoard","popupContentSectionComponent","Object","entries","rigObject","messagesArray","rigLabelSection","paddingLeft","pressTimer","addEventListener","event","messages","rigMessage","buildPhaseIIConclusionNotificationBoard","userProfile","authenticated","selectedRigProfile","selectedCalibrationProfile","selectedSensorData","selectedAnchorData","calibrationData","console","log","JSON","stringify","selectedRigData","selectedCalibrationData","selectedSensorObj","subTitleSection","paddingBottom","row1Section","width","justifyContent","sensorIDSection","flexDirection","alignItems","sensorIDSectionLabelSection","sensorIDSectionValueSection","packIdSection","packIdSectionLabelSection","packIdSectionValueSection","rigSection","rigValueSection","calibSection","calibLabelSection","calibValueSection","jobIDSection","jobIDLabelSection","jobIDValueSection","row2Section","latestDateTime","calibrationDateSection","calibrationDateLabelSection","calibrationDateValueSection","row3Section","sensorNameSection","sensorNameLabelSection","sensorNameValueSection","sensorDescriptionSection","sensorDescriptionLabelSection","sensorDescriptionValueSection","employeeSection","employeeLabelSection","employeeValueSection","row4Section","checkpointPositionsSection","checkpointPositionsLabelSection","checkpointPositionsValueSection","memoSectionLabelSection","memoSectionValueSection","marginLeft","whiteSpace","settingsConfig","APPROVEDINSTRUMENTTYPES","dExto","typeValue","dRebar","anchorSectionLabelSection","anchorSectionValueSection","channels","phaseILookUpLabelSection","lookup","phaseIValueSection","toString","phaseIILookUpLabelSection","phaseIIValueSection","phaseIICalibratedCurrentLabelSection","phaseIICalibratedCurrentValueSection","phaseIICalibratedSlopeLabelSection","phaseIICalibratedSlopeValueSection","phaseIICalibratedOffsetLabelSection","phaseIICalibratedOffsetValueSection","saveButtonComponent","confirmCheckBoxComponent","checked","saveAndSendPhaseIIData","confirmCheckBoxComponentSection","oninput","messageArr","buildPhaseIIConclusionNotificationBoardV2","sensorTitleSection","saveAndSendPhaseIIV2Data","buildBatchCalibrationSheet","isVisiblePopup","batchCBData","payload","masterContent","fontFamily","certificateObj","sensorProfile","phaseILookupData","phaseIICalibrationDataValueData","phaseIICurrentData","phaseIISlopeData","phaseIIOffsetData","assign","paddingRight","logoComponent","alignSelf","src","mainComponent","quickDetailTitle","jobIDComponent","sensorNameComponent","sensorDescriptionComponent","calibrationDateComponent","split","technicalDetailTitle","row2ASection","employeeComponent","sensorIDComponent","sensorTypeComponent","sensorUnitComponent","row2BSection","refSNComponent","refCertValueComponent","refCertDateComponent","columns","columnLabel","checkpointPositionsLength","tdRowCurr","channelArray","tdRowDisp","trSlopeRows","tdSlopeCol","slopeVal","trOffsetRows","tdoffsetCol","offsetVal","keys","constructor","anchorDiagramTitle","masterDiagramSection","className","upperMasterSection","anchorDummyHeadComponent1","anchorUpperTextBoxSection","anchorDummyTailComponent1","anchorMasterSection","anchorHeadComponent","anchorPointsComponent","anchorToeTextComponent","lowerMasterSection","anchorDummyHeadComponent2","anchorLowerTextBoxSection","anchorDummyTailComponent2","dCable","dMPBX","visualAnchorPoints","e","firstBufferSection","height","channel","inputElement","headDiv","background","borderRadius","anchorSpace","anchorPoint","borderStyle","append","schedule","map","upperAnchorElement","lowerAnchorElement","stack","memoTitle","memoValue","pageBreakDiv","pageBreakAfter","breakAfter","createCalibrationGraphs","exportButtonComponent","zip","JSZip","container","opts","margin","filename","image","quality","html2canvas","scale","useCORS","jsPDF","unit","format","orientation","pagebreak","pdfBlob","from","outputPdf","file","error","zipBlob","generateAsync","err","buildCalibrationSheet","calibrationID","sensorProfileList","selectedSensorProfileObj","paddingTop","watermark","cssText","top","left","position","printButtonComponent","element","opt","sensorID","allowTaint","avoid","then","roundDownAuto","number","digits","Math","floor","log10","place","pow","stepSize","arrayY","xValues","displacementUnit","pressureUnit","row","typeCategory","yValues","calibrationGraphsDiv","calibrationGraphs","Chart","labels","datasets","pointRadius","pointBackgroundColor","fill","options","responsive","maintainAspectRatio","aspectRatio","scales","x","getAxisChartOption","y","plugins","title","text","legend","tooltip","enabled","elements","option","max","dMicro","font","size","weight","autoSkip","callback","val","ctx","some","abs","tick","buildSensorProfileNotificationBoard","allowPrint","packProfile","row1ASection","reportTitleSection","calibrationTitleSection","calibIDSection","calibIDLabelSection","calibIDValueSection","calibDateSection","calibDateLabelSection","calibDateValueSection","row1BSection","rigTitleSection","rigCalibIDSection","rigCalibIDLabelSection","rigCalibIDValueSection","rigCalibValueSection","rigCalibValueLabelSection","rigCalibValueValueSection","rigCalibDateSection","rigCalibDateLabelSection","rigICalibDateValueSection","rigIDSection","rigIDLabelSection","rigIDValueSection","rigNameSection","rigNameLabelSection","rigNameValueSection","rigIPSection","rigIPLabelSection","rigIPValueSection","row3ASection","typeSection","typeLabelSection","typeValueSection","unitSection","unitLabelSection","unitValueSection","row3BSection","sensorIDLabelSection","sensorIDValueSection","technicalTitleSection","row4ASection","sampleSizeSection","sampleSizeLabelSection","sampleSizeValueSection","speedSection","speedLabelSection","speedValueSection","delaySection","delayLabelSection","delayValueSection","row4BSection","limitSection","limitLabelSection","limitValueSection","row4CSection","packIDSection","packIDLabelSection","packIDValueSection","packNameSection","packNameLabelSection","packNameValueSection","packCompanySection","packCompanyLabelSection","packCompanyValueSection","row5Section","phaseITitleSection","lookupSection","lookupLabelSection","lookupDataSection","lookupArr","lookupRowValueSection","channelLabelSection","lookupData","lookupTranslatedSection","lookupTranslatedLabelSection","lookupTranslatedDataSection","lookupBodyStructure","row6Section","phaseIITitleSection","calibratedDataSection","calibratedDataLabelSection","calibratedDataDataSection","calibratedDataArray","calibratedDataRowValueSection","dataSection","currentDataSection","currentDataLabelSection","currentDataValueSection","slopeDataSection","slopeDataLabelSection","slopeDataValueSection","offsetDataSection","offsetDataLabelSection","offsetDataValueSection","memoSection","memoLabelSection","memoValueSection","row7Section","activityLogTitleSection","employee","activityObj","activityElement","padding","marginBottom","activityEmployeeElement","activityDateElement","activityMsgElement","popupContent","overflowX","inlineStyles","printable","scanStyles","buildBatchSensorBoard","titleSection","masterDivSection","master1DivSection","subRow1Section","col1SensorObjSection","sensorIDLabel","tdsensorIDElement","classList","add","inputSensorIDElement","setAttribute","userInputtedSensorID","col2SensorObjSection","sensorNameLabel","tdsensorNameElement","inputSensorNameElement","userInputtedSensorName","packIDLabel","tdInput","select","maxWidth","defaultOption","innerText","packValidationCompletedProfileList","selectOption","selectedValue","target","selectedPackProfile","Number","parseInt","col3SensorObjSection","trashIconComp","inputSensorIDElementElement","inputSensorNameElementElement","validationIDComponent","notificationCancelButton","notificationSaveButton","currCalibrationProcessData","showHelpNotificationBoard","Promise","resolve","rawCodeSubTitleComponent","subsection1Component","subRawCode1","subsubsection1Component","commandMode","subRawCode2","subsubsection2Component","modeSettingComponent","channelsSettingComponent","strokeSettingComponent","idSettingComponent","typeSettingComponent","descriptionSettingComponent","tableToROMSettingComponent","romToTableSettingComponent","exitSettingComponent","subRawCode3","subsubsection3Component","setValueComponent","easterEggTitleComponent","subsection2Component","getRigActivityComponent","getInternalVersionComponent","removeEventListener","enterKeyHandler","buildCalibrationV2IntermissionNotificationBoard","timer","xButtonComponent","timerWarningComponent1","interval","progressBarSection","progressBarFill","progressPercentage","min","timerBarSection","class","timerBarBar","timerBarValue","subtitle1","calibrationDataArr","timerWarningComponent2","timerWarningComponent3","readyButtonComponent","closePopupAndResolve","abortButtonComponent","backgroundColor","abortResolve","abort","buildInventoryUpdateBoard","jobIDLabel","tdJobIDElement","inputJobIDElement","userInputtedJobID","tdMemoElement","textareaElement","tdElement","anchorUpperTBComponent","anchorLowerTBComponent","requestBody","anchorDataValue","sensorNameElement","jobIDElement","memoElement","response","sendPATCHRequest","endpoint","queryParams","url","queryString","URLSearchParams","fetch","method","headers","Authorization","localStorage","token","status","statusText","json","newData","convertKeysToCamelCase","obj","Array","isArray","v","fromEntries","_","char","toUpperCase","sendPOSTRequest","body","sendDELETERequest","resetProfile","resetProfileForm","rigIPComponent","rigNameComponent","rigCategoryComponent","comp1","comp2","comp3","comp4","comp5","comp6","comp7","comp8","resetDataRigProfile","chatBox","stepperComponent","pointerEvents","pumpComponent","pressureCalibHotKeysSectionComponent","dataVer","resetDataCalibProfile","chart","update","sensorIDTBComponent","clearBatchSensorCalibrationData","slice","getChart","tempLabel","dispLabel","currentIndex","maxDataPoints","shift","validateAllForms","failedState","neutralState","labelState","passedState","indent","failedObjects","anchorComponent","getAttribute","sensorIDValue","includes","buildValidationPopupContent","scrollIntoView","behavior","block","sendV2BatchCommands1","initializeConnection","ip","readyState","WebSocket","CLOSED","warn","webSocketDisconnect","resetLog","CONNECTING","onopen","updateStepperPressureControlPanel","onmessage","onerror","onclose","window","component","close","websocketReconnect","updateRigActivity","dashboardStatusObj","formSensorData","formRigData","calibrationObj","connectionObj","currentObj","statusObj","targetObj","activityLog","newMessage","direction","lines","maxNumLines","join","scrollTop","scrollHeight","appendPhaseILog","appendPhaseIILog","stepperPanelComponent","pumpPanelComponent","pressureCalibHotKeysPanelComponent","typeOfLog","liveChatBox","pIChatBox","pIIChatBox","getSensorPhaseISchematics","websocket","checkpointDelay","checkpointPositions","checkpointSampleSize","checkpointCurrentTargetBuffer","maxLimit","minLimit","dPPC","softResetPhaseIModule","setRigUnit","emergencyCheckOrThrow","updateCalibrationStatusModule","setTargetModule","awaitReachAcensionStageResult","awaitUntilCheckPointPositionReachedAcensionStage","delayTimeModule","phaseISampleResult","phaseISampleModule","postPhaseProceduralModule","name","getSensorPhaseIISchematics","softResetPhaseIIModule","phaseIISampleModule","getV2CalibrationSchematics","softResetV2PhaseIModule","awaitUntilCheckPointPositionReachedAcensionV2Stage","sampleV2PhaseIModule","postP1Result","postPhaseCalibrationV2Module","popupResult","sendV2BatchCommands2","sampleV2PhaseIIModule","postP2Result","phase","rigResetCMD","sensorDescription","buildSensorDescription","specialPhaseILogText","getLookupBody","transformedLookupArrayPI","transformLookUpDataObj","transformedLookupArrayPII","getSlopeAndOffset","dataValueArr","transformResponse1","transformLookUpV2","isSamplingData","transformResponse2","requestData","buildAndGetDataFormat1","requestArrData","buildAndGetDataFormat2","calibratedData","currentData","slopeArr","offsetArr","calibratedDataArr","result","linearRegression","roundToDecimalPlaces","calibrationDataData","checkPointPositions","jobID","sensorTypeNumber","transformedLookupArray","subArray","phaseType","calibProfileData","currentPointComponent","AWAIT_FLEXIBILITY","timeoutCounter","current","parseFloat","upperBufferTargetLimit","areNumbersEqual","Error","statusCode","quantity","unitID","checkpointPositionIndex","checkpointPositionArray","checkpointPositionValue","doneSamplingCount","doneCurrentSamplingCount","doneCalibrationDataSamplingCount","trimmedSensorData","updatedSampleArr","lookupValues","batchSensorPosition","calibratedDataValues","updatedCurrArr","finalValue","sampleValue","calibDataValues","calibDataSubArray","numberSeconds","chatBoxP1","chatBoxPII","hardResetModule","phaseISampleLookupData","phaseIISampleCalibrationDataValueData","phaseIISampleCurrentData","isPhaseISampling","isPhaseIISampling","isSamplingCurrentData","isSamplingCalibrationData","sampleDataDump","sampleCurrentDataDump","slopeData","offsetData","errCategory","DOMException","calibrationProfileData","sensorName","channelBoard","strokeBoard","description","cmdArray","cmdArray1","sensorCalibrationData","j","lookupDataArray","cmdArray2","cmdValueArray","cmdValueString","transformedArray","channelID","dataKey","getRandomNumber","randomNumber","random","toFixed","decimalPlaces","roundedValue","round","instrumentID","instrumentType","temperatureValue","displacementValues","displacementValue","finalArr","dataParts","part","sensorTypeCombination","temperatureRaw","isNaN","getDataSetColor","colors","now","Date","year","getFullYear","month","String","getMonth","padStart","day","getDate","hours","getHours","minutes","getMinutes","getSeconds","milliseconds","getMilliseconds","num1","num2","epsilon","formatDateTimeFromInputField","dateTimeString","date","time","n","sumX","reduce","a","b","sumY","sumXY","sum","xi","sumX2","slope","offset","convertDBDateToTableDate","DBDate","calibrationRequestData","requestArr","hasPermission","permissionCodeArray","failedPermissions","Ember","Helper","helper","refAnchor","anchorNumber","result","toString","console","log","currentDate","params","format","formatNumber","params","parseFloat","toFixed","Ember","Helper","helper","textLibrary","key","buildRedWarningNotificationBoard","context","profile_obj","set","analytics","Ember","run","scheduleOnce","masterPopupContent","document","getElementById","innerHTML","mainTitle","createElement","style","marginTop","fontSize","color","fontWeight","textContent","appendChild","defaultTabIndex","length","clippingDataSection","marginLeft","clippingDiscretionSection1","clippingDiscretionSection2","clippingBreakDownExandButton","alignSelf","textDecoration","cursor","clippingBreakdownSection","display","i","clippingEvent","clippingBreakdownRow2","toUpperCase","JSON","stringify","addEventListener","okButtonComponent","onclick","send","applyGraphScaling","zGraphScaling","chartDom","chartInstance","echarts","getInstanceByDom","x","y","z","graphScaling","setOption","xAxis","min","max","yAxis","xAxis3D","yAxis3D","zAxis3D","buildECharts3DBarForBluVibe","data","decorationParameters","init","seriesData","map","yValue","option","tooltip","backgroundColor","textStyle","formatter","params","value","grid3D","boxWidth","boxHeight","boxDepth","viewControl","projection","autoRotate","panSensitivity","rotateSensitivity","zoomSensitivity","damping","alpha","beta","minAlpha","maxAlpha","minBeta","maxBeta","center","distance","minDistance","maxDistance","panMouseButton","rotateMouseButton","zoomMouseButton","type","name","xAxisLabel","yAxisLabel","zAxisLabel","visualMap","Math","inRange","dataZoom","start","end","series","shading","barSize","window","resize","buildECharts2DBarForBluVibe","grid","containLabel","legend","axisTick","alignWithLabel","xDataLabel","barWidth","buildEChartsXFocusYFocusZFocus2DLineForBluVibe","lineData","d","clippingPoints","filter","hasOwnProperty","isXClipping","isYClipping","isZClipping","coord","symbol","symbolSize","itemStyle","xVal","yVal","label","Array","isArray","axisLabel","sampling","smooth","lineStyle","width","markPoint","symbolKeepAspect","buildEChartsXFocusYFocusZFocus3DLineForBluVibe","surfaceData","thickness","yOffset","row","push","flatData","flat","zValues","point","zMin","zMax","show","dimension","dataName","wireframe","buildEChartsXYZFocus3DLineForBluVibe","dataObj","xData","yData","zData","xSeriesData","p","ySeriesData","zSeriesData","getClippingPoints","dataArr","xClippingPoints","yClippingPoints","zClippingPoints","orient","left","top","yDataLabel","zDataLabel","time","axisIdx","accel","seriesName","buildEChartsBluVibeSimulation","pathData","scrubber","console","warn","index","playing","animationFrame","updatePosition","frameIndex","e","parseInt","target","animate","startTime","playbackSpeed","get","isInfPlayback","currentTime","performance","now","elapsedSeconds","frameTime","floor","requestAnimationFrame","playButton","cancelAnimationFrame","sendGETRequest","endpoint","queryParams","Promise","resolve","reject","url","queryString","URLSearchParams","toString","response","fetch","method","headers","Authorization","localStorage","token","status","showPopup","statusText","Error","ok","responseData","json","newData","convertKeysToCamelCase","error","obj","v","Object","fromEntries","entries","key","replace","_","char","sendPOSTRequest","body","sendPOSTRequest2","sendPATCHRequest","sendDELETERequest","get3DAnimationData","pitchRollYawData","log","forEach","pitchRollYawDataObj","pitch","roll","yaw","message","stack","parseDataForEChartsXYZFocus3DLine","xAxisDataKey","yAxisDataKey","dataCollection","parseDataForEChartsXFocusYFocusZFocus2DLine","axisFocus","result","parseDataForEChartsXFocusYFocusZFocus3DLine","parseDataForEChartsXFocusYFocusZFocus2DBar","parseDataForEChartsXFocusYFocusZFocus3DBar","getGraphUnit","category","buildFrequencyEventsOverviewBoard","context","profile_obj","set","responseData","sendGETRequest","profileID","id","responseObj","analytics","Ember","run","scheduleOnce","masterPopupContent","document","getElementById","innerHTML","mainTitle","createElement","style","marginTop","fontSize","textDecoration","fontWeight","textContent","appendChild","row1","marginLeft","row2","display","flexDirection","justifyContent","sensorIDSection","timestampSection","row3","row4","rangeSection","durationSection","sampleSection","triggerSection","table","thead","borderBottom","trColumns","row1HeaderObject","key","label","axisArray","forEach","columnObject","index","thColumn","border","borderWidth","borderColor","textAlign","tbody","i","length","trRows","tdRowData","row5","defaultTabIndex","hasOwnProperty","clippingDataSection","okButtonComponent","onclick","send","buildDeleteWarningBoard","warning1Section","alignSelf","warning2Section","yesButtonComponent","marginRight","sendDELETERequest","window","location","reload","cancelButtonComponent","buildFrequencyEventsEditBoard","data","alignItems","sampleElement","classList","add","inputSampleElement","setAttribute","value","sample","rangeElement","inputRangeElement","range","triggerElement","inputTriggerElement","trigger","saveButtonComponent","tbIDs","objBody","split","parseInt","sendPATCHRequest","err","console","log","message","endpoint","queryParams","url","queryString","URLSearchParams","toString","response","fetch","method","headers","Authorization","localStorage","token","status","showPopup","statusText","json","newData","convertKeysToCamelCase","error","obj","Array","isArray","map","v","Object","fromEntries","entries","replace","_","char","toUpperCase","sendPOSTRequest","body","JSON","stringify","sendPOSTRequest2","freqEventsValidateForRedWarning","params","profileObj","hasOwnProperty","length","Ember","Helper","helper","getArrayElement","params","undefined","index","Ember","Helper","helper","getArrayValue","array","idx","Ember","Helper","helper","getPacksValidationProgression","packProfile","p1Progression","p2Progression","Ember","Helper","helper","getPacksValidationProgression","packProfile","packData","phase1VerdictString","phase2VerdictString","isAllDataProvided1","length","isAllDataProvided","Ember","Helper","helper","ifEmptyStringOrNull","params","undefined","Ember","Helper","helper","ifMeetSubModelRequirement","params","instr","actionType","subModelA","subModelB","includes","Ember","Helper","helper","isGreaterThan","params","Ember","Helper","helper","isInstrumentAnchorsSet","instrumentAnchors","instrumentAnchorsDistances","map","obj","get","indexOf","length","Ember","Helper","helper","isStrokeLengthRequiredAndSet","instrument","type","get","stroke","Ember","Helper","helper","logger","obj","console","log","makeTimestampGlobalFormatAware","params","timestamp","globalDatetimeFormat","standardizedFormat","parsed","moment","convertedTimestamp","format","Ember","Helper","helper","sendGETRequest","endpoint","url","response","fetch","method","headers","Authorization","localStorage","token","responseData","json","error","console","sendPOSTRequest","data","body","JSON","stringify","sendPATCHRequest","sendDELETERequest","refreshMainChartData","context","endpoint","Object","entries","get","forEach","index","key","value","slice","requestData","set","updateChart","resetDataAndSearch","mainDataComp","document","getElementById","dateDataSelectComp","startRangeDateComponent","endRangeDateComponent","isDistinctCheckBoxComp","checked","employeeGroupDataSelectComp","y","x","is_distinct","secondary","date_min","date_max","renderChart","chartContainer","console","error","innerHTML","ctx","getContext","chart","Chart","type","data","labels","datasets","options","responsive","maintainAspectRatio","scales","title","display","text","barPercentage","categoryPercentage","maxBarThickness","beginAtZero","plugins","legend","position","usePointStyle","font","size","family","weight","color","boxWidth","boxHeight","padding","tooltip","enabled","elements","point","radius","buildChartDataSet","dataArray","xParam","colorPalette","xAxisLabel","dataObj","map","entry","push","label","count","backgroundColor","_","length","borderColor","borderWidth","Set","date","sort","groupedData","groupValue","keys","packID","warn","getYAxisScaleMax","chartInstance","yAxisScale","max","log","update","yScaleMax","yAxisMaxComponent","min","Number","parseInt","manageCustomUIDateData","mainDataObj","dateDataObj","employeeDataObj","isDistinctBooleanComp","startDateRng","endDateRng","dateDataSectionComp","style","dateRangeSection","isDistinctCheckbox","target","disableEnableBarChartLengend","isShowLegend","assistiveToolTipLibrary","key","connectionStatusLibrary","code","statusObject","key","value","color","packStatusLibrary","generalStatusLibrary","incomingMessageLibrary","context","rigProfile","get","hasOwnProperty","push","getCurrentDateTime","parsedData","includes","parseMessage2","parseMessage1","updateAnchorBoardLiveViewData","updateAnchorChartLiveViewData","handleSampleValidityPhaseIModule","handleSampleValidityPhaseIIModule","outgoingMessageLibrary","cmd","type","msg","console","log","calibProfile","data","checkpointSpeed","customStatusObj2","set","sendBatchCommands","ws","appendLiveLog","showPopup","send","generalPermissionLibrary","messageArray","mode","seconds","popup","document","getElementById","popupBody","existingStyles","querySelectorAll","forEach","styleElement","remove","animationName","replace","styleSheet","createElement","id","innerHTML","head","appendChild","style","animation","offsetHeight","borderColor","visibility","opacity","message","subtitleSection","fontSize","textAlign","textContent","overflowWrap","fadeOutTimeout","closeButton","cursor","textDecoration","onclick","clearTimeout","setTimeout","fadeOut","setInterval","clearInterval","buildRigActivityNotificationBoard","responseData","sendGETRequest","Ember","run","scheduleOnce","masterPopupContent","calibTableTitle","marginTop","fontWeight","table","thead","borderBottom","trColumns","row1HeaderObject","label","columnObject","index","thColumn","border","borderWidth","tbody","i","length","rigID","activityJSON","trRows","tdRowData","refreshButtonComponent","display","marginRight","okButtonComponent","buildRigNotificationNotificationBoard","popupContentSectionComponent","Object","entries","rigObject","messagesArray","rigLabelSection","paddingLeft","pressTimer","addEventListener","event","messages","rigMessage","reflashPopup","Promise","resolve","xButtonComponent","mainComponent","alignSelf","reflashWarningComponent1","readyButtonComponent","closePopupAndResolve","removeEventListener","enterKeyHandler","abortButtonComponent","backgroundColor","abortResolve","abort","error","unloadLoadPopup","phaseText","timer","timerWarningComponent1","interval","progressBarSection","progressBarFill","progressPercentage","Math","min","width","timerBarSection","class","timerBarBar","className","timerBarValue","timerWarningComponent2","timerWarningComponent3","packValidationConclusion","packID","title","packIDComponent","row1A","flexDirection","alignItems","justifyContent","dataValueUnload","toString","dataValidityUnload","row1B","dataValueLoad","dataValidityLoad","conclusionValidity","row2A","dataValueUnload1","dataValidityUnload1","row2B","dataValueLoad1","dataValidityLoad1","row2C","dataValueLoad2","dataValidityLoad2","row2D","dataValueUnload2","dataValidityUnload2","row2E","overruleUsernameText","tdUsernameElement","classList","add","inputUsernameElement","setAttribute","padding","overrulePasswordText","tdPassowrdElement","inputPasswordElement","row2F","phase2SectionLabel","td","phase2SectionValue","minHeight","target","err","overrruleButtonComponent","overruleResult","overrulePhaseIIConclusion","packProfileDetailBoard","allowPrint","packProfile","packType","packData","reportTitleSection","finalVerdictSection","phase1VerdictString","phase2VerdictString","isAllDataProvided1","isAllDataProvided","finalVerdict1","finalVerdict2","p1VerdictSection","verdictBufferSection","p2VerdictSection","overruledWarningSection","quickDetailTitleSection","row1ASection","marginLeft","validationIDSection","validationIDLabelSection","validationIDValueSection","packIDSection","packIDLabelSection","packIDValueSection","companySection","companyLabelSection","companyValueSection","row1BSection","phase1EmployeeSection","phase1EmployeeLabelSection","phase1EmployeeValueSection","phase1ValidationDateSection","phase1ValidationDateLabelSection","phase1ValidationDateValueSection","row1CSection","phase2EmployeeSection","phase2EmployeeLabelSection","phase2EmployeeValueSection","phase2ValidationDateSection","phase2ValidationDateLabelSection","phase2ValidationDateValueSection","row2ASection","rigTitleSection","rigIDSection","rigIDLabelSection","rigIDValueSection","rigNameSection","rigNameLabelSection","rigNameValueSection","rigIPSection","rigIPLabelSection","rigIPValueSection","row3ASection","packDetailTitleSection","append","packNameSection","packNameLabelSection","packNameValueSection","overruleSection","overruleLabelSection","overruleValueSection","progressionSection","progressionLabelSection","progressionValueSection","p1Progression","p2Progression","row3BSection","activeCoilsCountSection","activeCoilsCountLabelSection","activeCoilsCountValueSection","totalCoilsCountSection","totalCoilsCountLabelSection","totalCoilsCountValueSection","activeCoilsPositionsSection","activeCoilsPositionsLabelSection","activeCoilsPositionsValueSection","unfilledCoilsPositionsSection","unfilledCoilsPositionsLabelSection","unfilledCoilsPositionsValueSection","row3CSection","typeIDSection","typeIDLabelSection","typeIDValueSection","typeSection","typeLabelSection","typeValueSection","row3DSection","limitSection","limitLabelSection","limitValueSection","acceptedLoadVarianceSection","acceptedLoadVarianceLabelSection","acceptedLoadVarianceValueSection","acceptedUnloadVarianceSection","acceptedUnloadVarianceLabelSection","acceptedUnloadVarianceValueSection","row3ESection","phase1LoadSection","phase1LoadLabelSection","phase1LoadValueSection","phase1UnloadSection","phase1UnloadLabelSection","phase1UnloadValueSection","phase2Load2Section","phase2Load2LabelSection","phase2Load2ValueSection","phase2Unload2Section","phase2Unload2LabelSection","phase2Unload2ValueSection","watermark","cssText","top","left","position","phaseITitleSection","row4ASection","row4BSection","row4CSection","row4DSection","phase1UnloadDataSection","phase1UnloadDataLabelSection","phase1UnloadDataValueSection","phase1LoadDataSection","phase1LoadDataLabelSection","phase1LoadDataValueSection","p1ValidityString","phase1LoadValiditySection","phase1LoadValidityLabelSection","phase1LoadValidityValueSection","phase1FinalValiditySection","phase1FinalValidityLabelSection","phase1FinalValidityValueSection","phaseIITitleSection","row5ASection","row5BSection","row5CSection","row5DSection","row5ESection","row5FSection","phase2UnloadData1Section","phase2UnloadData1LabelSection","phase2UnloadData1ValueSection","phase2LoadData1Section","phase2LoadData1LabelSection","phase2LoadData1ValueSection","phase2LoadData2Section","phase2LoadData2LabelSection","phase2LoadData2ValueSection","phase2UnloadData2Section","phase2UnloadData2LabelSection","phase2UnloadData2ValueSection","phase2ValidityString","phase2ValiditySection","phase2ValidityLabelSection","phase2ValidityValueSection","phase2FinalValiditySection","phase2FinalValidityLabelSection","phase2FinalValidityValueSection","phase1MemoLabelSection","phase1MemoValueSection","whiteSpace","phase2MemoLabelSection","phase2MemoValueSection","printButtonComponent","popupContent","overflowX","inlineStyles","printable","scanStyles","showHelpNotificationBoard","rawCodeSubTitleComponent","subsection1Component","subRawCode1","subsubsection1Component","commandMode","subRawCode2","subsubsection2Component","modeSettingComponent","channelsSettingComponent","strokeSettingComponent","idSettingComponent","typeSettingComponent","descriptionSettingComponent","tableToROMSettingComponent","romToTableSettingComponent","exitSettingComponent","subRawCode3","subsubsection3Component","setValueComponent","endpoint","queryParams","url","queryString","URLSearchParams","response","fetch","method","headers","Authorization","localStorage","token","status","statusText","json","newData","convertKeysToCamelCase","obj","Array","isArray","map","v","fromEntries","_","char","toUpperCase","sendPOSTRequest","body","JSON","stringify","sendPOSTRequest2","sendPATCHRequest","sendDELETERequest","resetProfile","resetProfileForm","rigIPComponent","rigNameComponent","rigCategoryComponent","comp1","comp2","comp3","comp4","comp5","comp6","comp7","comp8","comp9","resetDataRigProfile","chatBox","stepperComponent","pointerEvents","pumpComponent","resetDataSelectedPackTypeProfile","destroyAndClearAnchorLiveView","resetDataCompletedPackTypeProfile","chart","Chart","getChart","datasets","tempLabel","dispLabel","currentIndex","labels","maxDataPoints","shift","update","validateAllForms","failedState","neutralState","labelState","passedState","indent","failedObjects","buildValidationPopupContent","element","scrollIntoView","behavior","block","initializeConnection","ip","resetLog","WebSocket","readyState","CONNECTING","onopen","onmessage","trim","onerror","onclose","window","component","webSocketDisconnect","close","websocketReconnect","updateRigActivity","dashboardStatusObj","formSensorData","formRigData","calibrationObj","connectionObj","currentObj","statusObj","targetObj","latestDateTime","userProfile","authenticated","activityLog","newMessage","direction","lines","split","maxNumLines","slice","join","scrollTop","scrollHeight","updateStepperPressureControlPanel","stepperPanelComponent","pumpPanelComponent","typeOfLog","liveChatBox","getPacksValidationPhaseISchematics","packTypeProfile","websocket","phase1Steps","checkpointDelay","softResetPhaseIModule","updatePacksValidationStatusModule","stepIndexValue","emergencyCheckOrThrow","popupResult","delayTimeModule","phaseISampleResultUnload","phaseISampleModule","isCoilsWithinRange","verifyAcceptedRange","postPhaseProceduralModule","name","getPacksValidationPhaseIISchematics","phase2Steps","softResetPhaseIIModule","stepIndexValueID","phaseIISampleResultUnload","phaseIISampleModule","manufacturedPackTypeData","channels","initializeAndCreateAnchorLiveView","reflashResult","selectedPackType","manufacturedPackType","phase1UnloadDataArray","phase1LoadDataArray","phase2UnloadData1Array","phase2LoadData1Array","phase2UnloadData2Array","phase2LoadData2Array","activeCoilsCount","totalCoilsCount","referenceUnfilledCoilsPositions","generalCoilsPositions","referenceUnfilledCoilsIndices","generalCoilsIndices","phase1UnloadMaxRange","phase1UnloadMinRange","phase1LoadMaxRange","phase1LoadMinRange","phase2LoadMaxRange2","phase2LoadMinRange2","phase2UnloadMaxRange2","phase2UnloadMinRange2","indices1","isValid1","coilIndex","indices2","isValid2","isOutOfRange3","some","isOutOfRange4","phase","checkFinalValidity","saveAndSendPhaseIData","newPackID","response2","saveAndPatchPhaseIIData","newPackID2","selectedRigProfile","requestData","buildAndGetDataFormat5","buildAndGetDataFormat1","requestData2","buildAndGetDataFormat4","buildAndGetDataFormat3","buildAndGetDataFormat2","username","password","packProfileData","credentials","btoa","response1","response1Data","statusCode","stepUnloadOrLoad","stepENV","timeoutCounter","Error","sensorData","trimmedSensorData","currentStage","updatedSampleArr","updatePackProgressionBar","unloadCONST","loadCONST","phase1UnloadData","minValue1","buildArrayForValidation","maxValue1","max","spread1","check1","result","phase1LoadData","minValue2","maxValue2","spread2","check2","result2","phase2UnloadData1","minValue3","maxValue3","spread3","result3","phase2LoadData1","minValue4","maxValue4","spread4","result4","phase2UnloadData2","minValue6","maxValue6","spread6","check6","result6","phase2LoadData2","minValue5","maxValue5","spread5","check5","result5","numberSeconds","resetPackProgressionBar","unload","load","final","unload1","load1","load2","unload2","hardResetModule","phase1LoadDataSampleData","phase1UnloadDataSampleData","phase2LoadData1SampleData","phase2UnloadData1SampleData","phase2UnloadData2SampleData","phase2LoadData2SampleData","phase1ValidityData","phase2ValidityData","isPhaseISampling","isPhaseIISampling","errCategory","DOMException","cmdValueArray","cmdValueString","requireTrim","sampledArray","finalArray","indexValue","numberOfSections","buildAnchorLiveViews","datasetArr","getDataSetColor","fill","tension","progressValueText","maxProgress","currentProgress","getRandomNumber","randomNumber","random","toFixed","phase1TestMessage","roundToDecimalPlaces","decimalPlaces","scale","pow","roundedValue","round","temperatureValue","parseFloat","displacementValues","displacementValue","warn","finalArr","colors","now","Date","year","getFullYear","month","String","getMonth","padStart","day","getDate","hours","getHours","minutes","getMinutes","getSeconds","milliseconds","getMilliseconds","areNumbersEqual","num1","num2","epsilon","abs","formatDateTimeFromInputField","dateTimeString","date","time","convertDBDateToTableDate","DBDate","selectedPackData","packsValidationData","Number","parseInt","completedPackProfile","pageTitle","parseint","params","parseInt","pluralize","range","values","start","count","ret","i","push","Ember","Helper","helper","refreshMainChartData","context","endpoint","console","log","get","Object","entries","forEach","index","key","value","slice","requestData","set","updateChart","resetDataAndSearch","mainDataComp","document","getElementById","startRangeDateComponent","endRangeDateComponent","employeeGroupDataSelectComp","y","x","is_distinct","secondary","date_min","date_max","renderChart","chartContainer","error","innerHTML","ctx","getContext","chart","Chart","type","data","labels","datasets","options","responsive","maintainAspectRatio","scales","title","display","text","barPercentage","categoryPercentage","maxBarThickness","beginAtZero","plugins","legend","position","usePointStyle","font","size","family","weight","color","boxWidth","boxHeight","padding","tooltip","enabled","elements","point","radius","buildChartDataSet","dataArray","xParam","colorPalette","xAxisLabel","dataObj","map","entry","push","label","count","backgroundColor","_","length","borderColor","borderWidth","Set","date","sort","groupedData","groupValue","keys","packID","warn","getYAxisScaleMax","chartInstance","yAxisScale","max","update","yScaleMax","yAxisMaxComponent","min","Number","parseInt","manageCustomUIDateData","mainDataObj","dateDataObj","employeeDataObj","isDistinctBooleanComp","startDateRng","endDateRng","dateDataSelectComp","dateDataSectionComp","style","dateRangeSection","isDistinctCheckbox","target","checked","disableEnableBarChartLengend","isShowLegend","singularize","sum","params","reduce","a","b","Ember","Helper","helper","validateDExto","params","key","value","displacementObj","data","tempData","slice","refInstrument","masterInstrument","masterDataArray","channels","currentInstrIndex","i","instr_position_index","instrumenPositionObj","id","instrumentID","Number","subExtoID","length","slaveDataArray","push","Ember","Helper","helper","validateInitialChannels","params","channelString","referenceAnchorObj","console","log","Ember","Helper","helper","name","version","config","APP","initialize","name","initialize","application","arguments","inject","name","initialize","app","arguments","register","ContainerDebugAdapter","inject","name","initialize","setupContainer","name","initialize","registry","config","ENV","rootURL","baseURL","Configuration","load","initialize","application","arguments","config","exportApplicationGlobal","theGlobal","window","global","self","value","globalName","Ember","String","classify","modulePrefix","reopen","willDestroy","_super","apply","name","name","before","initialize","application","arguments","config","torii","disableRedirectInitializer","deferReadiness","RedirectHandler","handle","window","catch","advanceReadiness","name","after","initialize","application","arguments","configuration","sessionServiceName","sessionFactoryName","inject","initializer","name","initialize","application","arguments","config","torii","inject","initialize","Config","load","ENV","name","name","initialize","name","initialize","name","initialize","name","initialize","applicationInstance","configuration","sessionServiceName","router","setupRoutes","routerLib","authenticatedRoutes","hasAuthenticatedRoutes","Ember","isEmpty","off","on","name","initialize","applicationInstance","configuration","key","providers","hasOwnProperty","DS","Model","extend","values","attr","DS","Model","extend","selectedCh","attr","alert","belongsTo","DS","Model","extend","active","attr","inactive","total","alert","DS","Model","extend","isPerm","attr","isActive","isTriggered","isHandled","repeats","repeatWindow","initTriggerStamp","handleStamp","metric","direction","value","severity","response","target","inverted","refAnchor","message","windowType","windowLength","method","creator","creationDate","timeReference","lastStamp","instrument","belongsTo","async","gateway","anchors","hasMany","DS","Model","extend","number","attr","distance","instrument","belongsTo","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","timestamp","attr","defaultValue","location","east","north","depth","comments","isVisible","delay","level","belongsTo","async","project","stope","tonnes","size","blastType","DS","Model","extend","title","attr","blastEvent","hasMany","BluVibeV2DataModel2","async","Model","BluVibev2ProfileModel","async","Model","BluVibeV2DataModel","async","Model","CalibrationCalibrationProfile","Model","CalibrationInstrumentDataModel","Model","CalibrationInstrumentLookupModel","Model","CalibrationInstrumentProfileModel","Model","CalibrationTypeModel","Model","DS","Model","extend","instrument","attr","hasTemp","units","temporalDisplacementName","temporalVelocityName","temporalAccelerationName","temporalStrainName","temporalStrainRateName","temporalLoadName","spatialDisplacementName","spatialVelocityName","spatialAccelerationName","spatialStrainName","spatialStrainRateName","spatialLoadName","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","frequency","attr","values","DS","Model","extend","frequency","attr","values","DS","Model","extend","parentGateway","belongsTo","async","inverse","childGateway","isCurrent","attr","DS","Model","extend","intervalValue","attr","intervalName","intervalGroupName","DS","Model","extend","active","attr","inactive","total","alert","DS","Model","extend","values","attr","DS","Model","extend","title","attr","DS","Model","extend","values","attr","DS","Model","extend","parentGateway","belongsTo","inverse","undefined","async","children","hasMany","name","attr","gatewayType","project","location","depth","level","installDate","installedBy","purpose","notes","alerts","gatewayTypeID","active","gatewayReadInterval","gatewayUploadInterval","gatewayMeshCycleInterval","gatewayTransmissionPowerInterval","currentParent","targetUrl","lteBand","uploadStatus","apn","parentGatewayId","meshID","hasChildren","DS","Model","extend","title","attr","DS","Model","extend","active","attr","inactive","total","alert","DS","Model","extend","title","attr","base_unit","vendor","belongsTo","async","DS","Model","extend","channelsNum","attr","subModel","portsNum","name","zeroTimestamp","location","east","north","depth","azimuth","dip","project","belongsTo","async","level","borehole","installDate","installedBy","purpose","notes","anchorCount","anchors","hasMany","vwproperty","headAt","instrumentType","alerts","instrumentTypeID","instrumentStiffness","instrumentLength","strokeLength","baseLength","headExclusionLength","gaugeLength","referenceAnchor","bulbed","plated","stacked","active","elasticLimitPct","plasticLimitPct","ultimateLimitPct","elasticLimitFce","plasticLimitFce","ultimateLimitFce","youngsModulus","crossSectionalArea","boltDiameter","selectedAnchor","calculatedElasticLimitForce","Ember","computed","elf","axialStiffness","toFixed","console","log","vendor","undefined","stiffness","instrumentPosition1","inverse","instrumentPosition2","instrumentPosition3","instrumentPosition4","instrumentPosition5","DS","Model","extend","isValidKey","attr","startDate","endDate","numInst","softwareVersion","companyName","modules","DS","Model","extend","isValid","attr","withinLimit","companyName","modules","DS","Model","extend","values","attr","LogViewerModel","async","Model","DS","Model","extend","name","attr","type","value","DS","Model","extend","title","attr","symbol","unit","DS","Model","extend","providerName","attr","apiKey","clientId","clientSecret","authorizationBaseUrl","tokenUrl","redirectUri","ValidationPacksProfileModel","Model","DS","Model","extend","title","attr","isRequired","defaultValue","value","valueType","DS","Model","extend","values","attr","DS","Model","extend","values","attr","CalibrationRigModel","Model","DS","Model","extend","values","attr","DS","Model","extend","timestamp","attr","defaultValue","location","east","north","depth","comments","isVisible","momentMagnitude","seismicMoment","sourceRadius","peakParticleVelocity","peakParticleAcceleration","energy","size","seismicType","belongsTo","async","DS","Model","extend","title","attr","seismicEvent","hasMany","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","DS","Model","extend","values","attr","ValidationPacksProfileModel","Model","DS","Model","extend","values","attr","VendorModel","async","Model","DS","Model","extend","timestamp","attr","defaultValue","instrument","ch1","trigger01","frequency01","amplitude01","ppv01","ppa01","duration01","ch2","trigger02","frequency02","amplitude02","ppv02","ppa02","duration02","ch3","trigger03","frequency03","amplitude03","ppv03","ppa03","duration03","ch4","trigger04","frequency04","amplitude04","ppv04","ppa04","duration04","DS","Model","extend","values","attr","DS","Model","extend","modelName","attr","vwproperty","hasMany","async","vwvendor","belongsTo","DS","Model","extend","port","attr","tempChan","serial","calcCoef1","calcCoef2","calcCoef3","calcCoef4","calcCoef5","calcCoef6","calcCoef7","calcCoef8","instrument","belongsTo","async","vwmodel","vendor","modelTypes","DS","Model","extend","vendorName","attr","vwmodel","hasMany","async","Router","config","locationType","rootURL","map","route","path","AuthenticatedRoute","beforeModel","transition","session","requireAuthentication","AlertsRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","afterModel","resolvedModel","pageSize","alerts","query","alertMeta","meta","alertsController","controllerFor","send","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","console","log","getPerms","undefined","get","transitionTo","model","params","_this","Ember","RSVP","Promise","resolve","reject","instrument_isnull","stats","queryRecord","types","store","findAll","gateway_types","then","extend","BlastEventRoute","beforeModel","transition","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","blast","get","findAll","then","BlastsRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","model","params","Ember","RSVP","hash","blastEvents","get","query","blastTypes","findAll","levelLookupList","store","name","projectLookupList","afterModel","resolvedModel","pageSize","eventsMeta","meta","blastEventsController","controllerFor","send","beforeModel","transition","session","requireAuthentication","CreateAlertRoute","extend","queryParams","inst_id","refreshModel","session","router","beforeModel","transition","requireAuthentication","perms","getPerms","undefined","get","transitionTo","data","authenticated","modules","model","params","_this","Ember","RSVP","Promise","resolve","reject","instrument","findRecord","instrumentTypes","store","findAll","then","CreateAlertRoute","extend","queryParams","gw_id","refreshModel","session","router","beforeModel","transition","requireAuthentication","perms","getPerms","undefined","get","transitionTo","data","authenticated","modules","model","params","_this","inst_id","Ember","RSVP","Promise","resolve","reject","gateways","findRecord","gatewayTypes","store","findAll","then","query","small","CreateGatewayRoute","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","undefined","console","log","JSON","stringify","get","transitionTo","afterModel","model","types","gatewayTypes","content","sort","compare","params","_this","Ember","RSVP","Promise","resolve","reject","gateways","store","query","small","findAll","then","a","b","parseInt","id","CreateInstrumentRoute","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","undefined","get","transitionTo","afterModel","model","types","instrumentTypes","content","sort","compare","params","_this","Ember","RSVP","Promise","resolve","reject","instrument","vendors","store","findAll","vwVendors","vwModels","headAts","levelLookupList","query","name","projectLookupList","then","a","b","parseInt","id","CreateLookupRoute","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","undefined","get","transitionTo","afterModel","model","params","_this","lookups","store","findAll","counter","allNamesWithIds","seenNames","Set","forEach","lookup","name","has","add","push","id","uniqueNames","console","log","JSON","stringify","EditAlertRoute","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","undefined","get","transitionTo","model","params","_this","Ember","RSVP","Promise","resolve","reject","instrumentTypes","store","findAll","alert","findRecord","alert_id","reload","then","EditGatewayAlertRoute","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","undefined","get","transitionTo","model","params","_this","Ember","RSVP","Promise","resolve","reject","gatewayTypes","store","findAll","alert","findRecord","alert_id","include","gateway_isnull","reload","then","EditGatewayRoute","parentGateway","refreshModel","beforeModel","transition","session","requireAuthentication","model","params","localStorage","setItem","_this","Ember","RSVP","Promise","resolve","reject","gateways","store","query","small","gateway","get","findRecord","gateway_id","gatewayTypes","findAll","alerts","search","gateway_isnull","gatewayReadingIntervals","then","intervalResult","intervalReadings","filter","interval","intervalGroupName","gatewayUploadIntervals","intervalUploads","gatewayMeshCycleIntervals","gatewayRadioPowerLevelIntervals","EditInstrumentRoute","beforeModel","transition","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","console","log","JSON","stringify","instrument","get","findRecord","instrument_id","globalDatetimeFormatProjectSetting","store","query","then","settings","find","setting","title","instrumentTypes","findAll","vendors","headAts","alerts","vwVendors","vwModels","levelLookupList","name","projectLookupList","globalDatetimeFormat","ForgotPasswordRoute","beforeModel","transition","model","RawDataRoute","page","refreshModel","page_size","advancedStartDate","advancedEndDate","resetController","controller","isExiting","transition","set","beforeModel","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","globalDatetimeFormatProjectSetting","store","query","then","settings","find","setting","title","instrument","get","findRecord","instrument_id","bluvibeV2Profiles","globalDatetimeFormat","setupController","setProperties","content","instrumentId","subModel","project","location","level","borehole","instrumentType","afterModel","resolvedModel","ctrl","controllerFor","RawDataRoute","page","refreshModel","page_size","selectedFreqEventDate","analysis_category","method","resetController","controller","isExiting","transition","set","beforeModel","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","undefined","globalDatetimeFormatProjectSetting","store","query","then","settings","find","setting","title","instrument","get","findRecord","instrument_id","bluvibeV2ModelProfiles","globalDatetimeFormat","profileId","profile_id","setupController","setProperties","content","instrumentId","instrumentType","subModel","afterModel","resolvedModel","ctrl","controllerFor","FrequencyGraphsRoute","extend","model","params","a","get","Ember","RSVP","hash","instrument","queryRecord","instrument_id","setupController","controller","controllerFor","set","activate","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","transitionTo","Ember","Route","extend","queryParams","start_timestamp","refreshModel","end_timestamp","num_points_requested","ref_head_position","ref_anchor","zeroed","raw","flip_signs","event_type","blast_type","seismic_type","frequency","display_records","chart_type","advancedYAxisUnit","advancedStartDate","advancedEndDate","advancedYLeftMax","advancedYLeftMin","advancedYRightMax","advancedYRightMin","advancedXMax","advancedXMin","model","params","_this","page_size","routeParams","paramsFor","instrument_id","seismicEvents","RSVP","Promise","resolve","reject","blastEvents","zoomDataQueryParams","copy","store","query","model_name","then","zoomData","closestZeroTimestamp","meta","zoomDataStartTimestamp","zoomDataEndTimestamp","typeID","substr","length","prevModel","temperatureParams","console","log","instrument","queryRecord","graphs","findAll","afterModel","resolvedModel","frequencyGraphsController","controllerFor","send","get","obj","content","type","toString","forEach","item","id","name","chartName","actions","setDataR","data","setChartR","chart","willTransition","GatewayAlertsRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","afterModel","resolvedModel","gatewayPageSize","gatewayAlerts","query","gatewayAlertMeta","meta","alertsController","controllerFor","send","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","undefined","get","transitionTo","model","params","_this","Ember","RSVP","Promise","resolve","reject","gateway__isnull","types","store","findAll","then","alerts","GatewayRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","actions","refresh","afterModel","resolvedModel","transition","console","log","pageSize","gateway","query","gatewayMeta","meta","gatewayController","controllerFor","session","store","refreshLicence","send","beforeModel","requireAuthentication","window","localStorage","removeItem","model","params","parent_gateway","gatewayStats","Promise","all","queryRecord","error","errors","status","invalidate","IndexRoute","page","refreshModel","page_size","ordering","search","searchTgt","resolvedModel","session","store","refreshLicence","beforeModel","transition","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","alertsParams","queryParams","test","slice","opt","console","log","alerts","get","query","instruments","alertStats","queryRecord","instrumentStats","gateway","gatewayStats","levelLookupList","name","projectLookupList","then","stats","InstrumentsRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","afterModel","resolvedModel","transition","pageSize","instruments","query","instrumentMeta","meta","instrumentsController","controllerFor","session","store","refreshLicence","send","beforeModel","requireAuthentication","model","params","instrumentStats","levelLookupList","projectLookupList","Promise","all","queryRecord","name","error","console","log","errors","status","invalidate","KeysRoute","beforeModel","transition","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","licenceKeys","get","query","then","afterModel","resolvedModel","controllerFor","send","store","refreshLicence","KeysRoute","beforeModel","transition","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","lookups","store","findAll","then","afterModel","resolvedModel","controllerFor","send","refreshLicence","LogViewerRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","startDate","endDate","actions","refresh","afterModel","resolvedModel","transition","pageSize","logViewer","query","logViewerMeta","meta","logViewerController","controllerFor","session","store","refreshLicence","send","beforeModel","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","errorTypeLookups","name","get","logViewerStats","queryRecord","then","LoginRoute","beforeModel","transition","from","session","prohibitAuthentication","model","loginAPI","ENV","API_LOGIN","MyProfileRoute","beforeModel","transition","model","CalibrationRoute","extend","queryParams","actions","refreshModel","refresh","afterModel","resolvedModel","transition","beforeModel","session","requireAuthentication","activate","window","addEventListener","handleBeforeUnload","deactivate","removeEventListener","event","preventDefault","returnValue","model","params","query","page","page_size","calibrationID","searchCalibrationID","jobID","searchJobID","sensorID","searchSensorID","error","isAdapterError","errors","status","console","CalibrationRoute","extend","queryParams","actions","refreshModel","refresh","afterModel","resolvedModel","transition","beforeModel","session","requireAuthentication","activate","window","addEventListener","handleBeforeUnload","deactivate","removeEventListener","event","preventDefault","returnValue","model","params","query","page","page_size","calibrationID","searchCalibrationID","jobID","searchJobID","sensorID","searchSensorID","rigProfileListQuery","store","packTypesListQuery","sensorTypesQuery","rigProfiles","packTypesList","sensorTypeList","all","rigProfileList","packTypeList","error","isAdapterError","errors","status","console","RawDataRoute","page","refreshModel","page_size","paginate_from_zero","port","linear","calib","depth","port_number","advancedYAxisUnit","advancedStartDate","advancedEndDate","advancedYLeftMax","advancedYLeftMin","advancedYRightMax","advancedYRightMin","advancedXMax","advancedXMin","resetController","controller","isExiting","transition","console","log","set","beforeModel","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","instrument","get","findRecord","instrument_id","displacementValuesParams","model_name","originator","JSON","stringify","globalDatetimeFormatProjectSetting","store","query","then","settings","find","setting","title","temperatureValuesParams","displacementValues","temperatureValues","instrumentTypes","findAll","globalDatetimeFormat","afterModel","resolvedModel","rawDataValuesController","controllerFor","send","id","meta","RawDataRoute","page","refreshModel","page_size","profile_id","selectedFreqEventDate","advancedStartDate","advancedEndDate","advancedYAxisUnit","analysis_category","method","resetController","controller","isExiting","transition","set","beforeModel","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","bluvibeV2ProfileData","get","query","instrument","findRecord","instrument_id","bluvibeV2Profile","globalDatetimeFormatProjectSetting","store","then","settings","find","setting","title","data","globalDatetimeFormat","instrumentFreqEventProfiles","instrumentFreqEventData","setupController","setProperties","content","afterModel","resolvedModel","ctrl","controllerFor","send","RawGatewayDataRoute","page","refreshModel","page_size","paginate_from_zero","raw_parent_gateway","beforeModel","transition","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","gateway","get","findRecord","gateway_id","gatewayValuesParams","model_name","console","log","JSON","stringify","gatewayValues","store","query","gatewayTypes","findAll","then","afterModel","resolvedModel","rawDataValuesController","controllerFor","send","id","meta","RegisterRoute","beforeModel","transition","model","ResetPasswordRoute","model","params","token","SeismicEventRoute","beforeModel","transition","session","requireAuthentication","model","params","_this","Ember","RSVP","Promise","resolve","reject","seismic","get","findAll","then","SeismicsRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","model","params","Ember","RSVP","hash","seismicEvents","get","query","seismicTypes","findAll","afterModel","resolvedModel","pageSize","eventsMeta","meta","seismicEventsController","controllerFor","send","beforeModel","transition","session","requireAuthentication","CalibrationRoute","extend","queryParams","actions","refreshModel","refresh","afterModel","resolvedModel","transition","beforeModel","session","requireAuthentication","activate","window","addEventListener","handleBeforeUnload","deactivate","removeEventListener","event","preventDefault","returnValue","model","params","CalibrationRoute","extend","queryParams","actions","refreshModel","refresh","afterModel","resolvedModel","transition","beforeModel","session","requireAuthentication","activate","window","addEventListener","handleBeforeUnload","deactivate","removeEventListener","event","preventDefault","returnValue","model","params","query","page","page_size","calibrationID","searchCalibrationID","jobID","searchJobID","sensorID","searchSensorID","rigProfileList","store","sensorTypesList","calibrationProfileList","rigProfiles","sensorTypes","calibrationProfiles","all","sensorTypeList","error","isAdapterError","errors","status","console","SettingsRoute","extend","model","params","get","query","beforeModel","transition","controllerFor","resetLoading","session","requireAuthentication","FrequencyGraphsRoute","extend","model","params","Ember","RSVP","hash","instrument","get","queryRecord","instrument_id","setupController","controller","controllerFor","set","activate","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","transitionTo","Ember","Route","extend","queryParams","start_timestamp","refreshModel","end_timestamp","num_points_requested","ref_head_position","ref_anchor","zeroed","flip_signs","event_type","blast_type","seismic_type","frequency","frequency_num","events_only","group_time","group_window","progress_timestamps","side","model","params","_this","page_size","routeParams","paramsFor","instrument_id","seismicEvents","RSVP","Promise","resolve","reject","blastEvents","zoomDataQueryParams","copy","store","query","model_name","then","zoomData","closestZeroTimestamp","meta","zoomDataStartTimestamp","zoomDataEndTimestamp","typeID","substr","length","prevModel","zoomDataSecondCall","fullRangeData","get","instrument","queryRecord","graphs","findAll","is_visible","afterModel","resolvedModel","spatialGraphsController","controllerFor","send","mName","iName","obj","type","toString","forEach","item","id","name","lastIndexOf","exception","console","log","spatialDisplacementName","spatialVelocityName","spatialAccelerationName","spatialStrainName","spatialStrainRateName","spatialLoadName","chartName","chartNameL","indexOf","capitalize","chartNameR","actions","setDataR","data","temporalGraphsController","setChartR","chart","willTransition","TemporalGatewayGraphsRoute","extend","model","params","a","get","Ember","RSVP","hash","gateway","queryRecord","gateway_id","setupController","controller","controllerFor","set","activate","perms","session","data","authenticated","modules","beforeModel","transition","requireAuthentication","getPerms","transitionTo","Ember","Route","extend","queryParams","start_timestamp","refreshModel","end_timestamp","num_points_requested","ref_head_position","ref_anchor","zeroed","linear","calib","depth","flip_signs","event_type","blast_type","seismic_type","frequency","chart_parent_gateway","chart_type","window","display_records","tiltMode","tiltZUp","model","params","_this","page_size","routeParams","paramsFor","gateway_id","RSVP","Promise","resolve","reject","zoomDataQueryParams","left_axis_field","right_axis_field","parentGateway","set","store","query","model_name","then","zoomData","closestZeroTimestamp","meta","zoomDataStartTimestamp","zoomDataEndTimestamp","gatewayID","zoomDataSecondCall","temperatureParams","zoomTempData","fullRangeData","raw","gateway","queryRecord","graphs","findAll","afterModel","resolvedModel","temporalGraphsController","controllerFor","send","get","level","obj","type","newObj","forEach","item","id","name","substr","lastIndexOf","exception","chartName","chartNameL","indexOf","chartNameR","actions","setDataR","data","setChartR","chart","willTransition","TemporalGraphsRoute","extend","model","params","a","get","Ember","RSVP","hash","instrument","queryRecord","instrument_id","setupController","controller","controllerFor","set","activate","resetController","isExiting","transition","content","save","e","console","log","perms","session","data","authenticated","modules","beforeModel","requireAuthentication","getPerms","transitionTo","Ember","Route","extend","afterModel","model","transition","_super","arguments","controller","set","instrument","selectedAnchor","queryParams","start_timestamp","refreshModel","end_timestamp","num_points_requested","ref_head_position","ref_anchor","zeroed","linear","calib","depth","flip_signs","event_type","blast_type","seismic_type","frequency","chart_type","window","display_records","port","advancedYAxisUnit","advancedStartDate","advancedEndDate","advancedYLeftMax","advancedYLeftMin","advancedYRightMax","advancedYRightMin","advancedXMax","advancedXMin","tiltMode","tiltZUp","resetController","isExiting","params","_this","page_size","routeParams","paramsFor","instrument_id","seismicEvents","RSVP","Promise","resolve","reject","blastEvents","vibeEvents","zoomDataQueryParams","copy","SINGLE_QUERY","zoomDataSecondCall","fullRangeData","store","query","model_name","then","zoomData","closestZeroTimestamp","meta","zoomDataStartTimestamp","zoomDataEndTimestamp","mName","isVibeGraph","console","log","JSON","stringify","SECOND_QUERY","raw","FULLRANGE_DATA","temperatureParams","zoomTempData","queryRecord","graphs","findAll","is_visible","query_name","vibeEventParams","vibe_id","resolvedModel","temporalGraphsController","controllerFor","send","get","level","obj","type","toString","forEach","item","id","name","substr","lastIndexOf","exception","temporalDisplacementName","undefined","temporalVelocityName","temporalStrainName","temporalStrainRateName","temporalLoadName","chartName","chartNameL","substring","indexOf","capitalize","chartNameR","finalVal","actions","setDataR","data","setChartR","chart","willTransition","VibrationsRoute","extend","queryParams","page","refreshModel","page_size","ordering","search","model","params","Ember","RSVP","hash","vibrationEvents","get","query","afterModel","resolvedModel","pageSize","eventsMeta","meta","vibeEventsController","controllerFor","send","beforeModel","transition","session","requireAuthentication","ApplicationSerializer","JSONAPISerializer","CustomAjaxService","AjaxService","headers","session","data","authenticated","ApiService","fetch","url","options","response","e","status","console","warn","session","invalidate","localStorage","clear","Error","extend","loadConfigurations","url","fetch","then","response","json","data","forEach","providerConfig","providerDetails","redirectUri","redirect_uri","api_key","apiKey","client_id","clientId","authorization_base_url","authorizationBaseURL","token_url","tokenURL","ENV","torii","providers","provider_name","catch","error","console","CookiesService","computedFromConfig","prop","ENV","extend","hasEmberTether","hasLiquidWormhole","hasLiquidTether","destinationElementId","get","Ember","MomentService","extend","defaultFormat","config","OauthConfigService","loadProviderConfig","providerName","url","response","ok","Error","json","SessionService","UserProfileService","constructor","arguments","stored","localStorage","getItem","userProfileService","JSON","parse","e","loadFromServer","serverPayload","console","log","setItem","stringify","updateField","key","value","profile","ApplicationSessionStore","CookieStore","refreshLicence","cookie","restore","url","endsWith","response","fetch","method","headers","localStorage","token","ok","licence","json","data","authenticated","isValid","attributes","limit","modules","persist","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","Ember","HTMLBars","template","DS","Transform","extend","deserialize","serialized","serialize","deserialized","DS","Transform","extend","deserialize","serialized","serialize","deserialized","ObjectTransform","Transform","deserialize","serialized","serialize","deserialized","DS","Transform","extend","deserialize","serialized","serialize","deserialized","isValid","value","undefined","startsWith","getApiConfig","runtime","window","RUNTIME_CONFIG","protocol","API_PROTOCOL","ENV","host","API_URL","port","API_PORT","getApiBaseUrl","getApiBasePort"],"mappings":"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;;AAAA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCC9CG,gC,yEAAN,MAAMA,gCAAN,SAA+C,gBAAUC,MAAV,CAAiB,EAAjB,CAA/C,CACZ;AAAA;AAAA;;AAAA;;AAAA;;AAAA,+CAImB,IAJnB;;AAAA,8CAKiB,IALjB;;AAAA,6CAMgB,IANhB;;AAAA,uCAOU,CAPV;;AAAA,8CAQkB,IARlB;;AAAA,uCAUW;AACNC,QAAAA,YAAY,CAACC,QAAD,EAAW;AACnB,eAAKC,GAAL,CAAS,gBAAT,EAA2BD,QAA3B,EADmB,CAEnB;AACH;;AAJK,OAVX;AAAA;;AAAA,G;;;;;;;;;;;;;;;;;;;;;iBCHYE,oB;;;;ACFf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACRA,WAASC,mBAAT,CAA6BC,KAA7B,EAAoC;AAChC,QAAIC,cAAc,GAAG;AACjB,sBAAgB,EADC;AAEjB,gBAAU,MAFO;AAGjB,mBAAa,IAHI;AAIjB,eAAS,IAJQ;AAKjB,kBAAY,MALK;AAMjB,kBAAY,IANK;AAOjB,gBAAU,EAPO;AAQjB,iBAAW,EARM;AASjB,oBAAc,IATG;AAUjB,sBAAgB,CAVC;AAWjB,gBAAU,KAXO;AAYjB,iBAAW,EAZM;AAajB,mBAAa,KAbI;AAcjB,kBAAY,KAdK;AAejB,sBAAgB,IAfC;AAgBjB,uBAAiB;AAhBA,KAArB;;AAkBAD,IAAAA,KAAK,CAACE,GAAN,CAAU,mBAAV,EAA8B,IAA9B;;AACAF,IAAAA,KAAK,CAACE,GAAN,CAAU,gBAAV,EAA4BD,cAA5B,EApBgC,CAqBhC;;AACH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,IAAI,GAAG;AACH,WAAKC,MAAL,CAAY,GAAGC,SAAf;;AACAT,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACH,KAJiC;;AAKlC;AACA;AACA;AACAU,IAAAA,KAAK,EAAEN,KAAK,CAACO,MAAN,CAAaC,OAAb,EAR2B;AASlCC,IAAAA,OAAO,EAAET,KAAK,CAACO,MAAN,CAAaC,OAAb,EATyB;AAUlCV,IAAAA,cAAc,EAAE,EAVkB;AAWlCY,IAAAA,UAAU,EAAE,qBAXsB;AAYlCC,IAAAA,WAAW,EAAE,IAZqB;AAalCC,IAAAA,cAAc,EAAE,KAbkB;AAclCC,IAAAA,YAAY,EAAE,GAdoB;AAelCC,IAAAA,WAAW,EAAE,QAfqB;AAgBlCC,IAAAA,aAAa,EAAE,EAhBmB;AAkBlCC,IAAAA,MAAM,EAAE,IAlB0B;AAmBlCC,IAAAA,QAAQ,EAAE,IAnBwB;AAoBlCC,IAAAA,OAAO,EAAE,KApByB;AAqBlCC,IAAAA,QAAQ,EAAE,KArBwB;AAsBlCC,IAAAA,iBAAiB,EAAE,IAtBe;AAuBlCC,IAAAA,eAAe,EAAE,IAvBiB;AAyBlCC,IAAAA,cAAc,EAAE,KAzBkB;AA0BlCC,IAAAA,cAAc,EAAE,KA1BkB;AA2BlCC,IAAAA,YAAY,EAAE,KA3BoB;AA4BlCC,IAAAA,oBAAoB,EAAE,KA5BY;AA6BlCC,IAAAA,OAAO,EAAE,KA7ByB;AA8BlCC,IAAAA,UAAU,EAAE,KA9BsB;AA+BlCC,IAAAA,WAAW,EAAE,KA/BqB;AAgClCC,IAAAA,aAAa,EAAE,KAhCmB;AAiClCC,IAAAA,SAAS,EAAE,KAjCuB;AAmClCC,IAAAA,cAAc,EAAE,KAnCkB;AAoClCC,IAAAA,SAAS,EAAE,KApCuB;AAqClCC,IAAAA,WAAW,EAAE,EArCqB;AAsClCC,IAAAA,OAAO,EAAE,EAtCyB;AAuClCC,IAAAA,cAAc,EAAE,EAvCkB;AAyClCC,IAAAA,mBAAmB,EAAE,IAzCa;AA0ClCC,IAAAA,uBAAuB,EAAE,IA1CS;AA4ClCC,IAAAA,kBAAkB,EAAE,UAASL,WAAT,EAAsB;AACtC,YAAMM,KAAK,GAAG,wFAAd;AACA,aAAOA,KAAK,CAACC,IAAN,CAAWP,WAAX,CAAP;AACH,KA/CiC;AAkDlCA,IAAAA,WAAW,EAAEjC,KAAK,CAACyC,QAAN,CAAe,uBAAf,EAAwC,YAAW;AAC5D,UAAIC,MAAM,GAAG,KAAKC,GAAL,CAAS,uBAAT,CAAb;AACA,YAAMC,OAAO,GAAGF,MAAM,CAACG,OAAP,CAAe,GAAf,CAAhB;;AACA,UAAID,OAAO,GAAG,CAAd,EAAiB;AACb,eAAOF,MAAP;AACH,OAL2D,CAM5D;;;AACA,aAAOA,MAAM,CAACI,SAAP,CAAiB,CAAjB,EAAoBF,OAApB,CAAP;AACH,KARY,CAlDqB;AA4DlCG,IAAAA,aAAa,EAAE/C,KAAK,CAACyC,QAAN,CAAe,YAAU;AAEpC,UAAInC,KAAK,GAAG,KAAKqC,GAAL,CAAS,OAAT,CAAZ;AACA,UAAIK,UAAU,GAAG1C,KAAK,CAAC2C,UAAN,CAAiB,YAAjB,EAA+B,KAAKN,GAAL,CAAS,IAAT,CAA/B,CAAjB;AACA,UAAII,aAAa,GAAG,KAAKJ,GAAL,CAAS,gBAAT,EAA2BI,aAA/C,CAJoC,CAMpC;;AAEA,UAAGA,aAAa,IAAI,IAAjB,IAAyBA,aAAa,IAAIG,SAA1C,IAAuDH,aAAa,IAAI,EAA3E,EAA+E,CAC3E;AACH,OAFD,MAEK;AACD,YAAGC,UAAU,CAACG,aAAX,IAA4B,IAA5B,IAAoCH,UAAU,CAACG,aAAX,IAA2BD,SAA/D,IAA4EF,UAAU,CAACG,aAAX,IAA2B,EAA1G,EAA8G;AAC1G;AACA;AACAJ,UAAAA,aAAa,GAAGC,UAAU,CAACG,aAA3B;AACH,SAJD,MAKK;AACDJ,UAAAA,aAAa,GAAG,IAAhB;AACH;AACJ,OAnBmC,CAoBpC;AACA;;;AACA,aAAOA,aAAP;AACH,KAvBc,CA5DmB;AAqFlCK,IAAAA,UAAU,EAAEpD,KAAK,CAACyC,QAAN,CAAe,YAAW;AAClC,aAAO,KAAKE,GAAL,CAAS,cAAT,IAA2B,CAA3B,GAA8B,KAAKA,GAAL,CAAS,cAAT,CAA9B,GAAwD,CAA/D;AACH,KAFW,CArFsB;AAyFlCU,IAAAA,QAAQ,EAAE,eAAS,EAAT,EAAY,YAAW;AAC7B,aAAO,KAAKV,GAAL,CAAS,SAAT,EAAoBW,IAApB,CAAyBC,aAAzB,CAAuC,MAAvC,CAAP;AACH,KAFS,CAzFwB;AA6FlCC,IAAAA,YAAY,EAAE,eAAS,IAAT,EAAe,YAAW;AACpC,UAAIC,EAAE,GAAG,KAAKd,GAAL,CAAS,IAAT,CAAT,CADoC,CAEpC;;AACA,UAAIe,GAAG,GAAID,EAAE,CAACE,MAAH,KAAc,CAAd,GAAkB,CAAlB,GAAsB,CAAjC;AACA,UAAIC,KAAK,GAAGH,EAAE,CAACX,SAAH,CAAa,CAAb,EAAeY,GAAf,CAAZ;AACA,aAAOE,KAAP;AACH,KANa,CA7FoB;AAqGlCC,IAAAA,eAAe,EAAE,eAAS,uBAAT,EAAkC,YAAW;AAC1D,UAAIC,MAAM,GAAG,KAAKnB,GAAL,CAAS,uBAAT,CAAb;;AACA,UAAGmB,MAAM,KAAK,MAAd,EAAsB;AAClB,aAAK/D,GAAL,CAAS,uBAAT,EAAkC,KAAlC;AACA,aAAKA,GAAL,CAAS,0BAAT,EAAqC,KAArC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACH;;AAED,UAAG+D,MAAM,KAAK,UAAd,EAAyB;AACrB;AACA,aAAK/D,GAAL,CAAS,qBAAT,EAAgC,KAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACH;;AAED,UAAG+D,MAAM,KAAK,MAAd,EAAqB;AACjB;AACA,aAAK/D,GAAL,CAAS,qBAAT,EAAgC,IAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,IAApC;AACH;AACJ,KAnBgB,CArGiB;AA0HlCgE,IAAAA,eAAe,EAAE,eAAS,uBAAT,EAAkC,YAAW;AAC1D,UAAIC,MAAM,GAAG,KAAKrB,GAAL,CAAS,uBAAT,CAAb;;AACA,UAAGqB,MAAM,KAAK,KAAd,EAAqB;AACjB,aAAKjE,GAAL,CAAS,6BAAT,EAAwC,CAAxC;AACA,aAAKA,GAAL,CAAS,2BAAT,EAAsC,IAAtC;AACH;AACJ,KANgB,CA1HiB;AAkIlCkE,IAAAA,iBAAiB,EAAE,eAAS,yBAAT,EAAoC,YAAW;AAC9D,UAAIC,QAAQ,GAAG,KAAKvB,GAAL,CAAS,yBAAT,CAAf;;AACA,UAAGuB,QAAQ,IAAI,IAAf,EAAqB;AACjB,aAAKnE,GAAL,CAAS,uBAAT,EAAkC,EAAlC;AACH;AACJ,KALkB,CAlIe;AAyIlCoE,IAAAA,OAAO,EAAE;AACLC,MAAAA,wBAAwB,CAACC,KAAD,EAAQ;AAC5B,aAAKlC,cAAL,GAAsB,EAAtB;AACA,cAAMmC,eAAe,GAAGC,KAAK,CAACC,IAAN,CAAWH,KAAK,CAAC3B,MAAN,CAAa4B,eAAxB,CAAxB;AACA,cAAMG,cAAc,GAAGH,eAAe,CAACI,GAAhB,CAAoBC,MAAM,IAAIA,MAAM,CAACC,KAArC,CAAvB;AACA,aAAKzC,cAAL,GAAsBsC,cAAtB;AACH,OANI;;AAOLI,MAAAA,YAAY,CAACC,MAAD,EAAS;AACjB,aAAK/E,GAAL,CAAS+E,MAAM,CAAC,CAAD,CAAf,EAAmBA,MAAM,CAAC,CAAD,CAAzB;AACH,OATI;;AAULC,MAAAA,aAAa,GAAG;AACZ,aAAKhF,GAAL,CAAS,QAAT,EAAkBiF,QAAQ,CAACC,cAAT,CAAwB,uBAAxB,EAAiDC,OAAnE;AACH,OAZI;;AAaL;AACA;AACA;AACAC,MAAAA,aAAa,GAAG;AACZ,aAAKpF,GAAL,CAAS,SAAT,EAAmBiF,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,EAA0CC,OAA7D;AACH,OAlBI;;AAmBLE,MAAAA,aAAa,GAAG;AACZ,aAAKrF,GAAL,CAAS,UAAT,EAAoBiF,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,EAA0CC,OAA9D;AACH,OArBI;;AAuBLG,MAAAA,WAAW,CAACP,MAAD,EAAQ;AACf,YAAIjF,KAAK,GAAG,IAAZ;AAAA,YACIS,KAAK,GAAG,KAAKqC,GAAL,CAAS,OAAT,CADZ;AAAA,YAEI7C,cAAc,GAAG,KAAK6C,GAAL,CAAS,gBAAT,CAFrB,CADe,CAMf;AAEA;AACA;AACA;AACA;;;AAEA,aAAK5C,GAAL,CAAS,gBAAT,EAA0B,KAA1B;AACA,aAAKA,GAAL,CAAS,YAAT,EAAsB,KAAtB;AAEA,YAAIuF,KAAK,GAAG,KAAZ;AAEA,YAAIvC,aAAa,GAAG,KAAKJ,GAAL,CAAS,eAAT,CAApB;AACA,cAAM4C,eAAe,GAAG,CAAC,IAAD,EAAMrC,SAAN,EAAgB,EAAhB,CAAxB,CAnBe,CAoBf;;AACA,YAAKqC,eAAe,CAACC,QAAhB,CAAyBzC,aAAzB,CAAL,EAA8C;AAC1C;AACAjD,UAAAA,cAAc,CAACiD,aAAf,GAA+B,IAA/B;AACAA,UAAAA,aAAa,GAAG,IAAhB;AACH,SAJD,MAKK;AACD;AACA;AACAjD,UAAAA,cAAc,CAACiD,aAAf,GAA+BA,aAA/B,CAHC,CAID;AACH;;AAED,YAAG,CAACuC,KAAJ,EAAW;AACPxF,UAAAA,cAAc,CAAC2F,WAAf,GAA6B,KAA7B;AACA3F,UAAAA,cAAc,CAAC4F,SAAf,GAA2B,KAA3B;AACA5F,UAAAA,cAAc,CAAC6F,gBAAf,GAAkC,IAAlC;AACA7F,UAAAA,cAAc,CAAC8F,WAAf,GAA6B,IAA7B;AACA5F,UAAAA,KAAK,CAACD,GAAN,CAAUD,cAAV,EAA0B,cAA1B,EAA0C,uBAAS+F,MAAT,CAAgB,qBAAhB,CAA1C,EALO,CAMP;;AACA/F,UAAAA,cAAc,CAACgG,OAAf,GAAyB,KAAKzC,QAA9B;AACAvD,UAAAA,cAAc,CAACkB,MAAf,GAAwBnB,KAAK,CAAC8C,GAAN,CAAU,QAAV,CAAxB;AACA7C,UAAAA,cAAc,CAACmB,QAAf,GAA0BpB,KAAK,CAAC8C,GAAN,CAAU,UAAV,CAA1B;AACA7C,UAAAA,cAAc,CAACoB,OAAf,GAAyBrB,KAAK,CAAC8C,GAAN,CAAU,SAAV,CAAzB;AACA7C,UAAAA,cAAc,CAACqB,QAAf,GAA0BtB,KAAK,CAAC8C,GAAN,CAAU,UAAV,CAA1B;AACA7C,UAAAA,cAAc,CAACkD,UAAf,GAA4B1C,KAAK,CAAC2C,UAAN,CAAiB,YAAjB,EAA+B,KAAKN,GAAL,CAAS,IAAT,CAA/B,CAA5B;;AAEA,cAAI7C,cAAc,CAACkD,UAAf,KAA8B,IAAlC,EACA;AACI,gBAAI+C,QAAQ,GAAG,IAAf;;AAEA,gBAAG,CAACT,KAAJ,EAAW;AACP,kBAAI;AACAS,gBAAAA,QAAQ,GAAGzF,KAAK,CAAC0F,YAAN,CAAmB,OAAnB,EAA4BlG,cAA5B,CAAX;AACH,eAFD,CAEE,OAAOmG,GAAP,EAAY;AACV,qBAAKlG,GAAL,CAAS,gBAAT,EAA0B,IAA1B;AACH;AACJ;;AAED,gBAAG,CAACuF,KAAJ,EAAW;AAEP,kBAAIY,GAAG,GAAG,KAAV;AAEA,kBAAIC,gBAAgB,GAAG,KAAKxD,GAAL,CAAS,sBAAT,CAAvB;AAEA,kBAAIyD,QAAQ,GAAG,KAAKzD,GAAL,CAAS,yBAAT,CAAf;AACA,kBAAI0D,OAAO,GAAC,EAAZ,CAPO,CASP;;AACA,kBAAIzB,KAAK,GAAG,KAAKjC,GAAL,CAAS,sBAAT,CAAZ;AACA,kBAAI2D,EAAE,GAAG,KAAK3D,GAAL,CAAS,wBAAT,CAAT;AACA,kBAAI4D,EAAE,GAAG,KAAK5D,GAAL,CAAS,6BAAT,CAAT;AACA,kBAAID,MAAM,GAAG,KAAKC,GAAL,CAAS,uBAAT,CAAb;AACA,kBAAI6D,GAAG,GAAGxB,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuCwB,aAAjD;AAEA,mBAAKC,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,cAAd,EAA6B,KAA7B;AACA,mBAAKA,QAAL,CAAc,sBAAd,EAAqC,KAArC;AACA,mBAAKA,QAAL,CAAc,SAAd,EAAwB,KAAxB;AACA,mBAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AACA,mBAAKA,QAAL,CAAc,aAAd,EAA4B,KAA5B;AACA,mBAAKA,QAAL,CAAc,eAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAxBO,CA2BP;AAEA;;AACA,kBAAKR,GAAG,CAACvC,MAAJ,IAAc,CAAf,IAAsB2C,EAAE,CAAC3C,MAAH,IAAa,CAAnC,IAA0C4C,EAAE,CAAC5C,MAAH,IAAa,CAAvD,IAA8DiB,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACjB,MAAN,IAAgB,CAAnG,EAAuG;AACnG,qBAAK+C,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EAFmG,CAGnG;AAEJ;AACC,eAND,MAMO,IAAKF,GAAG,IAAI,CAAC,CAAT,IAAgB,KAAK7D,GAAL,CAAS,uBAAT,KAAqC,MAAzD,EAAkE;AACrE,qBAAK+D,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,cAAd,EAA6B,IAA7B,EAFqE,CAGrE;AAEJ;AACC,eANM,MAMD,IAAIC,KAAK,CAACR,gBAAD,CAAT,EAA4B;AAC9B,qBAAKO,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,sBAAd,EAAqC,IAArC,EAF8B,CAG9B;AAEJ;AACC,eANK,MAMC,IAAK,KAAK/D,GAAL,CAAS,uBAAT,KAAqC,KAAtC,IAAiD4D,EAAE,IAAI,CAAvD,IAA+D,KAAK5D,GAAL,CAAS,2BAAT,KAAyC,IAA5G,EAAmH;AACtH,qBAAK+D,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,SAAd,EAAwB,IAAxB,EAFsH,CAGtH;AAEH,eALM,MAKA,IAAIH,EAAE,GAAG,CAAT,EAAY;AACf,qBAAKG,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,YAAd,EAA2B,IAA3B,EAFe,CAGf;AAEH,eALM,MAKA,IAAIN,QAAQ,IAAE,MAAd,EAAsB;AACzBpB,gBAAAA,QAAQ,CAACC,cAAT,CAAwB,sBAAxB,EAAgDL,KAAhD,GAAwD,EAAxD,CADyB,CAEzB;AAGH,eALM,MAKA,IAAG,CAAC,OAAOlC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,KAAK,EAA7C,KAAqD0D,QAAQ,IAAI,IAApE,EAA2E;AAE9E,oBAAIA,QAAQ,IAAI,OAAhB,EAAyB;AACrBC,kBAAAA,OAAO,GAAG,eAAV;AACH,iBAFD,MAEO,IAAID,QAAQ,IAAI,KAAhB,EAAuB;AAC1BC,kBAAAA,OAAO,GAAG,cAAV;AACH,iBAFM,MAEA,IAAID,QAAQ,IAAI,MAAhB,EAAwB;AAC3BC,kBAAAA,OAAO,GAAG,YAAV;AACH;;AAED,qBAAKK,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,aAAd,EAA4B,IAA5B,EAX8E,CAY9E;AAEH,eAdM,MAcA,IAAK,CAAEhE,MAAM,CAAC8C,QAAP,CAAgB,GAAhB,CAAH,IAA4BY,QAAQ,IAAE,KAA1C,EAAkD;AACrD,qBAAKM,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B,EAFqD,CAGrD;AAEH,eALM,MAKA;AACHX,gBAAAA,QAAQ,CAACa,IAAT,GAAgBC,IAAhB,CAAqB,UAASC,OAAT,EAAiB;AAClCZ,kBAAAA,GAAG,GAAG,IAAN,CADkC,CAElC;;AACA,sBAAIa,eAAe,GAAG,IAAtB;AACA,sBAAIC,SAAS,GAAG,IAAhB,CAJkC,CAKlC;AACA;AACA;;AACAnH,kBAAAA,KAAK,CAACsC,cAAN,CAAqB8E,OAArB,CAA6BrC,KAAK,IAAI;AAClC;AACAmC,oBAAAA,eAAe,GAAG,EAAlB;AACAA,oBAAAA,eAAe,CAACG,KAAhB,GAAwBJ,OAAxB;AACAC,oBAAAA,eAAe,CAACI,UAAhB,GAA6BvC,KAA7B;AAEAoC,oBAAAA,SAAS,GAAG1G,KAAK,CAAC0F,YAAN,CAAmB,cAAnB,EAAmCe,eAAnC,CAAZ;AACAC,oBAAAA,SAAS,CAACJ,IAAV,GAAiBQ,KAAjB,CAAuB,UAASC,MAAT,EAAiB;AACpC,0BAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChC1H,wBAAAA,KAAK,CAAC6G,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACA7G,wBAAAA,KAAK,CAAC6G,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH;AACJ,qBALD;AAMH,mBAbD,EARkC,CAsBlC;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;AAEA,sBAAGI,OAAO,CAACrD,EAAR,IAAc,IAAjB,EAAuB;AACnB5D,oBAAAA,KAAK,CAAC8C,GAAN,CAAU,QAAV,EAAoBmE,OAAO,CAACrD,EAA5B;AACH,mBAFD,MAEO;AACH,yBAAKiD,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACApB,oBAAAA,KAAK,GAAG,IAAR;AACH,mBArCiC,CAsClC;;AACH,iBAvCD,EAuCG8B,KAvCH,CAuCS,UAASC,MAAT,EAAiB;AACtB,sBAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChC1H,oBAAAA,KAAK,CAAC6G,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACA7G,oBAAAA,KAAK,CAAC6G,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH;AAEJ,iBA7CD,EADG,CA+CH;AACA;AACA;AACA;AACH;AACJ;AACJ;AACJ;AACJ,OA3NI;;AA4NLc,MAAAA,WAAW,GAAG;AACV,YAAG,KAAKlF,kBAAL,CAAwB,KAAKL,WAA7B,CAAH,EAA8C;AAC1C,eAAKyE,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,KAA9B,EAF0C,CAG1C;AACA;;AACA,eAAKe,cAAL,CAAoB,WAApB,EAL0C,CAM1C;;AACA,iBAAO,IAAP;AACH,SARD,MAQO;AACHP,UAAAA,KAAK,CAAC,kFAAD,CAAL;AACA,eAAKR,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B;AACA,iBAAO,KAAP;AACH;AACJ,OA3OI;;AA6OLgB,MAAAA,eAAe,CAACC,aAAD,EAAgB;AAC3B;AACA,aAAK5H,GAAL,CAAS,cAAT,EAAyB4H,aAAzB;AACH;;AAhPI;AAzIyB,GAAvB,C;;;;;;;;;;;;;;;ACzBf,WAASC,wBAAT,CAAkCC,KAAlC,EAAyC;AACrC;AACAA,IAAAA,KAAK,CAACC,GAAN,CAAU,qBAAV,EAAiC;AAACC,MAAAA,mBAAmB,EAAC,CAArB;AAAwBC,MAAAA,eAAe,EAAC,GAAxC;AAA6CC,MAAAA,gBAAgB,EAAC,CAA9D;AAAiEC,MAAAA,eAAe,EAAC,GAAjF;AAAsFC,MAAAA,gBAAgB,EAAC;AAAvG,KAAjC,EAFqC,CAIrC;;;AACAN,IAAAA,KAAK,CAACC,GAAN,CAAU,eAAV,EAA2B,IAA3B;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,aAAV,EAAyB,IAAzB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,qBAAV,EAPqC,CAQrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACH;;AAEc,QAAMM,oBAAN,yBAA6C;AAAA;AAAA;;AAAA,+CAUtC,IAVsC;;AAAA,mDAWlC,EAXkC;;AAAA,sCAY/C,KAZ+C;;AAAA,6CAaxC,IAbwC;;AAAA,2CAc1C,IAd0C;;AAAA,yCAe5C,KAf4C;;AAAA,uCAgB9C,IAhB8C;;AAAA,qCAiBhD,IAjBgD;;AAAA,uCAmB/C;AAGLC,QAAAA,UAAU,CAACC,KAAD,EAAQ;AACd,gBAAMC,UAAU,GAAGD,KAAnB,CADc,CAGd;;AACA,gBAAME,WAAW,GAAG,KAAKC,iBAAL,CAAuBC,IAAvB,CAA6BC,MAAD,IAAY;AAC1D,mBAAOA,MAAM,CAACC,EAAP,KAAcL,UAArB;AACD,WAFmB,CAApB;;AAIA,cAAIC,WAAJ,EAAiB;AACf;AACA,iBAAKV,GAAL,CAAS,SAAT,EAAoBU,WAApB;AACD;AACJ,SAfI;;AAiBLK,QAAAA,QAAQ,CAACP,KAAD,EAAQ;AACZ,gBAAMC,UAAU,GAAGD,KAAnB,CADY,CAGZ;;AACA,gBAAME,WAAW,GAAG,KAAKM,eAAL,CAAqBJ,IAArB,CAA2BC,MAAD,IAAY;AACxD,mBAAOA,MAAM,CAACC,EAAP,KAAcL,UAArB;AACD,WAFmB,CAApB;;AAIA,cAAIC,WAAJ,EAAiB;AACf;AACA,iBAAKV,GAAL,CAAS,OAAT,EAAkBU,WAAlB;AACD;AACJ,SA7BI;;AA+BLO,QAAAA,gBAAgB,CAACC,MAAD,EAAQ;AAEpB;AACA;AAEA,cAAInB,KAAK,GAAG,IAAZ;AAAA,cACAoB,KAAK,GAAG,KAAKC,GAAL,CAAS,OAAT,CADR;AAAA,cAEAC,mBAAmB,GAAG,KAAKD,GAAL,CAAS,qBAAT,CAFtB;;AAIA,eAAKE,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AAEA,cAAIC,KAAK,GAAG,KAAZ;AAEAF,UAAAA,mBAAmB,CAACP,EAApB,GAAyB,KAAKM,GAAL,CAAS,IAAT,CAAzB;AACAC,UAAAA,mBAAmB,CAACG,aAApB,GAAoC,KAAKJ,GAAL,CAAS,eAAT,CAApC;AACAC,UAAAA,mBAAmB,CAACI,WAApB,GAAkC,KAAKL,GAAL,CAAS,aAAT,CAAlC,CAjBoB,CAkBpB;AACA;AACA;;AACAC,UAAAA,mBAAmB,CAACK,cAApB,GAAqCP,KAAK,CAACQ,UAAN,CAAiB,iBAAjB,EAAoC,KAAKP,GAAL,CAAS,QAAT,CAApC,CAArC;AACAC,UAAAA,mBAAmB,CAACO,MAApB,GAA6BT,KAAK,CAACQ,UAAN,CAAiB,SAAjB,EAA4B,KAAKP,GAAL,CAAS,QAAT,CAA5B,CAA7B;AACAC,UAAAA,mBAAmB,CAACQ,MAApB,GAA6B,KAAKT,GAAL,CAAS,QAAT,CAA7B;AACAC,UAAAA,mBAAmB,CAACS,MAApB,GAA6B,KAAKV,GAAL,CAAS,QAAT,CAA7B,CAxBoB,CAyBpB;;AACAC,UAAAA,mBAAmB,CAACU,MAApB,GAA6B,IAA7B;;AACA,cAAI;AACAV,YAAAA,mBAAmB,CAACpB,mBAApB,GAA0CoB,mBAAmB,CAACjB,eAApB,GAAsCiB,mBAAmB,CAACnB,eAApG;AACH,WAFD,CAEE,OAAO8B,EAAP,EAAW;AACTX,YAAAA,mBAAmB,CAACpB,mBAApB,GAA0C,CAA1C;AACH;;AAED,cAAG,OAAOoB,mBAAmB,CAACP,EAA3B,KAAkC,WAAlC,IAAiDO,mBAAmB,CAACP,EAApB,KAA2B,EAA/E,EAAmF;AAC/ES,YAAAA,KAAK,GAAG,IAAR;AACA,iBAAKD,QAAL,CAAc,YAAd,EAA2B,IAA3B;AACA,iBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACH;;AAED,cAAG,CAACC,KAAJ,EAAW;AACP,gBAAG,OAAOF,mBAAmB,CAACY,YAA3B,KAA4C,WAA5C,IAA2DZ,mBAAmB,CAACY,YAApB,KAAqC,CAAnG,EAAsG;AAClGV,cAAAA,KAAK,GAAG,IAAR;AACA,mBAAKD,QAAL,CAAc,YAAd,EAA2B,IAA3B;AACA,mBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACH;AACJ;;AAED,cAAI,KAAKF,GAAL,CAAS,eAAT,KAA6B,IAAjC,EAAuC;AACnCC,YAAAA,mBAAmB,CAACG,aAApB,GAAoCU,MAAM,CAAC,KAAKd,GAAL,CAAS,eAAT,CAAD,EAA2B,qBAA3B,CAAN,CAAwDe,MAAxD,CAA+D,qBAA/D,CAApC;AACH;;AAED,cAAI,KAAKf,GAAL,CAAS,aAAT,KAA2B,IAA/B,EAAqC;AACjCC,YAAAA,mBAAmB,CAACI,WAApB,GAAkCS,MAAM,CAAC,KAAKd,GAAL,CAAS,aAAT,CAAD,EAAyB,qBAAzB,CAAN,CAAsDe,MAAtD,CAA6D,qBAA7D,CAAlC;AACH,WArDmB,CAuDpB;;;AAEA,cAAIC,aAAa,GAAG,IAApB;AACA,cAAIC,GAAG,GAAG,KAAV;;AACA,cAAG,CAACd,KAAJ,EAAW;AACP,gBAAI;AACAa,cAAAA,aAAa,GAAGjB,KAAK,CAACmB,YAAN,CAAmB,YAAnB,EAAiCjB,mBAAjC,CAAhB;AACH,aAFD,CAEE,OAAOkB,GAAP,EAAY;AACV,mBAAKjB,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EADU,CAEV;;AACA,kBAAGiB,GAAG,CAACC,OAAJ,CAAYC,QAAZ,CAAqB,uBAArB,CAAH,EAAkD;AAC9C;AACA,qBAAKnB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AAEAC,gBAAAA,KAAK,GAAG,IAAR;AACAc,gBAAAA,GAAG,GAAG,IAAN;AACH,eATS,CAUV;;AACH;AACJ;;AAED,eAAKf,QAAL,CAAc,WAAd,EAA2B,KAA3B;;AAEA,cAAI,CAACC,KAAL,EAAY;AAEJa,YAAAA,aAAa,CAACM,IAAd,GAAqBC,IAArB,CAA0B,UAASC,OAAT,EAAiB;AACvC;AACA,kBAAGA,OAAO,CAAC9B,EAAR,IAAc,IAAjB,EAAuB;AACnBf,gBAAAA,KAAK,CAACqB,GAAN,CAAU,QAAV,EAAoBwB,OAAO,CAAC9B,EAA5B;AACH,eAFD,MAEO;AACH,qBAAKQ,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACAC,gBAAAA,KAAK,GAAG,IAAR;AACH;AACJ,aARD,EAQGsB,KARH,CAQS,UAASC,MAAT,EAAiB;AAEtB/C,cAAAA,KAAK,CAACuB,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACAvB,cAAAA,KAAK,CAACuB,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH,aAZD;AAaP;AACJ,SA7HI;;AA8HLyB,QAAAA,WAAW,CAAC7B,MAAD,EACX;AACI,eAAKlB,GAAL,CAAS,QAAT,EAAkBgD,QAAQ,CAACC,cAAT,CAAwB,2BAAxB,EAAqDC,OAAvE;AACH,SAjII;;AAkILC,QAAAA,YAAY,CAACjC,MAAD,EACZ;AACI,eAAKlB,GAAL,CAAS,QAAT,EAAkBgD,QAAQ,CAACC,cAAT,CAAwB,2BAAxB,EAAqDC,OAAvE;AACH;;AArII,OAnB+C;AAAA;;AACxD;AACA;AAGAE,IAAAA,IAAI,GAAG;AACH,YAAMA,IAAN,CAAW,GAAGC,SAAd;AACAvD,MAAAA,wBAAwB,CAAC,IAAD,CAAxB;AACH;;AARuD;;;;;;;;;;;;;AC3B5D,WAASwD,0BAAT,CAAoCC,KAApC,EAA2C;AACvC,QAAIC,6BAA6B,GAAGD,KAAK,CAACE,GAAN,CAAU,+BAAV,CAApC,CADuC,CAGvC;;;AACAF,IAAAA,KAAK,CAACG,GAAN,CAAU,mBAAV,EAA+B,uBAASC,MAAT,CAAgBJ,KAAK,CAACE,GAAN,CAAU,YAAV,CAAhB,CAA/B;;AACAF,IAAAA,KAAK,CAACG,GAAN,CAAU,wBAAV,EAAoC,CAApC;;AACAE,IAAAA,MAAM,CAACC,IAAP,CAAYL,6BAAZ,EAA2CM,OAA3C,CAAmD,UAASC,GAAT,EAAaC,KAAb,EAAoB;AACnER,MAAAA,6BAA6B,CAACO,GAAD,CAA7B,GAAqC,CAArC;AACH,KAFD;AAGH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,MAAM,EAAEN,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF0B;AAGlCE,IAAAA,sBAAsB,EAAE,IAHU;AAIlCC,IAAAA,UAAU,EAAE,qBAJsB;AAKlCC,IAAAA,cAAc,EAAE,IALkB;AAKZ;AACtBC,IAAAA,sBAAsB,EAAE,CANU;AAOlCC,IAAAA,iBAAiB,EAAE,IAPe;AAQlC;AACA;AACA;AAEAC,IAAAA,2BAA2B,EAAEZ,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AACxE,aAAO;AACHC,QAAAA,EAAE,EAAE,KAAKtB,GAAL,CAAS,mBAAT;AADD,OAAP;AAGH,KAJ4B,CAZK;AAkBlCuB,IAAAA,0BAA0B,EAAEf,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AACvE,aAAO;AACHC,QAAAA,EAAE,EAAE,KAAKtB,GAAL,CAAS,mBAAT;AADD,OAAP;AAGH,KAJ2B,CAlBM;AAyBlC;AACAwB,IAAAA,kCAAkC,EAAEhB,KAAK,CAACiB,QAAN,CAAe,wBAAf,EAAyC,YAAU;AACnF,UAAK,KAAKzB,GAAL,CAAS,wBAAT,CAAL,EAA0C;AACtCH,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;AACJ,KAJmC,CA1BF;AAgClCE,IAAAA,6BAA6B,EAAES,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AAC1E,UAAItB,6BAA6B,GAAG,EAApC;;AACA,WAAK,IAAI2B,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,KAAK1B,GAAL,CAAS,mBAAT,EAA8B2B,MAA9B,GAAuC,CAA5D,EAA+DD,CAAC,EAAhE,EAAoE;AAChE3B,QAAAA,6BAA6B,CAAC2B,CAAD,CAA7B,GAAmC,CAAnC;AACH;;AACD,aAAO3B,6BAAP;AACH,KAN8B,CAhCG;AAwClC6B,IAAAA,gCAAgC,EAAEpB,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AAC7E,UAAItB,6BAA6B,GAAG,EAApC;;AACA,WAAK,IAAI2B,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,KAAK1B,GAAL,CAAS,mBAAT,EAA8B2B,MAA9B,GAAuC,CAA5D,EAA+DD,CAAC,EAAhE,EAAoE;AAChE3B,QAAAA,6BAA6B,CAAC2B,CAAD,CAA7B,GAAmC,CAAnC;AACH;;AACD,aAAO3B,6BAAP;AACH,KANiC,CAxCA;AAgDlC8B,IAAAA,OAAO,EAAE;AACLC,MAAAA,OAAO,GAAE;AACL;AACA,YAAIhC,KAAK,GAAG,IAAZ;AAAA,YACIa,KAAK,GAAG,KAAKX,GAAL,CAAS,OAAT,CADZ;AAAA,YAEIoB,2BAA2B,GAAG,KAAKpB,GAAL,CAAS,6BAAT,CAFlC;AAAA,YAGIuB,0BAA0B,GAAG,KAAKvB,GAAL,CAAS,4BAAT,CAHjC;AAAA,YAII+B,kBAAkB,GAAG,KAAK/B,GAAL,CAAS,oBAAT,CAJzB;AAAA,YAKIgC,iBAAiB,GAAG,KAAKhC,GAAL,CAAS,mBAAT,CALxB;;AAQAuB,QAAAA,0BAA0B,CAACD,EAA3B,GAAgC,qBAAO,KAAKtB,GAAL,CAAS,mBAAT,CAAP,EAAqC,qBAArC,EAA4DE,MAA5D,CAAmE,qBAAnE,CAAhC;AACAqB,QAAAA,0BAA0B,CAACU,MAA3B,GAAoC,CAAC,KAAKjC,GAAL,CAAS,wBAAT,CAAD,CAApC;AAEA,cAAMkC,oBAAoB,GAAGvB,KAAK,CAACwB,YAAN,CAAmB,mBAAnB,EAAwCZ,0BAAxC,CAA7B,CAbK,CAcL;;AACA,cAAMa,4BAA4B,GAAGF,oBAAoB,CAACG,IAArB,CAA0B;AAACC,UAAAA,cAAc,EAAE,KAAKtC,GAAL,CAAS,cAAT;AAAjB,SAA1B,EAAsEuC,IAAtE,CAA2E,UAASC,OAAT,EAAiB,CAE7H;AACA;AAEA;AACA;AACH,SAPoC,CAArC;AASApB,QAAAA,2BAA2B,CAACE,EAA5B,GAAiC,qBAAO,KAAKtB,GAAL,CAAS,mBAAT,CAAP,EAAqC,qBAArC,EAA4DE,MAA5D,CAAmE,qBAAnE,CAAjC;AACAkB,QAAAA,2BAA2B,CAACa,MAA5B,GAAqC9B,MAAM,CAAC8B,MAAP,CAAc,KAAKjC,GAAL,CAAS,kCAAT,CAAd,CAArC;AAEA,cAAMyC,qBAAqB,GAAG9B,KAAK,CAACwB,YAAN,CAAmB,oBAAnB,EAAyCf,2BAAzC,CAA9B,CA3BK,CA4BL;;AACA,cAAMsB,6BAA6B,GAAGD,qBAAqB,CAACJ,IAAtB,CAA2B;AAACC,UAAAA,cAAc,EAAE,KAAKtC,GAAL,CAAS,cAAT;AAAjB,SAA3B,EAAuEuC,IAAvE,CAA4E,UAASC,OAAT,EAAiB;AAC/H;AACA1C,UAAAA,KAAK,CAACG,GAAN,CAAU,yBAAV,EAAqC,IAArC;;AACAH,UAAAA,KAAK,CAACG,GAAN,CAAU,wBAAV,EAAoC,KAApC,EAH+H,CAI/H;AACA;AACA;;;AACA,gBAAM0C,gBAAgB,GAAG7C,KAAK,CAACE,GAAN,CAAU,yBAAV,CAAzB;;AACA,gBAAM4C,oBAAoB,GAAG,eAAS9C,KAAT,EAAgB+C,MAAhB,CAAwB,SAAQF,gBAAiB,EAAjD,CAA7B;AACAC,UAAAA,oBAAoB,CAACE,OAArB;AAEH,SAXqC,EAYrCC,KAZqC,CAY/B,UAASC,MAAT,EAAgB;AACnB,cAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChCpD,YAAAA,KAAK,CAACqD,OAAN,CAAc,iBAAd,EAAiC,IAAjC;AACH;AACJ,SAhBqC,CAAtC;AAiBH,OA/CI;;AAgDLC,MAAAA,SAAS,CAACC,MAAD,EAAQ;AACb;AACA,aAAKpD,GAAL,CAAS,wBAAT,EAAmC,KAAnC,EAFa,CAGb;;AACAJ,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;;AArDI,KAhDyB;;AAuGlCyD,IAAAA,SAAS,GAAG;AACR,UAAIxD,KAAK,GAAG,IAAZ,CADQ,CAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEH,KApHiC;;AAqHlCyD,IAAAA,kBAAkB,GAAG;AACjB,UAAI,KAAKvD,GAAL,CAAS,gBAAT,CAAJ,EAAgC;AAC5B,aAAKA,GAAL,CAAS,gBAAT,EAA2BwD,cAA3B,CAA0C,SAA1C;AACH;AAEJ;;AA1HiC,GAAvB,C;;;;;;;;;;;;;iBCRAC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClC,UAAMC,IAAN,GAAa;AAET,WAAKC,MAAL,CAAY,GAAGC,SAAf;;AACA,UAAIC,MAAM,GAAG,KAAKC,GAAL,CAAS,cAAT,CAAb;;AACA,UAAGD,MAAM,KAAK,UAAd,EAA0B;AACtB,aAAKE,GAAL,CAAS,qBAAT,EAAgC,KAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACH;;AACD,UAAGF,MAAM,KAAK,MAAd,EAAsB;AAClB,aAAKE,GAAL,CAAS,qBAAT,EAAgC,IAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,IAApC;AACH;;AAED,WAAKA,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,UAAIC,cAAc,GAAG,MAAM,KAAKC,qBAAL,EAA3B;AACA,WAAKF,GAAL,CAAS,kBAAT,EAA6BC,cAA7B;AACA,WAAKD,GAAL,CAAS,SAAT,EAAoB,KAApB;AAEH,KAnBiC;;AAoBlCG,IAAAA,KAAK,EAAEX,KAAK,CAACY,MAAN,CAAaC,OAAb,EApB2B;AAqBlCC,IAAAA,IAAI,EAAEd,KAAK,CAACY,MAAN,CAAaC,OAAb,EArB4B;AAsBlCE,IAAAA,EAAE,EAAE,IAtB8B;AAuBlCC,IAAAA,MAAM,EAAC,EAvB2B;AAwBlCC,IAAAA,cAAc,EAAE,KAxBkB;AAyBlCC,IAAAA,YAAY,EAAE,GAzBoB;AA0BlCC,IAAAA,WAAW,EAAE,QA1BqB;AA2BlCC,IAAAA,WAAW,EAAE,EA3BqB;AA4BlCC,IAAAA,cAAc,EAAE,IA5BkB;AA6BlCC,IAAAA,OAAO,EAAE,IA7ByB;AA8BlCC,IAAAA,gBAAgB,EAAE,EA9BgB;AA+BlCC,IAAAA,cAAc,EAAE,KA/BkB;AAgClCC,IAAAA,cAAc,EAAE,KAhCkB;AAiClCC,IAAAA,YAAY,EAAE,KAjCoB;AAkClCC,IAAAA,oBAAoB,EAAE,KAlCY;AAmClCC,IAAAA,OAAO,EAAE,KAnCyB;AAoClCC,IAAAA,UAAU,EAAE,KApCsB;AAqClCC,IAAAA,WAAW,EAAE,KArCqB;AAsClCC,IAAAA,aAAa,EAAE,KAtCmB;AAuClCC,IAAAA,SAAS,EAAE,KAvCuB;AAyClCC,IAAAA,OAAO,EAAE,CAzCyB;AA0ClCC,IAAAA,cAAc,EAAE,KA1CkB;AA2ClCC,IAAAA,SAAS,EAAE,KA3CuB;AA4ClCC,IAAAA,WAAW,EAAE,EA5CqB;AA6ClCC,IAAAA,OAAO,EAAE,EA7CyB;AA+ClCC,IAAAA,gBAAgB,EAAC,IA/CiB;AAgDlCC,IAAAA,OAAO,EAAC,IAhD0B;AAkDlCC,IAAAA,kBAAkB,EAAE,UAASJ,WAAT,EAAsB;AACtC,YAAMK,KAAK,GAAG,wFAAd;AACA,aAAOA,KAAK,CAACC,IAAN,CAAWN,WAAX,CAAP;AACH,KArDiC;AAwDlCA,IAAAA,WAAW,EAAEpC,KAAK,CAAC2C,QAAN,CAAe,cAAf,EAA+B,YAAW;AACnD,UAAIC,MAAM,GAAG,KAAKrC,GAAL,CAAS,cAAT,CAAb;AACA,YAAMsC,OAAO,GAAGD,MAAM,CAACE,OAAP,CAAe,GAAf,CAAhB;;AACA,UAAID,OAAO,GAAG,CAAd,EAAiB;AACb,eAAOD,MAAP;AACH,OALkD,CAMnD;;;AACA,aAAOA,MAAM,CAACG,SAAP,CAAiB,CAAjB,EAAoBF,OAApB,CAAP;AACH,KARY,CAxDqB;AAkElCG,IAAAA,sBAAsB,EAAE,eAAS,eAAT,EAA0B,YAAW;AACzD,UAAIC,aAAa,GAAG,KAAK1C,GAAL,CAAS,eAAT,CAApB;AACA,WAAKC,GAAL,CAAS,qBAAT,EAAgCyC,aAAhC;AAEH,KAJuB,CAlEU;AAyElCC,IAAAA,uBAAuB,EAAE,eAAS,IAAT,EAAe,YAAW,CAC/C;AACH,KAFwB,CAzES;AA6ElCC,IAAAA,gBAAgB,EAAE,eAAS,SAAT,EAAoB,YAAW;AAC7C,UAAId,OAAO,GAAG,KAAK9B,GAAL,CAAS,SAAT,CAAd,CAD6C,CAE7C;;AACA,WAAKC,GAAL,CAAS,SAAT,EAAoB6B,OAApB;AACH,KAJiB,CA7EgB;AAmFlCe,IAAAA,eAAe,EAAE,eAAS,cAAT,EAAyB,YAAW;AACjD,UAAI9C,MAAM,GAAG,KAAKC,GAAL,CAAS,cAAT,CAAb;;AACA,UAAGD,MAAM,KAAK,MAAd,EAAsB;AAClB,aAAKE,GAAL,CAAS,cAAT,EAAyB,KAAzB;AACA,aAAKA,GAAL,CAAS,iBAAT,EAA4B,KAA5B;AACA,aAAKA,GAAL,CAAS,gBAAT,EAA2B,KAA3B;AACA,aAAK6C,IAAL,CAAU,uBAAV,EAAkCC,QAAQ,CAACC,cAAT,CAAwB,aAAxB,CAAlC;AACH;AACJ,KARgB,CAnFiB;AA6FlCC,IAAAA,eAAe,EAAE,eAAS,cAAT,EAAyB,YAAW;AACjD,UAAIC,MAAM,GAAG,KAAKlD,GAAL,CAAS,cAAT,CAAb;;AACA,UAAGkD,MAAM,KAAK,KAAd,EAAqB;AACjB,aAAKjD,GAAL,CAAS,oBAAT,EAA+B,CAA/B;AACA,aAAKA,GAAL,CAAS,kBAAT,EAA6B,IAA7B;AACH;AACJ,KANgB,CA7FiB;AAqGlCkD,IAAAA,iBAAiB,EAAE,eAAS,gBAAT,EAA2B,YAAW;AACrD,UAAIC,QAAQ,GAAG,KAAKpD,GAAL,CAAS,gBAAT,CAAf;;AACA,UAAGoD,QAAQ,IAAI,IAAf,EAAqB;AACjB,aAAKnD,GAAL,CAAS,cAAT,EAAyB,EAAzB;AACH;AACJ,KALkB,CArGe;AA4GlCE,IAAAA,qBAAqB,EAAE,kBAAiB;AACpCkD,MAAAA,OAAO,CAACC,GAAR,CAAY,8BAAZ;AACAD,MAAAA,OAAO,CAACC,GAAR,CAAY,KAAKtD,GAAL,CAAS,OAAT,CAAZ;AACA,UAAIe,OAAO,GAAG,MAAM,KAAKX,KAAL,CAAWmD,UAAX,CAAsB,OAAtB,EAA8B,KAAKvD,GAAL,CAAS,OAAT,EAAkBA,GAAlB,CAAsB,IAAtB,CAA9B,EAA2D;AAAEwD,QAAAA,MAAM,EAAE;AAAV,OAA3D,EAA6EC,IAA7E,CAAkF,gBAAeC,QAAf,EAAyB;AAC3HL,QAAAA,OAAO,CAACC,GAAR,CAAYI,QAAZ;AACA,YAAIC,QAAQ,GAAG,EAAf;AACA,YAAI5C,OAAO,GAAG2C,QAAQ,CAAC1D,GAAT,CAAa,SAAb,CAAd;AACAe,QAAAA,OAAO,CAAC6C,OAAR,CAAkBC,MAAD,IAAY;AACzBF,UAAAA,QAAQ,CAACG,IAAT,CAAcD,MAAM,CAAC7D,GAAP,CAAW,YAAX,CAAd;AACD,SAFH;AAIA,eAAOe,OAAP;AACH,OATmB,CAApB;AAWA,UAAIgD,UAAU,GAAG,EAAjB;AAEAhD,MAAAA,OAAO,CAAC6C,OAAR,CAAgBI,OAAO,IAAI;AAEvBD,QAAAA,UAAU,CAACC,OAAO,CAACC,UAAT,CAAV,GAAiC,IAAjC,CAFuB,CAGvB;AACH,OAJD,EAhBoC,CAsBpC;AACA;;AACA,aAAOF,UAAP;AACH,KArIiC;AAuIlCG,IAAAA,YAAY,EAAEzE,KAAK,CAAC2C,QAAN,CAAe,QAAf,EAAyB,YAAW;AAC9C;AACA,UAAI+B,UAAU,GAAG,KAAKnE,GAAL,CAAS,OAAT,EAAkBmE,UAAnC;AACA,UAAI1D,MAAM,GAAG,KAAKT,GAAL,CAAS,QAAT,CAAb;;AAEA,UAAGS,MAAM,KAAG,EAAZ,EAAgB;AACZA,QAAAA,MAAM,GAAG0D,UAAU,CAACnE,GAAX,CAAe,IAAf,CAAT;AACH;;AACD,UAAIoE,GAAG,GAAG3D,MAAM,CAAC4D,MAAP,KAAkB,CAAlB,GAAsB,CAAtB,GAA0B,CAApC;AACA,UAAIC,QAAQ,GAAGC,QAAQ,CAAC9D,MAAM,CAAC+B,SAAP,CAAiB,CAAjB,EAAmB4B,GAAnB,CAAD,CAAvB,CAT8C,CAU9C;;AACA,aAAOE,QAAP;AACH,KAZa,CAvIoB;AAoJlCE,IAAAA,UAAU,EAAE/E,KAAK,CAAC2C,QAAN,CAAe,YAAW;AAClC,aAAO,KAAKpC,GAAL,CAAS,cAAT,IAA2B,CAA3B,GAA8B,KAAKA,GAAL,CAAS,cAAT,CAA9B,GAAwD,CAA/D;AACH,KAFW,CApJsB;AAwJlCyE,IAAAA,gBAAgB,EAAEhF,KAAK,CAAC2C,QAAN,CAAe,QAAf,EAAyB,YAAW;AAClD,UAAIsC,IAAI,GAAG,KAAK1E,GAAL,CAAS,OAAT,EAAkB2E,YAA7B;AACA,aAAO,qBAAOD,IAAP,CAAP;AACH,KAHiB,CAxJgB;AA6JlCE,IAAAA,iBAAiB,EAAEnF,KAAK,CAAC2C,QAAN,CAAe,kBAAf,EAAmC,YAAW;AAC7D,UAAIsC,IAAI,GAAG,KAAK1E,GAAL,CAAS,OAAT,EAAkBgB,gBAA7B;AACA,aAAO,qBAAO0D,IAAP,CAAP;AACH,KAHkB,CA7Je;AAkKlCG,IAAAA,gBAAgB,EAAC,UAASC,EAAT,EAAY;AACzB,UAAIC,GAAG,GAAG,kCAAkB,sBAAlB,GAA2CD,EAA3C,GAAgD,GAA1D;AACAzB,MAAAA,OAAO,CAACC,GAAR,CAAY,wCAAwCwB,EAApD;AACA,cAAEvE,IAAF,CAAO;AACH2C,QAAAA,MAAM,EAAE,MADL;AAEH6B,QAAAA,GAAG,EAAEA,GAFF;AAGHC,QAAAA,OAAO,EAAE;AACLC,UAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AADnC;AAHN,OAAP;AAQH,KA7KiC;AA+KlCC,IAAAA,OAAO,EAAE;AACLC,MAAAA,SAAS,GAAG;AACR,aAAKpF,GAAL,CAAS,SAAT,EAAoB,KAAKD,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,OAHI;;AAILsF,MAAAA,aAAa,GAAG;AACZ,aAAKrF,GAAL,CAAS,SAAT,EAAoB,KAAKD,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,OANI;;AAQLuF,MAAAA,qBAAqB,CAACC,KAAD,EAAQ;AACzB,YAAIC,MAAM,GAAG,IAAb;AACA,YAAID,KAAK,YAAYE,KAArB,EACID,MAAM,GAAGhG,KAAK,CAACkG,CAAN,CAAQH,KAAK,CAACnD,MAAd,EAAsBuD,GAAtB,EAAT,CADJ,KAGIH,MAAM,GAAGhG,KAAK,CAACkG,CAAN,CAAQH,KAAR,EAAeI,GAAf,EAAT;AACJ,YAAIC,IAAI,GAAG,EAAX;AACAJ,QAAAA,MAAM,CAAC7B,OAAP,CAAe,UAASkC,GAAT,EAAc;AACzBD,UAAAA,IAAI,CAACC,GAAD,CAAJ,GAAY,IAAZ;AACA,iBAAOD,IAAP;AACH,SAHD;AAKA,aAAK5F,GAAL,CAAS,gBAAT,EAA2B4F,IAA3B;AACH,OArBI;;AAsBLE,MAAAA,SAAS,GAAG;AACR,aAAK9F,GAAL,CAAS,QAAT,EAAmB,KAAnB;;AACA,cAAM+F,KAAK,GAAG,IAAd;;AACA,cAAM5F,KAAK,GAAG,KAAKJ,GAAL,CAAS,OAAT,CAAd;;AACA,YAAIQ,EAAE,GAAGwF,KAAK,CAAChG,GAAN,CAAU,OAAV,CAAT,CAJQ,CAMR;;;AACA,YAAIiG,iBAAiB,GAAG,KAAKjG,GAAL,CAAS,0BAAT,CAAxB,CAPQ,CASR;;AACA,YAAIkG,QAAQ,GAAG,KAAKlG,GAAL,CAAS,4BAAT,CAAf,CAVQ,CAYR;;AACA,YAAImG,gBAAgB,GAAG,KAAKnG,GAAL,CAAS,yBAAT,CAAvB,CAbQ,CAeR;;AACA,YAAIoG,QAAQ,GAAG,KAAf;AACA,YAAIC,OAAO,GAAG,EAAd,CAjBQ,CAmBR;;AACA,YAAG,CAAC,OAAOJ,iBAAP,KAA6B,WAA7B,IAA4CA,iBAAiB,KAAK,EAAnE,KAA2EC,QAAQ,IAAI,IAA1F,EAAiG;AAC7FE,UAAAA,QAAQ,GAAG,IAAX;;AAEA,cAAIF,QAAQ,IAAI,OAAhB,EAAyB;AACrBG,YAAAA,OAAO,GAAG,eAAV;AACH,WAFD,MAEO,IAAIH,QAAQ,IAAI,KAAhB,EAAuB;AAC1BG,YAAAA,OAAO,GAAG,cAAV;AACH,WAFM,MAEA,IAAIH,QAAQ,IAAI,MAAhB,EAAwB;AAC3BG,YAAAA,OAAO,GAAG,YAAV;AACH;AACJ,SA9BO,CAgCR;;;AACA,YAAIvF,cAAc,GAAG,KAAKd,GAAL,CAAS,gBAAT,CAArB,CAjCQ,CAkCR;;AACA,YAAKc,cAAc,IAAI,IAAvB,EAA8B;AAC1B,cAAIC,OAAO,GAAG,KAAKf,GAAL,CAAS,kBAAT,CAAd;AAEA,cAAIsG,OAAO,GAAG,IAAIC,GAAJ,EAAd,CAH0B,CAK1B;;AACA,eAAI,IAAIC,GAAR,IAAezF,OAAf,EAAwB;AACpB,gBAAI,CAACD,cAAc,CAAC2F,cAAf,CAA8BD,GAA9B,CAAL,EAAyC;AACrCF,cAAAA,OAAO,CAACrG,GAAR,CAAYuG,GAAZ,EAAiB,KAAjB;AACH;AACJ,WAVyB,CAY1B;;;AACA,eAAI,IAAIA,GAAR,IAAe1F,cAAf,EAA+B;AAC3B,gBAAI,CAACC,OAAO,CAAC0F,cAAR,CAAuBD,GAAvB,CAAL,EAAkC;AAC9BF,cAAAA,OAAO,CAACrG,GAAR,CAAYuG,GAAZ,EAAiB,IAAjB;AACH;AACJ;;AAED,cAAIE,YAAY,GAAGlG,EAAE,CAACR,GAAH,CAAO,SAAP,CAAnB;AACA,cAAI2G,eAAe,GAAG,IAAtB;;AAEA,eAAK,MAAM,CAACH,GAAD,EAAMI,KAAN,CAAX,IAA2BN,OAAO,CAACO,OAAR,EAA3B,EAA8C;AAC1C,gBAAGD,KAAH,EAAU;AACND,cAAAA,eAAe,GAAG,EAAlB;AACAA,cAAAA,eAAe,CAACG,KAAhB,GAAwBtG,EAAxB;AACAmG,cAAAA,eAAe,CAAC1C,UAAhB,GAA6BuC,GAA7B;AAEA,kBAAIO,SAAS,GAAG3G,KAAK,CAAC4G,YAAN,CAAmB,cAAnB,EAAmCL,eAAnC,CAAhB;AACAI,cAAAA,SAAS,CAACE,IAAV;AACH,aAPD,MAOO;AACHP,cAAAA,YAAY,CAAC9C,OAAb,CAAqBI,OAAO,IAAI;AAC5B,oBAAGA,OAAO,CAAChE,GAAR,CAAY,YAAZ,MAA8BwG,GAAjC,EAAsC;AAClCxC,kBAAAA,OAAO,CAACkD,aAAR;AACH;AACJ,eAJD;AAKH;AACJ;;AAED,cAAIC,MAAM,GAAG/G,KAAK,CAACmD,UAAN,CAAiB,cAAjB,EAAgC/C,EAAE,CAACsE,EAAnC,EAAuCrB,IAAvC,CAA4C,UAAS2D,IAAT,EAAe;AACpEV,YAAAA,YAAY,GAAGU,IAAI,CAACpH,GAAL,CAAS,SAAT,CAAf;AACH,WAFY,CAAb;AAIA,eAAKC,GAAL,CAAS,gBAAT,EAA2B,IAA3B;AACA,eAAKA,GAAL,CAAS,SAAT,EAAoByG,YAApB;AACH,SAhFO,CAmFR;;;AACA,YAAId,GAAG,GAAG,KAAK5F,GAAL,CAAS,yBAAT,CAAV;AACA,YAAIqH,EAAE,GAAG,KAAKrH,GAAL,CAAS,2BAAT,CAAT;AACA,YAAIsH,EAAE,GAAG,KAAKtH,GAAL,CAAS,gCAAT,CAAT;AACA,YAAIuH,GAAG,GAAGxE,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuCwE,aAAjD;AAEA,aAAKC,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,cAAd,EAA6B,KAA7B;AACA,aAAKA,QAAL,CAAc,sBAAd,EAAqC,KAArC;AACA,aAAKA,QAAL,CAAc,SAAd,EAAwB,KAAxB;AACA,aAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AACA,aAAKA,QAAL,CAAc,aAAd,EAA4B,KAA5B;AACA,aAAKA,QAAL,CAAc,eAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAjGQ,CAoGR;;AACA,YAAK7B,GAAG,CAACvB,MAAJ,IAAc,CAAf,IAAsBgD,EAAE,CAAChD,MAAH,IAAa,CAAnC,IAA0CiD,EAAE,CAACjD,MAAH,IAAa,CAA3D,EAA+D;AAC3D,eAAKoD,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EAF2D,CAG3D;AAGJ;AACC,SAPD,MAOO,IAAKF,GAAG,IAAI,CAAC,CAAT,IAAgB,KAAKvH,GAAL,CAAS,0BAAT,KAAwC,MAA5D,EAAqE;AACxE,eAAKyH,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,cAAd,EAA6B,IAA7B,EAFwE,CAGxE;AAEJ;AACC,SANM,MAMD,IAAIC,KAAK,CAACvB,gBAAD,CAAT,EAA4B;AAC9B,eAAKsB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,sBAAd,EAAqC,IAArC,EAF8B,CAG9B;AAEJ;AACC,SANK,MAMC,IAAK,KAAKzH,GAAL,CAAS,0BAAT,KAAwC,KAAzC,IAAoDsH,EAAE,IAAI,CAA1D,IAAiE,KAAKtH,GAAL,CAAS,8BAAT,KAA4C,IAAjH,EAAwH;AAC3H,eAAKyH,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,SAAd,EAAwB,IAAxB,EAF2H,CAG3H;AAEH,SALM,MAKA,IAAIH,EAAE,GAAG,CAAT,EAAY;AACf,eAAKG,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,YAAd,EAA2B,IAA3B,EAFe,CAGf;AAEH,SALM,MAKA,IAAIvB,QAAQ,IAAE,MAAd,EAAsB;AACzBnD,UAAAA,QAAQ,CAACC,cAAT,CAAwB,mBAAxB,EAA6C4D,KAA7C,GAAqD,EAArD,CADyB,CAEzB;AAEH,SAJM,MAIA,IAAIR,QAAJ,EAAc;AACjB,eAAKqB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,aAAd,EAA4B,IAA5B,EAFiB,CAGjB;AAEH,SALM,MAKA,IAAI,CAAExB,iBAAiB,CAAC0B,QAAlB,CAA2B,GAA3B,CAAF,IAAuCzB,QAAQ,IAAE,KAArD,EAA6D;AAChE,eAAKuB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B,EAFgE,CAGhE;AAGJ;AACC,SAPM,MAOA,IAAI,CAACrB,QAAL,EAAc;AAEjB,cAAIwB,GAAG,GAAG,CAAC,KAAK5H,GAAL,CAAS,gBAAT,CAAX,CAFiB,CAGjB;;AAEAQ,UAAAA,EAAE,CAACyG,IAAH,GACKxD,IADL,CACU,UAASmD,KAAT,EAAe;AACjBZ,YAAAA,KAAK,CAAC6B,MAAN,GAAa,KAAb;;AACA7B,YAAAA,KAAK,CAAC/F,GAAN,CAAU,aAAV,EAAyB,OAAzB;;AACA+F,YAAAA,KAAK,CAAChG,GAAN,CAAU,OAAV;AACH,WALL,EAMK8H,KANL,CAMW,UAASC,MAAT,EAAiB;AAEpB,gBAAIA,MAAM,IAAIA,MAAM,CAACC,MAAjB,IAA2BD,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA1D,EAA+D;AAC3DjC,cAAAA,KAAK,CAACyB,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACAzB,cAAAA,KAAK,CAACyB,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH,aAHD,MAGO;AACH;AACAzB,cAAAA,KAAK,CAAC/F,GAAN,CAAU,aAAV,EAAyB,OAAzB;;AACA+F,cAAAA,KAAK,CAAChG,GAAN,CAAU,OAAV;AACH;AACJ,WAhBL;AAiBH;AAEJ,OAhMI;;AAiMLkI,MAAAA,aAAa,GAAG;AACZ,YAAI1H,EAAE,GAAG,KAAKR,GAAL,CAAS,OAAT,CAAT;AACAQ,QAAAA,EAAE,CAAC2H,MAAH,GAAYpF,QAAQ,CAACC,cAAT,CAAwB,oBAAxB,EAA8CoF,OAA1D;AACA,aAAKnI,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACH,OArMI;;AAsML6H,MAAAA,aAAa,GAAG;AACZ,YAAI7H,EAAE,GAAG,KAAKR,GAAL,CAAS,OAAT,CAAT;AACAQ,QAAAA,EAAE,CAAC8H,QAAH,GAAcvF,QAAQ,CAACC,cAAT,CAAwB,cAAxB,EAAwCoF,OAAtD;AACA,aAAKnI,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACH,OA1MI;;AA2ML;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA+H,MAAAA,YAAY,GAAG;AACX,YAAIX,GAAG,GAAG,CAAC,KAAK5H,GAAL,CAAS,gBAAT,CAAX;;AAEA,YAAG4H,GAAH,EAAQ;AACJ,eAAK3H,GAAL,CAAS,YAAT,EAAsB,KAAKD,GAAL,CAAS,cAAT,CAAtB;AACA,eAAKC,GAAL,CAAS,cAAT,EAAyB,GAAzB;AACA,eAAKA,GAAL,CAAS,aAAT,EAAuB,UAAvB;AACH,SAJD,MAIO;AACH,eAAKA,GAAL,CAAS,YAAT,EAAsB,CAAtB;AACA,eAAKA,GAAL,CAAS,cAAT,EAAyB,GAAzB;AACA,eAAKA,GAAL,CAAS,aAAT,EAAuB,QAAvB;AACH;;AACD,aAAKA,GAAL,CAAS,gBAAT,EAA2B2H,GAA3B;AACH,OAlOI;;AAoOLY,MAAAA,WAAW,GAAG;AACV,YAAIhI,EAAE,GAAG,KAAKR,GAAL,CAAS,OAAT,CAAT;AACAQ,QAAAA,EAAE,CAACiI,WAAH,GAAiB,IAAjB;AAEA,YAAIC,OAAO,GAAG,IAAIC,IAAJ,EAAd;AAEA,YAAIC,UAAU,GAAGF,OAAO,CAACG,WAAR,KAAwB,GAAxB,IAA+BH,OAAO,CAACI,QAAR,KAAmB,CAAlD,IAAuD,GAAvD,GAA6DJ,OAAO,CAACK,OAAR,EAA7D,GAAiF,GAAjF,GAAuFL,OAAO,CAACM,QAAR,EAAvF,GAA4G,GAA5G,GAAkHN,OAAO,CAACO,UAAR,EAAlH,GAAyI,GAAzI,GAA+IP,OAAO,CAACQ,UAAR,EAAhK,CANU,CAQV;;AACA1I,QAAAA,EAAE,CAACQ,gBAAH,GAAsB4H,UAAtB;AACA,aAAK3I,GAAL,CAAS,kBAAT,EAA6B2I,UAA7B;AACA,aAAK3I,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAACyG,IAAH;AAEA,aAAKpC,gBAAL,CAAsBrE,EAAE,CAACsE,EAAzB;AACH,OAnPI;;AAoPLqE,MAAAA,UAAU,GAAG;AACT,YAAI3I,EAAE,GAAG,KAAKR,GAAL,CAAS,OAAT,CAAT;AACAQ,QAAAA,EAAE,CAACiI,WAAH,GAAiB,KAAjB;AACAjI,QAAAA,EAAE,CAAC4I,SAAH,GAAe,KAAf;AACA5I,QAAAA,EAAE,CAACQ,gBAAH,GAAsB,IAAtB;AACAR,QAAAA,EAAE,CAAC6I,WAAH,GAAiB,IAAjB;AACA,aAAKpJ,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAACyG,IAAH;AACH,OA5PI;;AA6PLqC,MAAAA,WAAW,GAAG;AACV,YAAI9I,EAAE,GAAG,KAAKR,GAAL,CAAS,OAAT,CAAT;AACAQ,QAAAA,EAAE,CAAC4I,SAAH,GAAe,KAAf;AACA5I,QAAAA,EAAE,CAAC6I,WAAH,GAAiB,IAAjB;AACA,aAAKpJ,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAACyG,IAAH;AACH,OAnQI;;AAoQLsC,MAAAA,WAAW,GAAG;AACV,YAAG,KAAKtH,kBAAL,CAAwB,KAAKJ,WAA7B,CAAH,EAA8C;AAC1C,eAAK4F,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,KAA9B,EAF0C,CAG1C;AACA;;AACA,eAAK+B,cAAL,CAAoB,WAApB,EAL0C,CAM1C;;AACA,iBAAO,IAAP;AACH,SARD,MAQO;AACH1C,UAAAA,KAAK,CAAC,kFAAD,CAAL;AACA,eAAKW,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B;AACA,iBAAO,KAAP;AACH;AACJ,OAnRI;;AAsRLgC,MAAAA,eAAe,CAACC,aAAD,EAAgB;AAC3B;AACA,aAAKzJ,GAAL,CAAS,cAAT,EAAyByJ,aAAzB;AACH;;AAzRI;AA/KyB,GAAvB,C;;;;;;;;;;;;;;;;;;;;;;;MCHMC,c,yEAAN,MAAMA,cAAN,SAA6B,gBAAUC,MAAV,CAAiB,EAAjB,CAA7B,CACZ;AAAA;AAAA;;AAAA;;AAAA;;AAAA,+CAImB,IAJnB;;AAAA,8CAKiB,IALjB;;AAAA,6CAMgB,IANhB;;AAAA,uCAOU,CAPV;;AAAA,uCASW;AACNC,QAAAA,UAAU,GAAE;AACR,cAAIC,KAAK,GAAG,KAAKC,GAAL,CAAS,OAAT,CAAZ;AACA,cAAIC,UAAU,GAAG,KAAKD,GAAL,CAAS,YAAT,CAAjB,CAFQ,CAGR;;AACA,cAAI;AACA,gBAAIE,SAAS,GAAGD,UAAU,CAACD,GAAX,CAAe,iBAAf,IAAoCC,UAAU,CAACD,GAAX,CAAe,iBAAf,CAApD;AACAE,YAAAA,SAAS,GAAGC,IAAI,CAACC,KAAL,CAAWF,SAAS,GAAG,IAAvB,IAA+B,IAA3C;AACAD,YAAAA,UAAU,CAACI,GAAX,CAAe,qBAAf,EAAsCH,SAAtC;AACH,WAJD,CAIE,OAAOI,EAAP,EAAW;AACTL,YAAAA,UAAU,CAACI,GAAX,CAAe,qBAAf,EAAsC,CAAtC;AACH;;AACDJ,UAAAA,UAAU,CAACM,IAAX;AACH,SAbK;;AAcNC,QAAAA,QAAQ,CAACC,EAAD,EAAK;AACT,cAAIC,UAAU,GAAG,IAAIC,MAAJ,EAAjB;AACA,cAAIC,YAAY,GAAGD,MAAM,CAACD,UAAD,CAAN,CAAmBG,QAAnB,CAA4B,CAA5B,EAA+B,MAA/B,EAAuCC,MAAvC,CAA8C,kBAA9C,CAAnB;AACA,cAAIC,mBAAmB,GAAGL,UAAU,CAACI,MAAX,CAAkB,kBAAlB,CAA1B;AACA,cAAIE,QAAQ,GAAG,KAAKhB,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,WAAjD,CAAf;AACA,eAAKA,GAAL,CAAS,QAAT,EAAmBiB,YAAnB,CAAgC,UAAhC,EAA4CR,EAA5C,EAAgD;AAAES,YAAAA,WAAW,EAAE;AAAC,mCAAqBN,YAAtB;AAAoC,iCAAmBG,mBAAvD;AAA4E,mCAAqBC;AAAjG;AAAf,WAAhD,EALS,CAOT;AACH,SAtBK;;AAuBNG,QAAAA,MAAM,CAACV,EAAD,EAAK;AACP,eAAKT,GAAL,CAAS,QAAT,EAAmBiB,YAAnB,CAAgC,gCAAhC,EAAkER,EAAlE,EAAsE,qBAAtE,EADO,CAEP;AACH,SA1BK;;AA2BNW,QAAAA,SAAS,GAAG;AACR,eAAKf,GAAL,CAAS,SAAT,EAAoB,KAAKL,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,SA7BK;;AA8BNqB,QAAAA,aAAa,GAAG;AACZ,eAAKhB,GAAL,CAAS,SAAT,EAAoB,KAAKL,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,SAhCK;;AAiCNsB,QAAAA,MAAM,CAACb,EAAD,EAAK;AACP,eAAKT,GAAL,CAAS,QAAT,EAAmBiB,YAAnB,CAAgC,8BAAhC,EAAgER,EAAhE,EAAoE,qBAApE,EADO,CAEP;AACH,SApCK;;AAqCNc,QAAAA,cAAc,GAAE;AACZ,gBAAMC,KAAK,GAAG,IAAd,CADY,CAEZ;;;AACA,cAAI,KAAKxB,GAAL,CAAS,SAAT,IAAsB,CAA1B,EAA6B;AACzB,gBAAIyB,CAAC,GAAGC,OAAO,CAAC,2JAAD,CAAf;;AACA,gBAAID,CAAJ,EAAO;AACHE,cAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuB,cAAvB;AACH;AACJ,WALD,MAKO;AACHF,YAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuB,cAAvB;AACH;AACJ;;AAhDK,OATX;AAAA;;AAAA,G;;;;;;;;;;;;;;;;;;;;;;iBCFYC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,OAAO,EAAE,eAFyB;AAGlCC,IAAAA,cAAc,EAAE,IAHkB;AAIlCC,IAAAA,YAAY,EAAE,IAJoB;AAKlCC,IAAAA,yBAAyB,EAAE,GALO;AAKF;AAChCC,IAAAA,cAAc,EAAE,IANkB;AAOlCC,IAAAA,4BAA4B,EAAE,EAPI;AAOA;AAElCC,IAAAA,2BAA2B,EAAEZ,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AACpE,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AAClD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf4B,CATK;AA0BlCQ,IAAAA,yBAAyB,EAAEtB,KAAK,CAACa,QAAN,CAAe,aAAf,EAA8B,YAAW;AAChE,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,OADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAChD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf0B,CA1BO;AA2ClCS,IAAAA,kBAAkB,EAAEvB,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,KAAKA,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AACjD,iBAAO;AACHJ,YAAAA,IAAI,EAAE,SADH;AAEHQ,YAAAA,SAAS,EAAE,qBAAQJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCW,MAAjC,CAAwC,uBAAxC,CAFR;AAGH;AACAC,YAAAA,SAAS,EAAEN,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAJ7D;AAKHa,YAAAA,eAAe,EAAEP,KAAK,CAACN,GAAN,CAAU,iBAAV;AALd,WAAP;AAOH,SARM,EAQJc,MARI,CAQG,WARH,CAAP;AASH;;AACD,aAAO,KAAP;AACH,KAbmB,CA3Cc;AA0DlCC,IAAAA,gBAAgB,EAAE7B,KAAK,CAACa,QAAN,CAAe,aAAf,EAA8B,YAAW;AACvD,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,KAAKA,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAC/C,iBAAO;AACHJ,YAAAA,IAAI,EAAE,OADH;AAEHQ,YAAAA,SAAS,EAAE,qBAAQJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCW,MAAjC,CAAwC,uBAAxC,CAFR;AAGHC,YAAAA,SAAS,EAAEN,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAH7D;AAIHgB,YAAAA,MAAM,EAAEV,KAAK,CAACN,GAAN,CAAU,QAAV;AAJL,WAAP;AAMH,SAPM,EAOJc,MAPI,CAOG,WAPH,CAAP;AAQH;;AACD,aAAO,KAAP;AACH,KAZiB,CA1DgB;AAwElC;AACAG,IAAAA,cAAc,EAAE/B,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASa,IAAT,EAAc;AAC9D,UAAI;AACA,YAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AACA,YAAIC,SAAS,GAAGL,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAhB;AAEA,YAAIM,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAEA,YAAIyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAAnD,EAAkE;AAC9D,cAAIC,MAAM,GAAG,KAAK1B,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,QAA3B,CAAb,CAD8D,CAE9D;AACA;;AAEAuB,UAAAA,SAAS,CAACnB,MAAV,CAAiBuB,MAAjB,CAAwB,CAAxB,EAA0B,CAA1B;AACAJ,UAAAA,SAAS,CAACnB,MAAV,CAAiBwB,OAAjB,CAAyB,CAAzB;;AACA,cAAGF,MAAH,EAAW;AACPH,YAAAA,SAAS,CAACnB,MAAV,CAAiByB,IAAjB,CAAsBN,SAAS,CAACnB,MAAV,CAAiBmB,SAAS,CAACnB,MAAV,CAAiB0B,MAAjB,GAA0B,CAA3C,CAAtB;AACH,WAFD,MAEO;AACHP,YAAAA,SAAS,CAACnB,MAAV,CAAiByB,IAAjB,CAAsB,CAAtB;AACH;AACJ;;AAED,eAAON,SAAP;AACH,OArBD,CAqBE,OAAOQ,KAAP,EAAc;AACZ,eAAO,EAAP;AACH;AACJ,KAzBe,CAzEkB;AAoGlC;AACAC,IAAAA,mBAAmB,EAAE9C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASa,IAAT,EAAc;AACxE,UAAI;AACA,YAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AACA,eAAOJ,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAP;AACH,OAHD,CAGE,OAAOY,KAAP,EAAc;AACZ,eAAO,EAAP;AACH;AACJ,KAPoB,CArGa;AA8GlCE,IAAAA,cAAc,EAAE/C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASa,IAAT,EAAc;AAC9D,aAAOA,IAAI,CAAClB,GAAL,CAAS,IAAT,CAAP;AACH,KAFe,CA9GkB;AAkHlCkC,IAAAA,mBAAmB,EAAEhD,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASa,IAAT,EAAc;AACxE,aAAOA,IAAI,CAAClB,GAAL,CAAS,IAAT,CAAP;AACH,KAFoB,CAlHa;AAsHlCmC,IAAAA,eAAe,EAAEjD,KAAK,CAACa,QAAN,CAAe,YAAf,EAA6B,eAA7B,EAA8C,YAAW;AACtE,UAAIqC,eAAe,GAAG,KAAKpC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D0B,MAAnF;AAAA,UACIO,OAAO,GAAG,KAAKrC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CADd;AAGA,UAAImC,eAAe,GAAGE,OAAO,CAAChC,GAAR,CAAY,UAASiC,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACtC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB;AAIA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AACI,UAAImC,eAAe,CAACL,MAAhB,GAAyBM,eAAzB,KAA6CX,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAA5F,CAAJ,EAAgH;AAC5GU,QAAAA,eAAe,CAACR,MAAhB,CAAuB,CAAvB,EAA0B,CAA1B;AACH;;AAEL,aAAOQ,eAAP;AACH,KAdgB,CAtHiB;AAsIlCI,IAAAA,iBAAiB,EAAErD,KAAK,CAACa,QAAN,CAAe,YAAf,EAA6B,eAA7B,EAA8C,YAAW;AACxE,UAAIqC,eAAe,GAAG,KAAKpC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D0B,MAAnF;AAAA,UACIO,OAAO,GAAG,KAAKrC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CADd;AAGA,UAAImC,eAAe,GAAGE,OAAO,CAAChC,GAAR,CAAY,UAASiC,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACtC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB;AAIA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AAEA,UAAIwC,SAAS,GAAG,EAAhB;;AAEA,UAAG,KAAKxC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAH,EAA0C;AACtC,YAAIyC,aAAa,GAAG,KAAKzC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,YAAI0C,WAAW,GAAG,CAACD,aAAD,CAAlB;AAEA,YAAIE,MAAM,GAAGR,eAAe,CAACL,MAAhB,GAAyB,CAAtC;AACAa,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAD,QAAAA,WAAW,GAAGA,WAAW,CAACI,MAAZ,CAAmBX,eAAe,CAACY,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAnB,CAAd;AAEA,YAAIK,OAAO,GAAG,EAAd;;AACA,aAAI,IAAIC,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,WAAW,CAACZ,MAAZ,GAAqB,CAA5C,EAA+CmB,GAAG,EAAlD,EAAsD;AAClDD,UAAAA,OAAO,CAACC,GAAD,CAAP,GAAe,CAACP,WAAW,CAACO,GAAD,CAAX,GAAmBP,WAAW,CAACO,GAAG,GAAG,CAAP,CAA/B,IAA4C,CAA3D;AACH;;AACDT,QAAAA,SAAS,GAAGQ,OAAZ;AACH,OAdD,MAcO;AAAE;AACL,YAAIP,aAAa,GAAG,KAAKzC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,YAAI2C,MAAM,GAAGR,eAAe,CAACL,MAAhB,GAAyB,CAAtC;AACAa,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAH,QAAAA,SAAS,GAAGU,CAAC,CAAC7C,GAAF,CAAM8B,eAAe,CAACY,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAN,EAA4C,UAASQ,CAAT,EAAYC,CAAZ,EAAe;AACnE,iBAAO,CAACD,CAAD,EAAIhB,eAAe,CAACY,KAAhB,CAAsBJ,MAAM,GAAG,CAA/B,EAAkCS,CAAlC,CAAJ,CAAP;AACD,SAFS,CAAZ;AAIAZ,QAAAA,SAAS,CAACZ,OAAV,CAAkBa,aAAlB;AACA,YAAIY,QAAQ,GAAG,EAAf;;AACA,aAAI,IAAIJ,GAAG,GAAG,CAAd,EAAgBA,GAAG,GAAGT,SAAS,CAACV,MAAhC,EAAwCmB,GAAG,EAA3C,EAA+C;AAC3CI,UAAAA,QAAQ,CAACxB,IAAT,CAAc,CAACW,SAAS,CAACS,GAAG,GAAG,CAAP,CAAT,GAAqBT,SAAS,CAACS,GAAD,CAA/B,IAAwC,CAAtD;AACH;;AACDT,QAAAA,SAAS,GAAGa,QAAZ;;AAEA,YAAI5B,SAAS,KAAK,uBAAlB,EAA2C;AACvCe,UAAAA,SAAS,CAACc,KAAV;AACAd,UAAAA,SAAS,CAACe,GAAV;AACH;AAEJ;;AAEDf,MAAAA,SAAS,CAACX,IAAV,CAAe,KAAK7B,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,IAAiD,IAAhE,EAjDwE,CAmDxE;;AAEA,aAAOwC,SAAP;AACH,KAtDkB,CAtIe;AA8LlCgB,IAAAA,iBAAiB,EAAEtE,KAAK,CAACa,QAAN,CAAe,YAAf,EAA6B,eAA7B,EAA8C,YAAW;AACxE,UAAIqC,eAAe,GAAG,KAAKpC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D0B,MAAnF;AAAA,UACIO,OAAO,GAAG,KAAKrC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CADd;AAGA,UAAImC,eAAe,GAAGE,OAAO,CAAChC,GAAR,CAAY,UAASiC,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACtC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB;AAIA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AAEA,UAAIwC,SAAS,GAAG,EAAhB;;AAEA,UAAG,KAAKxC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAH,EAA0C;AACtC,YAAIyC,aAAa,GAAG,KAAKzC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,YAAI0C,WAAW,GAAG,CAACD,aAAD,CAAlB;AAEA,YAAIE,MAAM,GAAGR,eAAe,CAACL,MAAhB,GAAyB,CAAtC;AACAa,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAD,QAAAA,WAAW,GAAGA,WAAW,CAACI,MAAZ,CAAmBX,eAAe,CAACY,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAnB,CAAd;AAEA,YAAIK,OAAO,GAAG,EAAd;;AACA,aAAI,IAAIC,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,WAAW,CAACZ,MAAZ,GAAqB,CAA5C,EAA+CmB,GAAG,EAAlD,EAAsD;AAClDD,UAAAA,OAAO,CAACC,GAAD,CAAP,GAAe,CAACP,WAAW,CAACO,GAAD,CAAX,GAAmBP,WAAW,CAACO,GAAG,GAAG,CAAP,CAA/B,IAA4C,CAA3D;AACH;;AACDT,QAAAA,SAAS,GAAGQ,OAAZ;AACH,OAdD,MAcO;AAEP,YAAIL,MAAM,GAAGR,eAAe,CAACL,MAAhB,GAAyB,CAAtC;AACAa,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAH,QAAAA,SAAS,GAAGU,CAAC,CAAC7C,GAAF,CAAM8B,eAAe,CAACY,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAN,EAA4C,UAASQ,CAAT,EAAYC,CAAZ,EAAe;AACnE,iBAAO,CAACD,CAAD,EAAIhB,eAAe,CAACY,KAAhB,CAAsBJ,MAAM,GAAG,CAA/B,EAAkCS,CAAlC,CAAJ,CAAP;AACD,SAFS,CAAZ;AAGIZ,QAAAA,SAAS,CAACc,KAAV;AACAd,QAAAA,SAAS,CAACe,GAAV;AACH;;AAEDf,MAAAA,SAAS,CAACX,IAAV,CAAe,KAAK7B,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,IAAiD,IAAhE;AAEA,aAAOwC,SAAP;AACH,KAzCkB,CA9Le;AAyOlC;AACAiB,IAAAA,kBAAkB,EAAEvE,KAAK,CAACa,QAAN,CAAe,iBAAf,EAAkC,YAAW;AAC7D,UAAIoC,eAAe,GAAGjD,KAAK,CAACwE,IAAN,CAAW,KAAK1D,GAAL,CAAS,iBAAT,CAAX,CAAtB;AAAA,UACIoC,eAAe,GAAG,KAAKpC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D0B,MADnF;AAAA,UAEI6B,YAAY,GAAG,EAFnB;AAKA,UAAIzD,IAAI,GAAG,KAAKF,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,CAAX;;AAEA,UAAI,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AACxE,YAAI,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAJ,EAA2C;AACvCmC,UAAAA,eAAe,CAACmB,KAAhB,CAAsB,CAAtB;AACA,cAAIM,SAAS,GAAGzB,eAAe,CAACL,MAAhB,GAAyB,CAAzC;;AACA,iBAAOK,eAAe,CAACL,MAAhB,GAAyB8B,SAAhC,EAA2C;AACvCzB,YAAAA,eAAe,CAACoB,GAAhB,CAAoBK,SAApB;AACH;;AACDzB,UAAAA,eAAe,CAACP,OAAhB,CAAwB,KAAK5B,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAAxB;AACH,SAPD,MAOO,CAAE;AAER;AACJ,OAXD,MAWO;AAAE;AACLmC,QAAAA,eAAe,CAACP,OAAhB,CAAwB,CAAxB;AACH;;AAED,WAAK,IAAIwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIjB,eAAe,CAACL,MAAhB,GAAyB,CAA9C,EAAiDsB,CAAC,EAAlD,EAAsD;AAClD,YAAIS,GAAG,GAAG,CAAC1B,eAAe,CAACiB,CAAD,CAAf,GAAqBjB,eAAe,CAACiB,CAAC,GAAG,CAAL,CAArC,IAAgD,CAA1D;AACAO,QAAAA,YAAY,CAAC9B,IAAb,CAAmB,CAACgC,GAAG,CAACC,OAAJ,CAAY,CAAZ,CAApB;AACH;;AAED,UAAG5D,IAAI,KAAK,QAAZ,EAAsB;AAClByD,QAAAA,YAAY,CAAChC,MAAb,CAAoB,CAApB,EAAsB,CAAtB,EADkB,CAElB;;AACAgC,QAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkB,CAAlB;AACA,YAAII,GAAG,GAAG,KAAK/D,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,QAA3B,CAAV;AACA,YAAI8B,MAAM,GAAG,KAAK9B,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,CAAb;AAEA,YAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AACA,YAAImC,eAAe,CAACL,MAAhB,GAAyBM,eAAzB,KAA6CX,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAA5F,CAAJ,EAAgH;AAC5G,cAAGK,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,CAAjC,EAAoC;AAChC6B,YAAAA,YAAY,CAAC9B,IAAb,CAAkBC,MAAlB;AACH,WAFD,MAEO;AACH6B,YAAAA,YAAY,CAAC9B,IAAb,CAAkBM,eAAe,CAACA,eAAe,CAACL,MAAhB,GAAyB,CAA1B,CAAjC;AACH;AACJ;AACJ,OA3C4D,CA4C7D;AACC;;;AAED,aAAO6B,YAAP;AACH,KAhDmB,CA1Oc;AA4RlCK,IAAAA,YAAY,EAAEC,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EA5RoB;AA8RlCC,IAAAA,mCAAmC,EAAEnF,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAArC,EAAmD,iBAAnD,EAAsE,oBAAtE,EAA4F,mBAA5F,EAAiH,mBAAjH,EAAsI,YAAW;AAClL,UAAIoC,eAAe,GAAG,KAAKnC,GAAL,CAAS,iBAAT,CAAtB;AACA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIyD,kBAAkB,GAAG,KAAKzD,GAAL,CAAS,oBAAT,CAAzB,CAHkL,CAKlL;;AAEA,UAAG,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,MAAmD,CAAtD,EAAyD;AAAC;AACtD,YAAG,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAH,EAA0C;AAAE;AACxC,cAAIyB,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,aAAzD,EAAwE;AACpEU,YAAAA,eAAe,GAAG,KAAKnC,GAAL,CAAS,mBAAT,CAAlB;AACH,WAFD,MAEO,IAAIyB,SAAS,KAAK,uBAAlB,EAA2C;AAC9CU,YAAAA,eAAe,GAAG,KAAKnC,GAAL,CAAS,mBAAT,CAAlB;AACH;AACJ,SAND,MAMO;AAAE;AACL,cAAIyB,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,aAAzD,EAAwE;AACpEU,YAAAA,eAAe,GAAG,KAAKnC,GAAL,CAAS,mBAAT,CAAlB;AACH,WAFD,MAEO,IAAIyB,SAAS,KAAK,uBAAlB,EAA2C;AAC9CU,YAAAA,eAAe,GAAG,KAAKnC,GAAL,CAAS,mBAAT,CAAlB;AACH;AACJ;AACJ;;AAED,UAAI,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AACxE,YAAGyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAAxF,EAAuG;AACnG,iBAAOgC,kBAAkB,CAACpD,GAAnB,CAAuB,UAASiE,cAAT,EAAwB;AAClD,mBAAO;AACHrE,cAAAA,GAAG,EAAEqE,cADF;AAEHpE,cAAAA,IAAI,EAAE,iBAFH;AAGHE,cAAAA,MAAM,EAAE,CACJkE,cADI;AAHL,aAAP;AAOH,WARM,CAAP;AAUH;AACJ;;AAED,aAAOnC,eAAe,CAAC9B,GAAhB,CAAoB,UAASiE,cAAT,EAAwB;AAC/C,eAAO;AACHrE,UAAAA,GAAG,EAAEqE,cADF;AAEHpE,UAAAA,IAAI,EAAE,iBAFH;AAGHE,UAAAA,MAAM,EAAE,CACJkE,cADI;AAHL,SAAP;AAOH,OARM,CAAP;AASH,KA/CoC,CA9RH;AA+UlCC,IAAAA,2BAA2B,EAAErF,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzE,UAAI0B,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAEA,UAAIyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAAnD,EAAkE;AAC9D,eAAO,EAAP;AACH,OAFD,MAEO,IAAG,CAACA,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,uBAAtD,KAAkF,KAAKzB,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAArF,EAA4H;AAC/H,eAAO,EAAP;AACH;;AACD,aAAO,CAAP;AACH,KAT4B,CA/UK;AA0VlCwE,IAAAA,kBAAkB,EAAEtF,KAAK,CAACa,QAAN,CAAe,gBAAf,EAAiC,gBAAjC,EAAmD,6BAAnD,EAAkF,2BAAlF,EAA+G,YAAW;AAC1I,YAAM0E,KAAK,GAAG,IAAd;AAAA,YACI3E,2BAA2B,GAAG,KAAKE,GAAL,CAAS,6BAAT,CADlC;AAAA,YAEIQ,yBAAyB,GAAG,KAAKR,GAAL,CAAS,2BAAT,CAFhC;AAAA,YAGIiB,cAAc,GAAG,KAAKjB,GAAL,CAAS,gBAAT,CAHrB;AAAA,YAIIiC,cAAc,GAAG,KAAKjC,GAAL,CAAS,gBAAT,CAJrB;AAAA,YAKImC,eAAe,GAAG,KAAKnC,GAAL,CAAS,iBAAT,CALtB;AAAA,YAMIuC,iBAAiB,GAAG,KAAKvC,GAAL,CAAS,mBAAT,CANxB;AAAA,YAOIwD,iBAAiB,GAAG,KAAKxD,GAAL,CAAS,mBAAT,CAPxB;AAAA,YAQIqE,mCAAmC,GAAG,KAAKrE,GAAL,CAAS,qCAAT,CAR1C;AAAA,YASIyD,kBAAkB,GAAG,KAAKzD,GAAL,CAAS,oBAAT,CATzB;;AAWA,UAAIwE,kBAAkB,GAAG,EAAzB;AAEA,UAAI/C,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAGA,UAAIyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAAnD,EAAkE;AAC9D+C,QAAAA,kBAAkB,GAAGvD,cAAc,CAACZ,GAAf,CAAmB,UAASqE,SAAT,EAAoBC,cAApB,EAAmC;AACvE,iBAAO;AACH1E,YAAAA,GAAG,EAAE0E,cADF;AAEH;AACAzE,YAAAA,IAAI,EAAE,OAHH;AAIHQ,YAAAA,SAAS,EAAEuB,cAAc,CAAC0C,cAAD,CAJtB;AAKHvE,YAAAA,MAAM,EAAEsE,SAAS,CAACtE,MAAV,CAAiBC,GAAjB,CAAqB,UAASuE,SAAT,EAAoBC,cAApB,EAAoC;AAC7D,qBAAO,CACHpB,kBAAkB,CAACoB,cAAD,CADf,EAEHD,SAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,EAalB9D,MAbkB,CAaX,WAbW,CAArB;AAcH,OAfD,MAeO;AACH0D,QAAAA,kBAAkB,GAAGvD,cAAc,CAACZ,GAAf,CAAmB,UAASqE,SAAT,EAAoBC,cAApB,EAAmC;AACvE,iBAAO;AACH1E,YAAAA,GAAG,EAAE0E,cADF;AAEH;AACAzE,YAAAA,IAAI,EAAE,OAHH;AAIHQ,YAAAA,SAAS,EAAEuB,cAAc,CAAC0C,cAAD,CAJtB;AAKHvE,YAAAA,MAAM,EAAEsE,SAAS,CAACtE,MAAV,CAAiBC,GAAjB,CAAqB,UAASuE,SAAT,EAAoBC,cAApB,EAAoC;AAC7D,qBAAO,CACH1C,eAAe,CAAC0C,cAAD,CADZ,EAEHD,SAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,EAalB9D,MAbkB,CAaX,WAbW,CAArB;AAcH,OA/CyI,CAiD1I;;;AACA,UAAIhB,2BAAJ,EAAiC;AAC7B0E,QAAAA,kBAAkB,GAAGA,kBAAkB,CAAC1B,MAAnB,CAA0BhD,2BAA1B,CAArB;AACH;;AACD,UAAIU,yBAAJ,EAA+B;AAC3BgE,QAAAA,kBAAkB,GAAGA,kBAAkB,CAAC1B,MAAnB,CAA0BtC,yBAA1B,CAArB;AACH;;AACD,UAAI6D,mCAAJ,EAAyC;AACrCG,QAAAA,kBAAkB,GAAGA,kBAAkB,CAAC1B,MAAnB,CAA0BuB,mCAA1B,CAArB;AACH;;AAED,aAAOG,kBAAP;AACH,KA7DmB,CA1Vc;AAyZlCM,IAAAA,uBAAuB,EAAE5F,KAAK,CAACa,QAAN,CAAe,qBAAf,EAAsC,qBAAtC,EAA6D,YAAW;AAC7F,YAAM0E,KAAK,GAAG,IAAd;AAAA,YACIzC,mBAAmB,GAAG,KAAKhC,GAAL,CAAS,qBAAT,CAD1B;AAAA,YAEIkC,mBAAmB,GAAG,KAAKlC,GAAL,CAAS,qBAAT,CAF1B;;AAKA,UAAImC,eAAe,GAAG,KAAKnC,GAAL,CAAS,iBAAT,CAAtB;AAEA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIE,IAAI,GAAG,KAAKF,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,CAAX;;AAEA,UAAGE,IAAI,KAAK,QAAZ,EAAsB;AAClB,YAAGuB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAAxF,EAAuG;AACnG;AACAO,UAAAA,mBAAmB,CAAC+C,OAApB,CAA4BC,OAAO,IAAIA,OAAO,CAAC5E,MAAR,CAAe,CAAf,IAAkB,CAAzD;AACH;AACJ;;AAGD,UAAI6E,EAAE,GAAG9C,eAAe,CAAC9B,GAAhB,CAAoB,UAAS6E,aAAT,EAAwBP,cAAxB,EAAuC;AAEhE,eAAO;AACH1E,UAAAA,GAAG,EAAEiF,aADF;AAEH;AACAhF,UAAAA,IAAI,EAAE,OAHH;AAIHE,UAAAA,MAAM,EAAE4B,mBAAmB,CAAC3B,GAApB,CAAwB,UAASuE,SAAT,EAAoBC,cAApB,EAAoC;AAChE,mBAAO,CACH,qBAAQ3C,mBAAmB,CAAC2C,cAAD,CAA3B,EAA8CtE,OAA9C,EADG,EAEHqE,SAAS,CAACxE,MAAV,CAAiBuE,cAAjB,CAFG,CAAP;AAIH,WALO;AAJL,SAAP;AAWH,OAbQ,EAaN7D,MAbM,CAaC,WAbD,CAAT,CAnB6F,CAiC7F;;AACA,aAAOmE,EAAP;AACH,KAnCwB,CAzZS;AA8blCE,IAAAA,QAAQ,EAAEjG,KAAK,CAACa,QAAN,CAAe,gBAAf,EAAiC,YAAW;AAClD,aAAO,KAAKC,GAAL,CAAS,gBAAT,EAA2B8B,MAAlC;AACH,KAFS,CA9bwB;AAkclCsD,IAAAA,aAAa,EAAElG,KAAK,CAACa,QAAN,CAAe,UAAf,EAA2B,YAAW;AACjD,aAAQ,SAAS,KAAKC,GAAL,CAAS,UAAT,IAAuB,CAAhC,CAAD,GAAwC,IAAI,EAAnD;AACH,KAFc,CAlcmB;AAsclCqF,IAAAA,kBAAkB,EAAEnG,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,aAAO,KAAKC,GAAL,CAAS,eAAT,EAA0BsF,KAA1B,CAAgCC,UAAvC;AACH,KAFmB,CAtcc;AA0clCC,IAAAA,WAAW,EAAEtG,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzD,UAAIsF,kBAAkB,GAAG,KAAKrF,GAAL,CAAS,oBAAT,CAAzB;AACA,UAAIyF,OAAO,GAAG,KAAKzF,GAAL,CAAS,OAAT,EAAkB0F,WAAlB,CAA8B,aAA9B,EAA6C;AAACC,QAAAA,KAAK,EAAEN,kBAAkB,CAACO,MAAnB,CAA0B,CAA1B,EAA6BP,kBAAkB,CAACQ,WAAnB,CAA+B,GAA/B,CAA7B,EAAkEC,OAAlE,CAA0E,GAA1E,EAA8E,GAA9E;AAAR,OAA7C,CAAd;AACA,aAAOL,OAAP;AACH,KAJY,CA1cqB;AAgdlCM,IAAAA,gBAAgB,EAAE,YAAW;AACzB,YAAMtB,KAAK,GAAG,IAAd;AAAA,YACID,kBAAkB,GAAGC,KAAK,CAACzE,GAAN,CAAU,oBAAV,CADzB;AAAA,YAEI8E,uBAAuB,GAAGL,KAAK,CAACzE,GAAN,CAAU,yBAAV,CAF9B;AAAA,YAGIuE,2BAA2B,GAAGE,KAAK,CAACzE,GAAN,CAAU,6BAAV,CAHlC;AAAA,YAIIL,yBAAyB,GAAG8E,KAAK,CAACzE,GAAN,CAAU,2BAAV,CAJhC;AAAA,YAKIJ,cAAc,GAAG6E,KAAK,CAACzE,GAAN,CAAU,gBAAV,CALrB;AAAA,YAMIH,4BAA4B,GAAG4E,KAAK,CAACzE,GAAN,CAAU,8BAAV,CANnC;;AASA,UAAIS,kBAAkB,GAAG,KAAKT,GAAL,CAAS,oBAAT,CAAzB;AAAA,UACIe,gBAAgB,GAAG,KAAKf,GAAL,CAAS,kBAAT,CADvB;AAAA,UAEIgG,YAAY,GAAG/B,EAAE,CAACgC,MAAH,CAAU,MAAMxB,KAAK,CAACzE,GAAN,CAAU,SAAV,CAAN,GAA6B,kCAAvC,CAFnB;AAAA,UAGIkG,iBAAiB,GAAGjC,EAAE,CAACgC,MAAH,CAAU,MAAMxB,KAAK,CAACzE,GAAN,CAAU,SAAV,CAAN,GAA6B,wCAAvC,CAHxB;AAAA,UAIIwF,WAAW,GAAG,KAAKxF,GAAL,CAAS,aAAT,CAJlB;AAAA,UAKImG,gBAAgB,GAAG,CAACX,WAAD,CALvB,CAVyB,CAkBzB;;AACAtG,MAAAA,KAAK,CAACkH,IAAN,CAAWC,OAAX,CAAmBC,GAAnB,CAAuBH,gBAAvB,EAAyCI,IAAzC,CAA8C,UAASC,OAAT,EAAiB;AAC3D;AACA,YAAIb,KAAK,GAAG,EAAZ;;AACA,YAAIH,WAAJ,EAAiB;AACbA,UAAAA,WAAW,GAAGA,WAAd,CADa,CACa;AAE1B;;AACA,cAAItF,IAAI,GAAGuE,KAAK,CAACgC,UAAN,CAAiBzG,GAAjB,CAAqB,kBAArB,EAAyC0G,QAAzC,EAAX;;AACA,cAAInF,SAAS,GAAGkD,KAAK,CAACzE,GAAN,CAAU,WAAV,CAAhB;;AACAuB,UAAAA,SAAS,CAACwD,OAAV,CAAkB,UAAS7D,IAAT,EAAe;AAC7B,gBAAGA,IAAI,CAACyF,EAAL,KAAYzG,IAAf,EAAqB;AACjBqB,cAAAA,SAAS,GAAGL,IAAZ;AACA;AACH;AACJ,WALD;AAOA,cAAI0F,QAAQ,GAAG,EAAf;AACA,cAAIC,KAAK,GAAGtF,SAAS,CAACvB,GAAV,CAAc,OAAd,CAAZ;;AACA,kBAAOwF,WAAW,CAACxF,GAAZ,CAAgB,OAAhB,CAAP;AACI,iBAAK,cAAL;AACI4G,cAAAA,QAAQ,GAAGrF,SAAS,CAACvB,GAAV,CAAc,0BAAd,CAAX;AACA;;AACJ,iBAAK,UAAL;AACI4G,cAAAA,QAAQ,GAAGrF,SAAS,CAACvB,GAAV,CAAc,sBAAd,CAAX;AACA6G,cAAAA,KAAK,IAAI,MAAT;AACA;;AACJ,iBAAK,cAAL;AACID,cAAAA,QAAQ,GAAGrF,SAAS,CAACvB,GAAV,CAAc,0BAAd,CAAX;AACA6G,cAAAA,KAAK,IAAI,OAAT;AACA;;AACJ,iBAAK,QAAL;AACID,cAAAA,QAAQ,GAAGrF,SAAS,CAACvB,GAAV,CAAc,oBAAd,CAAX;AACA6G,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,aAAL;AACID,cAAAA,QAAQ,GAAGrF,SAAS,CAACvB,GAAV,CAAc,wBAAd,CAAX;AACA6G,cAAAA,KAAK,GAAG,OAAR;AACA;;AACJ,iBAAK,MAAL;AACID,cAAAA,QAAQ,GAAGrF,SAAS,CAACvB,GAAV,CAAc,kBAAd,CAAX;AACA;;AACJ;AACI4G,cAAAA,QAAQ,GAAG,SAAX;AAxBR;;AA2BA,cAAGpB,WAAW,CAACxF,GAAZ,CAAgB,OAAhB,MAA2B,MAA9B,EAAsC;AAClC2F,YAAAA,KAAK,GAAGiB,QAAQ,GAAG,OAAnB;AAA2B;AAE9B,WAHD,MAGO;AACHjB,YAAAA,KAAK,GAAGiB,QAAQ,GAAG,IAAX,GAAkBC,KAAlB,GAA0B,GAAlC;AAAsC;AACzC;AACJ;;AAED,YAAIC,SAAS,GAAGC,EAAE,CAACC,MAAH,CAAUC,6BAAV,GACXC,MADW,CACJ;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADI,EAEXC,uBAFW,CAEa,KAFb,EAGXC,CAHW,CAGT,UAASC,CAAT,EAAY;AACX;AACA,iBAAOA,CAAC,CAAC,CAAD,CAAR;AACH,SANW,EAOXC,CAPW,CAOT,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAPnB,EAQXE,cARW,CAQI,UAASF,CAAT,EAAY;AACxB;AACA;AACA,iBAAOA,CAAC,CAAC,CAAD,CAAR;AACH,SAZW,EAaXtH,KAbW,CAaL8D,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAbK,EAcXwD,QAdW,CAcF,GAdE,EAeXC,SAfW,CAeD,IAfC,EAgBXC,UAhBW,CAgBA,IAhBA,EAiBXnI,yBAjBW,CAiBeA,yBAjBf,EAkBXoI,SAlBW,CAkBD,IAlBC,EAmBXC,MAnBW,CAmBJ,gBAnBI,CAAhB;AAsBA,YAAIlG,MAAM,GAAG,CAAb;;AACA,YAAI;AACAA,UAAAA,MAAM,GAAG2C,KAAK,CAACgC,UAAN,CAAiBzG,GAAjB,CAAqB,kBAArB,CAAT;;AACA,cAAIE,IAAI,GAAGuE,KAAK,CAACgC,UAAN,CAAiBzG,GAAjB,CAAqB,gBAArB,CAAX;AACH,SAHD,CAGE,OAAOiI,EAAP,EAAW,CAEZ;;AAED,YAAGnG,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,CAAjC,EAAoC;AAChCA,UAAAA,MAAM,GAAG,CAAT;AACH;;AAEDgF,QAAAA,SAAS,CAACoB,MAAV,CAAiB,CAAC,CAAD,EAAIpG,MAAJ,CAAjB;AACZ;AACA;AACA;AACA;AACY;AACA;;AACAiF,QAAAA,EAAE,CAACoB,QAAH,CAAY,YAAW;AACnBrB,UAAAA,SAAS,CAACsB,KAAV,CACKC,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB;AAGAxB,UAAAA,SAAS,CAACyB,KAAV,CACKC,SADL,CACe7C,KADf,EAEK8C,UAFL,CAEgBxE,EAAE,CAACtD,MAAH,CAAU,KAAV,CAFhB;AAIAmG,UAAAA,SAAS,CAAC4B,SAAV,CACKL,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGKK,KAHL,CAGW,CAHX,EAIKF,UAJL,CAIgB,UAAShB,CAAT,EAAY;AACpB,gBAAImB,2BAA2B,GAAG9D,uBAAuB,CAAC,CAAD,CAAvB,CAA2B1E,MAA3B,CAAkC0B,MAApE,CADoB,CAEpB;AACA;AACA;AACA;;AACA,gBAAIgD,uBAAuB,CAAChD,MAAxB,GAAiC,CAArC,EAAwC;AACpC8G,cAAAA,2BAA2B,GAAG9D,uBAAuB,CAAC,CAAD,CAAvB,CAA2B1E,MAA3B,CAAkC0B,MAAhE;AACA,qBAAOiF,EAAE,CAAC8B,KAAH,CAASC,sBAAT,CAAiChE,uBAAuB,CAAC,CAAD,CAAvB,CAA2B1E,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0E0E,uBAAuB,CAAC,CAAD,CAAvB,CAA2B1E,MAA3B,CAAkCwI,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAIG,IAAJ,CAAStB,CAAT,CAA/I,CAAP;AACH,aAHD,MAGO;AACH,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WAhBL;AAkBAX,UAAAA,SAAS,CAACkC,KAAV,CACK9B,MADL,CACY;AAACC,YAAAA,GAAG,EAAE,CAAN;AAASC,YAAAA,KAAK,EAAE,CAAhB;AAAmBC,YAAAA,MAAM,EAAE,CAA3B;AAA8BC,YAAAA,IAAI,EAAE;AAApC,WADZ,EAEK2B,IAFL,CAEU,EAFV,EAGKC,wBAHL,CAG8B,EAH9B,EAIKtJ,cAJL,CAIoBA,cAJpB,EAKKC,4BALL,CAKkCA,4BALlC,EAMKsJ,yBANL,CAM+B,KAN/B,EAOKC,SAPL,CAOe,CAPf,EA1BmB,CAmCnB;;AAEApD,UAAAA,YAAY,CAACqD,KAAb,CAAmB7E,kBAAnB,EAAuC8E,IAAvC,CAA4CxC,SAA5C;AAEAA,UAAAA,SAAS,CAACyC,QAAV,CAAmBC,EAAnB,CAAsB,YAAtB,EAAoC,UAAUC,WAAV,EAAuB;AACvDhF,YAAAA,KAAK,CAACiF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACAhF,YAAAA,KAAK,CAACiF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AACA,gBAAIhK,cAAc,GAAG,qBAAOgF,KAAK,CAACzE,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCW,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAIjB,YAAY,GAAG,qBAAO+E,KAAK,CAACzE,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCW,MAAvC,CAA8C,yBAA9C,CAAnB;AAEAmG,YAAAA,SAAS,CAAC6C,OAAV,CAAkBC,MAAlB,CAAyB,IAAzB,EANuD,CAQvD;;AACAnF,YAAAA,KAAK,CAACoF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAACrK,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WAVF;AAYAoH,UAAAA,SAAS,CAACyC,QAAV,CAAmBC,EAAnB,CAAsB,OAAtB,EAA+B,UAAUC,WAAV,EAAuB;AAClD,gBAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B;AAC3B;AACAC,cAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoCR,WAAW,CAACM,MAAhD;AACH;AACH,WALF;;AAOA,mBAASG,kBAAT,CAA4BC,cAA5B,EAA4C;AAExC,gBAAI,OAAOA,cAAP,KAA0B,WAA9B,EAA2C;AACvC,qBAAO,KAAP;AACH;;AAED,gBAAIC,WAAW,GAAG,EAAlB;AAAA,gBACIC,YAAY,GAAG,EADnB;AAAA,gBAEIzJ,SAAS,GAAG,IAFhB;;AAKA,gBAAI,OAAOuJ,cAAP,KAA2B,QAA/B,EAAyC;AACrC,kBAAIA,cAAc,CAACjK,IAAf,KAAwB,OAA5B,EAAqC;AACjCmK,gBAAAA,YAAY,GAAG,OAAf;AACAzJ,gBAAAA,SAAS,GAAG,sCAAsCuJ,cAAc,CAACnJ,MAArD,GAA8D,SAA1E;AACH,eAHD,MAGO,IAAImJ,cAAc,CAACjK,IAAf,KAAwB,SAA5B,EAAuC;AAC1CmK,gBAAAA,YAAY,GAAG,SAAf;AACAzJ,gBAAAA,SAAS,GAAG,gDAAgDuJ,cAAc,CAACtJ,eAA/D,GAAiF,SAA7F;AACH,eAHM,MAGA,IAAIsJ,cAAc,CAACjK,IAAf,KAAwB,OAA5B,EAAqC;AACxCmK,gBAAAA,YAAY,GAAG,OAAf;AACH;;AACDD,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACzJ,SAAvC,GAAmD,SAAnD,GACA,iCADA,GACoCyJ,cAAc,CAACjK,IADnD,GAC0D,SAD1D,GAEAU,SAFd;AAIH,aAdD,MAcO;AACHwJ,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACzJ,SAAvC,GAAmD,SAAjE;AACH;;AAED,mBAAO;AACH2J,cAAAA,YAAY,EAAEA,YADX;AAEHD,cAAAA,WAAW,EAAEA;AAFV,aAAP;AAKH;;AAEDtD,UAAAA,SAAS,CAACkC,KAAV,CAAgBO,QAAhB,CAAyBC,EAAzB,CAA4B,gBAA5B,EAA8C,UAAUc,cAAV,EAA0B;AACpE;AACA,gBAAK7J,kBAAkB,CAACqB,MAAnB,IAA6BwI,cAAc,CAACC,MAAf,GAAwB,CAAC,CAA3D,EAA+D;AAC3DzD,cAAAA,SAAS,CAACkC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAACzJ,kBAAkB,CAAC6J,cAAc,CAACC,MAAhB,CAAnB,CAAnE;AACH;;AACD,gBAAKxJ,gBAAgB,CAACe,MAAjB,IAA2BwI,cAAc,CAACG,MAAf,GAAwB,CAAC,CAAzD,EAA6D;AACzD3D,cAAAA,SAAS,CAACkC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAACnJ,gBAAgB,CAACuJ,cAAc,CAACG,MAAhB,CAAjB,CAAnE;AACH;;AAED,gBAAI,CAAChK,kBAAkB,CAACqB,MAApB,IAA8B,CAACf,gBAAgB,CAACe,MAApD,EAA4D;AACxD,kBAAI4I,UAAU,GAAGJ,cAAc,CAACC,MAAhC;;AACA,kBAAIG,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGJ,cAAc,CAACG,MAA5B;AACH;;AAED,kBAAIE,oBAAoB,GAAGlK,kBAAkB,CAACiK,UAAD,CAA7C;;AACA,kBAAI,CAACC,oBAAL,EAA2B;AACvBA,gBAAAA,oBAAoB,GAAG5J,gBAAgB,CAAC2J,UAAD,CAAvC;AACH;;AACD5D,cAAAA,SAAS,CAACkC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAACS,oBAAD,CAAnE;AACH;AACJ,WArBD,EA9FmB,CAqHnB;;AACA5D,UAAAA,EAAE,CAAC8B,KAAH,CAAS+B,YAAT,CAAsB9D,SAAS,CAAC+D,MAAhC;AAEA/D,UAAAA,SAAS,CAACyC,QAAV,CAAmBC,EAAnB,CAAsB,aAAtB,EAAqC,UAASsB,CAAT,EAAY;AAAE/D,YAAAA,EAAE,CAACgE,GAAH,CAAO,YAAP,EAAqBC,IAAI,CAACC,SAAL,CAAeH,CAAf,CAArB;AAA0C,WAA7F;AACAhE,UAAAA,SAAS,CAACoE,KAAV,CAAgB3B,QAAhB,CAAyBC,EAAzB,CAA4B,QAA5B,EAAsC,UAAS0B,KAAT,EAAe;AACjDnE,YAAAA,EAAE,CAACgE,GAAH,CAAO,OAAP,EAAgBC,IAAI,CAACC,SAAL,CAAeC,KAAf,CAAhB;AACH,WAFD;AAIA,iBAAOpE,SAAP;AACH,SA9HD,EA9F2D,CA8N3D;;AACA,YAAIkD,cAAc,GAAGjD,EAAE,CAACC,MAAH,CAAUmE,KAAV,CAAgBpE,EAAE,CAACC,MAAH,CAAUoE,IAAV,EAAhB,EACjBlE,MADiB,CACV;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADU,EAEhBE,CAFgB,CAEd,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAFd,EAGhBC,CAHgB,CAGd,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHd,EAIhBtH,KAJgB,CAIV8D,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAJU,EAKhBiH,YALgB,CAKH,KALG,EAMhBC,mBANgB,CAMI,IANJ,EAOhBvD,SAPgB,CAON,IAPM,EAQhBwD,SARgB,CAQN,KARM,CAArB;AAYAxE,QAAAA,EAAE,CAACoB,QAAH,CAAY,YAAW;AAEnB6B,UAAAA,cAAc,CAAC5B,KAAf,CACKE,UADL,CACgB,KADhB,EAEKG,UAFL,CAEgB,UAAShB,CAAT,EAAY;AACpB,gBAAI3C,uBAAuB,CAAChD,MAAxB,GAAiC,CAArC,EAAwC;AACpC,kBAAI8G,2BAA2B,GAAG9D,uBAAuB,CAAC,CAAD,CAAvB,CAA2B1E,MAA3B,CAAkC0B,MAApE;AACA,qBAAOiF,EAAE,CAAC8B,KAAH,CAASC,sBAAT,CAAiChE,uBAAuB,CAAC,CAAD,CAAvB,CAA2B1E,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0E0E,uBAAuB,CAAC,CAAD,CAAvB,CAA2B1E,MAA3B,CAAkCwI,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAIG,IAAJ,CAAStB,CAAT,CAA/I,CAAP;AACH,aAHD,MAGO;AACH,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WATL;AAWAuC,UAAAA,cAAc,CAACzB,KAAf,CAAqBE,UAArB,CAAgCxE,EAAE,CAACtD,MAAH,CAAU,KAAV,CAAhC;AAEAuF,UAAAA,iBAAiB,CAACmD,KAAlB,CAAwBvE,uBAAxB,EAAiDwE,IAAjD,CAAsDU,cAAtD;AAGAA,UAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,YAA3B,EAAyC,UAAUC,WAAV,EAAuB;AAC5DhF,YAAAA,KAAK,CAACiF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACAhF,YAAAA,KAAK,CAACiF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AAEA,gBAAIhK,cAAc,GAAG,qBAAOgF,KAAK,CAACzE,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCW,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAIjB,YAAY,GAAG,qBAAO+E,KAAK,CAACzE,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCW,MAAvC,CAA8C,yBAA9C,CAAnB,CAL4D,CAO5D;;AACA8D,YAAAA,KAAK,CAACoF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAACrK,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WATF;AAWAsK,UAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,OAA3B,EAAoC,UAAUC,WAAV,EAAuB;AACvD,gBAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B,CAC3B;AACH;AACH,WAJF,EA7BmB,CAmCnB;;AACAhD,UAAAA,EAAE,CAAC8B,KAAH,CAAS+B,YAAT,CAAsBZ,cAAc,CAACa,MAArC,EApCmB,CAsCnB;;AACA,cAAIpL,cAAc,GAAG,qBAAOgF,KAAK,CAACoF,KAAN,CAAY2B,cAAZ,CAA2B,iBAA3B,CAAP,EAAsDjL,OAAtD,EAArB;AACA,cAAIb,YAAY,GAAG,qBAAO+E,KAAK,CAACoF,KAAN,CAAY2B,cAAZ,CAA2B,eAA3B,CAAP,EAAoDjL,OAApD,EAAnB;;AACA,cAAId,cAAc,IAAIC,YAAtB,EAAoC;AAChCsK,YAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoC,CAACxK,cAAD,EAAiBC,YAAjB,CAApC;AACH;;AAED,iBAAOsK,cAAP;AACH,SA9CD;AAgDH,OA3RD;AA6RH;AAhwBiC,GAAvB,C;;;;;;;;;;;;;ACDf;iBAEeyB,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAElCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF2B;AAGlCC,IAAAA,OAAO,EAAE,gBAHyB;AAIlCC,IAAAA,cAAc,EAAE,IAJkB;AAKlCC,IAAAA,YAAY,EAAE,IALoB;AAMlCC,IAAAA,cAAc,EAAE,IANkB;AAOlCC,IAAAA,4BAA4B,EAAE,GAPI;AAQlCC,IAAAA,SAAS,EAAC,IARwB;;AASlCC,IAAAA,IAAI,GAAG;AACH,WAAKC,MAAL,CAAY,GAAGC,SAAf;;AACA,YAAMC,WAAW,GAAG,IAAIC,eAAJ,CAAoBC,MAAM,CAACC,QAAP,CAAgBC,MAApC,CAApB;AACA,YAAMC,cAAc,GAAGL,WAAW,CAACM,GAAZ,CAAgB,mBAAhB,CAAvB;;AACA,UAAGD,cAAH,EAAkB;AACd,aAAKE,GAAL,CAAS,WAAT,EAAsBF,cAAtB;AACH;AACJ,KAhBiC;;AAkBlCG,IAAAA,2BAA2B,EAAEvB,KAAK,CAACwB,QAAN,CAAe,eAAf,EAAgC,YAAW;AACpE,UAAK,KAAKH,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,CAAC;AACJI,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKP,GAAL,CAAS,eAAT,EAA0BQ,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AAClD;AACA,mBAAO,CACH,qBAAQA,KAAK,CAACT,GAAN,CAAU,WAAV,CAAR,EAAiCU,OAAjC,EADG,EAEHD,KAAK,CAACT,GAAN,CAAU,MAAV,IAAqBS,KAAK,CAACT,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WANO;AAJJ,SAAD,CAAP;AAYH;;AACD,aAAO,KAAP;AACH,KAhB4B,CAlBK;AAoClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEAW,IAAAA,yBAAyB,EAAEhC,KAAK,CAACwB,QAAN,CAAe,aAAf,EAA8B,YAAW;AAChE,UAAK,KAAKH,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,CAAC;AACJI,UAAAA,GAAG,EAAE,OADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKP,GAAL,CAAS,aAAT,EAAwBQ,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAChD;AACA,mBAAO,CACH,qBAAQA,KAAK,CAACT,GAAN,CAAU,WAAV,CAAR,EAAiCU,OAAjC,EADG,EAEHD,KAAK,CAACT,GAAN,CAAU,MAAV,IAAqBS,KAAK,CAACT,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WANO;AAJJ,SAAD,CAAP;AAYH;;AACD,aAAO,KAAP;AACH,KAhB0B,CAxDO;AA0ElCY,IAAAA,kBAAkB,EAAEjC,KAAK,CAACwB,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,UAAIU,sBAAsB,GAAG,KAAKb,GAAL,CAAS,eAAT,CAA7B;;AACA,UAAKa,sBAAL,EAA8B;AAC1B,eAAO,KAAKb,GAAL,CAAS,eAAT,EAA0BQ,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AACjD,iBAAO;AACHJ,YAAAA,IAAI,EAAE,SADH;AAEHS,YAAAA,IAAI,EAAEL,KAAK,CAACT,GAAN,CAAU,WAAV,CAFH;AAGHe,YAAAA,SAAS,EAAE,qBAAQN,KAAK,CAACT,GAAN,CAAU,WAAV,CAAR,EAAiCgB,MAAjC,CAAwC,uBAAxC,CAHR;AAIH;AACAC,YAAAA,SAAS,EAAER,KAAK,CAACT,GAAN,CAAU,MAAV,IAAqBS,KAAK,CAACT,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAL7D;AAMHkB,YAAAA,eAAe,EAAET,KAAK,CAACT,GAAN,CAAU,iBAAV,CANd;AAOHH,YAAAA,QAAQ,EAAEY,KAAK,CAACT,GAAN,CAAU,UAAV;AAPP,WAAP;AASH,SAVM,EAUJmB,MAVI,CAUG,MAVH,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAhBmB,CA1Ec;AA4FlCC,IAAAA,gBAAgB,EAAEzC,KAAK,CAACwB,QAAN,CAAe,aAAf,EAA8B,YAAW;AACvD,UAAIkB,OAAO,GAAG,IAAd;AACA,UAAIC,WAAW,GAAG,KAAKtB,GAAL,CAAS,aAAT,CAAlB;;AACA,UAAKsB,WAAL,EAAmB;AACf,YAAIC,QAAQ,GAAG,KAAKvB,GAAL,CAAS,aAAT,EAAwBQ,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AACvD,cAAIe,WAAW,GAAGf,KAAK,CAACT,GAAN,CAAU,WAAV,CAAlB;AACA,cAAIyB,gBAAgB,GAAG,qBAAQD,WAAR,EAAsBR,MAAtB,CAA6B,uBAA7B,CAAvB;AACA,cAAIU,gBAAgB,GAAGjB,KAAK,CAACT,GAAN,CAAU,MAAV,IAAqBS,KAAK,CAACT,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAA5E;AACA,cAAI2B,aAAa,GAAGlB,KAAK,CAACT,GAAN,CAAU,QAAV,CAApB;AACA,cAAI4B,eAAe,GAAGnB,KAAK,CAACT,GAAN,CAAU,UAAV,CAAtB,CALuD,CAMvD;;AACAqB,UAAAA,OAAO,GAAG;AACNhB,YAAAA,IAAI,EAAE,OADA;AAENS,YAAAA,IAAI,EAAEU,WAFA;AAGNT,YAAAA,SAAS,EAAEU,gBAHL;AAINR,YAAAA,SAAS,EAAES,gBAJL;AAKNG,YAAAA,MAAM,EAAEF,aALF;AAMN9B,YAAAA,QAAQ,EAAE+B;AANJ,WAAV,CAPuD,CAevD;;AACA,iBAAOP,OAAP;AACH,SAjBc,EAiBZF,MAjBY,CAiBL,MAjBK,CAAf,CADe,CAmBf;;AACA,eAAOI,QAAP;AACH;;AACD,aAAO,KAAP;AACH,KA1BiB,CA5FgB;AAwHlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEAO,IAAAA,cAAc,EAAEnD,KAAK,CAACwB,QAAN,CAAeK,GAAf,CAAmB,cAAnB,EAAmC,UAASuB,IAAT,EAAc;AAC7D,UAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AAEA,UAAIC,SAAS,GAAGL,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAhB;AAEA,aAAOI,SAAP;AACH,KANe,CA1IkB;AAkJlCE,IAAAA,cAAc,EAAE3D,KAAK,CAACwB,QAAN,CAAeK,GAAf,CAAmB,eAAnB,EAAoC,UAASuB,IAAT,EAAc;AAC9D,UAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB,CAD8D,CAG9D;;AAEA,UAAIC,SAAS,GAAGL,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAhB;AAEA,UAAIO,SAAS,GAAG,KAAKvC,GAAL,CAAS,oBAAT,CAAhB;;AACA,UAAIuC,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAAzF,EAAwG;AACpG,YAAIC,MAAM,GAAG,KAAKxC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,QAA3B,CAAb;;AAEA,YAAGwC,MAAH,EAAW;AACPJ,UAAAA,SAAS,CAAC7B,MAAV,CAAiB,CAAjB,IAAsB6B,SAAS,CAAC7B,MAAV,CAAiB,CAAjB,CAAtB;AACH,SAFD,MAEO;AACH6B,UAAAA,SAAS,CAAC7B,MAAV,CAAiB,CAAjB,IAAsB,CAAtB;AACH;;AACD6B,QAAAA,SAAS,CAAC7B,MAAV,CAAiBkC,IAAjB,CAAsB,CAAtB;AACH,OAjB6D,CAkB9D;;;AACA,aAAOL,SAAP;AACH,KApBe,CAlJkB;AAwKlCM,IAAAA,mBAAmB,EAAE/D,KAAK,CAACwB,QAAN,CAAeK,GAAf,CAAmB,oBAAnB,EAAyC,UAASuB,IAAT,EAAc;AACxE,UAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AAEA,aAAOJ,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAP;AACH,KAJoB,CAxKa;;AA8KtC;AACA;AACA;AACA;AACA;AACA;AACIW,IAAAA,cAAc,EAAEhE,KAAK,CAACwB,QAAN,CAAeK,GAAf,CAAmB,eAAnB,EAAoC,UAASuB,IAAT,EAAc;AAC9D,aAAOA,IAAI,CAAC/B,GAAL,CAAS,IAAT,CAAP;AACH,KAFe,CApLkB;AAwLlC4C,IAAAA,mBAAmB,EAAEjE,KAAK,CAACwB,QAAN,CAAeK,GAAf,CAAmB,oBAAnB,EAAyC,UAASuB,IAAT,EAAc;AACxE,aAAOA,IAAI,CAAC/B,GAAL,CAAS,IAAT,CAAP;AACH,KAFoB,CAxLa;AA4LlC6C,IAAAA,eAAe,EAAElE,KAAK,CAACwB,QAAN,CAAe,YAAf,EAA6B,oBAA7B,EAAmD,YAAW;AAC3E,UAAI2C,QAAQ,GAAG,KAAKC,UAAL,CAAgB/C,GAAhB,CAAoB,gBAApB,EAAsCA,GAAtC,CAA0C,OAA1C,CAAf;AACA,UAAIoC,SAAS,GAAG,KAAKpC,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIgD,eAAJ;;AACA,UAAI;AACAA,QAAAA,eAAe,GAAGZ,SAAS,CAACpC,GAAV,CAAc,aAAd,EAA6BmC,MAA7B,GAAsC5B,MAAtC,CAA6C0C,MAA/D;AACH,OAFD,CAEE,OAAOC,KAAP,EAAc;AACZF,QAAAA,eAAe,GAAG,CAAlB;AACH;;AACD,UAAIG,OAAO,GAAG,KAAKnD,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAd;AAEA,UAAI6C,eAAe,GAAGM,OAAO,CAAC3C,GAAR,CAAY,UAAS4C,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACpD,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB,CAX2E,CAe3E;AAEA;;AACA,UAAIuC,SAAS,GAAG,KAAKvC,GAAL,CAAS,oBAAT,CAAhB;;AAEA,UAAIuC,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAAzF,EAAwG;AACpG,YAAIc,SAAS,GAAG,EAAhB,CADoG,CAEpG;;AACA,aAAI,IAAIC,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGT,eAAe,CAACI,MAAvC,EAAgDK,GAAG,EAAnD,EAAuD;AACnD,cAAIC,GAAG,GAAG,CAACV,eAAe,CAACS,GAAG,GAAG,CAAP,CAAf,GAA2BT,eAAe,CAACS,GAAD,CAA3C,IAAoD,CAA9D;AACAD,UAAAA,SAAS,CAACC,GAAD,CAAT,GAAiB,CAAEC,GAAG,CAACC,OAAJ,CAAY,CAAZ,CAAnB;AACH,SANmG,CAQpG;AAEA;;;AACAH,QAAAA,SAAS,CAACI,MAAV,CAAiB,CAAjB,EAAmB,CAAnB;AACAJ,QAAAA,SAAS,CAAC,CAAD,CAAT,GAAe,CAAf;AACAA,QAAAA,SAAS,CAACZ,IAAV,CAAeI,eAAe,CAACA,eAAe,CAACI,MAAhB,GAAyB,CAA1B,CAA9B,EAboG,CAatC;AAC9D;;AACA,YAAGV,SAAS,KAAG,qBAAf,EAAsC;AAClCc,UAAAA,SAAS,CAACK,OAAV,CAAkB,CAAlB;AACH;;AACDb,QAAAA,eAAe,GAAGQ,SAAlB;AACH,OAvC0E,CAwC3E;;;AACA,aAAOR,eAAP;AACH,KA1CgB,CA5LiB;AAwOlCc,IAAAA,kBAAkB,EAAEhF,KAAK,CAACwB,QAAN,CAAe,gBAAf,EAAiC,gBAAjC,EAAmD,gBAAnD,EAAqE,6BAArE,EAAoG,2BAApG,EAAiI,0BAAjI,EAA6J,YAAW;AACxL,YAAMyD,KAAK,GAAG,IAAd;AAAA,YACI1D,2BAA2B,GAAG,KAAKF,GAAL,CAAS,6BAAT,CADlC;AAAA,YAEIW,yBAAyB,GAAG,KAAKX,GAAL,CAAS,2BAAT,CAFhC;AAAA,YAGI6D,wBAAwB,GAAG,KAAK7D,GAAL,CAAS,0BAAT,CAH/B;AAAA,YAIIsC,cAAc,GAAG,KAAKtC,GAAL,CAAS,gBAAT,CAJrB;AAAA,YAKI8B,cAAc,GAAG,KAAK9B,GAAL,CAAS,gBAAT,CALrB;AAAA,YAMI2C,cAAc,GAAG,KAAK3C,GAAL,CAAS,gBAAT,CANrB,CADwL,CAUxL;AACA;;;AAEA,UAAI6C,eAAe,GAAG,KAAK7C,GAAL,CAAS,iBAAT,CAAtB;AAAA,UACI2D,kBAAkB,GAAG,EADzB;;AAIA,UAAIG,KAAK,GAAGF,KAAK,CAAC5D,GAAN,CAAU,oBAAV,CAAZ;;AACA,UAAI8D,KAAK,KAAK,eAAV,IAA6BA,KAAK,KAAK,oBAAvC,IAA+DA,KAAK,KAAK,aAA7E,EAA4F;AACxFxB,QAAAA,cAAc,CAACyB,OAAf,CAAuBC,OAAO,IAAIA,OAAO,CAACzD,MAAR,CAAe,CAAf,IAAoB,CAAtD;AACH,OApBuL,CAsBxL;;;AACA,UAAIqD,KAAK,CAAC5D,GAAN,CAAU,oBAAV,MAAoC,oBAAxC,EAA8D;AAC1D2D,QAAAA,kBAAkB,GAAGd,eAAe,CAACrC,GAAhB,CAAoB,UAASyD,aAAT,EAAwBC,cAAxB,EAAuC;AAC5E,iBAAO;AACH9D,YAAAA,GAAG,EAAE6D,aADF;AAEH;AACA5D,YAAAA,IAAI,EAAE,OAHH;AAIH8D,YAAAA,KAAK,EAAE,CAJJ;AAKH5D,YAAAA,MAAM,EAAE+B,cAAc,CAAC9B,GAAf,CAAmB,UAAS4D,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,qBAAO,CACH,qBAAQ1B,cAAc,CAAC0B,cAAD,CAAtB,EAAyC3D,OAAzC,EADG,EAEH0D,SAAS,CAAC7D,MAAV,CAAiB2D,cAAjB,CAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,CAArB;AAcH,OAfD,MAeO;AACHP,QAAAA,kBAAkB,GAAG,CAAC;AAClBvD,UAAAA,GAAG,EAAE,MADa;AAElB;AACAC,UAAAA,IAAI,EAAE,OAHY;AAIlB8D,UAAAA,KAAK,EAAE,CAJW;AAKlB5D,UAAAA,MAAM,EAAE+B,cAAc,CAAC9B,GAAf,CAAmB,UAAS4D,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,mBAAO,CACH,qBAAQ1B,cAAc,CAAC0B,cAAD,CAAtB,EAAyC3D,OAAzC,EADG,EAEH0D,SAAS,CAAC7D,MAAV,CAAiB,CAAjB,CAFG,CAAP;AAIH,WALO;AALU,SAAD,CAArB;AAYH,OAnDuL,CAqDxL;AACA;;;AAEA,UAAIqD,KAAK,CAAC5D,GAAN,CAAU,oBAAV,MAAoC,oBAAxC,EAA8D;AAC1D,YAAI4D,KAAK,CAAC5D,GAAN,CAAU,oBAAV,MAAoC,qBAAxC,EAA8D;AAC1D,iBAAM8B,cAAc,CAACmB,MAAf,GAAwBX,cAAc,CAACW,MAA7C,EAAqD;AACjDnB,YAAAA,cAAc,CAACwC,GAAf;AACAxC,YAAAA,cAAc,CAACyC,KAAf;AACH;AACJ;;AACD,YAAIC,IAAI,GAAG;AAACpE,UAAAA,GAAG,EAAE,GAAN;AACPC,UAAAA,IAAI,EAAE,OADC;AAEP8D,UAAAA,KAAK,EAAE,CAFA;AAGP5D,UAAAA,MAAM,EAAEuB,cAAc,CAACtB,GAAf,CAAmB,UAAS4D,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,mBAAO,CACH,qBAAQ1B,cAAc,CAAC0B,cAAD,CAAtB,EAAyC3D,OAAzC,EADG,EAEH0D,SAAS,CAAC7D,MAAV,CAAiB,CAAjB,CAFG,CAAP;AAIH,WALO;AAHD,SAAX,CAP0D,CAiB1D;;AACAoD,QAAAA,kBAAkB,CAAClB,IAAnB,CAAwB+B,IAAxB,EAlB0D,CAkB3B;AAC/B;AACH,OA5EuL,CA8ExL;;;AACA,UAAItE,2BAAJ,EAAiC;AAC7ByD,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACc,MAAnB,CAA0BvE,2BAA1B,CAArB;AACH;;AACD,UAAIS,yBAAJ,EAA+B;AAC3BgD,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACc,MAAnB,CAA0B9D,yBAA1B,CAArB;AACH;;AACD,UAAIkD,wBAAJ,EAA8B;AAC1BF,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACc,MAAnB,CAA0BZ,wBAA1B,CAArB;AACH;;AAED,aAAOF,kBAAP;AACH,KA1FmB,CAxOc;AAoUlCe,IAAAA,uBAAuB,EAAE/F,KAAK,CAACwB,QAAN,CAAe,qBAAf,EAAsC,qBAAtC,EAA6D,YAAW;AAC7F,YAAMyD,KAAK,GAAG,IAAd;AAAA,YACIlB,mBAAmB,GAAG,KAAK1C,GAAL,CAAS,qBAAT,CAD1B;AAAA,YAEI4C,mBAAmB,GAAG,KAAK5C,GAAL,CAAS,qBAAT,CAF1B;;AAKA,UAAI6C,eAAe,GAAG,KAAK7C,GAAL,CAAS,iBAAT,CAAtB;AAEA,aAAO6C,eAAe,CAACrC,GAAhB,CAAoB,UAASyD,aAAT,EAAwBC,cAAxB,EAAuC;AAC9D,eAAO;AACH9D,UAAAA,GAAG,EAAE6D,aADF;AAEH;AACA5D,UAAAA,IAAI,EAAE,OAHH;AAIHE,UAAAA,MAAM,EAAEmC,mBAAmB,CAAClC,GAApB,CAAwB,UAAS4D,SAAT,EAAoBC,cAApB,EAAoC;AAChE,mBAAO,CACH,qBAAQzB,mBAAmB,CAACyB,cAAD,CAA3B,EAA8C3D,OAA9C,EADG,EAEH0D,SAAS,CAAC7D,MAAV,CAAiB2D,cAAjB,CAFG,CAAP;AAIH,WALO;AAJL,SAAP;AAWH,OAZM,EAYJ/C,MAZI,CAYG,WAZH,CAAP;AAaH,KArBwB,CApUS;AA2VlCwD,IAAAA,kBAAkB,EAAEhG,KAAK,CAACwB,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,aAAO,KAAKH,GAAL,CAAS,eAAT,EAA0B4E,KAA1B,CAAgCC,UAAvC;AACH,KAFmB,CA3Vc;AA+VlCC,IAAAA,WAAW,EAAEnG,KAAK,CAACwB,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzD,UAAIwE,kBAAkB,GAAG,KAAK3E,GAAL,CAAS,oBAAT,CAAzB;AACA,UAAI+E,UAAU,GAAGJ,kBAAkB,CAACK,MAAnB,CAA0B,CAA1B,EAA6BL,kBAAkB,CAACM,WAAnB,CAA+B,GAA/B,CAA7B,EAAkEC,OAAlE,CAA0E,GAA1E,EAA8E,GAA9E,CAAjB;AACA,UAAIC,OAAO,GAAG,KAAKnF,GAAL,CAAS,OAAT,EAAkBoF,WAAlB,CAA8B,aAA9B,EAA6C;AAACC,QAAAA,KAAK,EAAEN;AAAR,OAA7C,CAAd,CAHyD,CAIzD;;AACA,aAAOI,OAAP;AACH,KANY,CA/VqB;AAuWlCG,IAAAA,gBAAgB,EAAE,YAAW;AACzB,YAAM1B,KAAK,GAAG,IAAd;AAAA,YACID,kBAAkB,GAAGC,KAAK,CAAC5D,GAAN,CAAU,oBAAV,CADzB;AAAA,YAEI0E,uBAAuB,GAAGd,KAAK,CAAC5D,GAAN,CAAU,yBAAV,CAF9B;AAAA,YAGIZ,cAAc,GAAGwE,KAAK,CAAC5D,GAAN,CAAU,gBAAV,CAHrB;AAAA,YAIIX,4BAA4B,GAAGuE,KAAK,CAAC5D,GAAN,CAAU,8BAAV,CAJnC;;AAOA,UAAIY,kBAAkB,GAAG,KAAKZ,GAAL,CAAS,oBAAT,CAAzB;AACA,UAAKoB,gBAAgB,GAAG,KAAKpB,GAAL,CAAS,kBAAT,CAAxB,CATyB,CAUzB;AACA;;AACA,UAAIuF,YAAY,GAAGC,EAAE,CAACC,MAAH,CAAU,MAAM7B,KAAK,CAAC5D,GAAN,CAAU,SAAV,CAAN,GAA6B,mCAAvC,CAAnB;AACA,UAAI0F,iBAAiB,GAAGF,EAAE,CAACC,MAAH,CAAU,MAAM7B,KAAK,CAAC5D,GAAN,CAAU,SAAV,CAAN,GAA6B,yCAAvC,CAAxB;AACA,UAAI8E,WAAW,GAAG,KAAK9E,GAAL,CAAS,aAAT,CAAlB;AACA,UAAI2F,gBAAgB,GAAGb,WAAvB,CAfyB,CAkBzB;;AACAnG,MAAAA,KAAK,CAACiH,IAAN,CAAWC,OAAX,CAAmBC,GAAnB,CAAuB,CAACH,gBAAD,CAAvB,EAA2CI,IAA3C,CAAgD,UAASC,OAAT,EAAiB;AAC7D;AACA;AACA,YAAIX,KAAK,GAAG,EAAZ;;AACA,YAAIP,WAAJ,EAAiB;AACbA,UAAAA,WAAW,GAAGA,WAAd,CADa,CAGb;;AACA,cAAIzE,IAAI,GAAGuD,KAAK,CAACb,UAAN,CAAiB/C,GAAjB,CAAqB,kBAArB,EAAyCiG,QAAzC,EAAX;;AACA,cAAI7D,SAAS,GAAGwB,KAAK,CAAC5D,GAAN,CAAU,WAAV,CAAhB;;AACAoC,UAAAA,SAAS,CAAC2B,OAAV,CAAkB,UAAShC,IAAT,EAAe;AAC7B,gBAAGA,IAAI,CAACmE,EAAL,KAAY7F,IAAf,EAAqB;AACjB+B,cAAAA,SAAS,GAAGL,IAAZ;AACA;AACH;AACJ,WALD;AAOA,cAAIe,QAAQ,GAAG,QAAf;AAEA,cAAIqD,QAAQ,GAAG,EAAf;AACA,cAAIC,KAAK,GAAGhE,SAAS,CAACpC,GAAV,CAAc,OAAd,CAAZ;AACAqF,UAAAA,KAAK,GAAGP,WAAW,CAAC9E,GAAZ,CAAgB,OAAhB,CAAR;;AAEA,kBAAOqF,KAAP;AACI,iBAAK,cAAL;AACIc,cAAAA,QAAQ,GAAG/D,SAAS,CAACpC,GAAV,CAAc,0BAAd,CAAX;AACA;;AACJ,iBAAK,UAAL;AACImG,cAAAA,QAAQ,GAAG/D,SAAS,CAACpC,GAAV,CAAc,sBAAd,CAAX;AACAoG,cAAAA,KAAK,IAAI,MAAT;AACA;;AACJ,iBAAK,cAAL;AACID,cAAAA,QAAQ,GAAG/D,SAAS,CAACpC,GAAV,CAAc,0BAAd,CAAX;AACAoG,cAAAA,KAAK,IAAI,OAAT;AACA;;AACJ,iBAAK,QAAL;AACID,cAAAA,QAAQ,GAAG/D,SAAS,CAACpC,GAAV,CAAc,oBAAd,CAAX;AACAoG,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,aAAL;AACID,cAAAA,QAAQ,GAAG/D,SAAS,CAACpC,GAAV,CAAc,wBAAd,CAAX;AACAoG,cAAAA,KAAK,GAAG,OAAR;AACA;;AACJ,iBAAK,MAAL;AACID,cAAAA,QAAQ,GAAG/D,SAAS,CAACpC,GAAV,CAAc,kBAAd,CAAX;AACA;;AACJ,iBAAK,aAAL;AACImG,cAAAA,QAAQ,GAAG,aAAX;AACAC,cAAAA,KAAK,GAAG,IAAR;AACA;;AACJ;AACID,cAAAA,QAAQ,GAAG,SAAX;AACA;AA7BR;;AAgCA,cAAIrB,WAAJ,EAAiB;AACb,gBAAIuB,GAAG,GAAGzC,KAAK,CAACyC,GAAhB;;AACA,gBAAGvB,WAAW,CAAC9E,GAAZ,CAAgB,OAAhB,MAA2B,MAA9B,EAAsC;AAClCqF,cAAAA,KAAK,GAAGc,QAAQ,GAAG,QAAnB;AACH,aAFD,MAEO;AACHd,cAAAA,KAAK,GAAGc,QAAQ,GAAG,IAAX,GAAkBC,KAAlB,GAA0B,GAAlC;AACH;AACJ,WAPD,MAOO;AACHf,YAAAA,KAAK,GAAGc,QAAQ,GAAG,IAAX,GAAkBC,KAAlB,GAA0B,GAAlC;AACH,WA5DY,CA6Db;;AACH;;AAED,iBAASE,UAAT,CAAoBC,SAApB,EAA+B;AAC3B;AACA,kBAAOA,SAAP;AACI,iBAAK,WAAL;AACA,iBAAK,WAAL;AACI,qBAAO,IAAP;AAHR;;AAKA,iBAAO,KAAP;AACH,SA5E4D,CA6E7D;;;AACA,YAAIC,SAAS,GAAGC,EAAE,CAACC,MAAH,CAAUC,qBAAV,CAAgCL,UAAU,CAAC1C,KAAK,CAAC5D,GAAN,CAAU,oBAAV,CAAD,CAA1C,EACX4G,MADW,CACJ;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADI,EAEXC,uBAFW,CAEa,IAFb,EAGXC,CAHW,CAGT,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHnB,EAIXC,CAJW,CAIT,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAJnB,EAKX7G,KALW,CAKLkF,EAAE,CAAC6B,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EALK,EAMXC,QANW,CAMF,GANE,EAOXC,SAPW,CAOD,IAPC,EAQXC,MARW,CAQJ,gBARI,CAAhB;AAWAlB,QAAAA,SAAS,CAACmB,MAAV,CAAiBf,MAAjB,CAAwB;AAACG,UAAAA,MAAM,EAAE;AAAT,SAAxB,EAzF6D,CA2F7D;AAEA;AACA;;AACAN,QAAAA,EAAE,CAACmB,QAAH,CAAY,YAAW;AAEnBpB,UAAAA,SAAS,CAACqB,KAAV,CACKC,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGKC,UAHL,CAGgB,UAASb,CAAT,EAAY;AACpB,gBAAIc,sBAAsB,GAAGtE,kBAAkB,CAAC,CAAD,CAAlB,CAAsBpD,MAAtB,CAA6B0C,MAA1D;AACA,mBAAOwD,EAAE,CAACyB,KAAH,CAASC,sBAAT,CAAiCxE,kBAAkB,CAAC,CAAD,CAAlB,CAAsBpD,MAAtB,CAA6B,CAA7B,EAAgC,CAAhC,CAAjC,EAAqEoD,kBAAkB,CAAC,CAAD,CAAlB,CAAsBpD,MAAtB,CAA6B0H,sBAAsB,GAAC,CAApD,EAAuD,CAAvD,CAArE,EAAgI,IAAIG,IAAJ,CAASjB,CAAT,CAAhI,CAAP;AACH,WANL;AAQAX,UAAAA,SAAS,CAAC6B,MAAV,CACKC,SADL,CACejD,KADf,EAEKkD,iBAFL,CAEuB,EAFvB;AAGA/B,UAAAA,SAAS,CAACgC,MAAV,CACKF,SADL,CACe,kBADf,EAEKC,iBAFL,CAEuB,EAFvB;AAGA/B,UAAAA,SAAS,CAACiC,KAAV,CACK7B,MADL,CACY;AAACC,YAAAA,GAAG,EAAE,CAAN;AAASC,YAAAA,KAAK,EAAE,CAAhB;AAAmBC,YAAAA,MAAM,EAAE,CAA3B;AAA8BC,YAAAA,IAAI,EAAE;AAApC,WADZ,EAEK0B,IAFL,CAEU,EAFV,EAGKC,wBAHL,CAG8B,CAH9B,EAIKvJ,cAJL,CAIoBA,cAJpB,EAKKwJ,mBALL,CAKyB,KALzB,EAMKvJ,4BANL,CAMkCA,4BANlC,EAOKwJ,yBAPL,CAO+B,KAP/B,EAQKC,SARL,CAQe,CARf;AAWAtC,UAAAA,SAAS,CAAC6B,MAAV,CAAiBL,UAAjB,CAA4BxC,EAAE,CAACxE,MAAH,CAAU,KAAV,CAA5B;AACAwF,UAAAA,SAAS,CAACgC,MAAV,CAAiBR,UAAjB,CAA4BxC,EAAE,CAACxE,MAAH,CAAU,KAAV,CAA5B;AAEAuE,UAAAA,YAAY,CAACwD,KAAb,CAAmBpF,kBAAnB,EAAuCqF,IAAvC,CAA4CxC,SAA5C;AAEAA,UAAAA,SAAS,CAACyC,QAAV,CAAmBC,EAAnB,CAAsB,YAAtB,EAAoC,UAAUC,WAAV,EAAuB;AACvDvF,YAAAA,KAAK,CAAC3D,GAAN,CAAU,gBAAV,EAA4BkJ,WAAW,CAAC,CAAD,CAAvC;;AACAvF,YAAAA,KAAK,CAAC3D,GAAN,CAAU,cAAV,EAA0BkJ,WAAW,CAAC,CAAD,CAArC;;AACA,gBAAIjK,cAAc,GAAG,qBAAO0E,KAAK,CAAC5D,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCgB,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAI7B,YAAY,GAAG,qBAAOyE,KAAK,CAAC5D,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCgB,MAAvC,CAA8C,yBAA9C,CAAnB;AAEAwF,YAAAA,SAAS,CAAC4C,OAAV,CAAkBC,MAAlB,CAAyB,IAAzB,EANuD,CAQvD;;AACAzF,YAAAA,KAAK,CAAC0F,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAACrK,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WAVF;AAYAqH,UAAAA,SAAS,CAACyC,QAAV,CAAmBC,EAAnB,CAAsB,OAAtB,EAA+B,UAAUC,WAAV,EAAuB;AAClD,gBAAIA,WAAW,CAACK,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B;AAC3B;AACAC,cAAAA,cAAc,CAACR,QAAf,CAAwBS,WAAxB,CAAoCP,WAAW,CAACK,MAAhD;AACH;AACJ,WALD;;AAOA,mBAASG,cAAT,GAA0B;AACtBnD,YAAAA,SAAS,CAACpE,SAAV,CAAoB2B,OAApB,CAA4B,UAAS6F,MAAT,EAAiB;AAAEA,cAAAA,MAAM,CAACC,QAAP,GAAkB,KAAlB;AAA0B,aAAzE;AACH;;AAED,mBAASC,kBAAT,CAA4BC,cAA5B,EAA4C;AAExC,gBAAI,OAAOA,cAAP,KAA0B,WAA9B,EAA2C;AACvC,qBAAO,KAAP;AACH;;AAED,gBAAIC,WAAW,GAAG,EAAlB;AAAA,gBACIC,YAAY,GAAG,EADnB;AAAA,gBAEIhJ,SAAS,GAAG,IAFhB;;AAKA,gBAAI,OAAO8I,cAAP,KAA2B,QAA/B,EAAyC;AACrC,kBAAIA,cAAc,CAAC1J,IAAf,KAAwB,OAA5B,EAAqC;AACjC4J,gBAAAA,YAAY,GAAG,OAAf;AACAhJ,gBAAAA,SAAS,GAAG,wCAAwC8I,cAAc,CAAClK,QAAvD,GAAkE,gBAAlE,GAAqFkK,cAAc,CAAClI,MAApG,GAA6G,SAAzH;AACH,eAHD,MAGO,IAAIkI,cAAc,CAAC1J,IAAf,KAAwB,SAA5B,EAAuC;AAC1C4J,gBAAAA,YAAY,GAAG,SAAf;AACAhJ,gBAAAA,SAAS,GAAG,wCAAwC8I,cAAc,CAAClK,QAAvD,GAAkE,0BAAlE,GAA+FkK,cAAc,CAAC7I,eAA9G,GAAgI,SAA5I;AACH,eAHM,MAGA,IAAI6I,cAAc,CAAC1J,IAAf,KAAwB,SAA5B,EAAuC;AAC1C4J,gBAAAA,YAAY,GAAG,SAAf;AACAhJ,gBAAAA,SAAS,GAAI,kCAAiC,KAAK3B,SAAL,GAAiB,KAAKA,SAAL,IAAkB,KAAlB,GAA0B,IAA1B,GAAiC,KAAKA,SAAvD,GAAmE,IAAK,IAA1G,GAAgHyK,cAAc,CAACG,GAA/H,GAAsI,eAAc,KAAK5K,SAAL,GAAiB,KAAKA,SAAL,IAAkB,KAAlB,GAA0B,IAA1B,GAAiC,KAAKA,SAAvD,GAAmE,IAAK,UAA5N,GAAwOyK,cAAc,CAACI,GAAvP,GAA6P,wBAA7P,GAAwRJ,cAAc,CAACK,IAAvS,GAA8S,SAA1T;AACH,eAHM,MAGA,IAAIL,cAAc,CAAC1J,IAAf,KAAwB,OAA5B,EAAqC;AACxC4J,gBAAAA,YAAY,GAAG,OAAf;AACH;;AACDD,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAAChJ,SAAvC,GAAmD,SAAnD,GACA,iCADA,GACoCgJ,cAAc,CAAC1J,IADnD,GAC0D,SAD1D,GAEAY,SAFd;AAIH,aAjBD,MAiBO;AACH+I,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAAChJ,SAAvC,GAAmD,SAAjE;AACH;;AAED,mBAAO;AACHkJ,cAAAA,YAAY,EAAEA,YADX;AAEHD,cAAAA,WAAW,EAAEA;AAFV,aAAP;AAIH;;AAEDxD,UAAAA,SAAS,CAACiC,KAAV,CAAgBQ,QAAhB,CAAyBC,EAAzB,CAA4B,gBAA5B,EAA8C,UAAUmB,cAAV,EAA0B;AACpE;AACA;AACA;;AACpB;AACA;AACA;AACA;AACA;AACA;AACoB,gBAAKzJ,kBAAkB,CAACqC,MAAnB,IAA6BoH,cAAc,CAACC,MAAf,GAAwB,CAAC,CAA3D,EAA+D;AAC3D9D,cAAAA,SAAS,CAACiC,KAAV,CAAgBQ,QAAhB,CAAyBsB,sBAAzB,CAAiDT,kBAAkB,CAAClJ,kBAAkB,CAACyJ,cAAc,CAACC,MAAhB,CAAnB,CAAnE;AACH;;AACD,gBAAKlJ,gBAAgB,CAAC6B,MAAjB,IAA2BoH,cAAc,CAACG,MAAf,GAAwB,CAAC,CAAzD,EAA6D;AACzDhE,cAAAA,SAAS,CAACiC,KAAV,CAAgBQ,QAAhB,CAAyBsB,sBAAzB,CAAiDT,kBAAkB,CAAC1I,gBAAgB,CAACiJ,cAAc,CAACG,MAAhB,CAAjB,CAAnE;AACH;;AACD,gBAAI,CAAC5J,kBAAkB,CAACqC,MAApB,IAA8B,CAAC7B,gBAAgB,CAAC6B,MAApD,EAA2D;AAAE;AACzD,kBAAIwH,UAAU,GAAGJ,cAAc,CAACC,MAAhC;AACA,kBAAI/I,QAAQ,GAAG,CAAf;;AACA,kBAAIkJ,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGJ,cAAc,CAACG,MAA5B;AACAjJ,gBAAAA,QAAQ,GAAG,CAAX;AACH;;AACD,kBAAIkJ,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGJ,cAAc,CAACK,MAA5B;AACAnJ,gBAAAA,QAAQ,GAAG,CAAX;AACH;;AAED,kBAAIoJ,oBAAoB,GAAG/J,kBAAkB,CAAC6J,UAAD,CAA7C;;AACA,kBAAIlJ,QAAQ,KAAG,CAAf,EAAkB;AACdoJ,gBAAAA,oBAAoB,GAAGvJ,gBAAgB,CAACqJ,UAAD,CAAvC;AACH;;AACD,kBAAIlJ,QAAQ,KAAG,CAAf,EAAkB,CACd;AACH;;AACDiF,cAAAA,SAAS,CAACiC,KAAV,CAAgBQ,QAAhB,CAAyBsB,sBAAzB,CAAiDT,kBAAkB,CAACa,oBAAD,CAAnE;AACH;AACJ,WArCD,EA7FmB,CAoInB;;AACAlE,UAAAA,EAAE,CAACyB,KAAH,CAAS0C,YAAT,CAAsBpE,SAAS,CAACqE,MAAhC;AAEArE,UAAAA,SAAS,CAACyC,QAAV,CAAmBC,EAAnB,CAAsB,aAAtB,EAAqC,UAAS4B,CAAT,EAAY;AAAErE,YAAAA,EAAE,CAACsE,GAAH,CAAO,YAAP,EAAqBC,IAAI,CAACC,SAAL,CAAeH,CAAf,CAArB;AAA0C,WAA7F;AACAtE,UAAAA,SAAS,CAAC0E,KAAV,CAAgBjC,QAAhB,CAAyBC,EAAzB,CAA4B,QAA5B,EAAsC,UAASgC,KAAT,EAAe;AACjDzE,YAAAA,EAAE,CAACsE,GAAH,CAAO,OAAP,EAAgBC,IAAI,CAACC,SAAL,CAAeC,KAAf,CAAhB;AACH,WAFD,EAxImB,CA4InB;;AACAtH,UAAAA,KAAK,CAACuH,UAAN,CAAiB,SAAjB,EAA2BxH,kBAA3B;;AACAC,UAAAA,KAAK,CAACuH,UAAN,CAAiB,UAAjB,EAA4B3E,SAA5B;;AAEA,iBAAOA,SAAP;AACH,SAjJD;AAkJH,OAjPD;;AAoPA,eAASF,UAAT,CAAoBC,SAApB,EAA+B;AAC3B;AACA,gBAAOA,SAAP;AACI,eAAK,WAAL;AACA,eAAK,WAAL;AACI,mBAAO,IAAP;AAHR;;AAKA,eAAO,KAAP;AACH;;AAED,UAAI6E,UAAU,GAAG,IAAjB;;AACA,UAAI9E,UAAU,CAAC1C,KAAK,CAAC5D,GAAN,CAAU,oBAAV,CAAD,CAAd,EAAiD;AAC7CoL,QAAAA,UAAU,GAAG3E,EAAE,CAACC,MAAH,CAAU2E,OAAV,EAAb;AACH,OAFD,MAEO;AACHD,QAAAA,UAAU,GAAG3E,EAAE,CAACC,MAAH,CAAU4E,IAAV,EAAb;AACH;;AAED,UAAI7B,cAAc,GAAGhD,EAAE,CAACC,MAAH,CAAU6E,KAAV,CAAgBH,UAAhB,EAChBxE,MADgB,CACT;AAACC,QAAAA,GAAG,EAAE,EAAN;AAAUC,QAAAA,KAAK,EAAE,EAAjB;AAAqBC,QAAAA,MAAM,EAAE,EAA7B;AAAiCC,QAAAA,IAAI,EAAE;AAAvC,OADS,EAEhBE,CAFgB,CAEd,UAASC,CAAT,EAAY;AAAE,eAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,OAFd,EAGhBC,CAHgB,CAGd,UAASD,CAAT,EAAY;AAAE,eAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,OAHd,EAIhB7G,KAJgB,CAIVkF,EAAE,CAAC6B,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAJU,EAKhBiE,YALgB,CAKH,KALG,EAMhBC,mBANgB,CAMI,IANJ,EAOhBC,SAPgB,CAON,IAPM,EAQhBC,SARgB,CAQN,KARM,CAArB;AAWAlF,MAAAA,EAAE,CAACmB,QAAH,CAAY,YAAW;AAEnB6B,QAAAA,cAAc,CAAC5B,KAAf,CACKE,UADL,CACgB,KADhB,EAEKC,UAFL,CAEgB,UAASb,CAAT,EAAY;AACpB;AACA,cAAIzC,uBAAuB,CAACzB,MAAxB,GAAiC,CAArC,EAAwC;AACpC,gBAAI2I,2BAA2B,GAAGlH,uBAAuB,CAAC,CAAD,CAAvB,CAA2BnE,MAA3B,CAAkC0C,MAApE;;AACA,gBAAI;AACA,qBAAOwD,EAAE,CAACyB,KAAH,CAASC,sBAAT,CAAiCzD,uBAAuB,CAAC,CAAD,CAAvB,CAA2BnE,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0EmE,uBAAuB,CAAC,CAAD,CAAvB,CAA2BnE,MAA3B,CAAkCqL,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAIxD,IAAJ,CAASjB,CAAT,CAA/I,CAAP;AACH,aAFD,CAEE,OAAO0E,EAAP,EAAW;AACT,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WAPD,MAOO;AACH,mBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,SAdL;AAiBApC,QAAAA,cAAc,CAACtF,KAAf,CAAqB6D,UAArB,CAAgCxC,EAAE,CAACxE,MAAH,CAAU,KAAV,CAAhC;AAEA0E,QAAAA,iBAAiB,CAACqD,KAAlB,CAAwBrE,uBAAxB,EAAiDsE,IAAjD,CAAsDS,cAAtD;AAGAA,QAAAA,cAAc,CAACR,QAAf,CAAwBC,EAAxB,CAA2B,YAA3B,EAAyC,UAAUC,WAAV,EAAuB;AAC5DvF,UAAAA,KAAK,CAAC3D,GAAN,CAAU,gBAAV,EAA4BkJ,WAAW,CAAC,CAAD,CAAvC;;AACAvF,UAAAA,KAAK,CAAC3D,GAAN,CAAU,cAAV,EAA0BkJ,WAAW,CAAC,CAAD,CAArC;;AACA,cAAIjK,cAAc,GAAG,qBAAO0E,KAAK,CAAC5D,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCgB,MAAzC,CAAgD,yBAAhD,CAArB;AACA,cAAI7B,YAAY,GAAG,qBAAOyE,KAAK,CAAC5D,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCgB,MAAvC,CAA8C,yBAA9C,CAAnB,CAJ4D,CAM5D;;AACA4C,UAAAA,KAAK,CAAC0F,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAACrK,cAAD,EAAiBC,YAAjB,CAAnE;AACF,SARF;AAUAsK,QAAAA,cAAc,CAACR,QAAf,CAAwBC,EAAxB,CAA2B,OAA3B,EAAoC,UAAUC,WAAV,EAAuB;AACvD,cAAIA,WAAW,CAACK,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B,CAC3B;AACH;AACH,SAJF,EAlCmB,CAwCnB;;AACA/C,QAAAA,EAAE,CAACyB,KAAH,CAAS0C,YAAT,CAAsBnB,cAAc,CAACoB,MAArC,EAzCmB,CA2CnB;;AACA,YAAI3L,cAAc,GAAG,qBAAO0E,KAAK,CAAC0F,KAAN,CAAYwC,cAAZ,CAA2B,iBAA3B,CAAP,EAAsDpL,OAAtD,EAArB;AACA,YAAIvB,YAAY,GAAG,qBAAOyE,KAAK,CAAC0F,KAAN,CAAYwC,cAAZ,CAA2B,eAA3B,CAAP,EAAoDpL,OAApD,EAAnB;;AACA,YAAIxB,cAAc,IAAIC,YAAtB,EAAoC;AAChCsK,UAAAA,cAAc,CAACR,QAAf,CAAwBS,WAAxB,CAAoC,CAACxK,cAAD,EAAiBC,YAAjB,CAApC;AACH;;AAED,eAAOsK,cAAP;AACH,OAnDD;AAoDH;AA9rBiC,GAAvB,C;;;;;;;;;;;;;iBCAAsC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,sBAAsB,EAAE,KADU;AAGlCC,IAAAA,eAAe,EAAEJ,KAAK,CAACK,QAAN,CAAe,YAAf,EAA6B,YAAW;AACrD,UAAIC,OAAO,GAAG,KAAKC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAd;AACA,UAAIC,IAAI,GAAGF,OAAO,CAACG,GAAR,CAAY,UAASC,MAAT,EAAgB;AACnC,eAAOA,MAAM,CAACH,GAAP,CAAW,UAAX,CAAP;AACH,OAFU,CAAX;AAIA,aAAOC,IAAP;AACH,KAPgB,CAHiB;AAWlCG,IAAAA,OAAO,EAAE;AACLC,MAAAA,cAAc,CAACC,YAAD,EAAeC,aAAf,EAA8B;AACxC,aAAKC,GAAL,CAASF,YAAT,EAAuBC,aAAvB;AACH;;AAHI;AAXyB,GAAvB,C;;;;;;;;;;;;;iBCSAE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB,EAAvB,C;;;;;;;;;;;;;iBCAAC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB,EAAvB,C;;;;;;;;;;;;;;;;;;ACXR,WAASC,wBAAT,CAAkCC,OAAlC,EAA2CC,SAA3C,EAA+I;AAAA,QAAzFC,cAAyF,uEAA1E;AAACC,MAAAA,YAAY,EAAE,IAAf;AAAqBC,MAAAA,UAAU,EAAE,EAAjC;AAAqCC,MAAAA,YAAY,EAAE,IAAnD;AAAyDC,MAAAA,UAAU,EAAE;AAArE,KAA0E;;AAClJ;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI;AACA;AAEA,UAAMC,YAAY,GAAG,CACjB,SADiB,EACN;AACX,aAFiB,EAEN;AACX,aAHiB,EAGN;AACX,aAJiB,EAIN;AACX,aALiB,EAKN;AACX,aANiB,EAMN;AACX,aAPiB,EAON;AACX,aARiB,EAQN;AACX,aATiB,EASN;AACX,aAViB,EAUN;AACX,aAXiB,EAWN;AACX,aAZiB,EAYN;AACX,aAbiB,EAaN;AACX,aAdiB,EAcN;AACX,aAfiB,EAeN;AACX,aAhBiB,EAgBN;AACX,aAjBiB,EAiBN;AACX,aAlBiB,EAkBN;AACX,aAnBiB,EAmBN;AACX,aApBiB,CAoBN;AApBM,KAArB;AAwBA,QAAIC,QAAQ,GAAG,EAAf;;AACA,QAAG;AACCP,MAAAA,SAAS,CAACQ,OAAV,CAAkB,CAACC,OAAD,EAAUC,KAAV,KAAkB;AAChC,YAAIC,UAAU,GAAG,EAAjB;AACAA,QAAAA,UAAU,CAAC,OAAD,CAAV,GAAsBF,OAAO,CAAC,OAAD,CAA7B;AACAE,QAAAA,UAAU,CAAC,MAAD,CAAV,GAAqBF,OAAO,CAAC,MAAD,CAA5B;AACAE,QAAAA,UAAU,CAAC,iBAAD,CAAV,GAAgCL,YAAY,CAACI,KAAD,CAA5C;AACAC,QAAAA,UAAU,CAAC,aAAD,CAAV,GAA4B,GAA5B,CALgC,CAKU;;AAC1CA,QAAAA,UAAU,CAAC,kBAAD,CAAV,GAAiC,GAAjC,CANgC,CAMU;;AAC1CJ,QAAAA,QAAQ,CAACK,IAAT,CAAcD,UAAd;AACH,OARD;AASAZ,MAAAA,OAAO,CAACc,KAAR,CAAcC,OAAd,CAAsBC,MAAtB,CAA6BC,CAA7B,CAA+BC,KAA/B,GAAsC;AAAEC,QAAAA,OAAO,EAAEjB,cAAc,CAAC,cAAD,CAAzB;AAA2CkB,QAAAA,IAAI,EAAElB,cAAc,CAAC,YAAD;AAA/D,OAAtC;AACAF,MAAAA,OAAO,CAACc,KAAR,CAAcC,OAAd,CAAsBC,MAAtB,CAA6BK,CAA7B,CAA+BH,KAA/B,GAAsC;AAAEC,QAAAA,OAAO,EAAEjB,cAAc,CAAC,cAAD,CAAzB;AAA2CkB,QAAAA,IAAI,EAAElB,cAAc,CAAC,YAAD;AAA/D,OAAtC;AACAoB,MAAAA,qBAAqB,CAACtB,OAAD,EAAUQ,QAAV,CAArB;AACH,KAbD,CAeA,OAAOe,KAAP,EAAc;AACVC,MAAAA,OAAO,CAACD,KAAR,CAAc,iCAAd,EAAiDA,KAAjD;AACH,KA/DiJ,CAiElJ;AACA;;;AACA,WAAOf,QAAP;AACH;;AAEM,WAASiB,WAAT,CAAqBzB,OAArB,EAA8B0B,uBAA9B,EAAuD;AAC1D,QAAG;AACC,UAAI,CAAC1B,OAAO,CAACc,KAAb,EAAoB;AAEpBd,MAAAA,OAAO,CAACc,KAAR,CAAca,IAAd,CAAmBnB,QAAnB,GAA8BkB,uBAA9B,CAHD,CAIC;AACA;;AAEA1B,MAAAA,OAAO,CAACc,KAAR,CAAcc,MAAd,GAPD,CAOyB;AAE3B,KATD,CAWA,OAAOL,KAAP,EAAc;AACVC,MAAAA,OAAO,CAACD,KAAR,CAAc,oBAAd,EAAoCA,KAApC;AACH;AACJ;;AAGM,WAASM,WAAT,CAAqB7B,OAArB,EAA8B;AAEjC,UAAM8B,GAAG,GAAGC,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,EAA0CC,UAA1C,CAAqD,IAArD,CAAZ;;AAEA,QAAI,CAACH,GAAL,EAAU;AACNN,MAAAA,OAAO,CAACD,KAAR,CAAc,sCAAd;AACA;AACH;;AAED,UAAMW,IAAI,GAAGlC,OAAO,CAACmC,GAAR,CAAY,gCAAZ,CAAb;AACA,UAAMC,IAAI,GAAGpC,OAAO,CAACmC,GAAR,CAAY,gCAAZ,CAAb;AACA,UAAME,IAAI,GAAGrC,OAAO,CAACmC,GAAR,CAAY,oCAAZ,CAAb;AACA,UAAMG,IAAI,GAAGtC,OAAO,CAACmC,GAAR,CAAY,oCAAZ,CAAb;AACA,UAAMI,YAAY,GAAG;AACjBC,MAAAA,EAAE,EAAE,eADa;;AAEjBC,MAAAA,UAAU,CAAC3B,KAAD,EAAQ;AACd,cAAM4B,OAAO,GAAG5B,KAAK,CAACa,IAAN,CAAWnB,QAAX,CAAoBmC,IAApB,CAAyBC,EAAE,IAAIA,EAAE,CAACjB,IAAH,CAAQkB,MAAR,GAAiB,CAAhD,CAAhB;AACA,YAAIH,OAAJ,EAAa;AAEb,cAAM;AAAEZ,UAAAA,GAAF;AAAOgB,UAAAA,KAAP;AAAcC,UAAAA;AAAd,YAAyBjC,KAA/B;AACAgB,QAAAA,GAAG,CAACkB,IAAJ;AACAlB,QAAAA,GAAG,CAACmB,SAAJ,GAAgB,QAAhB;AACAnB,QAAAA,GAAG,CAACoB,YAAJ,GAAmB,QAAnB;AACApB,QAAAA,GAAG,CAACqB,IAAJ,GAAW,iBAAX;AACArB,QAAAA,GAAG,CAACsB,SAAJ,GAAgB,OAAhB;AACAtB,QAAAA,GAAG,CAACuB,QAAJ,CAAa,mBAAb,EAAkCP,KAAK,GAAG,CAA1C,EAA6CC,MAAM,GAAG,CAAtD;AACAjB,QAAAA,GAAG,CAACwB,OAAJ;AACH;;AAdgB,KAArB,CAbiC,CA6BjC;;AACAC,kBAAMC,QAAN,CAAeC,0BAAf,EAA2BlB,YAA3B;;AACAvC,IAAAA,OAAO,CAACc,KAAR,GAAgB,IAAIyC,aAAJ,CAAUzB,GAAV,EAAe;AAC3B4B,MAAAA,IAAI,EAAE,SADqB;AAE3B/B,MAAAA,IAAI,EAAE,EAFqB;AAG3BZ,MAAAA,OAAO,EAAE;AACL4C,QAAAA,UAAU,EAAE,IADP;AAEL3C,QAAAA,MAAM,EAAE;AACJC,UAAAA,CAAC,EAAE;AACC2C,YAAAA,GAAG,EAAE1B,IAAI,IAAI2B,SADd;AAECC,YAAAA,GAAG,EAAE1B,IAAI,IAAIyB,SAFd;AAGC3C,YAAAA,KAAK,EAAE;AAAEC,cAAAA,OAAO,EAAE,IAAX;AAAiBC,cAAAA,IAAI,EAAE;AAAvB;AAHR,WADC;AAMJC,UAAAA,CAAC,EAAE;AACCuC,YAAAA,GAAG,EAAEvB,IAAI,IAAIwB,SADd;AAECC,YAAAA,GAAG,EAAExB,IAAI,IAAIuB,SAFd;AAGC3C,YAAAA,KAAK,EAAE;AAAEC,cAAAA,OAAO,EAAE,IAAX;AAAiBC,cAAAA,IAAI,EAAE;AAAvB;AAHR;AANC,SAFH;AAcL2C,QAAAA,OAAO,EAAE;AACLC,UAAAA,OAAO,EAAE;AACLC,YAAAA,SAAS,EAAE;AACP/C,cAAAA,KAAK,EAAGgD,YAAD,IAAkB;AACrB;AACA,uBAAOA,YAAY,CAAC,CAAD,CAAZ,CAAgBC,OAAhB,CAAwBC,KAA/B;AACH,eAJM;AAKPA,cAAAA,KAAK,EAAGC,WAAD,IAAiB;AACpB,sBAAMC,MAAM,GAAGD,WAAW,CAACvD,KAAZ,CAAkBC,OAAlB,CAA0BC,MAA1B,CAAiCC,CAAjC,CAAmCC,KAAnC,CAAyCE,IAAzC,IAAiD,GAAhE;AACA,sBAAMmD,MAAM,GAAGF,WAAW,CAACvD,KAAZ,CAAkBC,OAAlB,CAA0BC,MAA1B,CAAiCK,CAAjC,CAAmCH,KAAnC,CAAyCE,IAAzC,IAAiD,GAAhE;AACA,sBAAMoD,IAAI,GAAGH,WAAW,CAACI,GAAZ,CAAgBD,IAAhB,GAAuBH,WAAW,CAACI,GAAZ,CAAgBD,IAAvC,GAA8C,IAA3D;AACA,sBAAMvD,CAAC,GAAGoD,WAAW,CAACI,GAAZ,CAAgBxD,CAA1B;AACA,sBAAMI,CAAC,GAAGgD,WAAW,CAACI,GAAZ,CAAgBpD,CAA1B;AACA,uBAAO,CAAE,SAAQmD,IAAK,EAAf,EAAkB,GAAEF,MAAO,KAAIrD,CAAE,EAAjC,EAAqC,GAAEsD,MAAO,KAAIlD,CAAE,EAApD,CAAP;AACH;AAZM;AADN,WADJ;AAiBLqD,UAAAA,IAAI,EAAE;AACFC,YAAAA,GAAG,EAAE;AACDC,cAAAA,OAAO,EAAE,IADR;AAEDC,cAAAA,IAAI,EAAE,IAFL,CAEW;;AAFX,aADH;AAKFH,YAAAA,IAAI,EAAE;AACFI,cAAAA,KAAK,EAAE;AACHF,gBAAAA,OAAO,EAAE,IADN,CACY;;AADZ,eADL;AAIFG,cAAAA,IAAI,EAAE;AACFH,gBAAAA,OAAO,EAAE;AADP,eAJJ;AAOFC,cAAAA,IAAI,EAAE,IAPJ,CAOU;;AAPV;AALJ;AAjBD;AAdJ,OAHkB;AAmD3Bd,MAAAA,OAAO,EAAE,CAACxB,YAAD;AAnDkB,KAAf,CAAhB;AAqDH;;AAEM,WAASyC,oBAAT,CAA8BhF,OAA9B,EAAuCQ,QAAvC,EAAgD;AACnD,QAAG;AACC,UAAGR,OAAO,CAACc,KAAX,EAAiB;AACbd,QAAAA,OAAO,CAACc,KAAR,CAAcC,OAAd,CAAsBgD,OAAtB,CAA8BW,IAA9B,CAAmCC,GAAnC,CAAuCC,OAAvC,GAAiD5E,OAAO,CAACmC,GAAR,CAAY,oBAAZ,EAAkC,KAAlC,CAAjD;AACAnC,QAAAA,OAAO,CAACc,KAAR,CAAcC,OAAd,CAAsBgD,OAAtB,CAA8BW,IAA9B,CAAmCA,IAAnC,CAAwCI,KAAxC,CAA8CF,OAA9C,GAAwD5E,OAAO,CAACmC,GAAR,CAAY,oBAAZ,EAAkC,MAAlC,KAA6C,OAArG;AACAnC,QAAAA,OAAO,CAACc,KAAR,CAAcC,OAAd,CAAsBgD,OAAtB,CAA8BW,IAA9B,CAAmCA,IAAnC,CAAwCK,IAAxC,CAA6CH,OAA7C,GAAuD5E,OAAO,CAACmC,GAAR,CAAY,oBAAZ,EAAkC,MAAlC,KAA6C,MAApG;AACH;;AACDX,MAAAA,OAAO,CAACyD,GAAR,CAAYzE,QAAZ;AACH,KAPD,CAQA,OAAOe,KAAP,EAAc;AACVC,MAAAA,OAAO,CAACD,KAAR,CAAc,6BAAd,EAA6CA,KAA7C;AACH;AACJ;;AAEM,WAASD,qBAAT,CAA+BtB,OAA/B,EAAuC;AAC1C,UAAMkC,IAAI,GAAGlC,OAAO,CAACmC,GAAR,CAAY,gCAAZ,CAAb;AACA,UAAMC,IAAI,GAAGpC,OAAO,CAACmC,GAAR,CAAY,gCAAZ,CAAb;AACA,UAAME,IAAI,GAAGrC,OAAO,CAACmC,GAAR,CAAY,oCAAZ,CAAb;AACA,UAAMG,IAAI,GAAGtC,OAAO,CAACmC,GAAR,CAAY,oCAAZ,CAAb;;AACA,QAAG;AACCX,MAAAA,OAAO,CAACyD,GAAR,CAAYjF,OAAO,CAACc,KAAR,CAAca,IAA1B,EADD,CAEC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA3B,MAAAA,OAAO,CAACc,KAAR,CAAcc,MAAd;AACH,KAjBD,CAkBA,OAAOL,KAAP,EAAc;AACVC,MAAAA,OAAO,CAACD,KAAR,CAAc,8BAAd,EAA8CA,KAA9C;AACH;AACJ;;AAEM,WAAS2D,aAAT,GAAwB;AAC3B,QAAIC,UAAU,GAAG,EAAjB;AAEA,UAAMC,WAAW,GAAG,IAAIC,eAAJ,CAAoBC,MAAM,CAACC,QAAP,CAAgBC,MAApC,CAApB;AAEA,UAAMC,eAAe,GAAGL,WAAW,CAACjD,GAAZ,CAAgB,iBAAhB,CAAxB;AACA,UAAMuD,iBAAiB,GAAGN,WAAW,CAACjD,GAAZ,CAAgB,mBAAhB,CAA1B;AACA,UAAMwD,YAAY,GAAGP,WAAW,CAACjD,GAAZ,CAAgB,cAAhB,CAArB;AACA,UAAMyD,YAAY,GAAGR,WAAW,CAACjD,GAAZ,CAAgB,cAAhB,CAArB;AACA,UAAM0D,iBAAiB,GAAGT,WAAW,CAACjD,GAAZ,CAAgB,mBAAhB,CAA1B;AACA,UAAM2D,gBAAgB,GAAGV,WAAW,CAACjD,GAAZ,CAAgB,kBAAhB,CAAzB;AACA,UAAM4D,gBAAgB,GAAGX,WAAW,CAACjD,GAAZ,CAAgB,kBAAhB,CAAzB;AAEAgD,IAAAA,UAAU,CAAC,iBAAD,CAAV,GAAkCM,eAAe,GAAGA,eAAH,GAAqB,IAAtE;AACAN,IAAAA,UAAU,CAAC,mBAAD,CAAV,GAAkCO,iBAAiB,GAAGA,iBAAH,GAAuB,IAA1E;AACAP,IAAAA,UAAU,CAAC,cAAD,CAAV,GAAkCQ,YAAY,GAAGK,MAAM,CAACC,UAAP,CAAkBN,YAAlB,CAAH,GAAqC,IAAnF;AACAR,IAAAA,UAAU,CAAC,cAAD,CAAV,GAAkCS,YAAY,GAAGI,MAAM,CAACC,UAAP,CAAkBL,YAAlB,CAAH,GAAqC,IAAnF;AACAT,IAAAA,UAAU,CAAC,mBAAD,CAAV,GAAkCU,iBAAiB,GAAGA,iBAAH,GAAuB,IAA1E;AACAV,IAAAA,UAAU,CAAC,kBAAD,CAAV,GAAkCW,gBAAgB,GAAGE,MAAM,CAACC,UAAP,CAAkBH,gBAAlB,CAAH,GAAyC,IAA3F;AACAX,IAAAA,UAAU,CAAC,kBAAD,CAAV,GAAkCY,gBAAgB,GAAGC,MAAM,CAACC,UAAP,CAAkBF,gBAAlB,CAAH,GAAyC,IAA3F;AACA,WAAOZ,UAAP;AAEH;;;AChPD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACTA,WAASe,wBAAT,CAAkCC,KAAlC,EAAyC;AACrCA,IAAAA,KAAK,CAACC,GAAN,CAAU,qBAAV,EAAiC;AAC7BC,MAAAA,SAAS,EAAE;AADkB,KAAjC;;AAGAF,IAAAA,KAAK,CAACC,GAAN,CAAU,WAAV,EAAuB,IAAvB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,OAAV,EAAmB,CAAnB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,MAAV,EAAkB,IAAlB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,OAAV,EAAmB,IAAnB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,OAAV,EAAmB,IAAnB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,WAAV,EAAuB,GAAvB;AACH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,MAAM,EAAEN,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF0B;AAGlCE,IAAAA,sBAAsB,EAAE,IAHU;AAIlCC,IAAAA,mBAAmB,EAAE;AACjBT,MAAAA,SAAS,EAAE;AADM,KAJa;AAOlCU,IAAAA,UAAU,EAAE,qBAPsB;AAQlCC,IAAAA,UAAU,EAAE,UARsB;AASlCC,IAAAA,SAAS,EAAE,IATuB;AAUlCC,IAAAA,KAAK,EAAE,CAV2B;AAWlCC,IAAAA,SAAS,EAAE,GAXuB;AAYlCC,IAAAA,cAAc,EAAE,IAZkB;AAalCC,IAAAA,UAAU,EAAE,IAbsB;AAclCC,IAAAA,IAAI,EAAE,IAd4B;AAelCC,IAAAA,KAAK,EAAE,IAf2B;AAgBlCC,IAAAA,KAAK,EAAE,IAhB2B;AAiBlCC,IAAAA,OAAO,EAAE,IAjByB;AAkBlCC,IAAAA,KAAK,EAAE,IAlB2B;AAoBlCC,IAAAA,kBAAkB,EAAErB,KAAK,CAACsB,QAAN,CAAeC,GAAf,CAAmB,yBAAnB,EAA8C,UAASC,IAAT,EAAc;AAC5E,YAAMC,2BAA2B,GAAG,KAAKC,GAAL,CAAS,6BAAT,EAAwCC,KAAxC,CAA8C,GAA9C,CAApC;AACA,aAAO;AACHC,QAAAA,GAAG,EAAEJ,IAAI,CAACE,GAAL,CAASD,2BAA2B,CAAC,CAAD,CAApC,CADF;AAEHI,QAAAA,KAAK,EAAEL,IAAI,CAACE,GAAL,CAASD,2BAA2B,CAAC,CAAD,CAApC;AAFJ,OAAP;AAIH,KANmB,CApBc;AA4BlC;AACAK,IAAAA,kCAAkC,EAAE9B,KAAK,CAAC+B,QAAN,CAAe,wBAAf,EAAyC,YAAU;AACnF,UAAK,KAAKL,GAAL,CAAS,wBAAT,CAAL,EAA0C;AACtC9B,QAAAA,wBAAwB,CAAC,IAAD,CAAxB;AACH;AACJ,KAJmC,CA7BF;AAmClCoC,IAAAA,OAAO,EAAE;AAELC,MAAAA,UAAU,CAACC,KAAD,EAAQ;AACd,cAAMC,UAAU,GAAGD,KAAK,CAACE,MAAN,CAAaP,KAAhC,CADc,CAGd;;AACA,cAAMQ,WAAW,GAAG,KAAKC,iBAAL,CAAuBC,IAAvB,CAA6BC,MAAD,IAAY;AAC1D,iBAAOA,MAAM,CAACC,EAAP,KAAcN,UAArB;AACD,SAFmB,CAApB;;AAIA,YAAIE,WAAJ,EAAiB;AACf;AACA,eAAKvC,GAAL,CAAS,SAAT,EAAoBuC,WAApB;AACD;AACJ,OAdI;;AAgBLK,MAAAA,QAAQ,CAACR,KAAD,EAAQ;AACZ,cAAMC,UAAU,GAAGD,KAAK,CAACE,MAAN,CAAaP,KAAhC,CADY,CAGZ;;AACA,cAAMQ,WAAW,GAAG,KAAKM,eAAL,CAAqBJ,IAArB,CAA2BC,MAAD,IAAY;AACxD,iBAAOA,MAAM,CAACC,EAAP,KAAcN,UAArB;AACD,SAFmB,CAApB;;AAIA,YAAIE,WAAJ,EAAiB;AACf;AACA,eAAKvC,GAAL,CAAS,OAAT,EAAkBuC,WAAlB;AACD;AACJ,OA5BI;;AA8BLO,MAAAA,MAAM,CAACC,MAAD,EAAQ;AACV;AACA;AACA,aAAK/C,GAAL,CAAS,wBAAT,EAAmC,IAAnC;AACH,OAlCI;;AAmCLgD,MAAAA,OAAO,CAACD,MAAD,EAAQ;AAEX,YAAIhD,KAAK,GAAG,IAAZ;;AACA,YAAIM,KAAK,GAAG,KAAKuB,GAAL,CAAS,OAAT,CAAZ;AACA,YAAIlB,mBAAmB,GAAG,KAAKkB,GAAL,CAAS,qBAAT,CAA1B;;AAEA,YAAI,KAAKA,GAAL,CAAS,WAAT,KAAyB,IAA7B,EAAmC;AAC/BlB,UAAAA,mBAAmB,CAACG,SAApB,GAAgCoC,MAAM,CAAC,KAAKrB,GAAL,CAAS,WAAT,CAAD,EAAuB,qBAAvB,CAAN,CAAoDsB,MAApD,CAA2D,qBAA3D,CAAhC;AACH,SARU,CAUX;AACA;;;AACAxC,QAAAA,mBAAmB,CAACQ,IAApB,GAA2B,KAAKU,GAAL,CAAS,MAAT,CAA3B;AACAlB,QAAAA,mBAAmB,CAACS,KAApB,GAA4B,KAAKS,GAAL,CAAS,OAAT,CAA5B;AACAlB,QAAAA,mBAAmB,CAACU,KAApB,GAA4B,KAAKQ,GAAL,CAAS,OAAT,CAA5B;AACAlB,QAAAA,mBAAmB,CAACK,SAApB,GAAgCV,KAAK,CAAC8C,UAAN,CAAiB,YAAjB,EAA+B,KAAKvB,GAAL,CAAS,WAAT,CAA/B,CAAhC;AACAlB,QAAAA,mBAAmB,CAACW,OAApB,GAA8B,KAAKO,GAAL,CAAS,SAAT,CAA9B;AACAlB,QAAAA,mBAAmB,CAACY,KAApB,GAA4B,KAAKM,GAAL,CAAS,OAAT,CAA5B;AAEA,cAAMwB,aAAa,GAAG/C,KAAK,CAACgD,YAAN,CAAmB,aAAnB,EAAkC3C,mBAAlC,CAAtB,CAnBW,CAqBX;AACA;;AACA0C,QAAAA,aAAa,CAACE,IAAd,GAAqBC,IAArB,CAA0B,UAASC,OAAT,EAAiB;AACvC;AACAzD,UAAAA,KAAK,CAACC,GAAN,CAAU,wBAAV,EAAoC,KAApC;;AACA,gBAAMyD,gBAAgB,GAAG1D,KAAK,CAAC6B,GAAN,CAAU,yBAAV,CAAzB;;AACA,gBAAM8B,oBAAoB,GAAG,eAAS3D,KAAT,EAAgB2C,MAAhB,CAAwB,SAAQe,gBAAiB,EAAjD,CAA7B;AACAC,UAAAA,oBAAoB,CAACC,OAArB,GALuC,CAOvC;AACA;AACA;AACH,SAVD,EAWCC,KAXD,CAWQC,KAAD,IAAW;AACdC,UAAAA,OAAO,CAACD,KAAR,CAAcA,KAAd;AACH,SAbD,EAvBW,CAsCX;AACA;AACA;AACA;AACA;AACH,OA9EI;;AA+ELE,MAAAA,SAAS,CAAChB,MAAD,EAAQ;AACb;AACA,aAAK/C,GAAL,CAAS,wBAAT,EAAmC,KAAnC,EAFa,CAGb;;AACAF,QAAAA,wBAAwB,CAAC,IAAD,CAAxB;AACH;;AApFI,KAnCyB;;AAyHlCkE,IAAAA,SAAS,GAAG;AACR,UAAIjE,KAAK,GAAG,IAAZ,CADQ,CAER;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACH,KA5IiC;;AA6IlCkE,IAAAA,kBAAkB,GAAG;AACjB,UAAI,KAAKrC,GAAL,CAAS,gBAAT,CAAJ,EAAgC;AAC5B,aAAKA,GAAL,CAAS,gBAAT,EAA2BsC,cAA3B,CAA0C,SAA1C;AACH;;AACD,UAAI,KAAKtC,GAAL,CAAS,YAAT,CAAJ,EAA4B;AACxB,aAAKA,GAAL,CAAS,YAAT,EAAuBsC,cAAvB,CAAsC,SAAtC;AACH;AACJ;;AApJiC,GAAvB,C;;;;;;;;;;;;;ACZf,WAASC,0BAAT,CAAoCC,KAApC,EAA2C;AACvCA,IAAAA,KAAK,CAACC,GAAN,CAAU,uBAAV,EAAmC;AAC/BC,MAAAA,SAAS,EAAE;AADoB,KAAnC;;AAGAF,IAAAA,KAAK,CAACC,GAAN,CAAU,WAAV,EAAuB,IAAvB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,MAAV,EAAkB,IAAlB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,OAAV,EAAmB,IAAnB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,OAAV,EAAmB,IAAnB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,aAAV,EAAyB,GAAzB;AACH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,MAAM,EAAEN,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF0B;AAGlCE,IAAAA,sBAAsB,EAAE,IAHU;AAIlCC,IAAAA,qBAAqB,EAAE;AACnBT,MAAAA,SAAS,EAAE;AADQ,KAJW;AAOlCU,IAAAA,UAAU,EAAE,qBAPsB;AAQlCC,IAAAA,SAAS,EAAE,IARuB;AASlCC,IAAAA,WAAW,EAAE,GATqB;AAUlCC,IAAAA,cAAc,EAAE,IAVkB;AAWlCC,IAAAA,IAAI,EAAE,IAX4B;AAYlCC,IAAAA,KAAK,EAAE,IAZ2B;AAalCC,IAAAA,KAAK,EAAE,IAb2B;AAelCC,IAAAA,kBAAkB,EAAEhB,KAAK,CAACiB,QAAN,CAAeC,GAAf,CAAmB,2BAAnB,EAAgD,UAASC,IAAT,EAAc;AAC9E,YAAMC,6BAA6B,GAAG,KAAKC,GAAL,CAAS,+BAAT,EAA0CC,KAA1C,CAAgD,GAAhD,CAAtC;AACA,aAAO;AACHC,QAAAA,GAAG,EAAEJ,IAAI,CAACE,GAAL,CAASD,6BAA6B,CAAC,CAAD,CAAtC,CADF;AAEHI,QAAAA,KAAK,EAAEL,IAAI,CAACE,GAAL,CAASD,6BAA6B,CAAC,CAAD,CAAtC;AAFJ,OAAP;AAIH,KANmB,CAfc;AAuBlC;AACAK,IAAAA,kCAAkC,EAAEzB,KAAK,CAAC0B,QAAN,CAAe,wBAAf,EAAyC,YAAU;AACnF,UAAK,KAAKL,GAAL,CAAS,wBAAT,CAAL,EAA0C;AACtCzB,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;AACJ,KAJmC,CAxBF;AA8BlC+B,IAAAA,OAAO,EAAE;AACLC,MAAAA,MAAM,CAACC,MAAD,EAAQ;AACV,YAAI1B,KAAK,GAAG,KAAKkB,GAAL,CAAS,OAAT,CAAZ,CADU,CAEV;;AACA,aAAKvB,GAAL,CAAS,wBAAT,EAAmC,IAAnC;AACH,OALI;;AAMLgC,MAAAA,OAAO,CAACD,MAAD,EAAQ;AACX,YAAIhC,KAAK,GAAG,IAAZ;AAAA,YACIM,KAAK,GAAG,KAAKkB,GAAL,CAAS,OAAT,CADZ;AAAA,YAEIb,qBAAqB,GAAG,KAAKa,GAAL,CAAS,uBAAT,CAF5B;;AAKA,YAAI,KAAKA,GAAL,CAAS,WAAT,KAAyB,IAA7B,EAAmC;AAC/Bb,UAAAA,qBAAqB,CAACE,SAAtB,GAAkCqB,MAAM,CAAC,KAAKV,GAAL,CAAS,WAAT,CAAD,EAAuB,qBAAvB,CAAN,CAAoDW,MAApD,CAA2D,qBAA3D,CAAlC;AACH;;AACDxB,QAAAA,qBAAqB,CAACK,IAAtB,GAA6B,KAAKQ,GAAL,CAAS,MAAT,CAA7B;AACAb,QAAAA,qBAAqB,CAACM,KAAtB,GAA8B,KAAKO,GAAL,CAAS,OAAT,CAA9B;AACAb,QAAAA,qBAAqB,CAACO,KAAtB,GAA8B,KAAKM,GAAL,CAAS,OAAT,CAA9B;AACAb,QAAAA,qBAAqB,CAACG,WAAtB,GAAoCR,KAAK,CAAC8B,UAAN,CAAiB,cAAjB,EAAiC,KAAKZ,GAAL,CAAS,aAAT,CAAjC,CAApC;AAEA,cAAMa,eAAe,GAAG/B,KAAK,CAACgC,YAAN,CAAmB,eAAnB,EAAoC3B,qBAApC,CAAxB,CAdW,CAgBX;;AACA,cAAM4B,WAAW,GAAGF,eAAe,CAACG,IAAhB,GAAuBC,IAAvB,CAA4B,UAASC,OAAT,EAAiB;AAC7D;AACA1C,UAAAA,KAAK,CAACC,GAAN,CAAU,wBAAV,EAAoC,KAApC;;AACA,gBAAM0C,gBAAgB,GAAG3C,KAAK,CAACwB,GAAN,CAAU,yBAAV,CAAzB;;AACA,gBAAMoB,oBAAoB,GAAG,eAAS5C,KAAT,EAAgB6C,MAAhB,CAAwB,SAAQF,gBAAiB,EAAjD,CAA7B;AACAC,UAAAA,oBAAoB,CAACE,OAArB,GAL6D,CAO7D;AACA;AACA;AACH,SAVmB,EAWnBC,KAXmB,CAWb,UAASC,MAAT,EAAgB;AACnB,cAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChClD,YAAAA,KAAK,CAACmD,OAAN,CAAc,iBAAd,EAAiC,IAAjC;AACH;AACJ,SAfmB,CAApB;AAiBH,OAxCI;;AAyCLC,MAAAA,SAAS,CAACpB,MAAD,EAAQ;AACb;AACA,aAAK/B,GAAL,CAAS,wBAAT,EAAmC,KAAnC,EAFa,CAGb;;AACAF,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;;AA9CI,KA9ByB;;AA8ElCsD,IAAAA,SAAS,GAAG;AACR,UAAIrD,KAAK,GAAG,IAAZ,CADQ,CAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACH,KA1FiC;;AA2FlCsD,IAAAA,kBAAkB,GAAG;AACjB,UAAI,KAAK9B,GAAL,CAAS,gBAAT,CAAJ,EAAgC;AAC5B,aAAKA,GAAL,CAAS,gBAAT,EAA2B+B,cAA3B,CAA0C,SAA1C;AACH;AACJ;;AA/FiC,GAAvB,C;;;;;;;;;;;;;ACXf;AACA;AACA;AACA;AACA;AACA;iBAEeC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,gBAAgB,GAAG;AACf,UAAIC,GAAG,GAAGC,CAAC,CAACD,GAAF,CAAM,SAAN,EAAiB;AACvBE,QAAAA,MAAM,EAAE,CAAC,KAAKC,GAAN,EAAW,KAAKC,GAAhB,CADe;AAEvBC,QAAAA,IAAI,EAAE,KAAKA;AAFY,OAAjB,CAAV,CADe,CAKf;;AACAJ,MAAAA,CAAC,CAACK,YAAF,CAAe,yBAAf,EAAyC,KAAKC,SAA9C,EAAyDC,KAAzD,CAA+DR,GAA/D;AACA,UAAIS,MAAM,GAAGR,CAAC,CAACQ,MAAF,CAAS,CAAC,SAAD,EAAW,CAAC,UAAZ,CAAT,CAAb;AAEA,UAAIC,YAAY,GAAG,aAAa,kDAAb,GAAkE,QAAlE,GACC,QADD,GACY,MADZ,GACqB,QADrB,GAEC,SAFD,GAEa,KAFb,GAEqB,QAFrB,GAGC,SAHD,GAGa,aAHhC;AAMAD,MAAAA,MAAM,CAACE,SAAP,CAAiBD,YAAjB,EAA+BE,SAA/B;AACAH,MAAAA,MAAM,CAACD,KAAP,CAAaR,GAAb;AACH,KAlBiC;;AAmBlCG,IAAAA,GAAG,EAAE,SAnB6B;AAoBlCC,IAAAA,GAAG,EAAE,CAAC,UApB4B;AAqBlCC,IAAAA,IAAI,EAAE,EArB4B;AAsBlCE,IAAAA,SAAS,EAAEX,KAAK,CAACiB,QAAN,CAAe,YAAW;AACjC,aAAO,CAAC,CAAC,SAAD,EAAY,CAAC,UAAb,CAAD,EAA0B,CAAC,SAAD,EAAY,CAAC,UAAb,CAA1B,CAAP;AACH,KAFU;AAtBuB,GAAvB,C;;;;;;;;;;;;;iBCLAC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,IAAI,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD4B;AAElCC,IAAAA,OAAO,EAAEN,KAAK,CAACI,MAAN,CAAaC,OAAb,EAFyB;AAGlCE,IAAAA,uBAAuB,EAAE,IAHS;AAIlCC,IAAAA,YAAY,EAAE,IAJoB;AAKlCC,IAAAA,UAAU,EAAE,KALsB;AAMlCC,IAAAA,OAAO,EAAE,KANyB;AAOlCC,IAAAA,WAAW,EAAE,CACT;AACIC,MAAAA,GAAG,EAAE,KADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KADS,EAKT;AACID,MAAAA,GAAG,EAAE,gBADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KALS,EAST;AACID,MAAAA,GAAG,EAAE,gBADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KATS,EAaT;AACID,MAAAA,GAAG,EAAE,gBADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAbS,EAiBT;AACID,MAAAA,GAAG,EAAE,KADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAjBS,EAqBT;AACID,MAAAA,GAAG,EAAE,MADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KArBS,EAyBT;AACID,MAAAA,GAAG,EAAE,eADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAzBS,EA6BT;AACID,MAAAA,GAAG,EAAE,eADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KA7BS,EAiCT;AACID,MAAAA,GAAG,EAAE,eADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAjCS,EAqCT;AACID,MAAAA,GAAG,EAAE,aADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KArCS,CAPqB;AAiDlCC,IAAAA,QAAQ,EAAEd,KAAK,CAACe,QAAN,CAAe,YAAf,EAA6B,aAA7B,EAA4C,YAAW;AAC7D,aAAO,KAAKC,GAAL,CAAS,cAAT,IAA2B,GAA3B,GAAiC,KAAKA,GAAL,CAAS,YAAT,CAAxC;AACH,KAFS,CAjDwB;AAoDlCC,IAAAA,QAAQ,EAAEjB,KAAK,CAACe,QAAN,CAAe,YAAf,EAA6B,aAA7B,EAA4C,YAAW;AAE7D,UAAIG,IAAI,GAAG,+BAAX;AACA,aAAOA,IAAI,GAAG,eAAP,GAAyB,KAAKF,GAAL,CAAS,cAAT,CAAzB,GAAoD,8BAApD,GAAqF,KAAKA,GAAL,CAAS,YAAT,CAA5F;AACH,KAJS,CApDwB;AAyDlC;AACAG,IAAAA,kCAAkC,EAAEnB,KAAK,CAACoB,QAAN,CAAe,YAAf,EAA6B,YAAU;AACvE,WAAKC,GAAL,CAAS,mBAAT,EAA8B,KAA9B;AACH,KAFmC,CA1DF;AA6DlCC,IAAAA,iBAAiB,EAAE,KA7De;AA8DlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,IAAAA,OAAO,EAAE;AACLC,MAAAA,YAAY,GAAG;AACX,aAAKH,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,YAAII,EAAE,GAAGC,CAAC,CAAC,IAAD,CAAV,CAFW,CAIX;;AACA,YAAIC,UAAU,GAAGC,MAAM,CAACC,QAAP,CAAgBC,IAAjC,CALW,CAOX;;AACA,YAAIC,WAAW,GAAGJ,UAAU,CAACK,KAAX,CAAiB,GAAjB,CAAlB;AACA,YAAIC,UAAU,GAAGF,WAAW,CAACA,WAAW,CAACG,MAAZ,GAAqB,CAAtB,CAAX,IAAuC,IAAxD;;AACA,YAAID,UAAU,CAACE,QAAX,CAAoB,UAApB,CAAJ,EAAoC;AAChCF,UAAAA,UAAU,GAAG,0BAAb;AACH,SAZU,CAaX;AAEA;;;AACA,cAAMG,MAAM,GAAG,IAAIC,eAAJ,CAAoBV,UAAU,CAACK,KAAX,CAAiB,GAAjB,EAAsB,CAAtB,CAApB,CAAf,CAhBW,CAkBX;;AACA,cAAMM,IAAI,GAAG,CAAC,iBAAD,EAAoB,mBAApB,EAAyC,mBAAzC,CAAb,CAnBW,CAqBX;;AACAA,QAAAA,IAAI,CAACC,OAAL,CAAa3B,GAAG,IAAI;AAClB,cAAIwB,MAAM,CAACI,GAAP,CAAW5B,GAAX,CAAJ,EAAqB;AACnBqB,YAAAA,UAAU,IAAK,IAAGrB,GAAI,IAAGwB,MAAM,CAACpB,GAAP,CAAWJ,GAAX,CAAgB,EAAzC;AACD;AACF,SAJD,EAtBW,CA2BX;;AACA,YAAIK,QAAQ,GAAG,KAAKD,GAAL,CAAS,UAAT,CAAf;AACA,YAAIyB,iBAAiB,GAAGR,UAAU,GAAGhB,QAAQ,GAAG,cAAX,GAA4BgB,UAA/B,GAA4ChB,QAA9E;AAEA,YAAIyB,QAAQ,GAAG,KAAK1B,GAAL,CAAS,UAAT,CAAf;;AACA,YAAI,KAAKA,GAAL,CAAS,UAAT,EAAqBgB,KAArB,CAA2B,GAA3B,EAAgC,CAAhC,EAAmCG,QAAnC,CAA4C,GAA5C,CAAJ,EAAqD;AACjD;AACAO,UAAAA,QAAQ,GAAG,KAAK1B,GAAL,CAAS,cAAT,IAA2B,GAA3B,GAAiC,KAAKA,GAAL,CAAS,UAAT,EAAqBgB,KAArB,CAA2B,GAA3B,EAAgC,CAAhC,EAAmCA,KAAnC,CAAyC,GAAzC,EAA8C,CAA9C,CAA5C;AACH;;AACD,YAAIW,OAAO,GAAGjB,CAAC,CAACvB,IAAF,CAAO;AACjByC,UAAAA,MAAM,EAAE,KADS;AAEjBC,UAAAA,GAAG,EAAEJ,iBAFY;AAGjBK,UAAAA,OAAO,EAAE;AACLC,YAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AADnC,WAHQ;AAMjBC,UAAAA,OAAO,EAAEC,QAAQ,CAACC,IAAT,CAAc,IAAd,EAAoB,UAApB,EAAgCV,QAAhC;AANQ,SAAP,CAAd;AASAC,QAAAA,OAAO,CAACU,IAAR,CAAa,UAAUC,GAAV,EAAgB;AACzB7B,UAAAA,EAAE,CAAC,CAAD,CAAF,CAAMJ,GAAN,CAAU,SAAV,EAAqB,KAArB;AACH,SAFD;AAGH,OAjDI;;AAoDLkC,MAAAA,gBAAgB,GAA0C;AAAA,YAAzCC,aAAyC,uEAAzB,EAAyB;AAAA,YAArBC,cAAqB,uEAAJ,EAAI;;AACtD,cAAMC,KAAK,GAAG,IAAd;;AACA,YAAIF,aAAa,CAACtB,MAAd,GAAuB,CAAvB,IAA4BuB,cAAc,CAACvB,MAAf,GAAwB,CAApD,IAAyDsB,aAAa,CAACtB,MAAd,KAAyBuB,cAAc,CAACvB,MAArG,EAA6G;AACzGsB,UAAAA,aAAa,CAACjB,OAAd,CAAuB,UAASoB,YAAT,EAAuBC,CAAvB,EAA0B;AAC7CF,YAAAA,KAAK,CAACrC,GAAN,CAAUsC,YAAV,EAAwBF,cAAc,CAACG,CAAD,CAAtC;AACH,WAFD;AAGH,SAJD,MAIO,IAAI,CAACC,KAAK,CAACC,OAAN,CAAcN,aAAd,CAAD,IAAiCA,aAAa,KAAK,EAAnD,IAAyDC,cAAc,KAAK,EAAhF,EAAoF;AACvFC,UAAAA,KAAK,CAACrC,GAAN,CAAUmC,aAAV,EAAyBC,cAAzB;AACH;AACJ,OA7DI;;AA8DLM,MAAAA,MAAM,GAAG;AACL,aAAK1C,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACA,aAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AAEH;;AAlEI;AA9EyB,GAAvB,C;;;;;;;;;;;;;iBCAA2C,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,IAAI,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD4B;AAElCC,IAAAA,OAAO,EAAEN,KAAK,CAACI,MAAN,CAAaC,OAAb,EAFyB;AAGlCE,IAAAA,uBAAuB,EAAE,IAHS;AAIlCC,IAAAA,SAAS,EAAE,IAJuB;AAKlCC,IAAAA,UAAU,EAAE,KALsB;AAMlCC,IAAAA,OAAO,EAAE,KANyB;AAOlCC,IAAAA,WAAW,EAAE,CACT;AACIC,MAAAA,GAAG,EAAE,KADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KADS,EAKT;AACID,MAAAA,GAAG,EAAE,gBADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KALS,EAST;AACID,MAAAA,GAAG,EAAE,gBADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KATS,EAaT;AACID,MAAAA,GAAG,EAAE,gBADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAbS,EAiBT;AACID,MAAAA,GAAG,EAAE,KADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAjBS,EAqBT;AACID,MAAAA,GAAG,EAAE,MADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KArBS,EAyBT;AACID,MAAAA,GAAG,EAAE,eADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAzBS,EA6BT;AACID,MAAAA,GAAG,EAAE,eADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KA7BS,EAiCT;AACID,MAAAA,GAAG,EAAE,eADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAjCS,EAqCT;AACID,MAAAA,GAAG,EAAE,aADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KArCS,CAPqB;AAiDlCC,IAAAA,QAAQ,EAAEd,KAAK,CAACe,QAAN,CAAe,YAAf,EAA6B,aAA7B,EAA4C,YAAW;AAC7D,aAAO,KAAKC,GAAL,CAAS,WAAT,IAAwB,GAAxB,GAA8B,KAAKA,GAAL,CAAS,YAAT,CAArC;AACH,KAFS,CAjDwB;AAoDlCC,IAAAA,QAAQ,EAAEjB,KAAK,CAACe,QAAN,CAAe,YAAf,EAA6B,aAA7B,EAA4C,YAAW;AAC7D,UAAIG,IAAI,GAAG,+BAAX;AAEA,aAAOA,IAAI,GAAG,YAAP,GAAsB,KAAKF,GAAL,CAAS,WAAT,CAAtB,GAA8C,yBAA9C,GAA0E,KAAKA,GAAL,CAAS,YAAT,CAAjF;AACH,KAJS,CApDwB;AAyDlC;AACAG,IAAAA,kCAAkC,EAAEnB,KAAK,CAACoB,QAAN,CAAe,YAAf,EAA6B,YAAU;AACvE,WAAKC,GAAL,CAAS,mBAAT,EAA8B,KAA9B;AACH,KAFmC,CA1DF;AA6DlCC,IAAAA,iBAAiB,EAAE,KA7De;AA8DlCC,IAAAA,OAAO,EAAE;AACLC,MAAAA,YAAY,GAAG;AACX,aAAKH,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,YAAII,EAAE,GAAGC,CAAC,CAAC,IAAD,CAAV;AACA,YAAIC,QAAQ,GAAG,KAAKX,GAAL,CAAS,UAAT,CAAf;AACAY,QAAAA,OAAO,CAACC,GAAR,CAAY,wBAAwBF,QAApC;;AACA,YAAI,KAAKX,GAAL,CAAS,UAAT,EAAqBc,KAArB,CAA2B,GAA3B,EAAgC,CAAhC,EAAmCC,QAAnC,CAA4C,GAA5C,CAAJ,EAAqD;AACjD;AACAJ,UAAAA,QAAQ,GAAG,KAAKX,GAAL,CAAS,WAAT,IAAwB,GAAxB,GAA8B,KAAKA,GAAL,CAAS,UAAT,EAAqBc,KAArB,CAA2B,GAA3B,EAAgC,CAAhC,EAAmCA,KAAnC,CAAyC,GAAzC,EAA8C,CAA9C,CAAzC;AACH;;AACD,YAAIE,OAAO,GAAGN,CAAC,CAACvB,IAAF,CAAO;AACjB8B,UAAAA,MAAM,EAAE,KADS;AAEjBC,UAAAA,GAAG,EAAE,KAAKlB,GAAL,CAAS,UAAT,CAFY;AAGjBmB,UAAAA,OAAO,EAAE;AACLC,YAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AADnC,WAHQ;AAMjBC,UAAAA,OAAO,EAAEC,QAAQ,CAACC,IAAT,CAAc,IAAd,EAAoB,UAApB,EAAgCd,QAAhC;AANQ,SAAP,CAAd,CATW,CAkBT;;AACFK,QAAAA,OAAO,CAACU,IAAR,CAAa,UAAUC,GAAV,EAAgB;AACzBlB,UAAAA,EAAE,CAAC,CAAD,CAAF,CAAMJ,GAAN,CAAU,SAAV,EAAqB,KAArB;AACH,SAFD;AAGH,OAvBI;;AAwBLuB,MAAAA,gBAAgB,GAA0C;AAAA,YAAzCC,aAAyC,uEAAzB,EAAyB;AAAA,YAArBC,cAAqB,uEAAJ,EAAI;;AACtD,cAAMC,KAAK,GAAG,IAAd;;AACA,YAAIF,aAAa,CAACG,MAAd,GAAuB,CAAvB,IAA4BF,cAAc,CAACE,MAAf,GAAwB,CAApD,IAAyDH,aAAa,CAACG,MAAd,KAAyBF,cAAc,CAACE,MAArG,EAA6G;AACzGH,UAAAA,aAAa,CAACI,OAAd,CAAuB,UAASC,YAAT,EAAuBC,CAAvB,EAA0B;AAC7CJ,YAAAA,KAAK,CAAC1B,GAAN,CAAU6B,YAAV,EAAwBJ,cAAc,CAACK,CAAD,CAAtC;AACH,WAFD;AAGH,SAJD,MAIO,IAAI,CAACC,KAAK,CAACC,OAAN,CAAcR,aAAd,CAAD,IAAiCA,aAAa,KAAK,EAAnD,IAAyDC,cAAc,KAAK,EAAhF,EAAoF;AACvFC,UAAAA,KAAK,CAAC1B,GAAN,CAAUwB,aAAV,EAAyBC,cAAzB;AACH;AACJ,OAjCI;;AAkCLQ,MAAAA,MAAM,GAAG;AACL,aAAKjC,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACA,aAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AAEH;;AAtCI;AA9DyB,GAAvB,C;;;;;;;;;;;;;iBCHAkC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,uBAAuB,EAAE,KADS;AAElCC,IAAAA,cAAc,EAAE,KAFkB;AAGlCC,IAAAA,YAAY,EAAE,IAHoB;AAIlCC,IAAAA,OAAO,EAAE,KAJyB;AAKlCC,IAAAA,UAAU,EAAE,KALsB;AAMlCC,IAAAA,WAAW,EAAE,CACT;AACIC,MAAAA,GAAG,EAAE,KADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KADS,EAKT;AACID,MAAAA,GAAG,EAAE,KADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KALS,EAST;AACID,MAAAA,GAAG,EAAE,KADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KATS,EAaT;AACID,MAAAA,GAAG,EAAE,MADT;AAEIC,MAAAA,KAAK,EAAE;AAFX,KAbS,CANqB;AAwBlCC,IAAAA,YAAY,EAAE,KAxBoB;AAyBlCC,IAAAA,YAAY,EAAE;AACVC,MAAAA,aAAa,EAAE,IADL;AAEVC,MAAAA,WAAW,EAAE;AAFH,KAzBoB;AA6BlCC,IAAAA,OAAO,EAAE;AACLC,MAAAA,gBAAgB,GAA0C;AAAA,YAAzCC,aAAyC,uEAAzB,EAAyB;AAAA,YAArBC,cAAqB,uEAAJ,EAAI;;AACtD,cAAMC,KAAK,GAAG,IAAd;;AACA,YAAIF,aAAa,CAACG,MAAd,GAAuB,CAAvB,IAA4BF,cAAc,CAACE,MAAf,GAAwB,CAApD,IAAyDH,aAAa,CAACG,MAAd,KAAyBF,cAAc,CAACE,MAArG,EAA6G;AACzGH,UAAAA,aAAa,CAACI,OAAd,CAAuB,UAASC,YAAT,EAAuBC,CAAvB,EAA0B;AAC7CJ,YAAAA,KAAK,CAACK,GAAN,CAAUF,YAAV,EAAwBJ,cAAc,CAACK,CAAD,CAAtC;AACH,WAFD;AAGH,SAJD,MAIO,IAAI,CAACE,KAAK,CAACC,OAAN,CAAcT,aAAd,CAAD,IAAiCA,aAAa,KAAK,EAAnD,IAAyDC,cAAc,KAAK,EAAhF,EAAoF;AACvFC,UAAAA,KAAK,CAACK,GAAN,CAAUP,aAAV,EAAyBC,cAAzB;AACH;AACJ,OAVI;;AAWLS,MAAAA,UAAU,GAAG;AACT,aAAKH,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,aAAKA,GAAL,CAAS,cAAT,EAAyB,IAAzB;AACA,aAAKA,GAAL,CAAS,0BAAT,EAAqC,KAAKI,GAAL,CAAS,YAAT,CAArC;AACH,OAfI;;AAgBLC,MAAAA,YAAY,GAAG;AACX,aAAKL,GAAL,CAAS,cAAT,EAAyB,KAAzB;AACA,aAAKA,GAAL,CAAS,gBAAT,EAA0B,KAA1B;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACA,aAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AACH,OArBI;;AAsBLM,MAAAA,aAAa,GAAG;AACZ,aAAKN,GAAL,CAAS,cAAT,EAAwB,KAAxB;AACH,OAxBI;;AAyBLO,MAAAA,aAAa,CAACC,OAAD,EAAU;AACnBC,QAAAA,OAAO,CAACC,GAAR,CAAY,qBAAqBF,OAAjC;AACA,aAAKR,GAAL,CAAS,gBAAT,EAA0B,IAA1B;AACAxB,QAAAA,KAAK,CAACmC,GAAN,CAAUC,YAAV,CAAuB,aAAvB,EAAsC,IAAtC,EAA4C,YAAW;AACnD,eAAKZ,GAAL,CAAS,cAAT,EAAwB,KAAxB;AACA,eAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AACH,SAHD;AAIH;;AAhCI;AA7ByB,GAAvB,C;;;;;;;;;;;;;iBCDAa,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,uBAAuB,EAAE,KADS;AAElCC,IAAAA,cAAc,EAAE,KAFkB;AAGlCC,IAAAA,OAAO,EAAE,KAHyB;AAIlCC,IAAAA,4BAA4B,EAAEN,KAAK,CAACO,QAAN,CAAe,gBAAf,EAAiC,YAAW;AACtE,UAAI,KAAKC,GAAL,CAAS,gBAAT,CAAJ,EAAgC,CAC5B;AACH,OAFD,MAEO,CACH;AACH;AACJ,KAN6B,CAJI;AAWlCC,IAAAA,KAAK,EAAE,EAX2B;AAYlCC,IAAAA,YAAY,EAAE,IAZoB;AAalCC,IAAAA,UAAU,EAAE,MAbsB;AAclCC,IAAAA,UAAU,EAAE,EAdsB;AAelCC,IAAAA,WAAW,EAAE,CAAC;AACVC,MAAAA,GAAG,EAAE,UADK;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAAD,EAGV;AACCD,MAAAA,GAAG,EAAE,UADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KAHU,EAMV;AACCD,MAAAA,GAAG,EAAE,UADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KANU,EASV;AACCD,MAAAA,GAAG,EAAE,QADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KATU,EAYV;AACCD,MAAAA,GAAG,EAAE,QADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KAZU,CAfqB;AA+BlCC,IAAAA,WAAW,EAAE,CAAC;AACVF,MAAAA,GAAG,EAAE,MADK;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAAD,EAGV;AACCD,MAAAA,GAAG,EAAE,KADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KAHU,EAMV;AACCD,MAAAA,GAAG,EAAE,KADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KANU,CA/BqB;AAyC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACJE,IAAAA,KAAK,EAAC,IAzD4B;AA0DlCC,IAAAA,iBAAiB,EAAC;AAAC,eAAS;AAAV,KA1DgB;AA2DlCC,IAAAA,SAAS,EAACnB,KAAK,CAACoB,QAAN,CAAe,YAAU;AAC/B,UAAG,KAAKZ,GAAL,CAAS,YAAT,CAAH,EAA0B;AACtB,YAAIa,qBAAqB,GAAGC,MAAM,CAACC,IAAP,CAAY,KAAKf,GAAL,CAAS,mBAAT,CAAZ,CAA5B;;AACA,YAAGa,qBAAqB,CAACG,QAAtB,CAA+B,KAAKhB,GAAL,CAAS,YAAT,EAAuBiB,cAAvB,CAAsCC,KAArE,CAAH,EAA+E;AAC3E,iBAAO,IAAP;AACH;AACJ;;AACD,aAAO,KAAP;AACH,KARS,CA3DwB;AAoElCC,IAAAA,mBAAmB,EAAC3B,KAAK,CAACoB,QAAN,CAAe,YAAU;AAAC;AAC1C,YAAG,KAAKZ,GAAL,CAAS,YAAT,CAAH,EAA0B;AACtB,cAAIa,qBAAqB,GAAGC,MAAM,CAACC,IAAP,CAAY,KAAKf,GAAL,CAAS,mBAAT,CAAZ,CAA5B;;AACA,cAAGa,qBAAqB,CAACG,QAAtB,CAA+B,KAAKhB,GAAL,CAAS,YAAT,EAAuBiB,cAAvB,CAAsCC,KAArE,CAAH,EAA+E;AAC3E,mBAAO,KAAKlB,GAAL,CAAS,mBAAT,EAA8B,KAAKA,GAAL,CAAS,YAAT,EAAuBiB,cAAvB,CAAsCC,KAApE,CAAP;AACH;AACJ;;AACD,eAAO,EAAP;AACH;AAAC,KARkB,CApEc;AA6ElCE,IAAAA,YAAY,EAAE,KA7EoB;AA8ElCC,IAAAA,YAAY,EAAE;AACVC,MAAAA,aAAa,EAAE,IADL;AAEVC,MAAAA,WAAW,EAAE,IAFH;AAGVC,MAAAA,WAAW,EAAE,IAHH;AAIVf,MAAAA,KAAK,EAAC;AAJI,KA9EoB;AAoFlCgB,IAAAA,OAAO,EAAE;AACLC,MAAAA,gBAAgB,GAES;AAAA,YADrBC,aACqB,uEADL,EACK;AAAA,YAArBC,cAAqB,uEAAJ,EAAI;;AAErB,cAAMC,KAAK,GAAG,IAAd;;AACA,YAAIF,aAAa,CAACG,MAAd,GAAuB,CAAvB,IAA4BF,cAAc,CAACE,MAAf,GAAwB,CAApD,IAAyDH,aAAa,CAACG,MAAd,KAAyBF,cAAc,CAACE,MAArG,EAA6G;AACzGH,UAAAA,aAAa,CAACI,OAAd,CAAuB,UAASC,YAAT,EAAuBC,CAAvB,EAA0B;AAC7CJ,YAAAA,KAAK,CAACK,GAAN,CAAUF,YAAV,EAAwBJ,cAAc,CAACK,CAAD,CAAtC;AACH,WAFD;AAGH,SAJD,MAIO,IAAI,CAACE,KAAK,CAACC,OAAN,CAAcT,aAAd,CAAD,IAAiCA,aAAa,KAAK,EAAnD,IAAyDC,cAAc,KAAK,EAAhF,EAAoF;AACvFC,UAAAA,KAAK,CAACK,GAAN,CAAUP,aAAV,EAAyBC,cAAzB;AACH;AACJ,OAbI;;AAcLS,MAAAA,UAAU,GAAG;AACT;AACA,aAAKH,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,aAAKA,GAAL,CAAS,cAAT,EAAyB,IAAzB;AACA,aAAKA,GAAL,CAAS,4BAAT,EAAuC,KAAKlC,GAAL,CAAS,cAAT,CAAvC;AACA,aAAKkC,GAAL,CAAS,0BAAT,EAAqC,KAAKlC,GAAL,CAAS,YAAT,CAArC;AACA,aAAKkC,GAAL,CAAS,oBAAT,EAA+B,KAAKlC,GAAL,CAAS,OAAT,CAA/B;AACA,aAAKkC,GAAL,CAAS,0BAAT,EAAqC,KAAKlC,GAAL,CAAS,YAAT,CAArC;AACH,OAtBI;;AAuBLsC,MAAAA,YAAY,GAAG;AACX,aAAKJ,GAAL,CAAS,cAAT,EAAyB,KAAzB;AACA,aAAKA,GAAL,CAAS,gBAAT,EAA0B,KAA1B;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACA,aAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AACH,OA5BI;;AA6BLK,MAAAA,aAAa,GAAG;AACZ,aAAKL,GAAL,CAAS,cAAT,EAAwB,KAAxB;AACH,OA/BI;;AAgCLM,MAAAA,aAAa,CAACC,OAAD,EAAU;AACnBC,QAAAA,OAAO,CAACC,GAAR,CAAY,qBAAqBF,OAAjC;AACA,aAAKP,GAAL,CAAS,gBAAT,EAA0B,IAA1B;AACA,aAAKA,GAAL,CAAS,OAAT,EAAkBO,OAAO,CAACG,OAAR,CAAgB,QAAhB,EAA0B,EAA1B,CAAlB;AACApD,QAAAA,KAAK,CAACqD,GAAN,CAAUC,YAAV,CAAuB,aAAvB,EAAsC,IAAtC,EAA4C,YAAW;AACnD,eAAKZ,GAAL,CAAS,cAAT,EAAwB,KAAxB;AACA,eAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AACH,SAHD;AAIH;;AAxCI;AApFyB,GAAvB,C;;;;;;;;;;;;;iBCAAa,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,uBAAuB,EAAE,KADS;AAElCC,IAAAA,cAAc,EAAE,KAFkB;AAGlCC,IAAAA,OAAO,EAAE,KAHyB;AAIlCC,IAAAA,4BAA4B,EAAEN,KAAK,CAACO,QAAN,CAAe,gBAAf,EAAiC,YAAW;AACtE,UAAI,KAAKC,GAAL,CAAS,gBAAT,CAAJ,EAAgC,CAC5B;AACH,OAFD,MAEO,CACH;AACH;AACJ,KAN6B,CAJI;AAWlCC,IAAAA,KAAK,EAAE,EAX2B;AAYlCC,IAAAA,SAAS,EAAE,IAZuB;AAalCC,IAAAA,UAAU,EAAE,MAbsB;AAclCC,IAAAA,UAAU,EAAE,EAdsB;AAelCC,IAAAA,WAAW,EAAE,CAAC;AACVC,MAAAA,GAAG,EAAE,UADK;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAAD,EAGV;AACCD,MAAAA,GAAG,EAAE,UADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KAHU,EAMV;AACCD,MAAAA,GAAG,EAAE,UADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KANU,EASV;AACCD,MAAAA,GAAG,EAAE,QADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KATU,EAYV;AACCD,MAAAA,GAAG,EAAE,QADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KAZU,CAfqB;AA+BlCC,IAAAA,WAAW,EAAE,CAAC;AACVF,MAAAA,GAAG,EAAE,MADK;AAEVC,MAAAA,KAAK,EAAE;AAFG,KAAD,EAGV;AACCD,MAAAA,GAAG,EAAE,KADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KAHU,EAMV;AACCD,MAAAA,GAAG,EAAE,KADN;AAECC,MAAAA,KAAK,EAAE;AAFR,KANU,CA/BqB;AAyC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACJE,IAAAA,YAAY,EAAE,KAzDoB;AA0DlCC,IAAAA,YAAY,EAAE;AACVC,MAAAA,UAAU,EAAE,IADF;AAEVC,MAAAA,WAAW,EAAE,IAFH;AAGVC,MAAAA,WAAW,EAAE;AAHH,KA1DoB;AA+DlCC,IAAAA,OAAO,EAAE;AACLC,MAAAA,gBAAgB,GAES;AAAA,YADrBC,aACqB,uEADL,EACK;AAAA,YAArBC,cAAqB,uEAAJ,EAAI;;AAErB,cAAMC,KAAK,GAAG,IAAd;;AACA,YAAIF,aAAa,CAACG,MAAd,GAAuB,CAAvB,IAA4BF,cAAc,CAACE,MAAf,GAAwB,CAApD,IAAyDH,aAAa,CAACG,MAAd,KAAyBF,cAAc,CAACE,MAArG,EAA6G;AACzGH,UAAAA,aAAa,CAACI,OAAd,CAAuB,UAASC,YAAT,EAAuBC,CAAvB,EAA0B;AAC7CJ,YAAAA,KAAK,CAACK,GAAN,CAAUF,YAAV,EAAwBJ,cAAc,CAACK,CAAD,CAAtC;AACH,WAFD;AAGH,SAJD,MAIO,IAAI,CAACE,KAAK,CAACC,OAAN,CAAcT,aAAd,CAAD,IAAiCA,aAAa,KAAK,EAAnD,IAAyDC,cAAc,KAAK,EAAhF,EAAoF;AACvFC,UAAAA,KAAK,CAACK,GAAN,CAAUP,aAAV,EAAyBC,cAAzB;AACH;AACJ,OAbI;;AAcLS,MAAAA,UAAU,GAAG;AACT;AACA,aAAKH,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,aAAKA,GAAL,CAAS,cAAT,EAAyB,IAAzB;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAAKvB,GAAL,CAAS,WAAT,CAApC;AACA,aAAKuB,GAAL,CAAS,0BAAT,EAAqC,KAAKvB,GAAL,CAAS,YAAT,CAArC;AACA,aAAKuB,GAAL,CAAS,0BAAT,EAAqC,KAAKvB,GAAL,CAAS,YAAT,CAArC;AACH,OArBI;;AAsBL2B,MAAAA,YAAY,GAAG;AACX,aAAKJ,GAAL,CAAS,cAAT,EAAyB,KAAzB;AACA,aAAKA,GAAL,CAAS,gBAAT,EAA0B,KAA1B;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACA,aAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AACH,OA3BI;;AA4BLK,MAAAA,aAAa,GAAG;AACZ,aAAKL,GAAL,CAAS,cAAT,EAAwB,KAAxB;AACH,OA9BI;;AA+BLM,MAAAA,aAAa,CAACC,OAAD,EAAU;AACnBC,QAAAA,OAAO,CAACC,GAAR,CAAY,qBAAqBF,OAAjC;AACA,aAAKP,GAAL,CAAS,gBAAT,EAA0B,IAA1B;AACA,aAAKA,GAAL,CAAS,OAAT,EAAkBO,OAAO,CAACG,OAAR,CAAgB,QAAhB,EAA0B,EAA1B,CAAlB;AACAzC,QAAAA,KAAK,CAAC0C,GAAN,CAAUC,YAAV,CAAuB,aAAvB,EAAsC,IAAtC,EAA4C,YAAW;AACnD,eAAKZ,GAAL,CAAS,cAAT,EAAwB,KAAxB;AACA,eAAKA,GAAL,CAAS,SAAT,EAAoB,KAApB;AACH,SAHD;AAIH;;AAvCI;AA/DyB,GAAvB,C;;;;;;;;;;;;;iBCCAa,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,WAAW,EAAEH,KAAK,CAACI,QAAN,CAAe,YAAf,EAA6B,YAAW;AACjD,UAAIC,UAAU,GAAGC,MAAM,CAACC,IAAP,CAAa,KAAKC,GAAL,CAAS,YAAT,EAAuBC,MAAvB,EAAb,CAAjB,CADiD,CAEjD;;AACA,aAAOJ,UAAP;AACH,KAJY,CADqB;AAMlCK,IAAAA,YAAY,EAAEV,KAAK,CAACI,QAAN,CAAe,YAAf,EAA6B,YAAW;AAElD,UAAIO,IAAI,GAAG,KAAKH,GAAL,CAAS,YAAT,CAAX;AACA,aAAOG,IAAI,CAACC,aAAL,CAAmB,KAAKJ,GAAL,CAAS,aAAT,CAAnB,CAAP;AACH,KAJa;AANoB,GAAvB,C;;;;;;;;;;;;;ACEf,WAASK,mBAAT,CAA6BC,KAA7B,EAAoC;AAChC,QAAIC,cAAc,GAAG;AACjB,sBAAgB,EADC;AAEjB,gBAAU,MAFO;AAGjB,mBAAa,IAHI;AAIjB,eAAS,IAJQ;AAKjB,kBAAY,MALK;AAMjB,kBAAY,IANK;AAOjB,gBAAU,EAPO;AAQjB,iBAAW,EARM;AASjB,oBAAc,IATG;AAUjB,sBAAgB,CAVC;AAWjB,gBAAU,KAXO;AAYjB,iBAAW,EAZM;AAajB,mBAAa,KAbI;AAcjB,kBAAY,KAdK;AAejB,sBAAgB,IAfC;AAgBjB,uBAAiB;AAhBA,KAArB;;AAkBAD,IAAAA,KAAK,CAACE,GAAN,CAAU,mBAAV,EAA8B,IAA9B;;AACAF,IAAAA,KAAK,CAACE,GAAN,CAAU,gBAAV,EAA4BD,cAA5B,EApBgC,CAqBhC;;AACH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,IAAI,GAAG;AACH,WAAKC,MAAL,CAAY,GAAGC,SAAf;;AACAT,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACH,KAJiC;;AAKlC;AACA;AACA;AACAU,IAAAA,KAAK,EAAEN,KAAK,CAACO,MAAN,CAAaC,OAAb,EAR2B;AASlCC,IAAAA,OAAO,EAAET,KAAK,CAACO,MAAN,CAAaC,OAAb,EATyB;AAUlCV,IAAAA,cAAc,EAAE,EAVkB;AAWlCY,IAAAA,UAAU,EAAE,qBAXsB;AAYlCC,IAAAA,WAAW,EAAE,IAZqB;AAalCC,IAAAA,cAAc,EAAE,KAbkB;AAclCC,IAAAA,YAAY,EAAE,GAdoB;AAelCC,IAAAA,WAAW,EAAE,QAfqB;AAgBlCC,IAAAA,aAAa,EAAE,EAhBmB;AAkBlCC,IAAAA,MAAM,EAAE,IAlB0B;AAmBlCC,IAAAA,QAAQ,EAAE,IAnBwB;AAoBlCC,IAAAA,OAAO,EAAE,KApByB;AAqBlCC,IAAAA,QAAQ,EAAE,KArBwB;AAsBlCC,IAAAA,iBAAiB,EAAE,IAtBe;AAuBlCC,IAAAA,eAAe,EAAE,IAvBiB;AAyBlCC,IAAAA,cAAc,EAAE,KAzBkB;AA0BlCC,IAAAA,cAAc,EAAE,KA1BkB;AA2BlCC,IAAAA,YAAY,EAAE,KA3BoB;AA4BlCC,IAAAA,oBAAoB,EAAE,KA5BY;AA6BlCC,IAAAA,OAAO,EAAE,KA7ByB;AA8BlCC,IAAAA,UAAU,EAAE,KA9BsB;AA+BlCC,IAAAA,WAAW,EAAE,KA/BqB;AAgClCC,IAAAA,aAAa,EAAE,KAhCmB;AAiClCC,IAAAA,SAAS,EAAE,KAjCuB;AAmClCC,IAAAA,cAAc,EAAE,KAnCkB;AAoClCC,IAAAA,SAAS,EAAE,KApCuB;AAqClCC,IAAAA,WAAW,EAAE,EArCqB;AAsClCC,IAAAA,OAAO,EAAE,EAtCyB;AAuClCC,IAAAA,cAAc,EAAE,EAvCkB;AAyClCC,IAAAA,mBAAmB,EAAE,IAzCa;AA0ClCC,IAAAA,uBAAuB,EAAE,IA1CS;AA4ClCC,IAAAA,kBAAkB,EAAE,UAASL,WAAT,EAAsB;AACtC,YAAMM,KAAK,GAAG,wFAAd;AACA,aAAOA,KAAK,CAACC,IAAN,CAAWP,WAAX,CAAP;AACH,KA/CiC;AAkDlCA,IAAAA,WAAW,EAAEjC,KAAK,CAACyC,QAAN,CAAe,uBAAf,EAAwC,YAAW;AAC5D,UAAIC,MAAM,GAAG,KAAKC,GAAL,CAAS,uBAAT,CAAb;AACA,YAAMC,OAAO,GAAGF,MAAM,CAACG,OAAP,CAAe,GAAf,CAAhB;;AACA,UAAID,OAAO,GAAG,CAAd,EAAiB;AACb,eAAOF,MAAP;AACH,OAL2D,CAM5D;;;AACA,aAAOA,MAAM,CAACI,SAAP,CAAiB,CAAjB,EAAoBF,OAApB,CAAP;AACH,KARY,CAlDqB;AA4DlCG,IAAAA,aAAa,EAAE/C,KAAK,CAACyC,QAAN,CAAe,YAAU;AAEpC,UAAInC,KAAK,GAAG,KAAKqC,GAAL,CAAS,OAAT,CAAZ;AACA,UAAIK,UAAU,GAAG1C,KAAK,CAAC2C,UAAN,CAAiB,YAAjB,EAA+B,KAAKN,GAAL,CAAS,IAAT,CAA/B,CAAjB;AACA,UAAII,aAAa,GAAG,KAAKJ,GAAL,CAAS,gBAAT,EAA2BI,aAA/C,CAJoC,CAMpC;;AAEA,UAAGA,aAAa,IAAI,IAAjB,IAAyBA,aAAa,IAAIG,SAA1C,IAAuDH,aAAa,IAAI,EAA3E,EAA+E,CAC3E;AACH,OAFD,MAEK;AACD,YAAGC,UAAU,CAACG,aAAX,IAA4B,IAA5B,IAAoCH,UAAU,CAACG,aAAX,IAA2BD,SAA/D,IAA4EF,UAAU,CAACG,aAAX,IAA2B,EAA1G,EAA8G;AAC1G;AACA;AACAJ,UAAAA,aAAa,GAAGC,UAAU,CAACG,aAA3B;AACH,SAJD,MAKK;AACDJ,UAAAA,aAAa,GAAG,IAAhB;AACH;AACJ,OAnBmC,CAoBpC;AACA;;;AACA,aAAOA,aAAP;AACH,KAvBc,CA5DmB;AAqFlCK,IAAAA,UAAU,EAAEpD,KAAK,CAACyC,QAAN,CAAe,YAAW;AAClC,aAAO,KAAKE,GAAL,CAAS,cAAT,IAA2B,CAA3B,GAA8B,KAAKA,GAAL,CAAS,cAAT,CAA9B,GAAwD,CAA/D;AACH,KAFW,CArFsB;AAyFlCU,IAAAA,QAAQ,EAAE,eAAS,EAAT,EAAY,YAAW;AAC7B,aAAO,KAAKV,GAAL,CAAS,SAAT,EAAoBW,IAApB,CAAyBC,aAAzB,CAAuC,MAAvC,CAAP;AACH,KAFS,CAzFwB;AA6FlCC,IAAAA,YAAY,EAAE,eAAS,IAAT,EAAe,YAAW;AACpC,UAAIC,EAAE,GAAG,KAAKd,GAAL,CAAS,IAAT,CAAT,CADoC,CAEpC;;AACA,UAAIe,GAAG,GAAID,EAAE,CAACE,MAAH,KAAc,CAAd,GAAkB,CAAlB,GAAsB,CAAjC;AACA,UAAIC,KAAK,GAAGH,EAAE,CAACX,SAAH,CAAa,CAAb,EAAeY,GAAf,CAAZ,CAJoC,CAKpC;;AACA,aAAOE,KAAP;AACH,KAPa,CA7FoB;AAsGlCC,IAAAA,eAAe,EAAE,eAAS,uBAAT,EAAkC,YAAW;AAC1D,UAAIC,MAAM,GAAG,KAAKnB,GAAL,CAAS,uBAAT,CAAb;;AACA,UAAGmB,MAAM,KAAK,MAAd,EAAsB;AAClB,aAAK/D,GAAL,CAAS,uBAAT,EAAkC,KAAlC;AACA,aAAKA,GAAL,CAAS,0BAAT,EAAqC,KAArC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACH;;AAED,UAAG+D,MAAM,KAAK,UAAd,EAAyB;AACrB;AACA,aAAK/D,GAAL,CAAS,qBAAT,EAAgC,KAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACH;;AAED,UAAG+D,MAAM,KAAK,MAAd,EAAqB;AACjB;AACA,aAAK/D,GAAL,CAAS,qBAAT,EAAgC,IAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,IAApC;AACH;AACJ,KAnBgB,CAtGiB;AA2HlCgE,IAAAA,eAAe,EAAE,eAAS,uBAAT,EAAkC,YAAW;AAC1D,UAAIC,MAAM,GAAG,KAAKrB,GAAL,CAAS,uBAAT,CAAb;;AACA,UAAGqB,MAAM,KAAK,KAAd,EAAqB;AACjB,aAAKjE,GAAL,CAAS,6BAAT,EAAwC,CAAxC;AACA,aAAKA,GAAL,CAAS,2BAAT,EAAsC,IAAtC;AACH;AACJ,KANgB,CA3HiB;AAmIlCkE,IAAAA,iBAAiB,EAAE,eAAS,yBAAT,EAAoC,YAAW;AAC9D,UAAIC,QAAQ,GAAG,KAAKvB,GAAL,CAAS,yBAAT,CAAf;;AACA,UAAGuB,QAAQ,IAAI,IAAf,EAAqB;AACjB,aAAKnE,GAAL,CAAS,uBAAT,EAAkC,EAAlC;AACH;AACJ,KALkB,CAnIe;AA0IlCoE,IAAAA,OAAO,EAAE;AACLC,MAAAA,wBAAwB,CAACC,KAAD,EAAQ;AAC5B,aAAKlC,cAAL,GAAsB,EAAtB;AACA,cAAMmC,eAAe,GAAGC,KAAK,CAACC,IAAN,CAAWH,KAAK,CAAC3B,MAAN,CAAa4B,eAAxB,CAAxB;AACA,cAAMG,cAAc,GAAGH,eAAe,CAACI,GAAhB,CAAoBC,MAAM,IAAIA,MAAM,CAACC,KAArC,CAAvB;AACA,aAAKzC,cAAL,GAAsBsC,cAAtB;AACH,OANI;;AAOLI,MAAAA,YAAY,CAACC,MAAD,EAAS;AACjB,aAAK/E,GAAL,CAAS+E,MAAM,CAAC,CAAD,CAAf,EAAmBA,MAAM,CAAC,CAAD,CAAzB;AACH,OATI;;AAULC,MAAAA,aAAa,GAAG;AACZ,aAAKhF,GAAL,CAAS,QAAT,EAAkBiF,QAAQ,CAACC,cAAT,CAAwB,uBAAxB,EAAiDC,OAAnE;AACH,OAZI;;AAaL;AACA;AACA;AACAC,MAAAA,aAAa,GAAG;AACZ,aAAKpF,GAAL,CAAS,SAAT,EAAmBiF,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,EAA0CC,OAA7D;AACH,OAlBI;;AAmBLE,MAAAA,aAAa,GAAG;AACZ,aAAKrF,GAAL,CAAS,UAAT,EAAoBiF,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,EAA0CC,OAA9D;AACH,OArBI;;AAuBL;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAG,MAAAA,WAAW,CAACP,MAAD,EAAQ;AACf,YAAIjF,KAAK,GAAG,IAAZ;AAAA,YACIS,KAAK,GAAG,KAAKqC,GAAL,CAAS,OAAT,CADZ;AAAA,YAEI7C,cAAc,GAAG,KAAK6C,GAAL,CAAS,gBAAT,CAFrB,CADe,CAMf;AACA;AAEA;AAEA;AACA;AACA;AACA;;;AAEA,aAAK5C,GAAL,CAAS,gBAAT,EAA0B,KAA1B;AACA,aAAKA,GAAL,CAAS,YAAT,EAAsB,KAAtB;AAEA,YAAIuF,KAAK,GAAG,KAAZ;AAEA,YAAIvC,aAAa,GAAG,KAAKJ,GAAL,CAAS,eAAT,CAApB;AACA,cAAM4C,eAAe,GAAG,CAAC,IAAD,EAAMrC,SAAN,EAAgB,EAAhB,CAAxB,CAtBe,CAuBf;;AACA,YAAKqC,eAAe,CAACC,QAAhB,CAAyBzC,aAAzB,CAAL,EAA8C;AAC1C;AACAjD,UAAAA,cAAc,CAACiD,aAAf,GAA+B,IAA/B;AACAA,UAAAA,aAAa,GAAG,IAAhB;AACH,SAJD,MAKK;AACD;AACA;AACAjD,UAAAA,cAAc,CAACiD,aAAf,GAA+BA,aAA/B,CAHC,CAID;AACH;;AAED,YAAG,CAACuC,KAAJ,EAAW;AACPxF,UAAAA,cAAc,CAAC2F,WAAf,GAA6B,KAA7B;AACA3F,UAAAA,cAAc,CAAC4F,SAAf,GAA2B,KAA3B;AACA5F,UAAAA,cAAc,CAAC6F,gBAAf,GAAkC,IAAlC;AACA7F,UAAAA,cAAc,CAAC8F,WAAf,GAA6B,IAA7B;AACA5F,UAAAA,KAAK,CAACD,GAAN,CAAUD,cAAV,EAA0B,cAA1B,EAA0C,uBAAS+F,MAAT,CAAgB,qBAAhB,CAA1C,EALO,CAMP;;AACA/F,UAAAA,cAAc,CAACgG,OAAf,GAAyB,KAAKzC,QAA9B;AACAvD,UAAAA,cAAc,CAACkB,MAAf,GAAwBnB,KAAK,CAAC8C,GAAN,CAAU,QAAV,CAAxB;AACA7C,UAAAA,cAAc,CAACmB,QAAf,GAA0BpB,KAAK,CAAC8C,GAAN,CAAU,UAAV,CAA1B;AACA7C,UAAAA,cAAc,CAACoB,OAAf,GAAyBrB,KAAK,CAAC8C,GAAN,CAAU,SAAV,CAAzB;AACA7C,UAAAA,cAAc,CAACqB,QAAf,GAA0BtB,KAAK,CAAC8C,GAAN,CAAU,UAAV,CAA1B;AACA7C,UAAAA,cAAc,CAACkD,UAAf,GAA4B1C,KAAK,CAAC2C,UAAN,CAAiB,YAAjB,EAA+B,KAAKN,GAAL,CAAS,IAAT,CAA/B,CAA5B;;AAEA,cAAI7C,cAAc,CAACkD,UAAf,KAA8B,IAAlC,EACA;AACI,gBAAI+C,QAAQ,GAAG,IAAf;;AAEA,gBAAG,CAACT,KAAJ,EAAW;AACP,kBAAI;AACAS,gBAAAA,QAAQ,GAAGzF,KAAK,CAAC0F,YAAN,CAAmB,OAAnB,EAA4BlG,cAA5B,CAAX;AACH,eAFD,CAEE,OAAOmG,GAAP,EAAY;AACV,qBAAKlG,GAAL,CAAS,gBAAT,EAA0B,IAA1B;AACH;AACJ;;AAED,gBAAG,CAACuF,KAAJ,EAAW;AAEP,kBAAIY,GAAG,GAAG,KAAV;AAEA,kBAAIC,gBAAgB,GAAG,KAAKxD,GAAL,CAAS,sBAAT,CAAvB;AAEA,kBAAIyD,QAAQ,GAAG,KAAKzD,GAAL,CAAS,yBAAT,CAAf;AACA,kBAAI0D,OAAO,GAAC,EAAZ,CAPO,CASP;;AACA,kBAAIzB,KAAK,GAAG,KAAKjC,GAAL,CAAS,sBAAT,CAAZ;AACA,kBAAI2D,EAAE,GAAG,KAAK3D,GAAL,CAAS,wBAAT,CAAT;AACA,kBAAI4D,EAAE,GAAG,KAAK5D,GAAL,CAAS,6BAAT,CAAT;AACA,kBAAID,MAAM,GAAG,KAAKC,GAAL,CAAS,uBAAT,CAAb;AACA,kBAAI6D,GAAG,GAAGxB,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuCwB,aAAjD;AAEA,mBAAKC,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,cAAd,EAA6B,KAA7B;AACA,mBAAKA,QAAL,CAAc,sBAAd,EAAqC,KAArC;AACA,mBAAKA,QAAL,CAAc,SAAd,EAAwB,KAAxB;AACA,mBAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AACA,mBAAKA,QAAL,CAAc,aAAd,EAA4B,KAA5B;AACA,mBAAKA,QAAL,CAAc,eAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAxBO,CA2BP;AAEA;;AACA,kBAAKR,GAAG,CAACvC,MAAJ,IAAc,CAAf,IAAsB2C,EAAE,CAAC3C,MAAH,IAAa,CAAnC,IAA0C4C,EAAE,CAAC5C,MAAH,IAAa,CAAvD,IAA8DiB,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACjB,MAAN,IAAgB,CAAnG,EAAuG;AACnG,qBAAK+C,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EAFmG,CAGnG;AAEJ;AACC,eAND,MAMO,IAAKF,GAAG,IAAI,CAAC,CAAT,IAAgB,KAAK7D,GAAL,CAAS,uBAAT,KAAqC,MAAzD,EAAkE;AACrE,qBAAK+D,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,cAAd,EAA6B,IAA7B,EAFqE,CAGrE;AAEJ;AACC,eANM,MAMD,IAAIC,KAAK,CAACR,gBAAD,CAAT,EAA4B;AAC9B,qBAAKO,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,sBAAd,EAAqC,IAArC,EAF8B,CAG9B;AAEJ;AACC,eANK,MAMC,IAAK,KAAK/D,GAAL,CAAS,uBAAT,KAAqC,KAAtC,IAAiD4D,EAAE,IAAI,CAAvD,IAA+D,KAAK5D,GAAL,CAAS,2BAAT,KAAyC,IAA5G,EAAmH;AACtH,qBAAK+D,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,SAAd,EAAwB,IAAxB,EAFsH,CAGtH;AAEH,eALM,MAKA,IAAIH,EAAE,GAAG,CAAT,EAAY;AACf,qBAAKG,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,YAAd,EAA2B,IAA3B,EAFe,CAGf;AAEH,eALM,MAKA,IAAIN,QAAQ,IAAE,MAAd,EAAsB;AACzBpB,gBAAAA,QAAQ,CAACC,cAAT,CAAwB,sBAAxB,EAAgDL,KAAhD,GAAwD,EAAxD,CADyB,CAEzB;AAGH,eALM,MAKA,IAAG,CAAC,OAAOlC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,KAAK,EAA7C,KAAqD0D,QAAQ,IAAI,IAApE,EAA2E;AAE9E,oBAAIA,QAAQ,IAAI,OAAhB,EAAyB;AACrBC,kBAAAA,OAAO,GAAG,eAAV;AACH,iBAFD,MAEO,IAAID,QAAQ,IAAI,KAAhB,EAAuB;AAC1BC,kBAAAA,OAAO,GAAG,cAAV;AACH,iBAFM,MAEA,IAAID,QAAQ,IAAI,MAAhB,EAAwB;AAC3BC,kBAAAA,OAAO,GAAG,YAAV;AACH;;AAED,qBAAKK,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,aAAd,EAA4B,IAA5B,EAX8E,CAY9E;AAEH,eAdM,MAcA,IAAK,CAAEhE,MAAM,CAAC8C,QAAP,CAAgB,GAAhB,CAAH,IAA4BY,QAAQ,IAAE,KAA1C,EAAkD;AACrD,qBAAKM,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B,EAFqD,CAGrD;AAEH,eALM,MAKA;AACHX,gBAAAA,QAAQ,CAACa,IAAT,GAAgBC,IAAhB,CAAqB,UAASC,OAAT,EAAiB;AAClCZ,kBAAAA,GAAG,GAAG,IAAN,CADkC,CAElC;;AACA,sBAAIa,eAAe,GAAG,IAAtB;AACA,sBAAIC,SAAS,GAAG,IAAhB,CAJkC,CAKlC;AACA;;AAEAnH,kBAAAA,KAAK,CAACsC,cAAN,CAAqB8E,OAArB,CAA6BrC,KAAK,IAAI;AAClC;AACAmC,oBAAAA,eAAe,GAAG,EAAlB;AACAA,oBAAAA,eAAe,CAACG,KAAhB,GAAwBJ,OAAxB;AACAC,oBAAAA,eAAe,CAACI,UAAhB,GAA6BvC,KAA7B;AAEAoC,oBAAAA,SAAS,GAAG1G,KAAK,CAAC0F,YAAN,CAAmB,cAAnB,EAAmCe,eAAnC,CAAZ;AACAC,oBAAAA,SAAS,CAACJ,IAAV,GAAiBQ,KAAjB,CAAuB,UAASC,MAAT,EAAiB;AACpC,0BAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChC1H,wBAAAA,KAAK,CAAC6G,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACA7G,wBAAAA,KAAK,CAAC6G,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH;AACJ,qBALD;AAMH,mBAbD,EARkC,CAsBlC;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;AAGA,sBAAGI,OAAO,CAACrD,EAAR,IAAc,IAAjB,EAAuB;AACnB5D,oBAAAA,KAAK,CAAC8C,GAAN,CAAU,QAAV,EAAoBmE,OAAO,CAACrD,EAA5B;AACH,mBAFD,MAEO;AACH,yBAAKiD,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACApB,oBAAAA,KAAK,GAAG,IAAR;AACH,mBAtCiC,CAuClC;;AACH,iBAxCD,EAwCG8B,KAxCH,CAwCS,UAASC,MAAT,EAAiB;AACtB,sBAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChC1H,oBAAAA,KAAK,CAAC6G,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACA7G,oBAAAA,KAAK,CAAC6G,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH;AAEJ,iBA9CD,EADG,CAgDH;AACA;AACA;AACA;AACH;AACJ;AACJ;AACJ;AACJ,OA7OI;;AA8OLc,MAAAA,WAAW,GAAG;AACV,YAAG,KAAKlF,kBAAL,CAAwB,KAAKL,WAA7B,CAAH,EAA8C;AAC1C,eAAKyE,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,KAA9B,EAF0C,CAG1C;AACA;;AACA,eAAKe,cAAL,CAAoB,WAApB,EAL0C,CAM1C;;AACA,iBAAO,IAAP;AACH,SARD,MAQO;AACHP,UAAAA,KAAK,CAAC,kFAAD,CAAL;AACA,eAAKR,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B;AACA,iBAAO,KAAP;AACH;AACJ,OA7PI;;AA+PLgB,MAAAA,eAAe,CAACC,aAAD,EAAgB;AAC3B;AACA,aAAK5H,GAAL,CAAS,cAAT,EAAyB4H,aAAzB;AACH;;AAlQI;AA1IyB,GAAvB,C;;;;;;;;;;;;;;;ACzBf,WAASC,wBAAT,CAAkCC,KAAlC,EAAyC;AACrC;AACAA,IAAAA,KAAK,CAACC,GAAN,CAAU,qBAAV,EAAiC,EAAjC;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,YAAV,EAAwB,CAAxB;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,eAAV,EAA2B,IAA3B;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,aAAV,EAAyB,IAAzB,EALqC,CAMrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACH;;AAEc,QAAMC,qBAAN,yBAA8C;AAAA;AAAA;;AAAA,+CAUvC,IAVuC;;AAAA,mDAWnC,EAXmC;;AAAA,sCAYhD,KAZgD;;AAAA,6CAazC,IAbyC;;AAAA,2CAc3C,IAd2C;;AAAA,yCAe7C,KAf6C;;AAAA,uCAgB/C,IAhB+C;;AAAA,qCAiBjD,IAjBiD;;AAAA,uCAmBhD;AAGLC,QAAAA,UAAU,CAACC,KAAD,EAAQ;AACd,gBAAMC,UAAU,GAAGD,KAAnB,CADc,CAGd;;AACA,gBAAME,WAAW,GAAG,KAAKC,iBAAL,CAAuBC,IAAvB,CAA6BC,MAAD,IAAY;AAC1D,mBAAOA,MAAM,CAACC,EAAP,KAAcL,UAArB;AACD,WAFmB,CAApB;;AAIA,cAAIC,WAAJ,EAAiB;AACf;AACA,iBAAKL,GAAL,CAAS,SAAT,EAAoBK,WAApB;AACD;AACJ,SAfI;;AAiBLK,QAAAA,QAAQ,CAACP,KAAD,EAAQ;AACZ,gBAAMC,UAAU,GAAGD,KAAnB,CADY,CAGZ;;AACA,gBAAME,WAAW,GAAG,KAAKM,eAAL,CAAqBJ,IAArB,CAA2BC,MAAD,IAAY;AACxD,mBAAOA,MAAM,CAACC,EAAP,KAAcL,UAArB;AACD,WAFmB,CAApB;;AAIA,cAAIC,WAAJ,EAAiB;AACf;AACA,iBAAKL,GAAL,CAAS,OAAT,EAAkBK,WAAlB;AACD;AACJ,SA7BI;;AA+BLO,QAAAA,gBAAgB,CAACC,MAAD,EAAQ;AAEpB;AACA;AAEA,cAAId,KAAK,GAAG,IAAZ;AAAA,cACAe,KAAK,GAAG,KAAKC,GAAL,CAAS,OAAT,CADR;AAAA,cAEAC,mBAAmB,GAAG,KAAKD,GAAL,CAAS,qBAAT,CAFtB;;AAIA,eAAKE,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AAEA,cAAIC,KAAK,GAAG,KAAZ;AAEAF,UAAAA,mBAAmB,CAACP,EAApB,GAAyB,KAAKM,GAAL,CAAS,IAAT,CAAzB;AACAC,UAAAA,mBAAmB,CAACG,UAApB,GAAiC,KAAKJ,GAAL,CAAS,YAAT,CAAjC;AACAC,UAAAA,mBAAmB,CAACI,cAApB,GAAqCN,KAAK,CAACO,UAAN,CAAiB,iBAAjB,EAAoC,KAAKN,GAAL,CAAS,QAAT,CAApC,CAArC;AACAC,UAAAA,mBAAmB,CAACM,MAApB,GAA6BR,KAAK,CAACO,UAAN,CAAiB,SAAjB,EAA4B,KAAKN,GAAL,CAAS,QAAT,CAA5B,CAA7B;AACAC,UAAAA,mBAAmB,CAACO,MAApB,GAA6B,IAA7B;;AAEA,cAAG,OAAOP,mBAAmB,CAACP,EAA3B,KAAkC,WAAlC,IAAiDO,mBAAmB,CAACP,EAApB,KAA2B,EAA/E,EAAmF;AAC/ES,YAAAA,KAAK,GAAG,IAAR;AACA,iBAAKD,QAAL,CAAc,YAAd,EAA2B,IAA3B;AACA,iBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACH;;AAED,cAAG,CAACC,KAAJ,EAAW;AACP,gBAAG,OAAOF,mBAAmB,CAACQ,YAA3B,KAA4C,WAA5C,IAA2DR,mBAAmB,CAACQ,YAApB,KAAqC,CAAnG,EAAsG;AAClGN,cAAAA,KAAK,GAAG,IAAR;AACA,mBAAKD,QAAL,CAAc,YAAd,EAA2B,IAA3B;AACA,mBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACH;AACJ;;AAED,cAAI,KAAKF,GAAL,CAAS,eAAT,KAA6B,IAAjC,EAAuC;AACnCC,YAAAA,mBAAmB,CAACS,aAApB,GAAoCC,MAAM,CAAC,KAAKX,GAAL,CAAS,eAAT,CAAD,EAA2B,qBAA3B,CAAN,CAAwDY,MAAxD,CAA+D,qBAA/D,CAApC;AACH;;AAED,cAAI,KAAKZ,GAAL,CAAS,aAAT,KAA2B,IAA/B,EAAqC;AACjCC,YAAAA,mBAAmB,CAACY,WAApB,GAAkCF,MAAM,CAAC,KAAKX,GAAL,CAAS,aAAT,CAAD,EAAyB,qBAAzB,CAAN,CAAsDY,MAAtD,CAA6D,qBAA7D,CAAlC;AACH;;AAED,cAAI,KAAKZ,GAAL,CAAS,YAAT,KAA0B,IAA9B,EAAoC;AAChC,iBAAKf,GAAL,CAAS,YAAT,EAAuB,CAAvB;AACH,WA7CmB,CA8CpB;;;AAEA,cAAI6B,aAAa,GAAG,IAApB;AACA,cAAIC,GAAG,GAAG,KAAV;;AACA,cAAG,CAACZ,KAAJ,EAAW;AACP,gBAAI;AACAW,cAAAA,aAAa,GAAGf,KAAK,CAACiB,YAAN,CAAmB,YAAnB,EAAiCf,mBAAjC,CAAhB;AACH,aAFD,CAEE,OAAOgB,GAAP,EAAY;AACV,mBAAKf,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EADU,CAEV;;AACA,kBAAGe,GAAG,CAACC,OAAJ,CAAYC,QAAZ,CAAqB,uBAArB,CAAH,EAAkD;AAC9C;AACA,qBAAKjB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AAEAC,gBAAAA,KAAK,GAAG,IAAR;AACAY,gBAAAA,GAAG,GAAG,IAAN;AACH,eATS,CAUV;;AACH;AACJ;;AAED,eAAKb,QAAL,CAAc,WAAd,EAA2B,KAA3B;;AAEA,cAAI,CAACC,KAAL,EAAY;AAEJW,YAAAA,aAAa,CAACM,IAAd,GAAqBC,IAArB,CAA0B,UAASC,OAAT,EAAiB;AACvC;AACA,kBAAGA,OAAO,CAAC5B,EAAR,IAAc,IAAjB,EAAuB;AACnBK,gBAAAA,KAAK,CAACiB,YAAN,CAAmB,QAAnB,EAA6B;AAACO,kBAAAA,MAAM,EAAE,CAAT;AAAYC,kBAAAA,QAAQ,EAAE,CAAtB;AAAyBC,kBAAAA,UAAU,EAAEH;AAArC,iBAA7B,EAA4EF,IAA5E;AACA,oBAAIM,WAAW,GAAG,CAAlB,CAFmB,CAEC;AACpB;;AACA3B,gBAAAA,KAAK,CAACiB,YAAN,CAAmB,QAAnB,EAA6B;AAACO,kBAAAA,MAAM,EAAE,CAAT;AAAYC,kBAAAA,QAAQ,EAAEvB,mBAAmB,CAACG,UAA1C;AAAsDqB,kBAAAA,UAAU,EAAEH;AAAlE,iBAA7B,EAAyGF,IAAzG;AACH;;AAED,kBAAGE,OAAO,CAAC5B,EAAR,IAAc,IAAjB,EAAuB;AACnBV,gBAAAA,KAAK,CAACgB,GAAN,CAAU,QAAV,EAAoBsB,OAAO,CAAC5B,EAA5B;AACH,eAFD,MAEO;AACH,qBAAKQ,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACAC,gBAAAA,KAAK,GAAG,IAAR;AACH;AACJ,aAfD,EAeGwB,KAfH,CAeS,UAASC,MAAT,EAAiB;AAEtB5C,cAAAA,KAAK,CAACkB,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACAlB,cAAAA,KAAK,CAACkB,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH,aAnBD;AAoBP;AACJ;;AA3HI,OAnBgD;AAAA;;AACzD;AACA;AAGA2B,IAAAA,IAAI,GAAG;AACH,YAAMA,IAAN,CAAW,GAAGC,SAAd;AACA/C,MAAAA,wBAAwB,CAAC,IAAD,CAAxB;AACH;;AARwD;;;;;;;;;;;;;ACvB7D,WAASgD,0BAAT,CAAoCC,KAApC,EAA2C;AACvC,QAAIC,6BAA6B,GAAGD,KAAK,CAACE,GAAN,CAAU,+BAAV,CAApC,CADuC,CAGvC;;;AACAF,IAAAA,KAAK,CAACG,GAAN,CAAU,mBAAV,EAA+B,uBAASC,MAAT,CAAgBJ,KAAK,CAACE,GAAN,CAAU,YAAV,CAAhB,CAA/B;;AACAF,IAAAA,KAAK,CAACG,GAAN,CAAU,wBAAV,EAAoC,CAApC;;AACAE,IAAAA,MAAM,CAACC,IAAP,CAAYL,6BAAZ,EAA2CM,OAA3C,CAAmD,UAASC,GAAT,EAAaC,KAAb,EAAoB;AACnER,MAAAA,6BAA6B,CAACO,GAAD,CAA7B,GAAqC,CAArC;AACH,KAFD;AAGH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,MAAM,EAAEN,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF0B;AAGlCE,IAAAA,sBAAsB,EAAE,IAHU;AAIlCC,IAAAA,UAAU,EAAE,qBAJsB;AAKlCC,IAAAA,cAAc,EAAE,IALkB;AAKZ;AACtBC,IAAAA,sBAAsB,EAAE,CANU;AAOlCC,IAAAA,iBAAiB,EAAE,IAPe;AAQlC;AACA;AACA;AAEAC,IAAAA,2BAA2B,EAAEZ,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AACxE,aAAO;AACHC,QAAAA,EAAE,EAAE,KAAKtB,GAAL,CAAS,mBAAT;AADD,OAAP;AAGH,KAJ4B,CAZK;AAkBlCuB,IAAAA,0BAA0B,EAAEf,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AACvE,aAAO;AACHC,QAAAA,EAAE,EAAE,KAAKtB,GAAL,CAAS,mBAAT;AADD,OAAP;AAGH,KAJ2B,CAlBM;AAyBlC;AACAwB,IAAAA,kCAAkC,EAAEhB,KAAK,CAACiB,QAAN,CAAe,wBAAf,EAAyC,YAAU;AACnF,UAAK,KAAKzB,GAAL,CAAS,wBAAT,CAAL,EAA0C;AACtCH,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;AACJ,KAJmC,CA1BF;AAgClCE,IAAAA,6BAA6B,EAAES,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AAC1E,UAAItB,6BAA6B,GAAG,EAApC;;AACA,WAAK,IAAI2B,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,KAAK1B,GAAL,CAAS,mBAAT,EAA8B2B,MAA9B,GAAuC,CAA5D,EAA+DD,CAAC,EAAhE,EAAoE;AAChE3B,QAAAA,6BAA6B,CAAC2B,CAAD,CAA7B,GAAmC,CAAnC;AACH;;AACD,aAAO3B,6BAAP;AACH,KAN8B,CAhCG;AAwClC6B,IAAAA,gCAAgC,EAAEpB,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AAC7E,UAAItB,6BAA6B,GAAG,EAApC;;AACA,WAAK,IAAI2B,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,KAAK1B,GAAL,CAAS,mBAAT,EAA8B2B,MAA9B,GAAuC,CAA5D,EAA+DD,CAAC,EAAhE,EAAoE;AAChE3B,QAAAA,6BAA6B,CAAC2B,CAAD,CAA7B,GAAmC,CAAnC;AACH;;AACD,aAAO3B,6BAAP;AACH,KANiC,CAxCA;AAgDlC8B,IAAAA,OAAO,EAAE;AACLC,MAAAA,OAAO,GAAE;AACL,YAAIhC,KAAK,GAAG,IAAZ;AAAA,YACIa,KAAK,GAAG,KAAKX,GAAL,CAAS,OAAT,CADZ;AAAA,YAEIoB,2BAA2B,GAAG,KAAKpB,GAAL,CAAS,6BAAT,CAFlC;AAAA,YAGIuB,0BAA0B,GAAG,KAAKvB,GAAL,CAAS,4BAAT,CAHjC;AAAA,YAII+B,kBAAkB,GAAG,KAAK/B,GAAL,CAAS,oBAAT,CAJzB;AAAA,YAKIgC,iBAAiB,GAAG,KAAKhC,GAAL,CAAS,mBAAT,CALxB;;AAQAuB,QAAAA,0BAA0B,CAACD,EAA3B,GAAgC,qBAAO,KAAKtB,GAAL,CAAS,mBAAT,CAAP,EAAqC,qBAArC,EAA4DE,MAA5D,CAAmE,qBAAnE,CAAhC;AACAqB,QAAAA,0BAA0B,CAACU,MAA3B,GAAoC,CAAC,KAAKjC,GAAL,CAAS,wBAAT,CAAD,CAApC;AAEA,cAAMkC,oBAAoB,GAAGvB,KAAK,CAACwB,YAAN,CAAmB,mBAAnB,EAAwCZ,0BAAxC,CAA7B,CAZK,CAaL;;AACA,cAAMa,4BAA4B,GAAGF,oBAAoB,CAACG,IAArB,CAA0B;AAACC,UAAAA,cAAc,EAAE,KAAKtC,GAAL,CAAS,cAAT;AAAjB,SAA1B,EAAsEuC,IAAtE,CAA2E,UAASC,OAAT,EAAiB,CAC7H;AACA;AAEA;AACA;AACH,SANoC,CAArC;AAQApB,QAAAA,2BAA2B,CAACE,EAA5B,GAAiC,qBAAO,KAAKtB,GAAL,CAAS,mBAAT,CAAP,EAAqC,qBAArC,EAA4DE,MAA5D,CAAmE,qBAAnE,CAAjC;AACAkB,QAAAA,2BAA2B,CAACa,MAA5B,GAAqC9B,MAAM,CAAC8B,MAAP,CAAc,KAAKjC,GAAL,CAAS,kCAAT,CAAd,CAArC;AAEA,cAAMyC,qBAAqB,GAAG9B,KAAK,CAACwB,YAAN,CAAmB,oBAAnB,EAAyCf,2BAAzC,CAA9B,CAzBK,CA0BL;;AACA,cAAMsB,6BAA6B,GAAGD,qBAAqB,CAACJ,IAAtB,CAA2B;AAACC,UAAAA,cAAc,EAAE,KAAKtC,GAAL,CAAS,cAAT;AAAjB,SAA3B,EAAuEuC,IAAvE,CAA4E,UAASC,OAAT,EAAiB;AAC/H;AACA1C,UAAAA,KAAK,CAACG,GAAN,CAAU,yBAAV,EAAqC,IAArC;;AACAH,UAAAA,KAAK,CAACG,GAAN,CAAU,wBAAV,EAAoC,KAApC,EAH+H,CAI/H;AACA;AACA;;;AACA,gBAAM0C,gBAAgB,GAAG7C,KAAK,CAACE,GAAN,CAAU,yBAAV,CAAzB;;AACA,gBAAM4C,oBAAoB,GAAG,eAAS9C,KAAT,EAAgB+C,MAAhB,CAAwB,SAAQF,gBAAiB,EAAjD,CAA7B;AACAC,UAAAA,oBAAoB,CAACE,OAArB;AAEH,SAXqC,EAYrCC,KAZqC,CAY/B,UAASC,MAAT,EAAgB;AACnB,cAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChCpD,YAAAA,KAAK,CAACqD,OAAN,CAAc,iBAAd,EAAiC,IAAjC;AACH;AACJ,SAhBqC,CAAtC;AAiBH,OA7CI;;AA8CLC,MAAAA,SAAS,CAACC,MAAD,EAAQ;AACb;AACA,aAAKpD,GAAL,CAAS,wBAAT,EAAmC,KAAnC,EAFa,CAGb;;AACAJ,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;;AAnDI,KAhDyB;;AAqGlCyD,IAAAA,SAAS,GAAG;AACR,UAAIxD,KAAK,GAAG,IAAZ,CADQ,CAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEH,KAlHiC;;AAmHlCyD,IAAAA,kBAAkB,GAAG;AACjB,UAAI,KAAKvD,GAAL,CAAS,gBAAT,CAAJ,EAAgC;AAC5B,aAAKA,GAAL,CAAS,gBAAT,EAA2BwD,cAA3B,CAA0C,SAA1C;AACH;AAEJ;;AAxHiC,GAAvB,C;;;;;;;;;;;;;iBCPAC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClC,UAAMC,IAAN,GAAa;AAET,WAAKC,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,UAAIC,cAAc,GAAG,MAAM,KAAKC,qBAAL,EAA3B;AACA,WAAKF,GAAL,CAAS,kBAAT,EAA6BC,cAA7B;AACA,WAAKD,GAAL,CAAS,SAAT,EAAoB,KAApB;AAEH,KARiC;;AASlCG,IAAAA,KAAK,EAAEP,KAAK,CAACQ,MAAN,CAAaC,OAAb,EAT2B;AAUlCC,IAAAA,IAAI,EAAEV,KAAK,CAACQ,MAAN,CAAaC,OAAb,EAV4B;AAWlCE,IAAAA,EAAE,EAAE,IAX8B;AAYlCC,IAAAA,MAAM,EAAC,EAZ2B;AAalCC,IAAAA,cAAc,EAAE,KAbkB;AAclCC,IAAAA,YAAY,EAAE,GAdoB;AAelCC,IAAAA,WAAW,EAAE,QAfqB;AAgBlCC,IAAAA,WAAW,EAAE,EAhBqB;AAiBlCC,IAAAA,cAAc,EAAE,IAjBkB;AAkBlCC,IAAAA,OAAO,EAAE,IAlByB;AAmBlCC,IAAAA,gBAAgB,EAAE,EAnBgB;AAoBlCC,IAAAA,cAAc,EAAE,KApBkB;AAqBlCC,IAAAA,cAAc,EAAE,KArBkB;AAsBlCC,IAAAA,YAAY,EAAE,KAtBoB;AAuBlCC,IAAAA,oBAAoB,EAAE,KAvBY;AAwBlCC,IAAAA,OAAO,EAAE,KAxByB;AAyBlCC,IAAAA,UAAU,EAAE,KAzBsB;AA0BlCC,IAAAA,WAAW,EAAE,KA1BqB;AA2BlCC,IAAAA,aAAa,EAAE,KA3BmB;AA4BlCC,IAAAA,SAAS,EAAE,KA5BuB;AA6BlCC,IAAAA,OAAO,EAAE,CA7ByB;AA8BlCC,IAAAA,cAAc,EAAE,KA9BkB;AA+BlCC,IAAAA,SAAS,EAAE,KA/BuB;AAgClCC,IAAAA,WAAW,EAAE,EAhCqB;AAiClCC,IAAAA,OAAO,EAAE,EAjCyB;AAmClCC,IAAAA,gBAAgB,EAAC,IAnCiB;AAoClCC,IAAAA,OAAO,EAAC,IApC0B;AAsClCC,IAAAA,kBAAkB,EAAE,UAASJ,WAAT,EAAsB;AACtC,YAAMK,KAAK,GAAG,wFAAd;AACA,aAAOA,KAAK,CAACC,IAAN,CAAWN,WAAX,CAAP;AACH,KAzCiC;AA4ClCA,IAAAA,WAAW,EAAEhC,KAAK,CAACuC,QAAN,CAAe,cAAf,EAA+B,YAAW;AACnD,UAAIC,MAAM,GAAG,KAAKC,GAAL,CAAS,cAAT,CAAb;AACA,YAAMC,OAAO,GAAGF,MAAM,CAACG,OAAP,CAAe,GAAf,CAAhB;;AACA,UAAID,OAAO,GAAG,CAAd,EAAiB;AACb,eAAOF,MAAP;AACH,OALkD,CAMnD;;;AACA,aAAOA,MAAM,CAACI,SAAP,CAAiB,CAAjB,EAAoBF,OAApB,CAAP;AACH,KARY,CA5CqB;AAsDlCG,IAAAA,gBAAgB,EAAE,eAAS,SAAT,EAAoB,YAAW;AAC7C,UAAIZ,OAAO,GAAG,KAAKQ,GAAL,CAAS,SAAT,CAAd,CAD6C,CAE7C;;AACA,WAAKrC,GAAL,CAAS,SAAT,EAAoB6B,OAApB;AACH,KAJiB,CAtDgB;AA4DlCa,IAAAA,sBAAsB,EAAE,eAAS,eAAT,EAA0B,YAAW;AACzD,UAAIC,aAAa,GAAG,KAAKN,GAAL,CAAS,eAAT,CAApB;AACA,WAAKrC,GAAL,CAAS,qBAAT,EAAgC2C,aAAhC;AAEH,KAJuB,CA5DU;AAmElCC,IAAAA,uBAAuB,EAAE,eAAS,IAAT,EAAe,YAAW,CAC/C;AACH,KAFwB,CAnES;AAuElCC,IAAAA,eAAe,EAAE,eAAS,cAAT,EAAyB,YAAW;AACjD,UAAIC,MAAM,GAAG,KAAKT,GAAL,CAAS,cAAT,CAAb;;AACA,UAAGS,MAAM,KAAK,MAAd,EAAsB;AAClB,aAAK9C,GAAL,CAAS,cAAT,EAAyB,KAAzB;AACA,aAAKA,GAAL,CAAS,iBAAT,EAA4B,KAA5B;AACA,aAAKA,GAAL,CAAS,gBAAT,EAA2B,KAA3B;AACA,aAAK+C,IAAL,CAAU,uBAAV,EAAkCC,QAAQ,CAACC,cAAT,CAAwB,aAAxB,CAAlC;AACH;AACJ,KARgB,CAvEiB;AAiFlCC,IAAAA,eAAe,EAAE,eAAS,cAAT,EAAyB,YAAW;AACjD,UAAIC,MAAM,GAAG,KAAKd,GAAL,CAAS,cAAT,CAAb;;AACA,UAAGc,MAAM,KAAK,KAAd,EAAqB;AACjB,aAAKnD,GAAL,CAAS,oBAAT,EAA+B,CAA/B;AACA,aAAKA,GAAL,CAAS,kBAAT,EAA6B,IAA7B;AACH;AACJ,KANgB,CAjFiB;AAyFlCoD,IAAAA,iBAAiB,EAAE,eAAS,gBAAT,EAA2B,YAAW;AACrD,UAAIC,QAAQ,GAAG,KAAKhB,GAAL,CAAS,gBAAT,CAAf;;AACA,UAAGgB,QAAQ,IAAI,IAAf,EAAqB;AACjB,aAAKrD,GAAL,CAAS,cAAT,EAAyB,EAAzB;AACH;AACJ,KALkB,CAzFe;AAgGlCE,IAAAA,qBAAqB,EAAE,kBAAiB;AACpC;AACA,UAAIY,OAAO,GAAG,MAAM,KAAKX,KAAL,CAAWmD,UAAX,CAAsB,OAAtB,EAA8B,KAAKjB,GAAL,CAAS,OAAT,EAAkBA,GAAlB,CAAsB,IAAtB,CAA9B,EAA2D;AAAEkB,QAAAA,MAAM,EAAE;AAAV,OAA3D,EAA6EC,IAA7E,CAAkF,gBAAeC,QAAf,EAAyB;AAE3H,YAAIC,QAAQ,GAAG,EAAf;AACA,YAAI5C,OAAO,GAAG2C,QAAQ,CAACpB,GAAT,CAAa,SAAb,CAAd;AACAvB,QAAAA,OAAO,CAAC6C,OAAR,CAAkBC,MAAD,IAAY;AACzBF,UAAAA,QAAQ,CAACG,IAAT,CAAcD,MAAM,CAACvB,GAAP,CAAW,YAAX,CAAd;AACD,SAFH;AAIA,eAAOvB,OAAP;AACH,OATmB,CAApB;AAWA,UAAIgD,UAAU,GAAG,EAAjB;AAEAhD,MAAAA,OAAO,CAAC6C,OAAR,CAAgBI,OAAO,IAAI;AAEvBD,QAAAA,UAAU,CAACC,OAAO,CAACC,UAAT,CAAV,GAAiC,IAAjC,CAFuB,CAGvB;AACH,OAJD,EAfoC,CAqBpC;AACA;;AACA,aAAOF,UAAP;AACH,KAxHiC;AA0HlCG,IAAAA,YAAY,EAAErE,KAAK,CAACuC,QAAN,CAAe,QAAf,EAAyB,YAAW;AAC9C;AACA,UAAI+B,UAAU,GAAG,KAAK7B,GAAL,CAAS,OAAT,EAAkB6B,UAAnC;AACA,UAAI1D,MAAM,GAAG,KAAK6B,GAAL,CAAS,QAAT,CAAb;;AAEA,UAAG7B,MAAM,KAAG,EAAZ,EAAgB;AACZA,QAAAA,MAAM,GAAG0D,UAAU,CAAC7B,GAAX,CAAe,IAAf,CAAT;AACH;;AACD,UAAI8B,GAAG,GAAG3D,MAAM,CAAC4D,MAAP,KAAkB,CAAlB,GAAsB,CAAtB,GAA0B,CAApC;AACA,UAAIC,QAAQ,GAAGC,QAAQ,CAAC9D,MAAM,CAACgC,SAAP,CAAiB,CAAjB,EAAmB2B,GAAnB,CAAD,CAAvB,CAT8C,CAU9C;;AACA,aAAOE,QAAP;AACH,KAZa,CA1HoB;AAwIlCE,IAAAA,UAAU,EAAE3E,KAAK,CAACuC,QAAN,CAAe,YAAW;AAClC,aAAO,KAAKE,GAAL,CAAS,cAAT,IAA2B,CAA3B,GAA8B,KAAKA,GAAL,CAAS,cAAT,CAA9B,GAAwD,CAA/D;AACH,KAFW,CAxIsB;AA4IlCmC,IAAAA,gBAAgB,EAAE5E,KAAK,CAACuC,QAAN,CAAe,QAAf,EAAyB,YAAW;AAClD,UAAIsC,IAAI,GAAG,KAAKpC,GAAL,CAAS,OAAT,EAAkBqC,YAA7B;AACA,aAAO,qBAAOD,IAAP,CAAP;AACH,KAHiB,CA5IgB;AAiJlCE,IAAAA,iBAAiB,EAAE/E,KAAK,CAACuC,QAAN,CAAe,kBAAf,EAAmC,YAAW;AAC7D,UAAIsC,IAAI,GAAG,KAAKpC,GAAL,CAAS,OAAT,EAAkBtB,gBAA7B;AACA,aAAO,qBAAO0D,IAAP,CAAP;AACH,KAHkB,CAjJe;AAsJlCG,IAAAA,gBAAgB,EAAC,UAASC,EAAT,EAAY;AACzB,UAAIC,GAAG,GAAG,kCAAkB,sBAAlB,GAA2CD,EAA3C,GAAgD,GAA1D;AACAE,MAAAA,OAAO,CAACC,GAAR,CAAY,wCAAwCH,EAApD;AACA,cAAEvE,IAAF,CAAO;AACH6C,QAAAA,MAAM,EAAE,MADL;AAEH2B,QAAAA,GAAG,EAAEA,GAFF;AAGHG,QAAAA,OAAO,EAAE;AACLC,UAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AADnC;AAHN,OAAP;AAQH,KAjKiC;AAmKlCC,IAAAA,OAAO,EAAE;AACLC,MAAAA,SAAS,GAAG;AACR,aAAKtF,GAAL,CAAS,SAAT,EAAoB,KAAKqC,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,OAHI;;AAILkD,MAAAA,aAAa,GAAG;AACZ,aAAKvF,GAAL,CAAS,SAAT,EAAoB,KAAKqC,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,OANI;;AAQLmD,MAAAA,qBAAqB,CAACC,KAAD,EAAQ;AACzB,YAAIC,MAAM,GAAG,IAAb;AACA,YAAID,KAAK,YAAYE,KAArB,EACID,MAAM,GAAG,QAAED,KAAK,CAACrD,MAAR,EAAgBwD,GAAhB,EAAT,CADJ,KAGIF,MAAM,GAAG,QAAED,KAAF,EAASG,GAAT,EAAT;AACJ,YAAIC,IAAI,GAAG,EAAX;AACAH,QAAAA,MAAM,CAAC/B,OAAP,CAAe,UAASmC,GAAT,EAAc;AACzBD,UAAAA,IAAI,CAACC,GAAD,CAAJ,GAAY,IAAZ;AACA,iBAAOD,IAAP;AACH,SAHD;AAKA,aAAK7F,GAAL,CAAS,gBAAT,EAA2B6F,IAA3B;AACH,OArBI;;AAsBLE,MAAAA,SAAS,GAAG;AACR,aAAK/F,GAAL,CAAS,QAAT,EAAmB,KAAnB;;AACA,cAAMgG,KAAK,GAAG,IAAd;;AACA,cAAM7F,KAAK,GAAG,KAAKkC,GAAL,CAAS,OAAT,CAAd;;AACA,YAAI9B,EAAE,GAAGyF,KAAK,CAAC3D,GAAN,CAAU,OAAV,CAAT,CAJQ,CAMR;;;AACA,YAAI4D,iBAAiB,GAAG,KAAK5D,GAAL,CAAS,0BAAT,CAAxB,CAPQ,CASR;;AACA,YAAI6D,QAAQ,GAAG,KAAK7D,GAAL,CAAS,4BAAT,CAAf,CAVQ,CAYR;;AACA,YAAI8D,gBAAgB,GAAG,KAAK9D,GAAL,CAAS,yBAAT,CAAvB,CAbQ,CAeR;;AACA,YAAI+D,QAAQ,GAAG,KAAf;AACA,YAAIC,OAAO,GAAG,EAAd,CAjBQ,CAmBR;;AACA,YAAG,CAAC,OAAOJ,iBAAP,KAA6B,WAA7B,IAA4CA,iBAAiB,KAAK,EAAnE,KAA2EC,QAAQ,IAAI,IAA1F,EAAiG;AAC7FE,UAAAA,QAAQ,GAAG,IAAX;;AAEA,cAAIF,QAAQ,IAAI,OAAhB,EAAyB;AACrBG,YAAAA,OAAO,GAAG,eAAV;AACH,WAFD,MAEO,IAAIH,QAAQ,IAAI,KAAhB,EAAuB;AAC1BG,YAAAA,OAAO,GAAG,cAAV;AACH,WAFM,MAEA,IAAIH,QAAQ,IAAI,MAAhB,EAAwB;AAC3BG,YAAAA,OAAO,GAAG,YAAV;AACH;AACJ,SA9BO,CAgCR;;;AACA,YAAIxF,cAAc,GAAG,KAAKwB,GAAL,CAAS,gBAAT,CAArB,CAjCQ,CAkCR;;AACA,YAAKxB,cAAc,IAAI,IAAvB,EAA8B;AAC1B,cAAIC,OAAO,GAAG,KAAKuB,GAAL,CAAS,kBAAT,CAAd;AAEA,cAAIiE,OAAO,GAAG,IAAIC,GAAJ,EAAd,CAH0B,CAK1B;;AACA,eAAI,IAAIC,GAAR,IAAe1F,OAAf,EAAwB;AACpB,gBAAI,CAACD,cAAc,CAAC4F,cAAf,CAA8BD,GAA9B,CAAL,EAAyC;AACrCF,cAAAA,OAAO,CAACtG,GAAR,CAAYwG,GAAZ,EAAiB,KAAjB;AACH;AACJ,WAVyB,CAY1B;;;AACA,eAAI,IAAIA,GAAR,IAAe3F,cAAf,EAA+B;AAC3B,gBAAI,CAACC,OAAO,CAAC2F,cAAR,CAAuBD,GAAvB,CAAL,EAAkC;AAC9BF,cAAAA,OAAO,CAACtG,GAAR,CAAYwG,GAAZ,EAAiB,IAAjB;AACH;AACJ;;AAED,cAAIE,YAAY,GAAGnG,EAAE,CAAC8B,GAAH,CAAO,SAAP,CAAnB;AACA,cAAIsE,eAAe,GAAG,IAAtB;;AAEA,eAAK,MAAM,CAACH,GAAD,EAAMI,KAAN,CAAX,IAA2BN,OAAO,CAACO,OAAR,EAA3B,EAA8C;AAC1C,gBAAGD,KAAH,EAAU;AACND,cAAAA,eAAe,GAAG,EAAlB;AACAA,cAAAA,eAAe,CAACG,KAAhB,GAAwBvG,EAAxB;AACAoG,cAAAA,eAAe,CAAC3C,UAAhB,GAA6BwC,GAA7B;AAEA,kBAAIO,SAAS,GAAG5G,KAAK,CAAC6G,YAAN,CAAmB,cAAnB,EAAmCL,eAAnC,CAAhB;AACAI,cAAAA,SAAS,CAACE,IAAV;AACH,aAPD,MAOO;AACHP,cAAAA,YAAY,CAAC/C,OAAb,CAAqBI,OAAO,IAAI;AAC5B,oBAAGA,OAAO,CAAC1B,GAAR,CAAY,YAAZ,MAA8BmE,GAAjC,EAAsC;AAClCzC,kBAAAA,OAAO,CAACmD,aAAR;AACH;AACJ,eAJD;AAKH;AACJ;;AAED,cAAIC,MAAM,GAAGhH,KAAK,CAACmD,UAAN,CAAiB,cAAjB,EAAgC/C,EAAE,CAACsE,EAAnC,EAAuCrB,IAAvC,CAA4C,UAAS4D,IAAT,EAAe;AACpEV,YAAAA,YAAY,GAAGU,IAAI,CAAC/E,GAAL,CAAS,SAAT,CAAf;AACH,WAFY,CAAb;AAIA,eAAKrC,GAAL,CAAS,gBAAT,EAA2B,IAA3B;AACA,eAAKA,GAAL,CAAS,SAAT,EAAoB0G,YAApB;AACH,SAhFO,CAmFR;;;AACA,YAAId,GAAG,GAAG,KAAKvD,GAAL,CAAS,yBAAT,CAAV;AACA,YAAIgF,EAAE,GAAG,KAAKhF,GAAL,CAAS,2BAAT,CAAT;AACA,YAAIiF,EAAE,GAAG,KAAKjF,GAAL,CAAS,gCAAT,CAAT;AACA,YAAIkF,GAAG,GAAGvE,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuCuE,aAAjD;AAEA,aAAKC,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,cAAd,EAA6B,KAA7B;AACA,aAAKA,QAAL,CAAc,sBAAd,EAAqC,KAArC;AACA,aAAKA,QAAL,CAAc,SAAd,EAAwB,KAAxB;AACA,aAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AACA,aAAKA,QAAL,CAAc,aAAd,EAA4B,KAA5B;AACA,aAAKA,QAAL,CAAc,eAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAjGQ,CAoGR;;AACA,YAAK7B,GAAG,CAACxB,MAAJ,IAAc,CAAf,IAAsBiD,EAAE,CAACjD,MAAH,IAAa,CAAnC,IAA0CkD,EAAE,CAAClD,MAAH,IAAa,CAA3D,EAA+D;AAC3D,eAAKqD,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EAF2D,CAG3D;AAGJ;AACC,SAPD,MAOO,IAAKF,GAAG,IAAI,CAAC,CAAT,IAAgB,KAAKlF,GAAL,CAAS,0BAAT,KAAwC,MAA5D,EAAqE;AACxE,eAAKoF,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,cAAd,EAA6B,IAA7B,EAFwE,CAGxE;AAEJ;AACC,SANM,MAMD,IAAIC,KAAK,CAACvB,gBAAD,CAAT,EAA4B;AAC9B,eAAKsB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,sBAAd,EAAqC,IAArC,EAF8B,CAG9B;AAEJ;AACC,SANK,MAMC,IAAK,KAAKpF,GAAL,CAAS,0BAAT,KAAwC,KAAzC,IAAoDiF,EAAE,IAAI,CAA1D,IAAiE,KAAKjF,GAAL,CAAS,8BAAT,KAA4C,IAAjH,EAAwH;AAC3H,eAAKoF,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,SAAd,EAAwB,IAAxB,EAF2H,CAG3H;AAEH,SALM,MAKA,IAAIH,EAAE,GAAG,CAAT,EAAY;AACf,eAAKG,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,YAAd,EAA2B,IAA3B,EAFe,CAGf;AAEH,SALM,MAKA,IAAIvB,QAAQ,IAAE,MAAd,EAAsB;AACzBlD,UAAAA,QAAQ,CAACC,cAAT,CAAwB,mBAAxB,EAA6C2D,KAA7C,GAAqD,EAArD,CADyB,CAEzB;AAEH,SAJM,MAIA,IAAIR,QAAJ,EAAc;AACjB,eAAKqB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,aAAd,EAA4B,IAA5B,EAFiB,CAGjB;AAEH,SALM,MAKA,IAAI,CAAExB,iBAAiB,CAAC0B,QAAlB,CAA2B,GAA3B,CAAF,IAAuCzB,QAAQ,IAAE,KAArD,EAA6D;AAChE,eAAKuB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B,EAFgE,CAGhE;AAGJ;AACC,SAPM,MAOA,IAAI,CAACrB,QAAL,EAAc;AAEjB,cAAIwB,GAAG,GAAG,CAAC,KAAKvF,GAAL,CAAS,gBAAT,CAAX,CAFiB,CAGjB;;AAEA9B,UAAAA,EAAE,CAAC0G,IAAH,GACKzD,IADL,CACU,UAASoD,KAAT,EAAe;AACjBZ,YAAAA,KAAK,CAAC6B,MAAN,GAAa,KAAb;;AACA7B,YAAAA,KAAK,CAAChG,GAAN,CAAU,aAAV,EAAyB,OAAzB;;AACAgG,YAAAA,KAAK,CAAC3D,GAAN,CAAU,OAAV;AACH,WALL,EAMKyF,KANL,CAMW,UAASC,MAAT,EAAiB;AAEpB,gBAAIA,MAAM,IAAIA,MAAM,CAACC,MAAjB,IAA2BD,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA1D,EAA+D;AAC3DjC,cAAAA,KAAK,CAACyB,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACAzB,cAAAA,KAAK,CAACyB,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH,aAHD,MAGO;AACH;AACAzB,cAAAA,KAAK,CAAChG,GAAN,CAAU,aAAV,EAAyB,OAAzB;;AACAgG,cAAAA,KAAK,CAAC3D,GAAN,CAAU,OAAV;AACH;AACJ,WAhBL;AAiBH;AAEJ,OAhMI;;AAiML6F,MAAAA,aAAa,GAAG;AACZ,YAAI3H,EAAE,GAAG,KAAK8B,GAAL,CAAS,OAAT,CAAT;AACA9B,QAAAA,EAAE,CAAC4H,MAAH,GAAYnF,QAAQ,CAACC,cAAT,CAAwB,oBAAxB,EAA8CmF,OAA1D;AACA,aAAKpI,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACH,OArMI;;AAsML8H,MAAAA,aAAa,GAAG;AACZ,YAAI9H,EAAE,GAAG,KAAK8B,GAAL,CAAS,OAAT,CAAT;AACA9B,QAAAA,EAAE,CAAC+H,QAAH,GAActF,QAAQ,CAACC,cAAT,CAAwB,cAAxB,EAAwCmF,OAAtD;AACA,aAAKpI,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACH,OA1MI;;AA2ML;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAgI,MAAAA,YAAY,GAAG;AACX,YAAIX,GAAG,GAAG,CAAC,KAAKvF,GAAL,CAAS,gBAAT,CAAX;;AAEA,YAAGuF,GAAH,EAAQ;AACJ,eAAK5H,GAAL,CAAS,YAAT,EAAsB,KAAKqC,GAAL,CAAS,cAAT,CAAtB;AACA,eAAKrC,GAAL,CAAS,cAAT,EAAyB,GAAzB;AACA,eAAKA,GAAL,CAAS,aAAT,EAAuB,UAAvB;AACH,SAJD,MAIO;AACH,eAAKA,GAAL,CAAS,YAAT,EAAsB,CAAtB;AACA,eAAKA,GAAL,CAAS,cAAT,EAAyB,GAAzB;AACA,eAAKA,GAAL,CAAS,aAAT,EAAuB,QAAvB;AACH;;AACD,aAAKA,GAAL,CAAS,gBAAT,EAA2B4H,GAA3B;AACH,OAlOI;;AAoOLY,MAAAA,WAAW,GAAG;AACV,YAAIjI,EAAE,GAAG,KAAK8B,GAAL,CAAS,OAAT,CAAT;AACA9B,QAAAA,EAAE,CAACkI,WAAH,GAAiB,IAAjB;AAEA,YAAIC,OAAO,GAAG,IAAIC,IAAJ,EAAd;AAEA,YAAIC,UAAU,GAAGF,OAAO,CAACG,WAAR,KAAwB,GAAxB,IAA+BH,OAAO,CAACI,QAAR,KAAmB,CAAlD,IAAuD,GAAvD,GAA6DJ,OAAO,CAACK,OAAR,EAA7D,GAAiF,GAAjF,GAAuFL,OAAO,CAACM,QAAR,EAAvF,GAA4G,GAA5G,GAAkHN,OAAO,CAACO,UAAR,EAAlH,GAAyI,GAAzI,GAA+IP,OAAO,CAACQ,UAAR,EAAhK,CANU,CAQV;;AACA3I,QAAAA,EAAE,CAACQ,gBAAH,GAAsB6H,UAAtB;AACA,aAAK5I,GAAL,CAAS,kBAAT,EAA6B4I,UAA7B;AACA,aAAK5I,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAAC0G,IAAH;AAEA,aAAKrC,gBAAL,CAAsBrE,EAAE,CAACsE,EAAzB;AACH,OAnPI;;AAoPLsE,MAAAA,UAAU,GAAG;AACT,YAAI5I,EAAE,GAAG,KAAK8B,GAAL,CAAS,OAAT,CAAT;AACA9B,QAAAA,EAAE,CAACkI,WAAH,GAAiB,KAAjB;AACAlI,QAAAA,EAAE,CAAC6I,SAAH,GAAe,KAAf;AACA7I,QAAAA,EAAE,CAACQ,gBAAH,GAAsB,IAAtB;AACAR,QAAAA,EAAE,CAAC8I,WAAH,GAAiB,IAAjB;AACA,aAAKrJ,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAAC0G,IAAH;AACH,OA5PI;;AA6PLqC,MAAAA,WAAW,GAAG;AACV,YAAI/I,EAAE,GAAG,KAAK8B,GAAL,CAAS,OAAT,CAAT;AACA9B,QAAAA,EAAE,CAAC6I,SAAH,GAAe,KAAf;AACA7I,QAAAA,EAAE,CAAC8I,WAAH,GAAiB,IAAjB;AACA,aAAKrJ,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAAC0G,IAAH;AACH,OAnQI;;AAoQLsC,MAAAA,WAAW,GAAG;AACV,YAAG,KAAKvH,kBAAL,CAAwB,KAAKJ,WAA7B,CAAH,EAA8C;AAC1C,eAAK6F,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,KAA9B,EAF0C,CAG1C;AACA;;AACA,eAAK+B,cAAL,CAAoB,WAApB,EAL0C,CAM1C;;AACA,iBAAO,IAAP;AACH,SARD,MAQO;AACH1C,UAAAA,KAAK,CAAC,kFAAD,CAAL;AACA,eAAKW,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B;AACA,iBAAO,KAAP;AACH;AACJ,OAnRI;;AAsRLgC,MAAAA,eAAe,CAACC,aAAD,EAAgB;AAC3B;AACA,aAAK1J,GAAL,CAAS,cAAT,EAAyB0J,aAAzB;AACH;;AAzRI;AAnKyB,GAAvB,C;;;;;;;;;;;;;;;;;;;;;;;MCLMC,c,yEAAN,MAAMA,cAAN,SAA6B,gBAAUC,MAAV,CAAiB,EAAjB,CAA7B,CACZ;AAAA;AAAA;;AAAA;;AAAA;;AAAA,+CAKmB,IALnB;;AAAA,8CAMiB,IANjB;;AAAA,6CAOgB,IAPhB;;AAAA,uCAQU,CARV;;AAAA,uCASW;AACNC,QAAAA,QAAQ,CAACC,EAAD,EAAK;AACT,cAAIC,UAAU,GAAG,IAAIC,MAAJ,EAAjB;AACA,cAAIC,YAAY,GAAGD,MAAM,CAACD,UAAD,CAAN,CAAmBG,QAAnB,CAA4B,CAA5B,EAA+B,MAA/B,EAAuCC,MAAvC,CAA8C,kBAA9C,CAAnB;AACA,cAAIC,mBAAmB,GAAGL,UAAU,CAACI,MAAX,CAAkB,kBAAlB,CAA1B;AACA,cAAIE,QAAQ,GAAG,KAAKC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,WAAjD,CAAf;AACA,eAAKA,GAAL,CAAS,QAAT,EAAmBC,YAAnB,CAAgC,UAAhC,EAA4CT,EAA5C,EAAgD;AAAEU,YAAAA,WAAW,EAAE;AAAC,mCAAqBP,YAAtB;AAAoC,iCAAmBG,mBAAvD;AAA4E,mCAAqBC;AAAjG;AAAf,WAAhD,EALS,CAMT;AACH,SARK;;AASNI,QAAAA,MAAM,CAACX,EAAD,EAAK;AACP,eAAKQ,GAAL,CAAS,QAAT,EAAmBC,YAAnB,CAAgC,gCAAhC,EAAkET,EAAlE,EAAsE,qBAAtE,EADO,CAEP;AACH,SAZK;;AAaNY,QAAAA,MAAM,CAACZ,EAAD,EAAK;AACP,eAAKQ,GAAL,CAAS,QAAT,EAAmBC,YAAnB,CAAgC,8BAAhC,EAAgET,EAAhE,EAAoE,qBAApE,EADO,CAEP;AACH,SAhBK;;AAiBNa,QAAAA,SAAS,GAAG;AACR,eAAKC,GAAL,CAAS,SAAT,EAAoB,KAAKN,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,SAnBK;;AAoBNO,QAAAA,aAAa,GAAG;AACZ,eAAKD,GAAL,CAAS,SAAT,EAAoB,KAAKN,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,SAtBK;;AAuBNQ,QAAAA,cAAc,GAAE;AACZ,gBAAMC,KAAK,GAAG,IAAd,CADY,CAEZ;;;AACA,cAAI,KAAKT,GAAL,CAAS,SAAT,IAAsB,CAA1B,EAA6B;AACzB,gBAAIU,CAAC,GAAGC,OAAO,CAAC,2JAAD,CAAf;;AACA,gBAAID,CAAJ,EAAO;AACHE,cAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuB,cAAvB;AACH;AACJ,WALD,MAKO;AACHF,YAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuB,cAAvB;AACH;AACJ;;AAlCK,OATX;AAAA;;AAAA,G;;;;;;;;;;;;;;;;;;;;;;iBCDYC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,OAAO,EAAE,eAFyB;AAGlCC,IAAAA,cAAc,EAAE,IAHkB;AAIlCC,IAAAA,YAAY,EAAE,IAJoB;AAKlCC,IAAAA,yBAAyB,EAAE,GALO;AAKF;AAChCC,IAAAA,cAAc,EAAE,IANkB;AAOlCC,IAAAA,4BAA4B,EAAE,EAPI;AAOA;AAElCC,IAAAA,2BAA2B,EAAEZ,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AACpE,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AAClD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf4B,CATK;AA0BlCQ,IAAAA,yBAAyB,EAAEtB,KAAK,CAACa,QAAN,CAAe,aAAf,EAA8B,YAAW;AAChE,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,OADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAChD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf0B,CA1BO;AA2ClCS,IAAAA,kBAAkB,EAAEvB,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,KAAKA,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AACjD,iBAAO;AACHJ,YAAAA,IAAI,EAAE,SADH;AAEHQ,YAAAA,SAAS,EAAE,qBAAQJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCW,MAAjC,CAAwC,uBAAxC,CAFR;AAGH;AACAC,YAAAA,SAAS,EAAEN,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAJ7D;AAKHa,YAAAA,eAAe,EAAEP,KAAK,CAACN,GAAN,CAAU,iBAAV;AALd,WAAP;AAOH,SARM,EAQJc,MARI,CAQG,WARH,CAAP;AASH;;AACD,aAAO,KAAP;AACH,KAbmB,CA3Cc;AA0DlCC,IAAAA,gBAAgB,EAAE7B,KAAK,CAACa,QAAN,CAAe,aAAf,EAA8B,YAAW;AACvD,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,KAAKA,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAC/C,iBAAO;AACHJ,YAAAA,IAAI,EAAE,OADH;AAEHQ,YAAAA,SAAS,EAAE,qBAAQJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCW,MAAjC,CAAwC,uBAAxC,CAFR;AAGHC,YAAAA,SAAS,EAAEN,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAH7D;AAIHgB,YAAAA,MAAM,EAAEV,KAAK,CAACN,GAAN,CAAU,QAAV;AAJL,WAAP;AAMH,SAPM,EAOJc,MAPI,CAOG,WAPH,CAAP;AAQH;;AACD,aAAO,KAAP;AACH,KAZiB,CA1DgB;AAwElC;AACAG,IAAAA,cAAc,EAAE/B,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASa,IAAT,EAAc;AAC9D,UAAI;AACA,YAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AACA,YAAIC,SAAS,GAAGL,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAhB;AAEA,YAAIM,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAEA,YAAIyB,SAAS,KAAK,eAAlB,EAAmC;AAC/BF,UAAAA,SAAS,CAACnB,MAAV,CAAiBsB,OAAjB,CAAyBH,SAAS,CAACnB,MAAV,CAAiB,CAAjB,CAAzB;AACH;;AAED,eAAOmB,SAAP;AACH,OAXD,CAWE,OAAOI,KAAP,EAAc;AACZ,eAAO,EAAP;AACH;AACJ,KAfe,CAzEkB;AA0FlC;AACAC,IAAAA,mBAAmB,EAAE1C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASa,IAAT,EAAc;AACxE,UAAI;AACA,YAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AACA,eAAOJ,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAP;AACH,OAHD,CAGE,OAAOQ,KAAP,EAAc;AACZ,eAAO,EAAP;AACH;AACJ,KAPoB,CA3Fa;AAoGlCE,IAAAA,cAAc,EAAE3C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASa,IAAT,EAAc;AAC9D,aAAOA,IAAI,CAAClB,GAAL,CAAS,IAAT,CAAP;AACH,KAFe,CApGkB;AAwGlC8B,IAAAA,mBAAmB,EAAE5C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASa,IAAT,EAAc;AACxE,aAAOA,IAAI,CAAClB,GAAL,CAAS,IAAT,CAAP;AACH,KAFoB,CAxGa;AA4GlC+B,IAAAA,eAAe,EAAE7C,KAAK,CAACa,QAAN,CAAe,YAAf,EAA6B,eAA7B,EAA8C,YAAW;AACtE,UAAIiC,eAAe,GAAG,KAAKhC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D6B,MAAnF;AAAA,UACIC,OAAO,GAAG,KAAKlC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CADd;AAGA,UAAI+B,eAAe,GAAGG,OAAO,CAAC7B,GAAR,CAAY,UAAS8B,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACnC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB;AAIA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AACA,UAAI+B,eAAe,CAACE,MAAhB,GAAyBD,eAAzB,IAA4CP,SAAS,KAAK,eAA9D,EAA+E;AAC3EM,QAAAA,eAAe,CAACK,MAAhB,CAAuB,CAAvB,EAA0B,CAA1B;AACH;;AACD,aAAOL,eAAP;AACH,KAbgB,CA5GiB;AA2HlC;AACAM,IAAAA,kBAAkB,EAAEnD,KAAK,CAACa,QAAN,CAAe,iBAAf,EAAkC,YAAW;AAC7D,YAAMgC,eAAe,GAAG7C,KAAK,CAACoD,IAAN,CAAW,KAAKtC,GAAL,CAAS,iBAAT,CAAX,CAAxB;AAAA,YACIgC,eAAe,GAAG,KAAKhC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D6B,MADnF;AAAA,YAEIM,YAAY,GAAG,EAFnB;AAKA,UAAIrC,IAAI,GAAG,KAAKF,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,CAAX;AAEA+B,MAAAA,eAAe,CAACL,OAAhB,CAAwB,CAAxB;;AAEA,WAAK,IAAIc,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIT,eAAe,CAACE,MAAhB,GAAyB,CAA9C,EAAiDO,CAAC,EAAlD,EAAsD;AAClD,YAAIC,GAAG,GAAG,CAACV,eAAe,CAACS,CAAD,CAAf,GAAqBT,eAAe,CAACS,CAAC,GAAG,CAAL,CAArC,IAAgD,CAA1D;AACAD,QAAAA,YAAY,CAACG,IAAb,CAAmB,CAACD,GAAG,CAACE,OAAJ,CAAY,CAAZ,CAApB;AACH;;AAED,aAAOJ,YAAP;AACH,KAhBmB,CA5Hc;AA8IlCK,IAAAA,YAAY,EAAEC,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EA9IoB;AAgJlCC,IAAAA,mCAAmC,EAAE/D,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAArC,EAAmD,iBAAnD,EAAsE,oBAAtE,EAA4F,YAAW;AACxI,UAAIgC,eAAe,GAAG,KAAK/B,GAAL,CAAS,iBAAT,CAAtB;AACA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIqC,kBAAkB,GAAG,KAAKrC,GAAL,CAAS,oBAAT,CAAzB,CAHwI,CAKxI;;AAEA,UAAGyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAAlD,EAAwE;AACpE,eAAOY,kBAAkB,CAAChC,GAAnB,CAAuB,UAAS6C,cAAT,EAAwB;AAClD,iBAAO;AACHjD,YAAAA,GAAG,EAAEiD,cADF;AAEHhD,YAAAA,IAAI,EAAE,iBAFH;AAGHE,YAAAA,MAAM,EAAE,CACJ8C,cADI;AAHL,WAAP;AAOH,SARM,CAAP;AAUH;;AAED,aAAOnB,eAAe,CAAC1B,GAAhB,CAAoB,UAAS6C,cAAT,EAAwB;AAC/C,eAAO;AACHjD,UAAAA,GAAG,EAAEiD,cADF;AAEHhD,UAAAA,IAAI,EAAE,iBAFH;AAGHE,UAAAA,MAAM,EAAE,CACJ8C,cADI;AAHL,SAAP;AAOH,OARM,CAAP;AASH,KA7BoC,CAhJH;AA+KlCC,IAAAA,2BAA2B,EAAEjE,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzE,UAAI0B,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAEA,UAAIyB,SAAS,KAAK,eAAlB,EAAmC;AAC/B,eAAO,EAAP;AACH;;AACD,aAAO,CAAP;AACH,KAP4B,CA/KK;AAwLlC2B,IAAAA,kBAAkB,EAAElE,KAAK,CAACa,QAAN,CAAe,gBAAf,EAAiC,gBAAjC,EAAmD,6BAAnD,EAAkF,2BAAlF,EAA+G,YAAW;AAC1I,YAAMsD,KAAK,GAAG,IAAd;AAAA,YACIvD,2BAA2B,GAAG,KAAKE,GAAL,CAAS,6BAAT,CADlC;AAAA,YAEIQ,yBAAyB,GAAG,KAAKR,GAAL,CAAS,2BAAT,CAFhC;AAAA,YAGIiB,cAAc,GAAG,KAAKjB,GAAL,CAAS,gBAAT,CAHrB;AAAA,YAII6B,cAAc,GAAG,KAAK7B,GAAL,CAAS,gBAAT,CAJrB;AAAA,YAKI+B,eAAe,GAAG,KAAK/B,GAAL,CAAS,iBAAT,CALtB;AAAA,YAMIiD,mCAAmC,GAAG,KAAKjD,GAAL,CAAS,qCAAT,CAN1C;;AAQA,UAAIoD,kBAAkB,GAAG,EAAzB;AAEA,UAAI3B,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIsD,UAAU,GAAGvB,eAAjB;;AAEA,UAAGN,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAAlD,EAAwE;AACpE6B,QAAAA,UAAU,GAAG,KAAKtD,GAAL,CAAS,oBAAT,CAAb;AACH;;AAEDoD,MAAAA,kBAAkB,GAAGnC,cAAc,CAACZ,GAAf,CAAmB,UAASkD,SAAT,EAAoBC,cAApB,EAAmC;AACvE,eAAO;AACHvD,UAAAA,GAAG,EAAEuD,cADF;AAEH;AACAtD,UAAAA,IAAI,EAAE,OAHH;AAIHQ,UAAAA,SAAS,EAAEmB,cAAc,CAAC2B,cAAD,CAJtB;AAKHpD,UAAAA,MAAM,EAAEmD,SAAS,CAACnD,MAAV,CAAiBC,GAAjB,CAAqB,UAASoD,SAAT,EAAoBC,cAApB,EAAoC;AAC7D,mBAAO,CACHJ,UAAU,CAACI,cAAD,CADP,EAEHD,SAFG,CAAP;AAIH,WALO;AALL,SAAP;AAYH,OAboB,CAArB,CAlB0I,CAiC1I;;AACA,UAAI3D,2BAAJ,EAAiC;AAC7BsD,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACO,MAAnB,CAA0B7D,2BAA1B,CAArB;AACH;;AACD,UAAIU,yBAAJ,EAA+B;AAC3B4C,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACO,MAAnB,CAA0BnD,yBAA1B,CAArB;AACH;;AACD,UAAIyC,mCAAJ,EAAyC;AACrCG,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACO,MAAnB,CAA0BV,mCAA1B,CAArB;AACH;;AAED,aAAOG,kBAAP;AACH,KA7CmB,CAxLc;AAuOlCQ,IAAAA,uBAAuB,EAAE1E,KAAK,CAACa,QAAN,CAAe,qBAAf,EAAsC,qBAAtC,EAA6D,YAAW;AAC7F,YAAMsD,KAAK,GAAG,IAAd;AAAA,YACIzB,mBAAmB,GAAG,KAAK5B,GAAL,CAAS,qBAAT,CAD1B;AAAA,YAEI8B,mBAAmB,GAAG,KAAK9B,GAAL,CAAS,qBAAT,CAF1B;;AAKA,UAAI+B,eAAe,GAAG,KAAK/B,GAAL,CAAS,iBAAT,CAAtB;AAEA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIE,IAAI,GAAG,KAAKF,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,CAAX;AAEA,aAAO+B,eAAe,CAAC1B,GAAhB,CAAoB,UAASwD,aAAT,EAAwBL,cAAxB,EAAuC;AAC9D,eAAO;AACHvD,UAAAA,GAAG,EAAE4D,aADF;AAEH;AACA3D,UAAAA,IAAI,EAAE,OAHH;AAIHE,UAAAA,MAAM,EAAEwB,mBAAmB,CAACvB,GAApB,CAAwB,UAASoD,SAAT,EAAoBC,cAApB,EAAoC;AAChE,mBAAO,CACH,qBAAQ5B,mBAAmB,CAAC4B,cAAD,CAA3B,EAA8CnD,OAA9C,EADG,EAEHkD,SAAS,CAACrD,MAAV,CAAiBoD,cAAjB,CAFG,CAAP;AAIH,WALO;AAJL,SAAP;AAWH,OAZM,EAYJ1C,MAZI,CAYG,WAZH,CAAP;AAaH,KAxBwB,CAvOS;AAiQlCgD,IAAAA,QAAQ,EAAE5E,KAAK,CAACa,QAAN,CAAe,gBAAf,EAAiC,YAAW;AAClD,aAAO,KAAKC,GAAL,CAAS,gBAAT,EAA2BiC,MAAlC;AACH,KAFS,CAjQwB;AAqQlC8B,IAAAA,aAAa,EAAE7E,KAAK,CAACa,QAAN,CAAe,UAAf,EAA2B,YAAW;AACjD,aAAQ,SAAS,KAAKC,GAAL,CAAS,UAAT,IAAuB,CAAhC,CAAD,GAAwC,IAAI,EAAnD;AACH,KAFc,CArQmB;AAyQlCgE,IAAAA,kBAAkB,EAAE9E,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,aAAO,KAAKC,GAAL,CAAS,eAAT,EAA0BiE,KAA1B,CAAgCC,UAAvC;AACH,KAFmB,CAzQc;AA6QlCC,IAAAA,WAAW,EAAEjF,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzD,UAAIiE,kBAAkB,GAAG,KAAKhE,GAAL,CAAS,oBAAT,CAAzB;AACA,UAAIoE,OAAO,GAAG,KAAKpE,GAAL,CAAS,OAAT,EAAkBqE,WAAlB,CAA8B,aAA9B,EAA6C;AAACC,QAAAA,KAAK,EAAEN,kBAAkB,CAACO,MAAnB,CAA0B,CAA1B,EAA6BP,kBAAkB,CAACQ,WAAnB,CAA+B,GAA/B,CAA7B,EAAkEC,OAAlE,CAA0E,GAA1E,EAA8E,GAA9E;AAAR,OAA7C,CAAd;AACA,aAAOL,OAAP;AACH,KAJY,CA7QqB;AAmRlCM,IAAAA,gBAAgB,EAAE,YAAW;AACzB,YAAMrB,KAAK,GAAG,IAAd;AAAA,YACID,kBAAkB,GAAGC,KAAK,CAACrD,GAAN,CAAU,oBAAV,CADzB;AAAA,YAEI4D,uBAAuB,GAAGP,KAAK,CAACrD,GAAN,CAAU,yBAAV,CAF9B;AAAA,YAGImD,2BAA2B,GAAGE,KAAK,CAACrD,GAAN,CAAU,6BAAV,CAHlC;AAAA,YAIIL,yBAAyB,GAAG0D,KAAK,CAACrD,GAAN,CAAU,2BAAV,CAJhC;AAAA,YAKIJ,cAAc,GAAGyD,KAAK,CAACrD,GAAN,CAAU,gBAAV,CALrB;AAAA,YAMIH,4BAA4B,GAAGwD,KAAK,CAACrD,GAAN,CAAU,8BAAV,CANnC;;AASA,UAAIS,kBAAkB,GAAG,KAAKT,GAAL,CAAS,oBAAT,CAAzB;AAAA,UACIe,gBAAgB,GAAG,KAAKf,GAAL,CAAS,kBAAT,CADvB;AAAA,UAEI2E,YAAY,GAAG9B,EAAE,CAAC+B,MAAH,CAAU,MAAMvB,KAAK,CAACrD,GAAN,CAAU,SAAV,CAAN,GAA6B,kCAAvC,CAFnB;AAAA,UAGI6E,iBAAiB,GAAGhC,EAAE,CAAC+B,MAAH,CAAU,MAAMvB,KAAK,CAACrD,GAAN,CAAU,SAAV,CAAN,GAA6B,wCAAvC,CAHxB;AAAA,UAIImE,WAAW,GAAG,KAAKnE,GAAL,CAAS,aAAT,CAJlB;AAAA,UAKI8E,gBAAgB,GAAG,CAACX,WAAD,CALvB,CAVyB,CAkBzB;;AACAjF,MAAAA,KAAK,CAAC6F,IAAN,CAAWC,OAAX,CAAmBC,GAAnB,CAAuBH,gBAAvB,EAAyCI,IAAzC,CAA8C,UAASC,OAAT,EAAiB;AAC3D;AACA,YAAIb,KAAK,GAAG,EAAZ;;AACA,YAAIH,WAAJ,EAAiB;AACbA,UAAAA,WAAW,GAAGA,WAAd,CADa,CACa;AAE1B;;AACA,cAAIjE,IAAI,GAAGmD,KAAK,CAAC+B,UAAN,CAAiBpF,GAAjB,CAAqB,kBAArB,EAAyCqF,QAAzC,EAAX;;AACA,cAAI9D,SAAS,GAAG8B,KAAK,CAACrD,GAAN,CAAU,WAAV,CAAhB;;AACAuB,UAAAA,SAAS,CAAC+D,OAAV,CAAkB,UAASpE,IAAT,EAAe;AAC7B,gBAAGA,IAAI,CAACqE,EAAL,KAAYrF,IAAf,EAAqB;AACjBqB,cAAAA,SAAS,GAAGL,IAAZ;AACA;AACH;AACJ,WALD;AAOA,cAAIsE,QAAQ,GAAG,EAAf;AACA,cAAIC,KAAK,GAAGlE,SAAS,CAACvB,GAAV,CAAc,OAAd,CAAZ;;AACA,kBAAOmE,WAAW,CAACnE,GAAZ,CAAgB,OAAhB,CAAP;AACI,iBAAK,cAAL;AACIwF,cAAAA,QAAQ,GAAGjE,SAAS,CAACvB,GAAV,CAAc,0BAAd,CAAX;AACA;;AACJ,iBAAK,UAAL;AACIwF,cAAAA,QAAQ,GAAGjE,SAAS,CAACvB,GAAV,CAAc,sBAAd,CAAX;AACAyF,cAAAA,KAAK,IAAI,MAAT;AACA;;AACJ,iBAAK,cAAL;AACID,cAAAA,QAAQ,GAAGjE,SAAS,CAACvB,GAAV,CAAc,0BAAd,CAAX;AACAyF,cAAAA,KAAK,IAAI,OAAT;AACA;;AACJ,iBAAK,QAAL;AACID,cAAAA,QAAQ,GAAGjE,SAAS,CAACvB,GAAV,CAAc,oBAAd,CAAX;AACAyF,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,aAAL;AACID,cAAAA,QAAQ,GAAGjE,SAAS,CAACvB,GAAV,CAAc,wBAAd,CAAX;AACAyF,cAAAA,KAAK,GAAG,OAAR;AACA;;AACJ;AACID,cAAAA,QAAQ,GAAG,SAAX;AArBR;;AAwBAlB,UAAAA,KAAK,GAAGkB,QAAQ,GAAI,IAAZ,GAAmBC,KAAnB,GAA2B,GAAnC;AACH;;AAED,YAAIC,SAAS,GAAGC,EAAE,CAACC,MAAH,CAAUC,6BAAV,GACXC,MADW,CACJ;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADI,EAEXC,uBAFW,CAEa,KAFb,EAGXC,CAHW,CAGT,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHnB,EAIXC,CAJW,CAIT,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAJnB,EAKXE,cALW,CAKI,UAASF,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SALhC,EAMXlG,KANW,CAML0C,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EANK,EAOXwD,QAPW,CAOF,GAPE,EAQXC,SARW,CAQD,IARC,EASXC,UATW,CASA,IATA,EAUX/G,yBAVW,CAUeA,yBAVf,EAWXgH,SAXW,CAWD,IAXC,EAYXC,MAZW,CAYJ,gBAZI,CAAhB;AAgBA,YAAI3E,MAAM,GAAG,CAAb;;AACA,YAAI;AACAA,UAAAA,MAAM,GAAGoB,KAAK,CAAC+B,UAAN,CAAiBpF,GAAjB,CAAqB,kBAArB,CAAT;;AACA,cAAIE,IAAI,GAAGmD,KAAK,CAAC+B,UAAN,CAAiBpF,GAAjB,CAAqB,gBAArB,CAAX;;AACA,cAAIE,IAAI,KAAK,QAAb,EAAuB;AACnB+B,YAAAA,MAAM,GAAGA,MAAM,GAAG,IAAlB;AACH;AAEJ,SAPD,CAOE,OAAO4E,EAAP,EAAW,CAEZ;;AAED,YAAG5E,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,CAAjC,EAAoC;AAChCA,UAAAA,MAAM,GAAG,CAAT;AACH;;AAEDyD,QAAAA,SAAS,CAACoB,MAAV,CAAiB,CAAC,CAAD,EAAI7E,MAAJ,CAAjB;AACZ;AACA;AACA;AACA;AACY;AACA;;AACA0D,QAAAA,EAAE,CAACoB,QAAH,CAAY,YAAW;AAEnBrB,UAAAA,SAAS,CAACsB,KAAV,CACKC,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGI;AACA;AACA;AACA;AACA;AAPJ;AASAxB,UAAAA,SAAS,CAACyB,KAAV,CACKC,SADL,CACe9C,KADf,EAEK+C,UAFL,CAEgBxE,EAAE,CAAClC,MAAH,CAAU,KAAV,CAFhB;AAIA+E,UAAAA,SAAS,CAAC4B,SAAV,CACKL,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGI;AAHJ,WAIKG,UAJL,CAIgB,UAAShB,CAAT,EAAY;AACpB,gBAAIzC,uBAAuB,CAAC3B,MAAxB,GAAiC,CAArC,EAAwC;AACpC,kBAAIsF,2BAA2B,GAAG3D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BxD,MAA3B,CAAkC6B,MAApE;AACA,kBAAIuF,MAAM,GAAG5D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BxD,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAb;AACA,kBAAIqH,MAAM,GAAG7D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BxD,MAA3B,CAAkCmH,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAAb;AACA,qBAAO5B,EAAE,CAAC+B,KAAH,CAASC,sBAAT,CAAiCH,MAAjC,EAAyCC,MAAzC,EAAiD,IAAIG,IAAJ,CAASvB,CAAT,CAAjD,CAAP;AACH,aALD,MAKO;AACH,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WAbL;AAeAX,UAAAA,SAAS,CAACmC,KAAV,CACK/B,MADL,CACY;AAACC,YAAAA,GAAG,EAAE,CAAN;AAASC,YAAAA,KAAK,EAAE,CAAhB;AAAmBC,YAAAA,MAAM,EAAE,CAA3B;AAA8BC,YAAAA,IAAI,EAAE;AAApC,WADZ,EAEK4B,IAFL,CAEU,EAFV,EAGKC,wBAHL,CAG8B,EAH9B,EAIKnI,cAJL,CAIoBA,cAJpB,EAKKC,4BALL,CAKkCA,4BALlC,EAMKmI,yBANL,CAM+B,KAN/B,EAOKC,SAPL,CAOe,CAPf,EA9BmB,CAuCnB;;AAEAtD,UAAAA,YAAY,CAACuD,KAAb,CAAmB9E,kBAAnB,EAAuC+E,IAAvC,CAA4CzC,SAA5C;AAEAA,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,YAAtB,EAAoC,UAAUC,WAAV,EAAuB;AACvDjF,YAAAA,KAAK,CAACkF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACAjF,YAAAA,KAAK,CAACkF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AACA,gBAAI7I,cAAc,GAAG,qBAAO4D,KAAK,CAACrD,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCW,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAIjB,YAAY,GAAG,qBAAO2D,KAAK,CAACrD,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCW,MAAvC,CAA8C,yBAA9C,CAAnB;AAEA+E,YAAAA,SAAS,CAAC8C,OAAV,CAAkBC,MAAlB,CAAyB,IAAzB,EANuD,CAQvD;;AACApF,YAAAA,KAAK,CAACqF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAAClJ,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WAVF;AAYAgG,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,OAAtB,EAA+B,UAAUC,WAAV,EAAuB;AAClD,gBAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B;AAC3B;AACAC,cAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoCR,WAAW,CAACM,MAAhD;AACH;AACH,WALF;;AAOA,mBAASG,kBAAT,CAA4BC,cAA5B,EAA4C;AAExC,gBAAI,OAAOA,cAAP,KAA0B,WAA9B,EAA2C;AACvC,qBAAO,KAAP;AACH;;AAED,gBAAIC,WAAW,GAAG,EAAlB;AAAA,gBACIC,YAAY,GAAG,EADnB;AAAA,gBAEItI,SAAS,GAAG,IAFhB;;AAKA,gBAAI,OAAOoI,cAAP,KAA2B,QAA/B,EAAyC;AACrC,kBAAIA,cAAc,CAAC9I,IAAf,KAAwB,OAA5B,EAAqC;AACjCgJ,gBAAAA,YAAY,GAAG,OAAf;AACAtI,gBAAAA,SAAS,GAAG,sCAAsCoI,cAAc,CAAChI,MAArD,GAA8D,SAA1E;AACH,eAHD,MAGO,IAAIgI,cAAc,CAAC9I,IAAf,KAAwB,SAA5B,EAAuC;AAC1CgJ,gBAAAA,YAAY,GAAG,SAAf;AACAtI,gBAAAA,SAAS,GAAG,gDAAgDoI,cAAc,CAACnI,eAA/D,GAAiF,SAA7F;AACH,eAHM,MAGA,IAAImI,cAAc,CAAC9I,IAAf,KAAwB,OAA5B,EAAqC;AACxCgJ,gBAAAA,YAAY,GAAG,OAAf;AACH;;AACDD,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACtI,SAAvC,GAAmD,SAAnD,GACA,iCADA,GACoCsI,cAAc,CAAC9I,IADnD,GAC0D,SAD1D,GAEAU,SAFd;AAIH,aAdD,MAcO;AACHqI,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACtI,SAAvC,GAAmD,SAAjE;AACH;;AAED,mBAAO;AACHwI,cAAAA,YAAY,EAAEA,YADX;AAEHD,cAAAA,WAAW,EAAEA;AAFV,aAAP;AAKH;;AAEDvD,UAAAA,SAAS,CAACmC,KAAV,CAAgBO,QAAhB,CAAyBC,EAAzB,CAA4B,gBAA5B,EAA8C,UAAUc,cAAV,EAA0B;AACpE;AACA,gBAAK1I,kBAAkB,CAACwB,MAAnB,IAA6BkH,cAAc,CAACC,MAAf,GAAwB,CAAC,CAA3D,EAA+D;AAC3D1D,cAAAA,SAAS,CAACmC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAACtI,kBAAkB,CAAC0I,cAAc,CAACC,MAAhB,CAAnB,CAAnE;AACH;;AACD,gBAAKrI,gBAAgB,CAACkB,MAAjB,IAA2BkH,cAAc,CAACG,MAAf,GAAwB,CAAC,CAAzD,EAA6D;AACzD5D,cAAAA,SAAS,CAACmC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAAChI,gBAAgB,CAACoI,cAAc,CAACG,MAAhB,CAAjB,CAAnE;AACH;;AAED,gBAAI,CAAC7I,kBAAkB,CAACwB,MAApB,IAA8B,CAAClB,gBAAgB,CAACkB,MAApD,EAA4D;AACxD,kBAAIsH,UAAU,GAAGJ,cAAc,CAACC,MAAhC;;AACA,kBAAIG,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGJ,cAAc,CAACG,MAA5B;AACH;;AAED,kBAAIE,oBAAoB,GAAG/I,kBAAkB,CAAC8I,UAAD,CAA7C;;AACA,kBAAI,CAACC,oBAAL,EAA2B;AACvBA,gBAAAA,oBAAoB,GAAGzI,gBAAgB,CAACwI,UAAD,CAAvC;AACH;;AACD7D,cAAAA,SAAS,CAACmC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAACS,oBAAD,CAAnE;AACH;AACJ,WArBD,EAlGmB,CAyHnB;;AACA7D,UAAAA,EAAE,CAAC+B,KAAH,CAAS+B,YAAT,CAAsB/D,SAAS,CAACgE,MAAhC;AAEAhE,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,aAAtB,EAAqC,UAASsB,CAAT,EAAY;AAAEhE,YAAAA,EAAE,CAACiE,GAAH,CAAO,YAAP,EAAqBC,IAAI,CAACC,SAAL,CAAeH,CAAf,CAArB;AAA0C,WAA7F;AACAjE,UAAAA,SAAS,CAACqE,KAAV,CAAgB3B,QAAhB,CAAyBC,EAAzB,CAA4B,QAA5B,EAAsC,UAAS0B,KAAT,EAAe;AACjDpE,YAAAA,EAAE,CAACiE,GAAH,CAAO,OAAP,EAAgBC,IAAI,CAACC,SAAL,CAAeC,KAAf,CAAhB;AACH,WAFD;AAIA,iBAAOrE,SAAP;AACH,SAlID,EApF2D,CAwN3D;;AACA,YAAImD,cAAc,GAAGlD,EAAE,CAACC,MAAH,CAAUoE,KAAV,CAAgBrE,EAAE,CAACC,MAAH,CAAUqE,IAAV,EAAhB,EACjBnE,MADiB,CACV;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADU,EAEhBE,CAFgB,CAEd,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAFd,EAGhBC,CAHgB,CAGd,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHd,EAIhBlG,KAJgB,CAIV0C,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAJU,EAKhBkH,YALgB,CAKH,KALG,EAMhBC,mBANgB,CAMI,IANJ,EAOhBxD,SAPgB,CAON,IAPM,EAQhByD,SARgB,CAQN,KARM,CAArB;AAYAzE,QAAAA,EAAE,CAACoB,QAAH,CAAY,YAAW;AAEnB8B,UAAAA,cAAc,CAAC7B,KAAf,CACKE,UADL,CACgB,KADhB,EAEKG,UAFL,CAEgB,UAAShB,CAAT,EAAY;AACpB,gBAAIzC,uBAAuB,CAAC3B,MAAxB,GAAiC,CAArC,EAAwC;AACpC,kBAAIsF,2BAA2B,GAAG3D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BxD,MAA3B,CAAkC6B,MAApE;AACA,qBAAO0D,EAAE,CAAC+B,KAAH,CAASC,sBAAT,CAAiC/D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BxD,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0EwD,uBAAuB,CAAC,CAAD,CAAvB,CAA2BxD,MAA3B,CAAkCmH,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAIK,IAAJ,CAASvB,CAAT,CAA/I,CAAP;AACH,aAHD,MAGO;AACH,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WATL;AAWAwC,UAAAA,cAAc,CAAC1B,KAAf,CAAqBE,UAArB,CAAgCxE,EAAE,CAAClC,MAAH,CAAU,KAAV,CAAhC;AAEAkE,UAAAA,iBAAiB,CAACqD,KAAlB,CAAwBtE,uBAAxB,EAAiDuE,IAAjD,CAAsDU,cAAtD;AAGAA,UAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,YAA3B,EAAyC,UAAUC,WAAV,EAAuB;AAC5DjF,YAAAA,KAAK,CAACkF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACAjF,YAAAA,KAAK,CAACkF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AAEA,gBAAI7I,cAAc,GAAG,qBAAO4D,KAAK,CAACrD,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCW,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAIjB,YAAY,GAAG,qBAAO2D,KAAK,CAACrD,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCW,MAAvC,CAA8C,yBAA9C,CAAnB,CAL4D,CAO5D;;AACA0C,YAAAA,KAAK,CAACqF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAAClJ,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WATF;AAWAmJ,UAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,OAA3B,EAAoC,UAAUC,WAAV,EAAuB;AACvD,gBAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B,CAC3B;AACH;AACH,WAJF,EA7BmB,CAmCnB;;AACAjD,UAAAA,EAAE,CAAC+B,KAAH,CAAS+B,YAAT,CAAsBZ,cAAc,CAACa,MAArC,EApCmB,CAsCnB;;AACA,cAAIjK,cAAc,GAAG,qBAAO4D,KAAK,CAACqF,KAAN,CAAY2B,cAAZ,CAA2B,iBAA3B,CAAP,EAAsD9J,OAAtD,EAArB;AACA,cAAIb,YAAY,GAAG,qBAAO2D,KAAK,CAACqF,KAAN,CAAY2B,cAAZ,CAA2B,eAA3B,CAAP,EAAoD9J,OAApD,EAAnB;;AACA,cAAId,cAAc,IAAIC,YAAtB,EAAoC;AAChCmJ,YAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoC,CAACrJ,cAAD,EAAiBC,YAAjB,CAApC;AACH;;AAED,iBAAOmJ,cAAP;AACH,SA9CD;AAgDH,OArRD;AAuRH;AA7jBiC,GAAvB,C;;;;;;;;;;;;;ACDf;iBAEeyB,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAElCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF2B;AAGlCC,IAAAA,OAAO,EAAE,gBAHyB;AAIlCC,IAAAA,cAAc,EAAE,IAJkB;AAKlCC,IAAAA,YAAY,EAAE,IALoB;AAMlCC,IAAAA,cAAc,EAAE,IANkB;AAOlCC,IAAAA,4BAA4B,EAAE,GAPI;AASlCC,IAAAA,2BAA2B,EAAEX,KAAK,CAACY,QAAN,CAAe,eAAf,EAAgC,YAAW;AACpE,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AAClD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf4B,CATK;AA0BlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEAQ,IAAAA,yBAAyB,EAAErB,KAAK,CAACY,QAAN,CAAe,aAAf,EAA8B,YAAW;AAChE,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,OADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAChD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf0B,CA9CO;AA+DlCS,IAAAA,kBAAkB,EAAEtB,KAAK,CAACY,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,KAAKA,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AACjD,iBAAO;AACHJ,YAAAA,IAAI,EAAE,SADH;AAEHQ,YAAAA,IAAI,EAAEJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAFH;AAGHW,YAAAA,SAAS,EAAE,qBAAQL,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCY,MAAjC,CAAwC,uBAAxC,CAHR;AAIH;AACAC,YAAAA,SAAS,EAAEP,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAL7D;AAMHc,YAAAA,eAAe,EAAER,KAAK,CAACN,GAAN,CAAU,iBAAV,CANd;AAOHe,YAAAA,QAAQ,EAAET,KAAK,CAACN,GAAN,CAAU,UAAV;AAPP,WAAP;AASH,SAVM,EAUJgB,MAVI,CAUG,MAVH,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAfmB,CA/Dc;AAgFlCC,IAAAA,gBAAgB,EAAE9B,KAAK,CAACY,QAAN,CAAe,aAAf,EAA8B,YAAW;AACvD,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,YAAIkB,QAAQ,GAAG,KAAKlB,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AACvD;AACA,iBAAO;AACHJ,YAAAA,IAAI,EAAE,OADH;AAEHQ,YAAAA,IAAI,EAAEJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAFH;AAGHW,YAAAA,SAAS,EAAE,qBAAQL,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCY,MAAjC,CAAwC,uBAAxC,CAHR;AAIHC,YAAAA,SAAS,EAAEP,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAJ7D;AAKHmB,YAAAA,MAAM,EAAEb,KAAK,CAACN,GAAN,CAAU,QAAV,CALL;AAMHe,YAAAA,QAAQ,EAAET,KAAK,CAACN,GAAN,CAAU,UAAV;AANP,WAAP;AAQH,SAVc,EAUZgB,MAVY,CAUL,MAVK,CAAf,CAD2B,CAY3B;;AACA,eAAOE,QAAP;AACH;;AACD,aAAO,KAAP;AACH,KAjBiB,CAhFgB;AAmGlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEAE,IAAAA,cAAc,EAAEjC,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,cAAnB,EAAmC,UAASgB,IAAT,EAAc;AAC7D,UAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AAEA,UAAIC,SAAS,GAAGL,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAhB;AAEA,aAAOI,SAAP;AACH,KANe,CArHkB;AA6HlCE,IAAAA,cAAc,EAAEzC,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASgB,IAAT,EAAc;AAC9D,UAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB,CAD8D,CAE9D;;AACA,UAAIC,SAAS,GAAGL,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAhB;AAEA,UAAIO,SAAS,GAAG,KAAK7B,GAAL,CAAS,oBAAT,CAAhB;;AACA,UAAI6B,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAAnD,EAAyE;AACrEH,QAAAA,SAAS,CAACtB,MAAV,CAAiB0B,IAAjB,CAAsB,CAAtB;AACH,OAR6D,CAS9D;;;AACA,aAAOJ,SAAP;AACH,KAXe,CA7HkB;AA0IlCK,IAAAA,mBAAmB,EAAE5C,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASgB,IAAT,EAAc;AACxE,UAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AAEA,aAAOJ,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAP;AACH,KAJoB,CA1Ia;;AAgJtC;AACA;AACA;AACA;AACA;AACA;AACIU,IAAAA,cAAc,EAAE7C,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASgB,IAAT,EAAc;AAC9D,aAAOA,IAAI,CAACrB,GAAL,CAAS,IAAT,CAAP;AACH,KAFe,CAtJkB;AA0JlCiC,IAAAA,mBAAmB,EAAE9C,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASgB,IAAT,EAAc;AACxE,aAAOA,IAAI,CAACrB,GAAL,CAAS,IAAT,CAAP;AACH,KAFoB,CA1Ja;AA8JlCkC,IAAAA,eAAe,EAAE/C,KAAK,CAACY,QAAN,CAAe,YAAf,EAA6B,oBAA7B,EAAmD,YAAW;AAC3E,UAAIoC,QAAQ,GAAG,KAAKC,UAAL,CAAgBpC,GAAhB,CAAoB,gBAApB,EAAsCA,GAAtC,CAA0C,OAA1C,CAAf;AACA,UAAI0B,SAAS,GAAG,KAAK1B,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIqC,eAAJ;;AACA,UAAI;AACAA,QAAAA,eAAe,GAAGX,SAAS,CAAC1B,GAAV,CAAc,aAAd,EAA6ByB,MAA7B,GAAsCrB,MAAtC,CAA6CkC,MAA/D;AACH,OAFD,CAEE,OAAOC,KAAP,EAAc;AACZF,QAAAA,eAAe,GAAG,CAAlB;AACH;;AACD,UAAIG,OAAO,GAAG,KAAKxC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAd;AAEA,UAAIkC,eAAe,GAAGM,OAAO,CAACnC,GAAR,CAAY,UAASoC,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACzC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB,CAX2E,CAe3E;AAEA;;AACA,UAAI6B,SAAS,GAAG,KAAK7B,GAAL,CAAS,oBAAT,CAAhB;;AAEA,UAAI6B,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAAnD,EAAyE;AACrE,YAAIa,SAAS,GAAG,EAAhB;;AACA,aAAI,IAAIC,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGT,eAAe,CAACI,MAAhB,GAAuB,CAA9C,EAAiDK,GAAG,EAApD,EAAwD;AACpDD,UAAAA,SAAS,CAACC,GAAD,CAAT,GAAiB,CAAC,CAACT,eAAe,CAACS,GAAD,CAAf,GAAuBT,eAAe,CAACS,GAAG,GAAG,CAAP,CAAvC,IAAoD,CAArD,EAAwDC,OAAxD,CAAgE,CAAhE,CAAjB;AACH;;AACD,YAAGf,SAAS,KAAG,qBAAf,EAAsC;AAClCa,UAAAA,SAAS,CAACG,OAAV,CAAkB,CAAlB;AACH;;AACDX,QAAAA,eAAe,GAAGQ,SAAlB;AACH,OA7B0E,CA8B3E;;;AACA,aAAOR,eAAP;AACH,KAhCgB,CA9JiB;AAgMlC;AACAY,IAAAA,kBAAkB,EAAE3D,KAAK,CAACY,QAAN,CAAe,gBAAf,EAAiC,gBAAjC,EAAmD,gBAAnD,EAAqE,6BAArE,EAAoG,2BAApG,EAAiI,YAAW;AACxJ,YAAMgD,KAAK,GAAG,IAAd;AAAA,YACAjD,2BAA2B,GAAG,KAAKE,GAAL,CAAS,6BAAT,CAD9B;AAAA,YAEAQ,yBAAyB,GAAG,KAAKR,GAAL,CAAS,2BAAT,CAF5B;AAAA,YAGA;AACA4B,MAAAA,cAAc,GAAG,KAAK5B,GAAL,CAAS,gBAAT,CAJjB;AAAA,YAKAoB,cAAc,GAAG,KAAKpB,GAAL,CAAS,gBAAT,CALjB;AAAA,YAMAgC,cAAc,GAAG,KAAKhC,GAAL,CAAS,gBAAT,CANjB,CADwJ,CAU5J;AACA;;;AAEA,UAAIkC,eAAe,GAAG,KAAKlC,GAAL,CAAS,iBAAT,CAAtB;AAAA,UACI8C,kBAAkB,GAAG,EADzB,CAb4J,CAiB5J;;AACA,UAAIC,KAAK,CAAC/C,GAAN,CAAU,oBAAV,MAAoC,oBAAxC,EAA8D;AAC1D8C,QAAAA,kBAAkB,GAAGZ,eAAe,CAAC7B,GAAhB,CAAoB,UAAS2C,aAAT,EAAwBC,cAAxB,EAAuC;AAC5E,iBAAO;AACHhD,YAAAA,GAAG,EAAE+C,aADF;AAEH;AACA9C,YAAAA,IAAI,EAAE,OAHH;AAIHgD,YAAAA,KAAK,EAAE,CAJJ;AAKH9C,YAAAA,MAAM,EAAEwB,cAAc,CAACvB,GAAf,CAAmB,UAAS8C,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,qBAAO,CACH,qBAAQpB,cAAc,CAACoB,cAAD,CAAtB,EAAyC7C,OAAzC,EADG,EAEH4C,SAAS,CAAC/C,MAAV,CAAiB6C,cAAjB,CAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,CAArB;AAcH,OAfD,MAeO;AACHH,QAAAA,kBAAkB,GAAG,CAAC;AAClB7C,UAAAA,GAAG,EAAE,MADa;AAElB;AACAC,UAAAA,IAAI,EAAE,OAHY;AAIlBgD,UAAAA,KAAK,EAAE,CAJW;AAKlB9C,UAAAA,MAAM,EAAEwB,cAAc,CAACvB,GAAf,CAAmB,UAAS8C,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,mBAAO,CACH,qBAAQpB,cAAc,CAACoB,cAAD,CAAtB,EAAyC7C,OAAzC,EADG,EAEH4C,SAAS,CAAC/C,MAAV,CAAiB,CAAjB,CAFG,CAAP;AAIH,WALO;AALU,SAAD,CAArB;AAYH,OA9C2J,CAgD5J;AACA;;;AAEA,UAAI2C,KAAK,CAAC/C,GAAN,CAAU,oBAAV,MAAoC,oBAAxC,EAA8D;AAC1D,YAAI+C,KAAK,CAAC/C,GAAN,CAAU,oBAAV,MAAoC,qBAAxC,EAA8D;AAC1D,iBAAMoB,cAAc,CAACkB,MAAf,GAAwBV,cAAc,CAACU,MAA7C,EAAqD;AACjDlB,YAAAA,cAAc,CAACiC,GAAf;AACAjC,YAAAA,cAAc,CAACkC,KAAf;AACH;AACJ;;AACD,YAAIC,IAAI,GAAG;AAACtD,UAAAA,GAAG,EAAE,GAAN;AACPC,UAAAA,IAAI,EAAE,OADC;AAEPgD,UAAAA,KAAK,EAAE,CAFA;AAGP9C,UAAAA,MAAM,EAAEgB,cAAc,CAACf,GAAf,CAAmB,UAAS8C,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,mBAAO,CACH,qBAAQpB,cAAc,CAACoB,cAAD,CAAtB,EAAyC7C,OAAzC,EADG,EAEH4C,SAAS,CAAC/C,MAAV,CAAiB,CAAjB,CAFG,CAAP;AAIH,WALO;AAHD,SAAX,CAP0D,CAiB1D;;AACA0C,QAAAA,kBAAkB,CAAChB,IAAnB,CAAwByB,IAAxB,EAlB0D,CAkB3B;AAC/B;AACH,OAvE2J,CAyE5J;;;AACA,UAAIzD,2BAAJ,EAAiC;AAC7BgD,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACU,MAAnB,CAA0B1D,2BAA1B,CAArB;AACH;;AACD,UAAIU,yBAAJ,EAA+B;AAC3BsC,QAAAA,kBAAkB,GAAGA,kBAAkB,CAACU,MAAnB,CAA0BhD,yBAA1B,CAArB;AACH,OA/E2J,CAgF5J;AACA;AACA;;;AAEA,aAAOsC,kBAAP;AACH,KArFmB,CAjMc;AAwRlCW,IAAAA,uBAAuB,EAAEtE,KAAK,CAACY,QAAN,CAAe,qBAAf,EAAsC,qBAAtC,EAA6D,YAAW;AAC7F,YAAMgD,KAAK,GAAG,IAAd;AAAA,YACIhB,mBAAmB,GAAG,KAAK/B,GAAL,CAAS,qBAAT,CAD1B;AAAA,YAEIiC,mBAAmB,GAAG,KAAKjC,GAAL,CAAS,qBAAT,CAF1B;;AAKA,UAAIkC,eAAe,GAAG,KAAKlC,GAAL,CAAS,iBAAT,CAAtB;AAEA,aAAOkC,eAAe,CAAC7B,GAAhB,CAAoB,UAAS2C,aAAT,EAAwBC,cAAxB,EAAuC;AAC9D,eAAO;AACHhD,UAAAA,GAAG,EAAE+C,aADF;AAEH;AACA9C,UAAAA,IAAI,EAAE,OAHH;AAIHE,UAAAA,MAAM,EAAE2B,mBAAmB,CAAC1B,GAApB,CAAwB,UAAS8C,SAAT,EAAoBC,cAApB,EAAoC;AAChE,mBAAO,CACH,qBAAQnB,mBAAmB,CAACmB,cAAD,CAA3B,EAA8C7C,OAA9C,EADG,EAEH4C,SAAS,CAAC/C,MAAV,CAAiB6C,cAAjB,CAFG,CAAP;AAIH,WALO;AAJL,SAAP;AAWH,OAZM,EAYJjC,MAZI,CAYG,WAZH,CAAP;AAaH,KArBwB,CAxRS;AA+SlC0C,IAAAA,kBAAkB,EAAEvE,KAAK,CAACY,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,aAAO,KAAKC,GAAL,CAAS,eAAT,EAA0B2D,KAA1B,CAAgCC,UAAvC;AACH,KAFmB,CA/Sc;AAoTlCC,IAAAA,WAAW,EAAE1E,KAAK,CAACY,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzD,UAAI2D,kBAAkB,GAAG,KAAK1D,GAAL,CAAS,oBAAT,CAAzB;AACA,UAAI8D,UAAU,GAAGJ,kBAAkB,CAACK,MAAnB,CAA0B,CAA1B,EAA6BL,kBAAkB,CAACM,WAAnB,CAA+B,GAA/B,CAA7B,EAAkEC,OAAlE,CAA0E,GAA1E,EAA8E,GAA9E,CAAjB;AACA,UAAIC,OAAO,GAAG,KAAKlE,GAAL,CAAS,OAAT,EAAkBmE,WAAlB,CAA8B,aAA9B,EAA6C;AAACC,QAAAA,KAAK,EAAEN;AAAR,OAA7C,CAAd;AACA,aAAOI,OAAP;AACH,KALY,CApTqB;AA2TlCG,IAAAA,gBAAgB,EAAE,YAAW;AACzB,YAAMtB,KAAK,GAAG,IAAd;AAAA,YACID,kBAAkB,GAAGC,KAAK,CAAC/C,GAAN,CAAU,oBAAV,CADzB;AAAA,YAEIyD,uBAAuB,GAAGV,KAAK,CAAC/C,GAAN,CAAU,yBAAV,CAF9B;AAAA,YAGIJ,cAAc,GAAGmD,KAAK,CAAC/C,GAAN,CAAU,gBAAV,CAHrB;AAAA,YAIIH,4BAA4B,GAAGkD,KAAK,CAAC/C,GAAN,CAAU,8BAAV,CAJnC;;AAOA,UAAIS,kBAAkB,GAAG,KAAKT,GAAL,CAAS,oBAAT,CAAzB;AAAA,UACIiB,gBAAgB,GAAG,KAAKjB,GAAL,CAAS,kBAAT,CADvB;AAAA,UAEI;AACAsE,MAAAA,YAAY,GAAGC,EAAE,CAACC,MAAH,CAAU,MAAMzB,KAAK,CAAC/C,GAAN,CAAU,SAAV,CAAN,GAA6B,mCAAvC,CAHnB;AAAA,UAIIyE,iBAAiB,GAAGF,EAAE,CAACC,MAAH,CAAU,MAAMzB,KAAK,CAAC/C,GAAN,CAAU,SAAV,CAAN,GAA6B,yCAAvC,CAJxB;AAAA,UAKI6D,WAAW,GAAG,KAAK7D,GAAL,CAAS,aAAT,CALlB;AAAA,UAMI0E,gBAAgB,GAAGb,WANvB,CARyB,CAiBzB;;AACA1E,MAAAA,KAAK,CAACwF,IAAN,CAAWC,OAAX,CAAmBC,GAAnB,CAAuB,CAACH,gBAAD,CAAvB,EAA2CI,IAA3C,CAAgD,UAASC,OAAT,EAAiB;AAC7D;AACA;AACA,YAAIX,KAAK,GAAG,EAAZ;;AACA,YAAIP,WAAJ,EAAiB;AACbA,UAAAA,WAAW,GAAGA,WAAd,CADa,CAGb;;AACA,cAAI3D,IAAI,GAAG6C,KAAK,CAACX,UAAN,CAAiBpC,GAAjB,CAAqB,kBAArB,EAAyCgF,QAAzC,EAAX;;AACA,cAAItD,SAAS,GAAGqB,KAAK,CAAC/C,GAAN,CAAU,WAAV,CAAhB;;AACA0B,UAAAA,SAAS,CAACuD,OAAV,CAAkB,UAAS5D,IAAT,EAAe;AAC7B,gBAAGA,IAAI,CAAC6D,EAAL,KAAYhF,IAAf,EAAqB;AACjBwB,cAAAA,SAAS,GAAGL,IAAZ;AACA;AACH;AACJ,WALD;;AAOA,cAAIc,QAAQ,GAAGY,KAAK,CAACX,UAAN,CAAiBpC,GAAjB,CAAqB,gBAArB,EAAuCA,GAAvC,CAA2C,OAA3C,CAAf;;AAEA,cAAImF,QAAQ,GAAG,EAAf;AACA,cAAIC,KAAK,GAAG1D,SAAS,CAAC1B,GAAV,CAAc,OAAd,CAAZ;AACAoE,UAAAA,KAAK,GAAGP,WAAW,CAAC7D,GAAZ,CAAgB,OAAhB,CAAR,CAjBa,CAkBb;;AAEA,kBAAOoE,KAAP;AACI,iBAAK,cAAL;AACIe,cAAAA,QAAQ,GAAGzD,SAAS,CAAC1B,GAAV,CAAc,0BAAd,CAAX;AACA;;AACJ,iBAAK,UAAL;AACImF,cAAAA,QAAQ,GAAGzD,SAAS,CAAC1B,GAAV,CAAc,sBAAd,CAAX;AACAoF,cAAAA,KAAK,IAAI,MAAT;AACA;;AACJ,iBAAK,cAAL;AACID,cAAAA,QAAQ,GAAGzD,SAAS,CAAC1B,GAAV,CAAc,0BAAd,CAAX;AACAoF,cAAAA,KAAK,IAAI,OAAT;AACA;;AACJ,iBAAK,QAAL;AACID,cAAAA,QAAQ,GAAGzD,SAAS,CAAC1B,GAAV,CAAc,oBAAd,CAAX;AACAoF,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,aAAL;AACID,cAAAA,QAAQ,GAAGzD,SAAS,CAAC1B,GAAV,CAAc,wBAAd,CAAX;AACAoF,cAAAA,KAAK,GAAG,OAAR;AACA;;AACJ,iBAAK,aAAL;AACID,cAAAA,QAAQ,GAAG,aAAX;AACAC,cAAAA,KAAK,GAAG,IAAR;AACA;;AACJ;AACID,cAAAA,QAAQ,GAAG,SAAX;AAzBR;;AA4BA,cAAItB,WAAJ,EAAiB;AACb,gBAAIwB,GAAG,GAAGtC,KAAK,CAACsC,GAAhB;AACAjB,YAAAA,KAAK,GAAGe,QAAQ,GAAG,IAAX,GAAkBC,KAAlB,GAA0B,GAAlC;AACH,WAHD,MAGO;AACHhB,YAAAA,KAAK,GAAGe,QAAQ,GAAG,IAAX,GAAkBC,KAAlB,GAA0B,GAAlC;AACH,WArDY,CAsDb;;AACH;;AAED,iBAASE,UAAT,CAAoBC,SAApB,EAA+B;AAC3B;AACA,kBAAOA,SAAP;AACI,iBAAK,WAAL;AACA,iBAAK,WAAL;AACI,qBAAO,IAAP;AAHR;;AAKA,iBAAO,KAAP;AACH,SArE4D,CAsE7D;;;AACA,YAAIC,SAAS,GAAGC,EAAE,CAACC,MAAH,CAAUC,qBAAV,CAAgCL,UAAU,CAACvC,KAAK,CAAC/C,GAAN,CAAU,oBAAV,CAAD,CAA1C,EACX4F,MADW,CACJ;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADI,EAEXC,uBAFW,CAEa,IAFb,EAGXC,CAHW,CAGT,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHnB,EAIXC,CAJW,CAIT,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAJnB,EAKXhG,KALW,CAKLoE,EAAE,CAAC8B,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EALK,EAMXC,QANW,CAMF,GANE,EAOXC,SAPW,CAOD,IAPC,EAQXC,MARW,CAQJ,gBARI,CAAhB;AAWAlB,QAAAA,SAAS,CAACmB,MAAV,CAAiBf,MAAjB,CAAwB;AAACG,UAAAA,MAAM,EAAE;AAAT,SAAxB,EAlF6D,CAoF7D;AAEA;AACA;;AACAN,QAAAA,EAAE,CAACmB,QAAH,CAAY,YAAW;AAEnBpB,UAAAA,SAAS,CAACqB,KAAV,CACKC,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGKC,UAHL,CAGgB,UAASb,CAAT,EAAY;AACpB,gBAAIc,sBAAsB,GAAGnE,kBAAkB,CAAC,CAAD,CAAlB,CAAsB1C,MAAtB,CAA6BkC,MAA1D;AACA,mBAAOmD,EAAE,CAACyB,KAAH,CAASC,sBAAT,CAAiCrE,kBAAkB,CAAC,CAAD,CAAlB,CAAsB1C,MAAtB,CAA6B,CAA7B,EAAgC,CAAhC,CAAjC,EAAqE0C,kBAAkB,CAAC,CAAD,CAAlB,CAAsB1C,MAAtB,CAA6B6G,sBAAsB,GAAC,CAApD,EAAuD,CAAvD,CAArE,EAAgI,IAAIG,IAAJ,CAASjB,CAAT,CAAhI,CAAP;AACH,WANL;AAQAX,UAAAA,SAAS,CAAC6B,MAAV,CACKC,SADL,CACelD,KADf,EAEKmD,iBAFL,CAEuB,EAFvB;AAGA/B,UAAAA,SAAS,CAACgC,MAAV,CACKF,SADL,CACe,kBADf,EAEKC,iBAFL,CAEuB,EAFvB;AAGA/B,UAAAA,SAAS,CAACiC,KAAV,CACK7B,MADL,CACY;AAACC,YAAAA,GAAG,EAAE,CAAN;AAASC,YAAAA,KAAK,EAAE,CAAhB;AAAmBC,YAAAA,MAAM,EAAE,CAA3B;AAA8BC,YAAAA,IAAI,EAAE;AAApC,WADZ,EAEK0B,IAFL,CAEU,EAFV,EAGKC,wBAHL,CAG8B,CAH9B,EAIK/H,cAJL,CAIoBA,cAJpB,EAKKgI,mBALL,CAKyB,KALzB,EAMK/H,4BANL,CAMkCA,4BANlC,EAOKgI,yBAPL,CAO+B,KAP/B,EAQKC,SARL,CAQe,CARf;;AAWA,cAAI/E,KAAK,CAACX,UAAN,CAAiBpC,GAAjB,CAAqB,gBAArB,EAAuCA,GAAvC,CAA2C,OAA3C,MAAwD,MAA5D,EAAoE;AAChEwF,YAAAA,SAAS,CAAC6B,MAAV,CAAiBL,UAAjB,CAA4BzC,EAAE,CAAC3D,MAAH,CAAU,KAAV,CAA5B;AACA4E,YAAAA,SAAS,CAACmB,MAAV,CAAiBoB,WAAjB,CAA6B,CAA7B;AACH,WAHD,MAGO;AACHvC,YAAAA,SAAS,CAAC6B,MAAV,CAAiBL,UAAjB,CAA4BzC,EAAE,CAAC3D,MAAH,CAAU,KAAV,CAA5B;AACH;;AACD4E,UAAAA,SAAS,CAACgC,MAAV,CAAiBR,UAAjB,CAA4BzC,EAAE,CAAC3D,MAAH,CAAU,KAAV,CAA5B;AAEA0D,UAAAA,YAAY,CAAC0D,KAAb,CAAmBlF,kBAAnB,EAAuCmF,IAAvC,CAA4CzC,SAA5C;AAEAA,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,YAAtB,EAAoC,UAAUC,WAAV,EAAuB;AACvDrF,YAAAA,KAAK,CAACsF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACArF,YAAAA,KAAK,CAACsF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AACA,gBAAI1I,cAAc,GAAG,qBAAOqD,KAAK,CAAC/C,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCY,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAIjB,YAAY,GAAG,qBAAOoD,KAAK,CAAC/C,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCY,MAAvC,CAA8C,yBAA9C,CAAnB;AAEA4E,YAAAA,SAAS,CAAC8C,OAAV,CAAkBC,MAAlB,CAAyB,IAAzB,EANuD,CAQvD;;AACAxF,YAAAA,KAAK,CAACyF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAAC/I,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WAVF;AAYA6F,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,OAAtB,EAA+B,UAAUC,WAAV,EAAuB;AAClD,gBAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B;AAC3B;AACAC,cAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoCR,WAAW,CAACM,MAAhD;AACH;AACJ,WALD;;AAOA,mBAASG,cAAT,GAA0B;AACtBrD,YAAAA,SAAS,CAAC9D,SAAV,CAAoBuD,OAApB,CAA4B,UAAS6D,MAAT,EAAiB;AAAEA,cAAAA,MAAM,CAACC,QAAP,GAAkB,KAAlB;AAA0B,aAAzE;AACH;;AAED,mBAASC,kBAAT,CAA4BC,cAA5B,EAA4C;AAExC,gBAAI,OAAOA,cAAP,KAA0B,WAA9B,EAA2C;AACvC,qBAAO,KAAP;AACH;;AAED,gBAAIC,WAAW,GAAG,EAAlB;AAAA,gBACIC,YAAY,GAAG,EADnB;AAAA,gBAEItI,SAAS,GAAG,IAFhB;;AAKA,gBAAI,OAAOoI,cAAP,KAA2B,QAA/B,EAAyC;AACrC,kBAAIA,cAAc,CAAC/I,IAAf,KAAwB,OAA5B,EAAqC;AACjCiJ,gBAAAA,YAAY,GAAG,OAAf;AACAtI,gBAAAA,SAAS,GAAG,wCAAwCoI,cAAc,CAAClI,QAAvD,GAAkE,gBAAlE,GAAqFkI,cAAc,CAAC9H,MAApG,GAA6G,SAAzH;AACH,eAHD,MAGO,IAAI8H,cAAc,CAAC/I,IAAf,KAAwB,SAA5B,EAAuC;AAC1CiJ,gBAAAA,YAAY,GAAG,SAAf;AACAtI,gBAAAA,SAAS,GAAG,wCAAwCoI,cAAc,CAAClI,QAAvD,GAAkE,0BAAlE,GAA+FkI,cAAc,CAACnI,eAA9G,GAAgI,SAA5I;AACH,eAHM,MAGA,IAAImI,cAAc,CAAC/I,IAAf,KAAwB,SAA5B,EAAuC;AAC1CiJ,gBAAAA,YAAY,GAAG,SAAf;AACAtI,gBAAAA,SAAS,GAAG,0CAA0CoI,cAAc,CAACG,GAAzD,GAA+D,0BAA/D,GAA4FH,cAAc,CAACI,GAA3G,GAAiH,wBAAjH,GAA4IJ,cAAc,CAACK,IAA3J,GAAkK,SAA9K;AACH,eAHM,MAGA,IAAIL,cAAc,CAAC/I,IAAf,KAAwB,OAA5B,EAAqC;AACxCiJ,gBAAAA,YAAY,GAAG,OAAf;AACH;;AACDD,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACtI,SAAvC,GAAmD,SAAnD,GACA,iCADA,GACoCsI,cAAc,CAAC/I,IADnD,GAC0D,SAD1D,GAEAW,SAFd;AAIH,aAjBD,MAiBO;AACHqI,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACtI,SAAvC,GAAmD,SAAjE;AACH;;AAED,mBAAO;AACHwI,cAAAA,YAAY,EAAEA,YADX;AAEHD,cAAAA,WAAW,EAAEA;AAFV,aAAP;AAIH;;AAED1D,UAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBC,EAAzB,CAA4B,gBAA5B,EAA8C,UAAUoB,cAAV,EAA0B;AACpE;AACA;AACA;;AACA;AACpB;AACA;AACA;AACA;AACA;AACA;AACoB,gBAAK9I,kBAAkB,CAAC6B,MAAnB,IAA6BiH,cAAc,CAACC,MAAf,GAAwB,CAAC,CAA3D,EAA+D;AAC3DhE,cAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBuB,sBAAzB,CAAiDT,kBAAkB,CAACvI,kBAAkB,CAAC8I,cAAc,CAACC,MAAhB,CAAnB,CAAnE;AACH;;AACD,gBAAKvI,gBAAgB,CAACqB,MAAjB,IAA2BiH,cAAc,CAACG,MAAf,GAAwB,CAAC,CAAzD,EAA6D;AACzDlE,cAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBuB,sBAAzB,CAAiDT,kBAAkB,CAAC/H,gBAAgB,CAACsI,cAAc,CAACG,MAAhB,CAAjB,CAAnE;AACH;;AACD,gBAAI,CAACjJ,kBAAkB,CAAC6B,MAApB,IAA8B,CAACrB,gBAAgB,CAACqB,MAApD,EAA2D;AAAC;AACxD,kBAAIqH,UAAU,GAAGJ,cAAc,CAACC,MAAhC;AACA,kBAAItI,QAAQ,GAAG,CAAf;;AACA,kBAAIyI,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGJ,cAAc,CAACG,MAA5B;AACAxI,gBAAAA,QAAQ,GAAG,CAAX;AACH;;AACD,kBAAIyI,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGJ,cAAc,CAACK,MAA5B;AACA1I,gBAAAA,QAAQ,GAAG,CAAX;AACH;;AAED,kBAAI2I,oBAAoB,GAAGpJ,kBAAkB,CAACkJ,UAAD,CAA7C;;AACA,kBAAIzI,QAAQ,KAAG,CAAf,EAAkB;AACd2I,gBAAAA,oBAAoB,GAAG5I,gBAAgB,CAAC0I,UAAD,CAAvC;AACH;;AACD,kBAAIzI,QAAQ,KAAG,CAAf,EAAkB,CACd;AACH;;AACDsE,cAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBuB,sBAAzB,CAAiDT,kBAAkB,CAACa,oBAAD,CAAnE;AACH;AACJ,WAtCD,EAlGmB,CA0InB;;AACApE,UAAAA,EAAE,CAACyB,KAAH,CAAS4C,YAAT,CAAsBtE,SAAS,CAACuE,MAAhC;AAEAvE,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,aAAtB,EAAqC,UAAS6B,CAAT,EAAY;AAAEvE,YAAAA,EAAE,CAACwE,GAAH,CAAO,YAAP,EAAqBC,IAAI,CAACC,SAAL,CAAeH,CAAf,CAArB;AAA0C,WAA7F;AACAxE,UAAAA,SAAS,CAAC4E,KAAV,CAAgBlC,QAAhB,CAAyBC,EAAzB,CAA4B,QAA5B,EAAsC,UAASiC,KAAT,EAAe;AACjD3E,YAAAA,EAAE,CAACwE,GAAH,CAAO,OAAP,EAAgBC,IAAI,CAACC,SAAL,CAAeC,KAAf,CAAhB;AACH,WAFD,EA9ImB,CAkJnB;;AACArH,UAAAA,KAAK,CAACsH,UAAN,CAAiB,SAAjB,EAA2BvH,kBAA3B;;AACAC,UAAAA,KAAK,CAACsH,UAAN,CAAiB,UAAjB,EAA4B7E,SAA5B;;AAEA,iBAAOA,SAAP;AACH,SAvJD;AAwJH,OAhPD;;AAmPA,eAASF,UAAT,CAAoBC,SAApB,EAA+B;AAC3B;AACA,gBAAOA,SAAP;AACI,eAAK,WAAL;AACA,eAAK,WAAL;AACI,mBAAO,IAAP;AAHR;;AAKA,eAAO,KAAP;AACH;;AAED,UAAI+E,UAAU,GAAG,IAAjB;;AACA,UAAIhF,UAAU,CAACvC,KAAK,CAAC/C,GAAN,CAAU,oBAAV,CAAD,CAAd,EAAiD;AAC7CsK,QAAAA,UAAU,GAAG7E,EAAE,CAACC,MAAH,CAAU6E,OAAV,EAAb;AACH,OAFD,MAEO;AACHD,QAAAA,UAAU,GAAG7E,EAAE,CAACC,MAAH,CAAU8E,IAAV,EAAb;AACH;;AAED,UAAI7B,cAAc,GAAGlD,EAAE,CAACC,MAAH,CAAU+E,KAAV,CAAgBH,UAAhB,EAChB1E,MADgB,CACT;AAACC,QAAAA,GAAG,EAAE,EAAN;AAAUC,QAAAA,KAAK,EAAE,EAAjB;AAAqBC,QAAAA,MAAM,EAAE,EAA7B;AAAiCC,QAAAA,IAAI,EAAE;AAAvC,OADS,EAEhBE,CAFgB,CAEd,UAASC,CAAT,EAAY;AAAE,eAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,OAFd,EAGhBC,CAHgB,CAGd,UAASD,CAAT,EAAY;AAAE,eAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,OAHd,EAIhBhG,KAJgB,CAIVoE,EAAE,CAAC8B,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAJU,EAKhBmE,YALgB,CAKH,KALG,EAMhBC,mBANgB,CAMI,IANJ,EAOhBC,SAPgB,CAON,IAPM,EAQhBC,SARgB,CAQN,KARM,CAArB;AAWApF,MAAAA,EAAE,CAACmB,QAAH,CAAY,YAAW;AAEnB+B,QAAAA,cAAc,CAAC9B,KAAf,CACKE,UADL,CACgB,KADhB,EAEKC,UAFL,CAEgB,UAASb,CAAT,EAAY;AACpB;AACA,cAAI1C,uBAAuB,CAACnB,MAAxB,GAAiC,CAArC,EAAwC;AACpC,gBAAIwI,2BAA2B,GAAGrH,uBAAuB,CAAC,CAAD,CAAvB,CAA2BrD,MAA3B,CAAkCkC,MAApE;;AACA,gBAAI;AACA,qBAAOmD,EAAE,CAACyB,KAAH,CAASC,sBAAT,CAAiC1D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BrD,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0EqD,uBAAuB,CAAC,CAAD,CAAvB,CAA2BrD,MAA3B,CAAkC0K,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAI1D,IAAJ,CAASjB,CAAT,CAA/I,CAAP;AACH,aAFD,CAEE,OAAO4E,EAAP,EAAW;AACT,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WAPD,MAOO;AACH,mBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,SAdL;AAiBApC,QAAAA,cAAc,CAACzF,KAAf,CAAqB8D,UAArB,CAAgCzC,EAAE,CAAC3D,MAAH,CAAU,KAAV,CAAhC;AAEA6D,QAAAA,iBAAiB,CAACuD,KAAlB,CAAwBvE,uBAAxB,EAAiDwE,IAAjD,CAAsDU,cAAtD;AAGAA,QAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,YAA3B,EAAyC,UAAUC,WAAV,EAAuB;AAC5DrF,UAAAA,KAAK,CAACsF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACArF,UAAAA,KAAK,CAACsF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AACA,cAAI1I,cAAc,GAAG,qBAAOqD,KAAK,CAAC/C,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCY,MAAzC,CAAgD,yBAAhD,CAArB;AACA,cAAIjB,YAAY,GAAG,qBAAOoD,KAAK,CAAC/C,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCY,MAAvC,CAA8C,yBAA9C,CAAnB,CAJ4D,CAM5D;;AACAmC,UAAAA,KAAK,CAACyF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAAC/I,cAAD,EAAiBC,YAAjB,CAAnE;AACF,SARF;AAUAgJ,QAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,OAA3B,EAAoC,UAAUC,WAAV,EAAuB;AACvD,cAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B,CAC3B;AACH;AACH,SAJF,EAlCmB,CAwCnB;;AACAjD,QAAAA,EAAE,CAACyB,KAAH,CAAS4C,YAAT,CAAsBnB,cAAc,CAACoB,MAArC,EAzCmB,CA2CnB;;AACA,YAAIrK,cAAc,GAAG,qBAAOqD,KAAK,CAACyF,KAAN,CAAYwC,cAAZ,CAA2B,iBAA3B,CAAP,EAAsDzK,OAAtD,EAArB;AACA,YAAIZ,YAAY,GAAG,qBAAOoD,KAAK,CAACyF,KAAN,CAAYwC,cAAZ,CAA2B,eAA3B,CAAP,EAAoDzK,OAApD,EAAnB;;AACA,YAAIb,cAAc,IAAIC,YAAtB,EAAoC;AAChCgJ,UAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoC,CAAClJ,cAAD,EAAiBC,YAAjB,CAApC;AACH;;AAED,eAAOgJ,cAAP;AACH,OAnDD;AAoDH;AAhpBiC,GAAvB,C;;;;;;;;;;;;;iBCAAsC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,sBAAsB,EAAE,KADU;AAGlCC,IAAAA,eAAe,EAAEJ,KAAK,CAACK,QAAN,CAAe,YAAf,EAA6B,YAAW;AACrD,UAAIC,OAAO,GAAG,KAAKC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAd;AACA,UAAIC,IAAI,GAAGF,OAAO,CAACG,GAAR,CAAY,UAASC,MAAT,EAAgB;AACnC,eAAOA,MAAM,CAACH,GAAP,CAAW,UAAX,CAAP;AACH,OAFU,CAAX;AAIA,aAAOC,IAAP;AACH,KAPgB,CAHiB;AAWlCG,IAAAA,OAAO,EAAE;AACLC,MAAAA,cAAc,CAACC,YAAD,EAAeC,aAAf,EAA8B;AACxC,aAAKC,GAAL,CAASF,YAAT,EAAuBC,aAAvB;AACH;;AAHI;AAXyB,GAAvB,C;;;;;;;;;;;;;iBCSAE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB,EAAvB,C;;;;;;;;;;;;;iBCAAC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB,EAAvB,C;;;;;ACbf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACRA,WAASC,mBAAT,CAA6BC,KAA7B,EAAoC;AAChC,QAAIC,cAAc,GAAG;AACjB,sBAAgB,EADC;AAEjB,gBAAU,MAFO;AAGjB,mBAAa,IAHI;AAIjB,eAAS,IAJQ;AAKjB,kBAAY,MALK;AAMjB,kBAAY,IANK;AAOjB,gBAAU,EAPO;AAQjB,iBAAW,EARM;AASjB,oBAAc,IATG;AAUjB,sBAAgB,CAVC;AAWjB,gBAAU,KAXO;AAYjB,iBAAW,EAZM;AAajB,mBAAa,KAbI;AAcjB,kBAAY,KAdK;AAejB,sBAAgB,IAfC;AAgBjB,uBAAiB;AAhBA,KAArB;;AAkBAD,IAAAA,KAAK,CAACE,GAAN,CAAU,mBAAV,EAA8B,IAA9B;;AACAF,IAAAA,KAAK,CAACE,GAAN,CAAU,gBAAV,EAA4BD,cAA5B,EApBgC,CAqBhC;;AACH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,IAAI,GAAG;AACH,WAAKC,MAAL,CAAY,GAAGC,SAAf;;AACAT,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACH,KAJiC;;AAKlC;AACA;AACA;AACAU,IAAAA,KAAK,EAAEN,KAAK,CAACO,MAAN,CAAaC,OAAb,EAR2B;AASlCC,IAAAA,OAAO,EAAET,KAAK,CAACO,MAAN,CAAaC,OAAb,EATyB;AAUlCV,IAAAA,cAAc,EAAE,EAVkB;AAWlCY,IAAAA,UAAU,EAAE,qBAXsB;AAYlCC,IAAAA,WAAW,EAAE,IAZqB;AAalCC,IAAAA,cAAc,EAAE,KAbkB;AAclCC,IAAAA,YAAY,EAAE,GAdoB;AAelCC,IAAAA,WAAW,EAAE,QAfqB;AAgBlCC,IAAAA,aAAa,EAAE,EAhBmB;AAkBlCC,IAAAA,MAAM,EAAE,IAlB0B;AAmBlCC,IAAAA,QAAQ,EAAE,IAnBwB;AAoBlCC,IAAAA,OAAO,EAAE,KApByB;AAqBlCC,IAAAA,QAAQ,EAAE,KArBwB;AAsBlCC,IAAAA,iBAAiB,EAAE,IAtBe;AAuBlCC,IAAAA,eAAe,EAAE,IAvBiB;AAyBlCC,IAAAA,cAAc,EAAE,KAzBkB;AA0BlCC,IAAAA,cAAc,EAAE,KA1BkB;AA2BlCC,IAAAA,YAAY,EAAE,KA3BoB;AA4BlCC,IAAAA,oBAAoB,EAAE,KA5BY;AA6BlCC,IAAAA,OAAO,EAAE,KA7ByB;AA8BlCC,IAAAA,UAAU,EAAE,KA9BsB;AA+BlCC,IAAAA,WAAW,EAAE,KA/BqB;AAgClCC,IAAAA,aAAa,EAAE,KAhCmB;AAiClCC,IAAAA,SAAS,EAAE,KAjCuB;AAmClCC,IAAAA,cAAc,EAAE,KAnCkB;AAoClCC,IAAAA,SAAS,EAAE,KApCuB;AAqClCC,IAAAA,WAAW,EAAE,EArCqB;AAsClCC,IAAAA,OAAO,EAAE,EAtCyB;AAuClCC,IAAAA,cAAc,EAAE,EAvCkB;AAyClCC,IAAAA,mBAAmB,EAAE,IAzCa;AA0ClCC,IAAAA,uBAAuB,EAAE,IA1CS;AA4ClCC,IAAAA,kBAAkB,EAAE,UAASL,WAAT,EAAsB;AACtC,YAAMM,KAAK,GAAG,wFAAd;AACA,aAAOA,KAAK,CAACC,IAAN,CAAWP,WAAX,CAAP;AACH,KA/CiC;AAiDlCA,IAAAA,WAAW,EAAEjC,KAAK,CAACyC,QAAN,CAAe,uBAAf,EAAwC,YAAW;AAC5D,UAAIC,MAAM,GAAG,KAAKC,GAAL,CAAS,uBAAT,CAAb;AACA,YAAMC,OAAO,GAAGF,MAAM,CAACG,OAAP,CAAe,GAAf,CAAhB;;AACA,UAAID,OAAO,GAAG,CAAd,EAAiB;AACb,eAAOF,MAAP;AACH;;AACD,aAAOA,MAAM,CAACI,SAAP,CAAiB,CAAjB,EAAoBF,OAApB,CAAP;AACH,KAPY,CAjDqB;AA0DlCG,IAAAA,aAAa,EAAE/C,KAAK,CAACyC,QAAN,CAAe,YAAU;AAEpC,UAAInC,KAAK,GAAG,KAAKqC,GAAL,CAAS,OAAT,CAAZ;AACA,UAAIK,UAAU,GAAG1C,KAAK,CAAC2C,UAAN,CAAiB,YAAjB,EAA+B,KAAKN,GAAL,CAAS,IAAT,CAA/B,CAAjB;AACA,UAAII,aAAa,GAAG,KAAKJ,GAAL,CAAS,gBAAT,EAA2BI,aAA/C,CAJoC,CAMpC;;AAEA,UAAGA,aAAa,IAAI,IAAjB,IAAyBA,aAAa,IAAIG,SAA1C,IAAuDH,aAAa,IAAI,EAA3E,EAA+E;AAC3EI,QAAAA,OAAO,CAACC,GAAR,CAAY,kCAAkCL,aAA9C;AACH,OAFD,MAEK;AACD,YAAGC,UAAU,CAACK,aAAX,IAA4B,IAA5B,IAAoCL,UAAU,CAACK,aAAX,IAA2BH,SAA/D,IAA4EF,UAAU,CAACK,aAAX,IAA2B,EAA1G,EAA8G;AAC1G;AACA;AACAN,UAAAA,aAAa,GAAGC,UAAU,CAACK,aAA3B;AACH,SAJD,MAKK;AACDN,UAAAA,aAAa,GAAG,IAAhB;AACH;AACJ,OAnBmC,CAoBpC;AACA;;;AACA,aAAOA,aAAP;AACH,KAvBc,CA1DmB;AAmFlCO,IAAAA,UAAU,EAAEtD,KAAK,CAACyC,QAAN,CAAe,YAAW;AAClC,aAAO,KAAKE,GAAL,CAAS,cAAT,IAA2B,CAA3B,GAA8B,KAAKA,GAAL,CAAS,cAAT,CAA9B,GAAwD,CAA/D;AACH,KAFW,CAnFsB;AAuFlCY,IAAAA,QAAQ,EAAE,eAAS,EAAT,EAAY,YAAW;AAC7B,aAAO,KAAKZ,GAAL,CAAS,SAAT,EAAoBa,IAApB,CAAyBC,aAAzB,CAAuC,MAAvC,CAAP;AACH,KAFS,CAvFwB;AA2FlCC,IAAAA,YAAY,EAAE,eAAS,IAAT,EAAe,YAAW;AACpC,UAAIC,EAAE,GAAG,KAAKhB,GAAL,CAAS,IAAT,CAAT,CADoC,CAEpC;;AACA,UAAIiB,GAAG,GAAID,EAAE,CAACE,MAAH,KAAc,CAAd,GAAkB,CAAlB,GAAsB,CAAjC;AACA,UAAIC,KAAK,GAAGH,EAAE,CAACb,SAAH,CAAa,CAAb,EAAec,GAAf,CAAZ,CAJoC,CAKpC;;AACA,aAAOE,KAAK,GAAC,CAAb;AACH,KAPa,CA3FoB;AAoGlCC,IAAAA,eAAe,EAAE,eAAS,uBAAT,EAAkC,YAAW;AAC1D,UAAIC,MAAM,GAAG,KAAKrB,GAAL,CAAS,uBAAT,CAAb;;AACA,UAAGqB,MAAM,KAAK,MAAd,EAAsB;AAClB,aAAKjE,GAAL,CAAS,uBAAT,EAAkC,KAAlC;AACA,aAAKA,GAAL,CAAS,0BAAT,EAAqC,KAArC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACH;;AAED,UAAGiE,MAAM,KAAK,UAAd,EAAyB;AACrB;AACA,aAAKjE,GAAL,CAAS,qBAAT,EAAgC,KAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,KAApC;AACH;;AAED,UAAGiE,MAAM,KAAK,MAAd,EAAqB;AACjB;AACA,aAAKjE,GAAL,CAAS,qBAAT,EAAgC,IAAhC;AACA,aAAKA,GAAL,CAAS,yBAAT,EAAoC,IAApC;AACH;AACJ,KAnBgB,CApGiB;AAyHlCkE,IAAAA,eAAe,EAAE,eAAS,uBAAT,EAAkC,YAAW;AAC1D,UAAIC,MAAM,GAAG,KAAKvB,GAAL,CAAS,uBAAT,CAAb;;AACA,UAAGuB,MAAM,KAAK,KAAd,EAAqB;AACjB,aAAKnE,GAAL,CAAS,6BAAT,EAAwC,CAAxC;AACA,aAAKA,GAAL,CAAS,2BAAT,EAAsC,IAAtC;AACH;AACJ,KANgB,CAzHiB;AAiIlCoE,IAAAA,iBAAiB,EAAE,eAAS,yBAAT,EAAoC,YAAW;AAC9D,UAAIC,QAAQ,GAAG,KAAKzB,GAAL,CAAS,yBAAT,CAAf;;AACA,UAAGyB,QAAQ,IAAI,IAAf,EAAqB;AACjB,aAAKrE,GAAL,CAAS,uBAAT,EAAkC,EAAlC;AACH;AACJ,KALkB,CAjIe;AAwIlCsE,IAAAA,OAAO,EAAE;AACLC,MAAAA,wBAAwB,CAACC,KAAD,EAAQ;AAC5B,aAAKpC,cAAL,GAAsB,EAAtB;AACA,cAAMqC,eAAe,GAAGC,KAAK,CAACC,IAAN,CAAWH,KAAK,CAAC7B,MAAN,CAAa8B,eAAxB,CAAxB;AACA,cAAMG,cAAc,GAAGH,eAAe,CAACI,GAAhB,CAAoBC,MAAM,IAAIA,MAAM,CAACC,KAArC,CAAvB;AACA,aAAK3C,cAAL,GAAsBwC,cAAtB;AACH,OANI;;AAOLI,MAAAA,YAAY,CAACC,MAAD,EAAS;AACjB,aAAKjF,GAAL,CAASiF,MAAM,CAAC,CAAD,CAAf,EAAmBA,MAAM,CAAC,CAAD,CAAzB;AACH,OATI;;AAULC,MAAAA,aAAa,GAAG;AACZ,aAAKlF,GAAL,CAAS,QAAT,EAAkBmF,QAAQ,CAACC,cAAT,CAAwB,uBAAxB,EAAiDC,OAAnE;AACH,OAZI;;AAaL;AACA;AACA;AACAC,MAAAA,aAAa,GAAG;AACZ,aAAKtF,GAAL,CAAS,SAAT,EAAmBmF,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,EAA0CC,OAA7D;AACH,OAlBI;;AAmBLE,MAAAA,aAAa,GAAG;AACZ,aAAKvF,GAAL,CAAS,UAAT,EAAoBmF,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,EAA0CC,OAA9D;AACH,OArBI;;AAuBL;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAG,MAAAA,WAAW,CAACP,MAAD,EAAQ;AACf,YAAInF,KAAK,GAAG,IAAZ;AAAA,YACIS,KAAK,GAAG,KAAKqC,GAAL,CAAS,OAAT,CADZ;AAAA,YAEI7C,cAAc,GAAG,KAAK6C,GAAL,CAAS,gBAAT,CAFrB,CADe,CAMf;AAEA;AAEA;AACA;AACA;AACA;;;AAEA,aAAK5C,GAAL,CAAS,gBAAT,EAA0B,KAA1B;AACA,aAAKA,GAAL,CAAS,YAAT,EAAsB,KAAtB;AAEA,YAAIyF,KAAK,GAAG,KAAZ;AAEA,YAAIzC,aAAa,GAAG,KAAKJ,GAAL,CAAS,eAAT,CAApB;AACA,cAAM8C,eAAe,GAAG,CAAC,IAAD,EAAMvC,SAAN,EAAgB,EAAhB,CAAxB,CArBe,CAsBf;;AACA,YAAKuC,eAAe,CAACC,QAAhB,CAAyB3C,aAAzB,CAAL,EAA8C;AAC1C;AACAjD,UAAAA,cAAc,CAACiD,aAAf,GAA+B,IAA/B;AACAA,UAAAA,aAAa,GAAG,IAAhB;AACH,SAJD,MAKK;AACD;AACA;AACAjD,UAAAA,cAAc,CAACiD,aAAf,GAA+BA,aAA/B,CAHC,CAID;AACH;;AAED,YAAG,CAACyC,KAAJ,EAAW;AACP1F,UAAAA,cAAc,CAAC6F,WAAf,GAA6B,KAA7B;AACA7F,UAAAA,cAAc,CAAC8F,SAAf,GAA2B,KAA3B;AACA9F,UAAAA,cAAc,CAAC+F,gBAAf,GAAkC,IAAlC;AACA/F,UAAAA,cAAc,CAACgG,WAAf,GAA6B,IAA7B;AACA9F,UAAAA,KAAK,CAACD,GAAN,CAAUD,cAAV,EAA0B,cAA1B,EAA0C,uBAASiG,MAAT,CAAgB,qBAAhB,CAA1C,EALO,CAMP;;AACAjG,UAAAA,cAAc,CAACkG,OAAf,GAAyB,KAAKzC,QAA9B;AACAzD,UAAAA,cAAc,CAACkB,MAAf,GAAwBnB,KAAK,CAAC8C,GAAN,CAAU,QAAV,CAAxB;AACA7C,UAAAA,cAAc,CAACmB,QAAf,GAA0BpB,KAAK,CAAC8C,GAAN,CAAU,UAAV,CAA1B;AACA7C,UAAAA,cAAc,CAACoB,OAAf,GAAyBrB,KAAK,CAAC8C,GAAN,CAAU,SAAV,CAAzB;AACA7C,UAAAA,cAAc,CAACqB,QAAf,GAA0BtB,KAAK,CAAC8C,GAAN,CAAU,UAAV,CAA1B;AACA7C,UAAAA,cAAc,CAACkD,UAAf,GAA4B1C,KAAK,CAAC2C,UAAN,CAAiB,YAAjB,EAA+B,KAAKN,GAAL,CAAS,IAAT,CAA/B,CAA5B;;AAEA,cAAI7C,cAAc,CAACkD,UAAf,KAA8B,IAAlC,EACA;AACI,gBAAIiD,QAAQ,GAAG,IAAf;;AAEA,gBAAG,CAACT,KAAJ,EAAW;AACP,kBAAI;AACAS,gBAAAA,QAAQ,GAAG3F,KAAK,CAAC4F,YAAN,CAAmB,OAAnB,EAA4BpG,cAA5B,CAAX;AACH,eAFD,CAEE,OAAOqG,GAAP,EAAY;AACV,qBAAKpG,GAAL,CAAS,gBAAT,EAA0B,IAA1B;AACH;AACJ;;AAED,gBAAG,CAACyF,KAAJ,EAAW;AAEP,kBAAIY,GAAG,GAAG,KAAV;AAEA,kBAAIC,gBAAgB,GAAG,KAAK1D,GAAL,CAAS,sBAAT,CAAvB;AAEA,kBAAI2D,QAAQ,GAAG,KAAK3D,GAAL,CAAS,yBAAT,CAAf;AACA,kBAAI4D,OAAO,GAAC,EAAZ,CAPO,CASP;;AACA,kBAAIzB,KAAK,GAAG,KAAKnC,GAAL,CAAS,sBAAT,CAAZ;AACA,kBAAI6D,EAAE,GAAG,KAAK7D,GAAL,CAAS,wBAAT,CAAT;AACA,kBAAI8D,EAAE,GAAG,KAAK9D,GAAL,CAAS,6BAAT,CAAT;AACA,kBAAID,MAAM,GAAG,KAAKC,GAAL,CAAS,uBAAT,CAAb;AACA,kBAAI+D,GAAG,GAAGxB,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuCwB,aAAjD;AAEA,mBAAKC,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,cAAd,EAA6B,KAA7B;AACA,mBAAKA,QAAL,CAAc,sBAAd,EAAqC,KAArC;AACA,mBAAKA,QAAL,CAAc,SAAd,EAAwB,KAAxB;AACA,mBAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AACA,mBAAKA,QAAL,CAAc,aAAd,EAA4B,KAA5B;AACA,mBAAKA,QAAL,CAAc,eAAd,EAA+B,KAA/B;AACA,mBAAKA,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAxBO,CA2BP;AAEA;;AACA,kBAAKR,GAAG,CAACvC,MAAJ,IAAc,CAAf,IAAsB2C,EAAE,CAAC3C,MAAH,IAAa,CAAnC,IAA0C4C,EAAE,CAAC5C,MAAH,IAAa,CAAvD,IAA8DiB,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACjB,MAAN,IAAgB,CAAnG,EAAuG;AACnG,qBAAK+C,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EAFmG,CAGnG;AAEJ;AACC,eAND,MAMO,IAAKF,GAAG,IAAI,CAAC,CAAT,IAAgB,KAAK/D,GAAL,CAAS,uBAAT,KAAqC,MAAzD,EAAkE;AACrE,qBAAKiE,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,cAAd,EAA6B,IAA7B,EAFqE,CAGrE;AAEJ;AACC,eANM,MAMD,IAAIC,KAAK,CAACR,gBAAD,CAAT,EAA4B;AAC9B,qBAAKO,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,sBAAd,EAAqC,IAArC,EAF8B,CAG9B;AAEJ;AACC,eANK,MAMC,IAAK,KAAKjE,GAAL,CAAS,uBAAT,KAAqC,KAAtC,IAAiD8D,EAAE,IAAI,CAAvD,IAA+D,KAAK9D,GAAL,CAAS,2BAAT,KAAyC,IAA5G,EAAmH;AACtH,qBAAKiE,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,SAAd,EAAwB,IAAxB,EAFsH,CAGtH;AAEH,eALM,MAKA,IAAIH,EAAE,GAAG,CAAT,EAAY;AACf,qBAAKG,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,YAAd,EAA2B,IAA3B,EAFe,CAGf;AAEH,eALM,MAKA,IAAIN,QAAQ,IAAE,MAAd,EAAsB;AACzBpB,gBAAAA,QAAQ,CAACC,cAAT,CAAwB,sBAAxB,EAAgDL,KAAhD,GAAwD,EAAxD,CADyB,CAEzB;AAGH,eALM,MAKA,IAAG,CAAC,OAAOpC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,KAAK,EAA7C,KAAqD4D,QAAQ,IAAI,IAApE,EAA2E;AAE9E,oBAAIA,QAAQ,IAAI,OAAhB,EAAyB;AACrBC,kBAAAA,OAAO,GAAG,eAAV;AACH,iBAFD,MAEO,IAAID,QAAQ,IAAI,KAAhB,EAAuB;AAC1BC,kBAAAA,OAAO,GAAG,cAAV;AACH,iBAFM,MAEA,IAAID,QAAQ,IAAI,MAAhB,EAAwB;AAC3BC,kBAAAA,OAAO,GAAG,YAAV;AACH;;AAED,qBAAKK,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,aAAd,EAA4B,IAA5B,EAX8E,CAY9E;AAEH,eAdM,MAcA,IAAK,CAAElE,MAAM,CAACgD,QAAP,CAAgB,GAAhB,CAAH,IAA4BY,QAAQ,IAAE,KAA1C,EAAkD;AACrD,qBAAKM,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,qBAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B,EAFqD,CAGrD;AAEH,eALM,MAKA;AACHX,gBAAAA,QAAQ,CAACa,IAAT,GAAgBC,IAAhB,CAAqB,UAASC,OAAT,EAAiB;AAClCZ,kBAAAA,GAAG,GAAG,IAAN,CADkC,CAElC;;AACA,sBAAIa,eAAe,GAAG,IAAtB;AACA,sBAAIC,SAAS,GAAG,IAAhB;;AACArH,kBAAAA,KAAK,CAACsC,cAAN,CAAqBgF,OAArB,CAA6BrC,KAAK,IAAI;AAClC;AACAmC,oBAAAA,eAAe,GAAG,EAAlB;AACAA,oBAAAA,eAAe,CAACG,KAAhB,GAAwBJ,OAAxB;AACAC,oBAAAA,eAAe,CAACI,UAAhB,GAA6BvC,KAA7B;AAEAoC,oBAAAA,SAAS,GAAG5G,KAAK,CAAC4F,YAAN,CAAmB,cAAnB,EAAmCe,eAAnC,CAAZ;AACAC,oBAAAA,SAAS,CAACJ,IAAV,GAAiBQ,KAAjB,CAAuB,UAASC,MAAT,EAAiB;AACpC,0BAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChC5H,wBAAAA,KAAK,CAAC+G,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACA/G,wBAAAA,KAAK,CAAC+G,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH;AACJ,qBALD;AAMH,mBAbD,EALkC,CAmBlC;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;AAGA,sBAAGI,OAAO,CAACrD,EAAR,IAAc,IAAjB,EAAuB;AACnB9D,oBAAAA,KAAK,CAAC8C,GAAN,CAAU,QAAV,EAAoBqE,OAAO,CAACrD,EAA5B;AACH,mBAFD,MAEO;AACH,yBAAKiD,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACApB,oBAAAA,KAAK,GAAG,IAAR;AACH,mBAnCiC,CAoClC;;AACH,iBArCD,EAqCG8B,KArCH,CAqCS,UAASC,MAAT,EAAiB;AACtB,sBAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChC5H,oBAAAA,KAAK,CAAC+G,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACA/G,oBAAAA,KAAK,CAAC+G,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH;AAEJ,iBA3CD,EADG,CA6CH;AACA;AACA;AACA;AACH;AACJ;AACJ;AACJ;AACJ,OAzOI;;AA0OLc,MAAAA,WAAW,GAAG;AACV,YAAG,KAAKpF,kBAAL,CAAwB,KAAKL,WAA7B,CAAH,EAA8C;AAC1C,eAAK2E,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,KAA9B,EAF0C,CAG1C;AACA;;AACA,eAAKe,cAAL,CAAoB,WAApB,EAL0C,CAM1C;;AACA,iBAAO,IAAP;AACH,SARD,MAQO;AACHP,UAAAA,KAAK,CAAC,kFAAD,CAAL;AACA,eAAKR,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B;AACA,iBAAO,KAAP;AACH;AACJ,OAzPI;;AA2PLgB,MAAAA,eAAe,CAACC,aAAD,EAAgB;AAC3B;AACA,aAAK9H,GAAL,CAAS,cAAT,EAAyB8H,aAAzB;AACH;;AA9PI;AAxIyB,GAAvB,C;;;;;;;;;;;;;;;ACzBf,WAASC,wBAAT,CAAkCC,KAAlC,EAAyC;AACrC;AACAA,IAAAA,KAAK,CAACC,GAAN,CAAU,qBAAV,EAAiC,EAAjC,EAFqC,CAGrC;;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,eAAV,EAA2B,IAA3B;;AACAD,IAAAA,KAAK,CAACC,GAAN,CAAU,aAAV,EAAyB,IAAzB,EALqC,CAMrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACH;;AAEc,QAAMC,oBAAN,yBAA6C;AAAA;AAAA;;AAAA,+CAUtC,IAVsC;;AAAA,mDAWlC,EAXkC;;AAAA,sCAY/C,KAZ+C;;AAAA,6CAaxC,IAbwC;;AAAA,2CAc1C,IAd0C;;AAAA,yCAe5C,KAf4C;;AAAA,uCAgB9C,IAhB8C;;AAAA,qCAiBhD,IAjBgD;;AAAA,uCAmB/C;AAGLC,QAAAA,UAAU,CAACC,KAAD,EAAQ;AACd,gBAAMC,UAAU,GAAGD,KAAnB,CADc,CAGd;;AACA,gBAAME,WAAW,GAAG,KAAKC,iBAAL,CAAuBC,IAAvB,CAA6BC,MAAD,IAAY;AAC1D,mBAAOA,MAAM,CAACC,EAAP,KAAcL,UAArB;AACD,WAFmB,CAApB;;AAIA,cAAIC,WAAJ,EAAiB;AACf;AACA,iBAAKL,GAAL,CAAS,SAAT,EAAoBK,WAApB;AACD;AACJ,SAfI;;AAiBLK,QAAAA,QAAQ,CAACP,KAAD,EAAQ;AACZ,gBAAMC,UAAU,GAAGD,KAAnB,CADY,CAGZ;;AACA,gBAAME,WAAW,GAAG,KAAKM,eAAL,CAAqBJ,IAArB,CAA2BC,MAAD,IAAY;AACxD,mBAAOA,MAAM,CAACC,EAAP,KAAcL,UAArB;AACD,WAFmB,CAApB;;AAIA,cAAIC,WAAJ,EAAiB;AACf;AACA,iBAAKL,GAAL,CAAS,OAAT,EAAkBK,WAAlB;AACD;AACJ,SA7BI;;AA+BLO,QAAAA,gBAAgB,CAACC,MAAD,EAAQ;AAEpB;AACA;AAEA,cAAId,KAAK,GAAG,IAAZ;AAAA,cACAe,KAAK,GAAG,KAAKC,GAAL,CAAS,OAAT,CADR;AAAA,cAEAC,mBAAmB,GAAG,KAAKD,GAAL,CAAS,qBAAT,CAFtB;;AAIA,eAAKE,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,eAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AAEA,cAAIC,KAAK,GAAG,KAAZ;AAEAF,UAAAA,mBAAmB,CAACP,EAApB,GAAyB,KAAKM,GAAL,CAAS,IAAT,CAAzB;AACAC,UAAAA,mBAAmB,CAACG,aAApB,GAAoC,KAAKJ,GAAL,CAAS,eAAT,CAApC;AACAC,UAAAA,mBAAmB,CAACI,WAApB,GAAkC,KAAKL,GAAL,CAAS,aAAT,CAAlC,CAjBoB,CAkBpB;AACA;AACA;;AACAC,UAAAA,mBAAmB,CAACK,cAApB,GAAqCP,KAAK,CAACQ,UAAN,CAAiB,iBAAjB,EAAoC,KAAKP,GAAL,CAAS,QAAT,CAApC,CAArC;AACAC,UAAAA,mBAAmB,CAACO,MAApB,GAA6BT,KAAK,CAACQ,UAAN,CAAiB,SAAjB,EAA4B,KAAKP,GAAL,CAAS,QAAT,CAA5B,CAA7B;AACAC,UAAAA,mBAAmB,CAACQ,MAApB,GAA6B,IAA7B;AACAR,UAAAA,mBAAmB,CAACS,mBAApB,GAA0C,CAA1C;;AAEA,cAAG,OAAOT,mBAAmB,CAACP,EAA3B,KAAkC,WAAlC,IAAiDO,mBAAmB,CAACP,EAApB,KAA2B,EAA/E,EAAmF;AAC/ES,YAAAA,KAAK,GAAG,IAAR;AACA,iBAAKD,QAAL,CAAc,YAAd,EAA2B,IAA3B;AACA,iBAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACH;;AAED,cAAI,KAAKF,GAAL,CAAS,eAAT,KAA6B,IAAjC,EAAuC;AACnCC,YAAAA,mBAAmB,CAACG,aAApB,GAAoCO,MAAM,CAAC,KAAKX,GAAL,CAAS,eAAT,CAAD,EAA2B,qBAA3B,CAAN,CAAwDY,MAAxD,CAA+D,qBAA/D,CAApC;AACH;;AAED,cAAI,KAAKZ,GAAL,CAAS,aAAT,KAA2B,IAA/B,EAAqC;AACjCC,YAAAA,mBAAmB,CAACI,WAApB,GAAkCM,MAAM,CAAC,KAAKX,GAAL,CAAS,aAAT,CAAD,EAAyB,qBAAzB,CAAN,CAAsDY,MAAtD,CAA6D,qBAA7D,CAAlC;AACH,WAtCmB,CAwCpB;;;AAEA,cAAIC,aAAa,GAAG,IAApB;AACA,cAAIC,GAAG,GAAG,KAAV;;AACA,cAAG,CAACX,KAAJ,EAAW;AACP,gBAAI;AACAU,cAAAA,aAAa,GAAGd,KAAK,CAACgB,YAAN,CAAmB,YAAnB,EAAiCd,mBAAjC,CAAhB;AACH,aAFD,CAEE,OAAOe,GAAP,EAAY;AACV,mBAAKd,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EADU,CAEV;;AACA,kBAAGc,GAAG,CAACC,OAAJ,CAAYC,QAAZ,CAAqB,uBAArB,CAAH,EAAkD;AAC9C;AACA,qBAAKhB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AAEAC,gBAAAA,KAAK,GAAG,IAAR;AACAW,gBAAAA,GAAG,GAAG,IAAN;AACH,eATS,CAUV;;AACH;AACJ;;AAED,eAAKZ,QAAL,CAAc,WAAd,EAA2B,KAA3B;;AAEA,cAAI,CAACC,KAAL,EAAY;AAEJU,YAAAA,aAAa,CAACM,IAAd,GAAqBC,IAArB,CAA0B,UAASC,OAAT,EAAiB;AAEvC,kBAAGA,OAAO,CAAC3B,EAAR,IAAc,IAAjB,EAAuB;AACnB,oBAAI4B,WAAW,GAAGC,QAAQ,CAACtB,mBAAmB,CAACP,EAApB,CAAuB8B,SAAvB,CAAiC,CAAjC,EAAmCvB,mBAAmB,CAACP,EAApB,CAAuB+B,MAAvB,GAAgC,CAAhC,GAAoC,CAApC,GAAwC,CAA3E,CAAD,CAAR,GAA0F,CAA5G;;AACA,qBAAI,IAAIC,GAAG,GAAG,CAAd,EAAiBA,GAAG,IAAIJ,WAAxB,EAAqCI,GAAG,EAAxC,EAA4C;AACxC3B,kBAAAA,KAAK,CAACgB,YAAN,CAAmB,QAAnB,EAA6B;AAACY,oBAAAA,MAAM,EAAED,GAAT;AAAcE,oBAAAA,QAAQ,EAAEF,GAAxB;AAA6BG,oBAAAA,UAAU,EAAER;AAAzC,mBAA7B,EAAgFF,IAAhF;AACH;AACJ;;AAED,kBAAGE,OAAO,CAAC3B,EAAR,IAAc,IAAjB,EAAuB;AACnBV,gBAAAA,KAAK,CAACgB,GAAN,CAAU,QAAV,EAAoBqB,OAAO,CAAC3B,EAA5B;AACH,eAFD,MAEO;AACH,qBAAKQ,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACAC,gBAAAA,KAAK,GAAG,IAAR;AACH;AACJ,aAfD,EAeG2B,KAfH,CAeS,UAASC,MAAT,EAAiB;AAEtB/C,cAAAA,KAAK,CAACkB,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACAlB,cAAAA,KAAK,CAACkB,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH,aAnBD;AAoBP;AACJ;;AArHI,OAnB+C;AAAA;;AACxD;AACA;AAGA8B,IAAAA,IAAI,GAAG;AACH,YAAMA,IAAN,CAAW,GAAGC,SAAd;AACAlD,MAAAA,wBAAwB,CAAC,IAAD,CAAxB;AACH;;AARuD;;;;;;;;;;;;;ACvB5D,WAASmD,0BAAT,CAAoCC,KAApC,EAA2C;AACvC,QAAIC,6BAA6B,GAAGD,KAAK,CAACE,GAAN,CAAU,+BAAV,CAApC,CADuC,CAGvC;;;AACAF,IAAAA,KAAK,CAACG,GAAN,CAAU,mBAAV,EAA+B,uBAASC,MAAT,CAAgBJ,KAAK,CAACE,GAAN,CAAU,YAAV,CAAhB,CAA/B;;AACAF,IAAAA,KAAK,CAACG,GAAN,CAAU,wBAAV,EAAoC,CAApC;;AACAE,IAAAA,MAAM,CAACC,IAAP,CAAYL,6BAAZ,EAA2CM,OAA3C,CAAmD,UAASC,GAAT,EAAaC,KAAb,EAAoB;AACnER,MAAAA,6BAA6B,CAACO,GAAD,CAA7B,GAAqC,CAArC;AACH,KAFD;AAGH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,MAAM,EAAEN,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF0B;AAGlCE,IAAAA,sBAAsB,EAAE,IAHU;AAIlCC,IAAAA,UAAU,EAAE,qBAJsB;AAKlCC,IAAAA,cAAc,EAAE,IALkB;AAKZ;AACtBC,IAAAA,sBAAsB,EAAE,CANU;AAOlCC,IAAAA,iBAAiB,EAAE,IAPe;AAQlC;AACA;AACA;AAEAC,IAAAA,2BAA2B,EAAEZ,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AACxE,aAAO;AACHC,QAAAA,EAAE,EAAE,KAAKtB,GAAL,CAAS,mBAAT;AADD,OAAP;AAGH,KAJ4B,CAZK;AAkBlCuB,IAAAA,0BAA0B,EAAEf,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AACvE,aAAO;AACHC,QAAAA,EAAE,EAAE,KAAKtB,GAAL,CAAS,mBAAT;AADD,OAAP;AAGH,KAJ2B,CAlBM;AAyBlC;AACAwB,IAAAA,kCAAkC,EAAEhB,KAAK,CAACiB,QAAN,CAAe,wBAAf,EAAyC,YAAU;AACnF,UAAK,KAAKzB,GAAL,CAAS,wBAAT,CAAL,EAA0C;AACtCH,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;AACJ,KAJmC,CA1BF;AAgClCE,IAAAA,6BAA6B,EAAES,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AAC1E,UAAItB,6BAA6B,GAAG,EAApC;;AACA,WAAK,IAAI2B,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,KAAK1B,GAAL,CAAS,mBAAT,EAA8B2B,MAAnD,EAA2DD,CAAC,EAA5D,EAAgE;AAC5D3B,QAAAA,6BAA6B,CAAC2B,CAAD,CAA7B,GAAmC,CAAnC;AACH;;AACD,aAAO3B,6BAAP;AACH,KAN8B,CAhCG;AAwClC6B,IAAAA,gCAAgC,EAAEpB,KAAK,CAACa,QAAN,CAAe,mBAAf,EAAoC,YAAW;AAC7E,UAAItB,6BAA6B,GAAG,EAApC;;AACA,WAAK,IAAI2B,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,KAAK1B,GAAL,CAAS,mBAAT,EAA8B2B,MAA9B,GAAuC,CAA5D,EAA+DD,CAAC,EAAhE,EAAoE;AAChE3B,QAAAA,6BAA6B,CAAC2B,CAAD,CAA7B,GAAmC,CAAnC;AACH;;AACD,aAAO3B,6BAAP;AACH,KANiC,CAxCA;AAgDlC8B,IAAAA,OAAO,EAAE;AACLC,MAAAA,OAAO,GAAE;AACL,YAAIhC,KAAK,GAAG,IAAZ;AAAA,YACIa,KAAK,GAAG,KAAKX,GAAL,CAAS,OAAT,CADZ;AAAA,YAEIoB,2BAA2B,GAAG,KAAKpB,GAAL,CAAS,6BAAT,CAFlC;AAAA,YAGIuB,0BAA0B,GAAG,KAAKvB,GAAL,CAAS,4BAAT,CAHjC;AAAA,YAII+B,kBAAkB,GAAG,KAAK/B,GAAL,CAAS,oBAAT,CAJzB;AAAA,YAKIgC,iBAAiB,GAAG,KAAKhC,GAAL,CAAS,mBAAT,CALxB;;AAQAuB,QAAAA,0BAA0B,CAACD,EAA3B,GAAgC,qBAAO,KAAKtB,GAAL,CAAS,mBAAT,CAAP,EAAqC,qBAArC,EAA4DE,MAA5D,CAAmE,qBAAnE,CAAhC;AACAqB,QAAAA,0BAA0B,CAACU,MAA3B,GAAoC,CAAC,KAAKjC,GAAL,CAAS,wBAAT,CAAD,CAApC;AAEA,cAAMkC,oBAAoB,GAAGvB,KAAK,CAACwB,YAAN,CAAmB,mBAAnB,EAAwCZ,0BAAxC,CAA7B,CAZK,CAaL;;AACA,cAAMa,4BAA4B,GAAGF,oBAAoB,CAACG,IAArB,CAA0B;AAACC,UAAAA,cAAc,EAAE,KAAKtC,GAAL,CAAS,cAAT;AAAjB,SAA1B,EAAsEuC,IAAtE,CAA2E,UAASC,OAAT,EAAiB,CAC7H;AACA;AAEA;AACA;AACH,SANoC,CAArC;AAQApB,QAAAA,2BAA2B,CAACE,EAA5B,GAAiC,qBAAO,KAAKtB,GAAL,CAAS,mBAAT,CAAP,EAAqC,qBAArC,EAA4DE,MAA5D,CAAmE,qBAAnE,CAAjC;AACAkB,QAAAA,2BAA2B,CAACa,MAA5B,GAAqC9B,MAAM,CAAC8B,MAAP,CAAc,KAAKjC,GAAL,CAAS,kCAAT,CAAd,CAArC;AAEA,cAAMyC,qBAAqB,GAAG9B,KAAK,CAACwB,YAAN,CAAmB,oBAAnB,EAAyCf,2BAAzC,CAA9B,CAzBK,CA0BL;;AACA,cAAMsB,6BAA6B,GAAGD,qBAAqB,CAACJ,IAAtB,CAA2B;AAACC,UAAAA,cAAc,EAAE,KAAKtC,GAAL,CAAS,cAAT;AAAjB,SAA3B,EAAuEuC,IAAvE,CAA4E,UAASC,OAAT,EAAiB;AAC/H;AACA1C,UAAAA,KAAK,CAACG,GAAN,CAAU,yBAAV,EAAqC,IAArC;;AACAH,UAAAA,KAAK,CAACG,GAAN,CAAU,wBAAV,EAAoC,KAApC,EAH+H,CAI/H;AACA;AACA;;;AACA,gBAAM0C,gBAAgB,GAAG7C,KAAK,CAACE,GAAN,CAAU,yBAAV,CAAzB;;AACA,gBAAM4C,oBAAoB,GAAG,eAAS9C,KAAT,EAAgB+C,MAAhB,CAAwB,SAAQF,gBAAiB,EAAjD,CAA7B;AACAC,UAAAA,oBAAoB,CAACE,OAArB;AAEH,SAXqC,EAYrCC,KAZqC,CAY/B,UAASC,MAAT,EAAgB;AACnB,cAAIA,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA/B,EAAoC;AAChCpD,YAAAA,KAAK,CAACqD,OAAN,CAAc,iBAAd,EAAiC,IAAjC;AACH;AACJ,SAhBqC,CAAtC;AAiBH,OA7CI;;AA8CLC,MAAAA,SAAS,CAACC,MAAD,EAAQ;AACb;AACA,aAAKpD,GAAL,CAAS,wBAAT,EAAmC,KAAnC,EAFa,CAGb;;AACAJ,QAAAA,0BAA0B,CAAC,IAAD,CAA1B;AACH;;AAnDI,KAhDyB;;AAqGlCyD,IAAAA,SAAS,GAAG;AACR,UAAIxD,KAAK,GAAG,IAAZ,CADQ,CAER;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEH,KAlHiC;;AAmHlCyD,IAAAA,kBAAkB,GAAG;AACjB,UAAI,KAAKvD,GAAL,CAAS,gBAAT,CAAJ,EAAgC;AAC5B,aAAKA,GAAL,CAAS,gBAAT,EAA2BwD,cAA3B,CAA0C,SAA1C;AACH;AAEJ;;AAxHiC,GAAvB,C;;;;;;;;;;;;;iBCPAC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClC,UAAMC,IAAN,GAAa;AAET,WAAKC,GAAL,CAAS,SAAT,EAAoB,IAApB;AACA,UAAIC,cAAc,GAAG,MAAM,KAAKC,qBAAL,EAA3B;AACA,WAAKF,GAAL,CAAS,kBAAT,EAA6BC,cAA7B;AACA,WAAKD,GAAL,CAAS,SAAT,EAAoB,KAApB;AAEH,KARiC;;AASlCG,IAAAA,KAAK,EAAEP,KAAK,CAACQ,MAAN,CAAaC,OAAb,EAT2B;AAUlCC,IAAAA,IAAI,EAAEV,KAAK,CAACQ,MAAN,CAAaC,OAAb,EAV4B;AAWlCE,IAAAA,EAAE,EAAE,IAX8B;AAYlCC,IAAAA,MAAM,EAAC,EAZ2B;AAalCC,IAAAA,cAAc,EAAE,KAbkB;AAclCC,IAAAA,YAAY,EAAE,GAdoB;AAelCC,IAAAA,WAAW,EAAE,QAfqB;AAgBlCC,IAAAA,WAAW,EAAE,EAhBqB;AAiBlCC,IAAAA,cAAc,EAAE,IAjBkB;AAkBlCC,IAAAA,OAAO,EAAE,IAlByB;AAmBlCC,IAAAA,gBAAgB,EAAE,EAnBgB;AAoBlCC,IAAAA,cAAc,EAAE,KApBkB;AAqBlCC,IAAAA,cAAc,EAAE,KArBkB;AAsBlCC,IAAAA,YAAY,EAAE,KAtBoB;AAuBlCC,IAAAA,oBAAoB,EAAE,KAvBY;AAwBlCC,IAAAA,OAAO,EAAE,KAxByB;AAyBlCC,IAAAA,UAAU,EAAE,KAzBsB;AA0BlCC,IAAAA,WAAW,EAAE,KA1BqB;AA2BlCC,IAAAA,aAAa,EAAE,KA3BmB;AA4BlCC,IAAAA,SAAS,EAAE,KA5BuB;AA8BlCC,IAAAA,gBAAgB,EAAC,IA9BiB;AA+BlCC,IAAAA,OAAO,EAAC,IA/B0B;AAiClCC,IAAAA,OAAO,EAAE,CAjCyB;AAmC9BC,IAAAA,sBAAsB,EAAE,eAAS,eAAT,EAA0B,YAAW;AAC7D,UAAIC,aAAa,GAAG,KAAKC,GAAL,CAAS,eAAT,CAApB;AACA,WAAK9B,GAAL,CAAS,qBAAT,EAAgC6B,aAAhC;AAEH,KAJ2B,CAnCM;AA0ClCE,IAAAA,uBAAuB,EAAE,eAAS,IAAT,EAAe,YAAW;AAC/CC,MAAAA,OAAO,CAACC,GAAR,CAAY,iBAAZ;AACH,KAFwB,CA1CS;AA8ClCC,IAAAA,eAAe,EAAE,eAAS,cAAT,EAAyB,YAAW;AACjD,UAAIC,MAAM,GAAG,KAAKL,GAAL,CAAS,cAAT,CAAb;;AACA,UAAGK,MAAM,KAAK,MAAd,EAAsB;AAClB,aAAKnC,GAAL,CAAS,cAAT,EAAyB,KAAzB;AACA,aAAKA,GAAL,CAAS,iBAAT,EAA4B,KAA5B;AACA,aAAKA,GAAL,CAAS,gBAAT,EAA2B,KAA3B;AACA,aAAKoC,IAAL,CAAU,uBAAV,EAAkCC,QAAQ,CAACC,cAAT,CAAwB,aAAxB,CAAlC;AACH;AACJ,KARgB,CA9CiB;AAwDlCC,IAAAA,eAAe,EAAE,eAAS,cAAT,EAAyB,YAAW;AACjD,UAAIC,MAAM,GAAG,KAAKV,GAAL,CAAS,cAAT,CAAb;;AACA,UAAGU,MAAM,KAAK,KAAd,EAAqB;AACjB,aAAKxC,GAAL,CAAS,oBAAT,EAA+B,CAA/B;AACA,aAAKA,GAAL,CAAS,kBAAT,EAA6B,IAA7B;AACH;AACJ,KANgB,CAxDiB;AAgElCyC,IAAAA,iBAAiB,EAAE,eAAS,gBAAT,EAA2B,YAAW;AACrD,UAAIC,QAAQ,GAAG,KAAKZ,GAAL,CAAS,gBAAT,CAAf;;AACA,UAAGY,QAAQ,IAAI,IAAf,EAAqB;AACjB,aAAK1C,GAAL,CAAS,cAAT,EAAyB,EAAzB;AACH;AACJ,KALkB,CAhEe;AAuElCE,IAAAA,qBAAqB,EAAE,kBAAiB;AACpC;AACA,UAAIY,OAAO,GAAG,MAAM,KAAKX,KAAL,CAAWwC,UAAX,CAAsB,OAAtB,EAA8B,KAAKb,GAAL,CAAS,OAAT,EAAkBA,GAAlB,CAAsB,IAAtB,CAA9B,EAA2D;AAAEc,QAAAA,MAAM,EAAE;AAAV,OAA3D,EAA6EC,IAA7E,CAAkF,gBAAeC,QAAf,EAAyB;AAE3H,YAAIC,QAAQ,GAAG,EAAf;AACA,YAAIjC,OAAO,GAAGgC,QAAQ,CAAChB,GAAT,CAAa,SAAb,CAAd;AACAhB,QAAAA,OAAO,CAACkC,OAAR,CAAkBC,MAAD,IAAY;AACzBF,UAAAA,QAAQ,CAACG,IAAT,CAAcD,MAAM,CAACnB,GAAP,CAAW,YAAX,CAAd;AACD,SAFH;AAIA,eAAOhB,OAAP;AACH,OATmB,CAApB;AAWA,UAAIqC,UAAU,GAAG,EAAjB;AAEArC,MAAAA,OAAO,CAACkC,OAAR,CAAgBI,OAAO,IAAI;AAEvBD,QAAAA,UAAU,CAACC,OAAO,CAACC,UAAT,CAAV,GAAiC,IAAjC,CAFuB,CAGvB;AACH,OAJD,EAfoC,CAqBpC;AACA;;AACA,aAAOF,UAAP;AACH,KA/FiC;AAkGlCG,IAAAA,YAAY,EAAE1D,KAAK,CAAC2D,QAAN,CAAe,QAAf,EAAyB,YAAW;AAC9C;AACA,UAAIC,UAAU,GAAG,KAAK1B,GAAL,CAAS,OAAT,EAAkB0B,UAAnC;AACA,UAAIhD,MAAM,GAAG,KAAKsB,GAAL,CAAS,QAAT,CAAb;;AAEA,UAAGtB,MAAM,KAAG,EAAZ,EAAgB;AACZA,QAAAA,MAAM,GAAGgD,UAAU,CAAC1B,GAAX,CAAe,IAAf,CAAT;AACH;;AACD,UAAI2B,GAAG,GAAGjD,MAAM,CAACkD,MAAP,KAAkB,CAAlB,GAAsB,CAAtB,GAA0B,CAApC;AACA,UAAIC,QAAQ,GAAGC,QAAQ,CAACpD,MAAM,CAACqD,SAAP,CAAiB,CAAjB,EAAmBJ,GAAnB,CAAD,CAAvB,CAT8C,CAU9C;;AACA,aAAOE,QAAQ,GAAC,CAAhB;AACH,KAZa,CAlGoB;AAgHlCG,IAAAA,UAAU,EAAElE,KAAK,CAAC2D,QAAN,CAAe,YAAW;AAClC,aAAO,KAAKzB,GAAL,CAAS,cAAT,IAA2B,CAA3B,GAA8B,KAAKA,GAAL,CAAS,cAAT,CAA9B,GAAwD,CAA/D;AACH,KAFW,CAhHsB;AAoHlCiC,IAAAA,gBAAgB,EAAEnE,KAAK,CAAC2D,QAAN,CAAe,QAAf,EAAyB,YAAW;AAClD,UAAIS,IAAI,GAAG,KAAKlC,GAAL,CAAS,OAAT,EAAkBmC,YAA7B;AACA,aAAO,qBAAOD,IAAP,CAAP;AACH,KAHiB,CApHgB;AAyHlCE,IAAAA,iBAAiB,EAAEtE,KAAK,CAAC2D,QAAN,CAAe,kBAAf,EAAmC,YAAW;AAC7D,UAAIS,IAAI,GAAG,KAAKlC,GAAL,CAAS,OAAT,EAAkBf,gBAA7B;AACA,aAAO,qBAAOiD,IAAP,CAAP;AACH,KAHkB,CAzHe;AA8HlCG,IAAAA,gBAAgB,EAAC,UAASC,EAAT,EAAY;AACzB,UAAIC,GAAG,GAAG,kCAAkB,sBAAlB,GAA2CD,EAA3C,GAAgD,GAA1D;AACApC,MAAAA,OAAO,CAACC,GAAR,CAAY,wCAAwCmC,EAApD;AACA,cAAE9D,IAAF,CAAO;AACHkC,QAAAA,MAAM,EAAE,MADL;AAEH6B,QAAAA,GAAG,EAAEA,GAFF;AAGHC,QAAAA,OAAO,EAAE;AACLC,UAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AADnC;AAHN,OAAP;AAQH,KAzIiC;AA2IlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,IAAAA,OAAO,EAAE;AACLC,MAAAA,SAAS,GAAG;AACR,aAAK3E,GAAL,CAAS,SAAT,EAAoB,KAAK8B,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,OAHI;;AAIL8C,MAAAA,aAAa,GAAG;AACZ,aAAK5E,GAAL,CAAS,SAAT,EAAoB,KAAK8B,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,OANI;;AAQL+C,MAAAA,qBAAqB,CAACC,KAAD,EAAQ;AACzB,YAAIC,MAAM,GAAG,IAAb;AACA,YAAID,KAAK,YAAYE,KAArB,EACID,MAAM,GAAG,QAAED,KAAK,CAACG,MAAR,EAAgBC,GAAhB,EAAT,CADJ,KAGIH,MAAM,GAAG,QAAED,KAAF,EAASI,GAAT,EAAT;AACJ,YAAIC,IAAI,GAAG,EAAX;AACAJ,QAAAA,MAAM,CAAC/B,OAAP,CAAe,UAASoC,GAAT,EAAc;AACzBD,UAAAA,IAAI,CAACC,GAAD,CAAJ,GAAY,IAAZ;AACA,iBAAOD,IAAP;AACH,SAHD;AAKA,aAAKnF,GAAL,CAAS,gBAAT,EAA2BmF,IAA3B;AACH,OArBI;;AAsBLE,MAAAA,SAAS,GAAG;AACR,aAAKrF,GAAL,CAAS,QAAT,EAAmB,KAAnB;;AACA,cAAMsF,KAAK,GAAG,IAAd;;AACA,cAAMnF,KAAK,GAAG,KAAK2B,GAAL,CAAS,OAAT,CAAd;;AACA,YAAIvB,EAAE,GAAG+E,KAAK,CAACxD,GAAN,CAAU,OAAV,CAAT,CAJQ,CAMR;;;AACA,YAAIyD,iBAAiB,GAAG,KAAKzD,GAAL,CAAS,0BAAT,CAAxB,CAPQ,CASR;;AACA,YAAI0D,QAAQ,GAAG,KAAK1D,GAAL,CAAS,4BAAT,CAAf,CAVQ,CAYR;;AACA,YAAI2D,gBAAgB,GAAG,KAAK3D,GAAL,CAAS,yBAAT,CAAvB,CAbQ,CAeR;;AACA,YAAI4D,QAAQ,GAAG,KAAf;AACA,YAAIC,OAAO,GAAG,EAAd,CAjBQ,CAmBR;;AACA,YAAG,CAAC,OAAOJ,iBAAP,KAA6B,WAA7B,IAA4CA,iBAAiB,KAAK,EAAnE,KAA2EC,QAAQ,IAAI,IAA1F,EAAiG;AAC7FE,UAAAA,QAAQ,GAAG,IAAX;;AAEA,cAAIF,QAAQ,IAAI,OAAhB,EAAyB;AACrBG,YAAAA,OAAO,GAAG,eAAV;AACH,WAFD,MAEO,IAAIH,QAAQ,IAAI,KAAhB,EAAuB;AAC1BG,YAAAA,OAAO,GAAG,cAAV;AACH,WAFM,MAEA,IAAIH,QAAQ,IAAI,MAAhB,EAAwB;AAC3BG,YAAAA,OAAO,GAAG,YAAV;AACH;AACJ,SA9BO,CAgCR;;;AACA,YAAI9E,cAAc,GAAG,KAAKiB,GAAL,CAAS,gBAAT,CAArB;AACAE,QAAAA,OAAO,CAACC,GAAR,CAAYpB,cAAZ;;AACA,YAAKA,cAAc,IAAI,IAAvB,EAA8B;AAC1B,cAAIC,OAAO,GAAG,KAAKgB,GAAL,CAAS,kBAAT,CAAd;AAEA,cAAI8D,OAAO,GAAG,IAAIC,GAAJ,EAAd,CAH0B,CAK1B;;AACA,eAAI,IAAIC,GAAR,IAAehF,OAAf,EAAwB;AACpB,gBAAI,CAACD,cAAc,CAACkF,cAAf,CAA8BD,GAA9B,CAAL,EAAyC;AACrCF,cAAAA,OAAO,CAAC5F,GAAR,CAAY8F,GAAZ,EAAiB,KAAjB;AACH;AACJ,WAVyB,CAY1B;;;AACA,eAAI,IAAIA,GAAR,IAAejF,cAAf,EAA+B;AAC3B,gBAAI,CAACC,OAAO,CAACiF,cAAR,CAAuBD,GAAvB,CAAL,EAAkC;AAC9BF,cAAAA,OAAO,CAAC5F,GAAR,CAAY8F,GAAZ,EAAiB,IAAjB;AACH;AACJ;;AAED,cAAIE,YAAY,GAAGzF,EAAE,CAACuB,GAAH,CAAO,SAAP,CAAnB;AACA,cAAImE,eAAe,GAAG,IAAtB;;AAEA,eAAK,MAAM,CAACH,GAAD,EAAMI,KAAN,CAAX,IAA2BN,OAAO,CAACO,OAAR,EAA3B,EAA8C;AAC1C,gBAAGD,KAAH,EAAU;AACND,cAAAA,eAAe,GAAG,EAAlB;AACAA,cAAAA,eAAe,CAACG,KAAhB,GAAwB7F,EAAxB;AACA0F,cAAAA,eAAe,CAAC5C,UAAhB,GAA6ByC,GAA7B;AAEA,kBAAIO,SAAS,GAAGlG,KAAK,CAACmG,YAAN,CAAmB,cAAnB,EAAmCL,eAAnC,CAAhB;AACAI,cAAAA,SAAS,CAACE,IAAV;AACH,aAPD,MAOO;AACHP,cAAAA,YAAY,CAAChD,OAAb,CAAqBI,OAAO,IAAI;AAC5B,oBAAGA,OAAO,CAACtB,GAAR,CAAY,YAAZ,MAA8BgE,GAAjC,EAAsC;AAClC1C,kBAAAA,OAAO,CAACoD,aAAR;AACH;AACJ,eAJD;AAKH;AACJ;;AAED,cAAIC,MAAM,GAAGtG,KAAK,CAACwC,UAAN,CAAiB,cAAjB,EAAgCpC,EAAE,CAAC6D,EAAnC,EAAuCvB,IAAvC,CAA4C,UAAS6D,IAAT,EAAe;AACpEV,YAAAA,YAAY,GAAGU,IAAI,CAAC5E,GAAL,CAAS,SAAT,CAAf;AACH,WAFY,CAAb;AAIA,eAAK9B,GAAL,CAAS,gBAAT,EAA2B,IAA3B;AACA,eAAKA,GAAL,CAAS,SAAT,EAAoBgG,YAApB;AACH,SAhFO,CAmFR;;;AACA,YAAId,GAAG,GAAG,KAAKpD,GAAL,CAAS,yBAAT,CAAV;AACA,YAAI6E,EAAE,GAAG,KAAK7E,GAAL,CAAS,2BAAT,CAAT;AACA,YAAI8E,EAAE,GAAG,KAAK9E,GAAL,CAAS,gCAAT,CAAT;AACA,YAAI+E,GAAG,GAAGxE,QAAQ,CAACC,cAAT,CAAwB,aAAxB,EAAuCwE,aAAjD,CAvFQ,CAyFR;AACA;AAEA;AACA;;AAEA;AACZ;AACA;AACA;AACA;AACA;AACA;AACY;AACA;AACA;AACA;;AAEA,aAAKC,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,gBAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,cAAd,EAA6B,KAA7B;AACA,aAAKA,QAAL,CAAc,sBAAd,EAAqC,KAArC;AACA,aAAKA,QAAL,CAAc,SAAd,EAAwB,KAAxB;AACA,aAAKA,QAAL,CAAc,YAAd,EAA2B,KAA3B;AACA,aAAKA,QAAL,CAAc,aAAd,EAA4B,KAA5B;AACA,aAAKA,QAAL,CAAc,eAAd,EAA+B,KAA/B;AACA,aAAKA,QAAL,CAAc,WAAd,EAA2B,KAA3B,EAnHQ,CAsHR;;AACA,YAAK7B,GAAG,CAACxB,MAAJ,IAAc,CAAf,IAAsBiD,EAAE,CAACjD,MAAH,IAAa,CAAnC,IAA0CkD,EAAE,CAAClD,MAAH,IAAa,CAA3D,EAA+D;AAC3D,eAAKqD,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,gBAAd,EAA+B,IAA/B,EAF2D,CAG3D;AAGJ;AACC,SAPD,MAOO,IAAKF,GAAG,IAAI,CAAC,CAAT,IAAgB,KAAK/E,GAAL,CAAS,0BAAT,KAAwC,MAA5D,EAAqE;AACxE,eAAKiF,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,cAAd,EAA6B,IAA7B,EAFwE,CAGxE;AAEJ;AACC,SANM,MAMD,IAAIC,KAAK,CAACvB,gBAAD,CAAT,EAA4B;AAC9B,eAAKsB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,sBAAd,EAAqC,IAArC,EAF8B,CAG9B;AAEJ;AACC,SANK,MAMC,IAAK,KAAKjF,GAAL,CAAS,0BAAT,KAAwC,KAAzC,IAAoD8E,EAAE,IAAI,CAA1D,IAAiE,KAAK9E,GAAL,CAAS,8BAAT,KAA4C,IAAjH,EAAwH;AAC3H,eAAKiF,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,SAAd,EAAwB,IAAxB,EAF2H,CAG3H;AAEH,SALM,MAKA,IAAIH,EAAE,GAAG,CAAT,EAAY;AACf,eAAKG,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,YAAd,EAA2B,IAA3B,EAFe,CAGf;AAEH,SALM,MAKA,IAAIvB,QAAQ,IAAE,MAAd,EAAsB;AACzBnD,UAAAA,QAAQ,CAACC,cAAT,CAAwB,mBAAxB,EAA6C4D,KAA7C,GAAqD,EAArD,CADyB,CAEzB;AAEH,SAJM,MAIA,IAAIR,QAAJ,EAAc;AACjB,eAAKqB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,aAAd,EAA4B,IAA5B,EAFiB,CAGjB;AAEH,SALM,MAKA,IAAI,CAAExB,iBAAiB,CAAC0B,QAAlB,CAA2B,GAA3B,CAAF,IAAuCzB,QAAQ,IAAE,KAArD,EAA6D;AAChE,eAAKuB,QAAL,CAAc,gBAAd,EAA+B,IAA/B;AACA,eAAKA,QAAL,CAAc,eAAd,EAA8B,IAA9B,EAFgE,CAGhE;AAGJ;AACC,SAPM,MAOA,IAAI,CAACrB,QAAL,EAAc;AAEjB,cAAIwB,GAAG,GAAG,CAAC,KAAKpF,GAAL,CAAS,gBAAT,CAAX,CAFiB,CAGjB;;AAEAvB,UAAAA,EAAE,CAACgG,IAAH,GACK1D,IADL,CACU,UAASqD,KAAT,EAAe;AACjBZ,YAAAA,KAAK,CAAC6B,MAAN,GAAa,KAAb;;AACA7B,YAAAA,KAAK,CAACtF,GAAN,CAAU,aAAV,EAAyB,OAAzB;;AACAsF,YAAAA,KAAK,CAACxD,GAAN,CAAU,OAAV;AACH,WALL,EAMKsF,KANL,CAMW,UAASC,MAAT,EAAiB;AAEpB,gBAAIA,MAAM,IAAIA,MAAM,CAACC,MAAjB,IAA2BD,MAAM,CAACC,MAAP,CAAc,CAAd,EAAiBC,MAAjB,IAA2B,GAA1D,EAA+D;AAC3DjC,cAAAA,KAAK,CAACyB,QAAN,CAAe,gBAAf,EAAgC,IAAhC;;AACAzB,cAAAA,KAAK,CAACyB,QAAN,CAAe,WAAf,EAA2B,IAA3B;AACH,aAHD,MAGO;AACH;AACAzB,cAAAA,KAAK,CAACtF,GAAN,CAAU,aAAV,EAAyB,OAAzB;;AACAsF,cAAAA,KAAK,CAACxD,GAAN,CAAU,OAAV;AACH;AACJ,WAhBL;AAiBH;AAEJ,OAlNI;;AAmNL0F,MAAAA,aAAa,GAAG;AACZ,YAAIjH,EAAE,GAAG,KAAKuB,GAAL,CAAS,OAAT,CAAT;AACAvB,QAAAA,EAAE,CAACkH,MAAH,GAAYpF,QAAQ,CAACC,cAAT,CAAwB,oBAAxB,EAA8CoF,OAA1D;AACA,aAAK1H,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACH,OAvNI;;AAwNLoH,MAAAA,aAAa,GAAG;AACZ,YAAIpH,EAAE,GAAG,KAAKuB,GAAL,CAAS,OAAT,CAAT;AACAvB,QAAAA,EAAE,CAACqH,QAAH,GAAcvF,QAAQ,CAACC,cAAT,CAAwB,cAAxB,EAAwCoF,OAAtD;AACA,aAAK1H,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACH,OA5NI;;AA6NL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAsH,MAAAA,YAAY,GAAG;AACX,YAAIX,GAAG,GAAG,CAAC,KAAKpF,GAAL,CAAS,gBAAT,CAAX;;AAEA,YAAGoF,GAAH,EAAQ;AACJ,eAAKlH,GAAL,CAAS,YAAT,EAAsB,KAAK8B,GAAL,CAAS,cAAT,CAAtB;AACA,eAAK9B,GAAL,CAAS,cAAT,EAAyB,GAAzB;AACA,eAAKA,GAAL,CAAS,aAAT,EAAuB,UAAvB;AACH,SAJD,MAIO;AACH,eAAKA,GAAL,CAAS,YAAT,EAAsB,CAAtB;AACA,eAAKA,GAAL,CAAS,cAAT,EAAyB,GAAzB;AACA,eAAKA,GAAL,CAAS,aAAT,EAAuB,QAAvB;AACH;;AACD,aAAKA,GAAL,CAAS,gBAAT,EAA2BkH,GAA3B;AACH,OApPI;;AAsPLY,MAAAA,WAAW,GAAG;AACV,YAAIvH,EAAE,GAAG,KAAKuB,GAAL,CAAS,OAAT,CAAT;AACAvB,QAAAA,EAAE,CAACwH,WAAH,GAAiB,IAAjB;AAEA,YAAIC,OAAO,GAAG,IAAIC,IAAJ,EAAd;AAEA,YAAIC,UAAU,GAAGF,OAAO,CAACG,WAAR,KAAwB,GAAxB,IAA+BH,OAAO,CAACI,QAAR,KAAmB,CAAlD,IAAuD,GAAvD,GAA6DJ,OAAO,CAACK,OAAR,EAA7D,GAAiF,GAAjF,GAAuFL,OAAO,CAACM,QAAR,EAAvF,GAA4G,GAA5G,GAAkHN,OAAO,CAACO,UAAR,EAAlH,GAAyI,GAAzI,GAA+IP,OAAO,CAACQ,UAAR,EAAhK,CANU,CAQV;;AACAjI,QAAAA,EAAE,CAACQ,gBAAH,GAAsBmH,UAAtB;AACA,aAAKlI,GAAL,CAAS,kBAAT,EAA6BkI,UAA7B;AACA,aAAKlI,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAACgG,IAAH;AAEA,aAAKpC,gBAAL,CAAsB5D,EAAE,CAAC6D,EAAzB;AACH,OArQI;;AAsQLqE,MAAAA,UAAU,GAAG;AACT,YAAIlI,EAAE,GAAG,KAAKuB,GAAL,CAAS,OAAT,CAAT;AACAvB,QAAAA,EAAE,CAACwH,WAAH,GAAiB,KAAjB;AACAxH,QAAAA,EAAE,CAACmI,SAAH,GAAe,KAAf;AACAnI,QAAAA,EAAE,CAACQ,gBAAH,GAAsB,IAAtB;AACAR,QAAAA,EAAE,CAACoI,WAAH,GAAiB,IAAjB;AACA,aAAK3I,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAACgG,IAAH;AACH,OA9QI;;AA+QLqC,MAAAA,WAAW,GAAG;AACV,YAAIrI,EAAE,GAAG,KAAKuB,GAAL,CAAS,OAAT,CAAT;AACAvB,QAAAA,EAAE,CAACmI,SAAH,GAAe,KAAf;AACAnI,QAAAA,EAAE,CAACoI,WAAH,GAAiB,IAAjB;AACA,aAAK3I,GAAL,CAAS,OAAT,EAAiBO,EAAjB;AACAA,QAAAA,EAAE,CAACgG,IAAH;AACH;;AArRI;AA3JyB,GAAvB,C;;;;;;;;;;;;;;;;;;;;;;;MCLMsC,c,yEAAN,MAAMA,cAAN,SAA6B,gBAAUC,MAAV,CAAiB,EAAjB,CAA7B,CACZ;AAAA;AAAA;;AAAA;;AAAA;;AAAA,+CAKmB,IALnB;;AAAA,8CAMiB,IANjB;;AAAA,6CAOgB,IAPhB;;AAAA,uCAQU,CARV;;AAAA,uCASW;AACNC,QAAAA,QAAQ,CAACC,EAAD,EAAK;AACT,eAAKC,GAAL,CAAS,QAAT,EAAmBC,YAAnB,CAAgC,UAAhC,EAA4CF,EAA5C,EADS,CAET;AACH,SAJK;;AAKNG,QAAAA,MAAM,CAACH,EAAD,EAAK;AACP,eAAKC,GAAL,CAAS,QAAT,EAAmBC,YAAnB,CAAgC,gCAAhC,EAAkEF,EAAlE,EAAsE,qBAAtE,EADO,CAEP;AACH,SARK;;AASNI,QAAAA,MAAM,CAACJ,EAAD,EAAK;AACP,eAAKC,GAAL,CAAS,QAAT,EAAmBC,YAAnB,CAAgC,8BAAhC,EAAgEF,EAAhE,EAAoE,qBAApE,EADO,CAEP;AACH,SAZK;;AAaNK,QAAAA,SAAS,GAAG;AACR,eAAKC,GAAL,CAAS,SAAT,EAAoB,KAAKL,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,SAfK;;AAgBNM,QAAAA,aAAa,GAAG;AACZ,eAAKD,GAAL,CAAS,SAAT,EAAoB,KAAKL,GAAL,CAAS,SAAT,IAAsB,CAA1C;AACH,SAlBK;;AAmBNO,QAAAA,cAAc,GAAE;AACZ,gBAAMC,KAAK,GAAG,IAAd,CADY,CAEZ;;;AACA,cAAI,KAAKR,GAAL,CAAS,SAAT,IAAsB,CAA1B,EAA6B;AACzB,gBAAIS,CAAC,GAAGC,OAAO,CAAC,2JAAD,CAAf;;AACA,gBAAID,CAAJ,EAAO;AACHE,cAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuB,cAAvB;AACH;AACJ,WALD,MAKO;AACHF,YAAAA,MAAM,CAACC,QAAP,CAAgBC,IAAhB,GAAuB,cAAvB;AACH;AACJ;;AA9BK,OATX;AAAA;;AAAA,G;;;;;;;;;;;;;;;;;;;;;;iBCDYC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAD2B;AAElCC,IAAAA,OAAO,EAAE,eAFyB;AAGlCC,IAAAA,cAAc,EAAE,IAHkB;AAIlCC,IAAAA,YAAY,EAAE,IAJoB;AAKlCC,IAAAA,yBAAyB,EAAE,GALO;AAKF;AAChCC,IAAAA,cAAc,EAAE,IANkB;AAOlCC,IAAAA,4BAA4B,EAAE,EAPI;AAOA;AAElCC,IAAAA,2BAA2B,EAAEZ,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AACpE,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AAClD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf4B,CATK;AA0BlCQ,IAAAA,yBAAyB,EAAEtB,KAAK,CAACa,QAAN,CAAe,aAAf,EAA8B,YAAW;AAChE,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,OADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAChD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf0B,CA1BO;AA2ClCS,IAAAA,kBAAkB,EAAEvB,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,KAAKA,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AACjD,iBAAO;AACHJ,YAAAA,IAAI,EAAE,SADH;AAEHQ,YAAAA,SAAS,EAAE,qBAAQJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCW,MAAjC,CAAwC,uBAAxC,CAFR;AAGH;AACAC,YAAAA,SAAS,EAAEN,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAJ7D;AAKHa,YAAAA,eAAe,EAAEP,KAAK,CAACN,GAAN,CAAU,iBAAV;AALd,WAAP;AAOH,SARM,EAQJc,MARI,CAQG,WARH,CAAP;AASH;;AACD,aAAO,KAAP;AACH,KAbmB,CA3Cc;AA0DlCC,IAAAA,gBAAgB,EAAE7B,KAAK,CAACa,QAAN,CAAe,aAAf,EAA8B,YAAW;AACvD,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,KAAKA,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAC/C,iBAAO;AACHJ,YAAAA,IAAI,EAAE,OADH;AAEHQ,YAAAA,SAAS,EAAE,qBAAQJ,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCW,MAAjC,CAAwC,uBAAxC,CAFR;AAGHC,YAAAA,SAAS,EAAEN,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAH7D;AAIHgB,YAAAA,MAAM,EAAEV,KAAK,CAACN,GAAN,CAAU,QAAV;AAJL,WAAP;AAMH,SAPM,EAOJc,MAPI,CAOG,WAPH,CAAP;AAQH;;AACD,aAAO,KAAP;AACH,KAZiB,CA1DgB;AAwElC;AACAG,IAAAA,cAAc,EAAE/B,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASa,IAAT,EAAc;AAC9D,UAAI;AACA,YAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AACA,YAAIC,SAAS,GAAGL,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAhB;AAEA,YAAIM,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAEA,YAAIyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAAnD,EAAkE;AAC9D,cAAIC,MAAM,GAAG,KAAK1B,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,QAA3B,CAAb;AACA,cAAIE,IAAI,GAAG,KAAKF,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,CAAX,CAF8D,CAG9D;AACH;;AAED,eAAOuB,SAAP;AACH,OAbD,CAaE,OAAOI,KAAP,EAAc;AACZ,eAAO,EAAP;AACH;AACJ,KAjBe,CAzEkB;AA4FlC;AACAC,IAAAA,mBAAmB,EAAE1C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASa,IAAT,EAAc;AACxE,UAAI;AACA,YAAIC,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYH,IAAI,CAACI,MAAL,EAAZ,CAAhB;AACA,eAAOJ,IAAI,CAACM,aAAL,CAAmBL,SAAnB,CAAP;AACH,OAHD,CAGE,OAAOQ,KAAP,EAAc;AACZ,eAAO,EAAP;AACH;AACJ,KAPoB,CA7Fa;AAsGlCE,IAAAA,cAAc,EAAE3C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASa,IAAT,EAAc;AAC9D,aAAOA,IAAI,CAAClB,GAAL,CAAS,IAAT,CAAP;AACH,KAFe,CAtGkB;AA0GlC8B,IAAAA,mBAAmB,EAAE5C,KAAK,CAACa,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASa,IAAT,EAAc;AACxE,aAAOA,IAAI,CAAClB,GAAL,CAAS,IAAT,CAAP;AACH,KAFoB,CA1Ga;AA8GlC+B,IAAAA,eAAe,EAAE7C,KAAK,CAACa,QAAN,CAAe,YAAf,EAA6B,eAA7B,EAA8C,YAAW;AACtE,UAAIiC,eAAe,GAAG,KAAKhC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D6B,MAAnF;AAAA,UACIC,OAAO,GAAG,KAAKlC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CADd;AAGA,UAAI+B,eAAe,GAAGG,OAAO,CAAC7B,GAAR,CAAY,UAAS8B,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACnC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB;AAIA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AACA,UAAI+B,eAAe,CAACE,MAAhB,GAAyBD,eAAzB,KAA6CP,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAA5F,CAAJ,EAAgH;AAC5GM,QAAAA,eAAe,CAACK,MAAhB,CAAuB,CAAvB,EAA0B,CAA1B;AACH;;AACD,aAAOL,eAAP;AACH,KAbgB,CA9GiB;AA6HlCM,IAAAA,iBAAiB,EAAEnD,KAAK,CAACa,QAAN,CAAe,YAAf,EAA6B,eAA7B,EAA8C,YAAW;AACxE,UAAIiC,eAAe,GAAG,KAAKhC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D6B,MAAnF;AAAA,UACIC,OAAO,GAAG,KAAKlC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CADd;AAGA,UAAI+B,eAAe,GAAGG,OAAO,CAAC7B,GAAR,CAAY,UAAS8B,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACnC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB;AAIA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AAEA,UAAIsC,SAAS,GAAG,EAAhB;;AAEA,UAAG,KAAKtC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAH,EAA0C;AACtC,YAAIuC,aAAa,GAAG,KAAKvC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,YAAIwC,WAAW,GAAG,CAACD,aAAD,CAAlB;AAEA,YAAIE,MAAM,GAAGV,eAAe,CAACE,MAAhB,GAAyB,CAAtC;AACAQ,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAD,QAAAA,WAAW,GAAGA,WAAW,CAACI,MAAZ,CAAmBb,eAAe,CAACc,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAnB,CAAd;AAEA,YAAIK,OAAO,GAAG,EAAd;;AACA,aAAI,IAAIC,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,WAAW,CAACP,MAAZ,GAAqB,CAA5C,EAA+Cc,GAAG,EAAlD,EAAsD;AAClDD,UAAAA,OAAO,CAACC,GAAD,CAAP,GAAe,CAACP,WAAW,CAACO,GAAD,CAAX,GAAmBP,WAAW,CAACO,GAAG,GAAG,CAAP,CAA/B,IAA4C,CAA3D;AACH;;AACDT,QAAAA,SAAS,GAAGQ,OAAZ;AACH,OAdD,MAcO;AAAE;AACL,YAAIP,aAAa,GAAG,KAAKvC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,YAAIyC,MAAM,GAAGV,eAAe,CAACE,MAAhB,GAAyB,CAAtC;AACAQ,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAH,QAAAA,SAAS,GAAGU,CAAC,CAAC3C,GAAF,CAAM0B,eAAe,CAACc,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAN,EAA4C,UAASQ,CAAT,EAAYC,CAAZ,EAAe;AACnE,iBAAO,CAACD,CAAD,EAAIlB,eAAe,CAACc,KAAhB,CAAsBJ,MAAM,GAAG,CAA/B,EAAkCS,CAAlC,CAAJ,CAAP;AACD,SAFS,CAAZ;AAIAZ,QAAAA,SAAS,CAACa,OAAV,CAAkBZ,aAAlB;AACA,YAAIa,QAAQ,GAAG,EAAf;;AACA,aAAI,IAAIL,GAAG,GAAG,CAAd,EAAgBA,GAAG,GAAGT,SAAS,CAACL,MAAhC,EAAwCc,GAAG,EAA3C,EAA+C;AAC3CK,UAAAA,QAAQ,CAACC,IAAT,CAAc,CAACf,SAAS,CAACS,GAAG,GAAG,CAAP,CAAT,GAAqBT,SAAS,CAACS,GAAD,CAA/B,IAAwC,CAAtD;AACH;;AACDT,QAAAA,SAAS,GAAGc,QAAZ;;AAEA,YAAI3B,SAAS,KAAK,uBAAlB,EAA2C;AACvCa,UAAAA,SAAS,CAACgB,KAAV;AACAhB,UAAAA,SAAS,CAACiB,GAAV;AACH;AAEJ;;AAEDjB,MAAAA,SAAS,CAACe,IAAV,CAAe,KAAKrD,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,IAAiD,IAAhE,EAjDwE,CAmDxE;;AAEA,aAAOsC,SAAP;AACH,KAtDkB,CA7He;AAqLlCkB,IAAAA,iBAAiB,EAAEtE,KAAK,CAACa,QAAN,CAAe,YAAf,EAA6B,eAA7B,EAA8C,YAAW;AACxE,UAAIiC,eAAe,GAAG,KAAKhC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D6B,MAAnF;AAAA,UACIC,OAAO,GAAG,KAAKlC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CADd;AAGA,UAAI+B,eAAe,GAAGG,OAAO,CAAC7B,GAAR,CAAY,UAAS8B,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAACnC,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB;AAIA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AAEA,UAAIsC,SAAS,GAAG,EAAhB;;AAEA,UAAG,KAAKtC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAH,EAA0C;AACtC,YAAIuC,aAAa,GAAG,KAAKvC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,YAAIwC,WAAW,GAAG,CAACD,aAAD,CAAlB;AAEA,YAAIE,MAAM,GAAGV,eAAe,CAACE,MAAhB,GAAyB,CAAtC;AACAQ,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAD,QAAAA,WAAW,GAAGA,WAAW,CAACI,MAAZ,CAAmBb,eAAe,CAACc,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAnB,CAAd;AAEA,YAAIK,OAAO,GAAG,EAAd;;AACA,aAAI,IAAIC,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,WAAW,CAACP,MAAZ,GAAqB,CAA5C,EAA+Cc,GAAG,EAAlD,EAAsD;AAClDD,UAAAA,OAAO,CAACC,GAAD,CAAP,GAAe,CAACP,WAAW,CAACO,GAAD,CAAX,GAAmBP,WAAW,CAACO,GAAG,GAAG,CAAP,CAA/B,IAA4C,CAA3D;AACH;;AACDT,QAAAA,SAAS,GAAGQ,OAAZ;AACH,OAdD,MAcO;AAEP,YAAIL,MAAM,GAAGV,eAAe,CAACE,MAAhB,GAAyB,CAAtC;AACAQ,QAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAH,QAAAA,SAAS,GAAGU,CAAC,CAAC3C,GAAF,CAAM0B,eAAe,CAACc,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAN,EAA4C,UAASQ,CAAT,EAAYC,CAAZ,EAAe;AACnE,iBAAO,CAACD,CAAD,EAAIlB,eAAe,CAACc,KAAhB,CAAsBJ,MAAM,GAAG,CAA/B,EAAkCS,CAAlC,CAAJ,CAAP;AACD,SAFS,CAAZ;AAGIZ,QAAAA,SAAS,CAACgB,KAAV;AACAhB,QAAAA,SAAS,CAACiB,GAAV;AACH;;AAEDjB,MAAAA,SAAS,CAACe,IAAV,CAAe,KAAKrD,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,IAAiD,IAAhE;AAEA,aAAOsC,SAAP;AACH,KAzCkB,CArLe;AAgOlC;AACAmB,IAAAA,kBAAkB,EAAEvE,KAAK,CAACa,QAAN,CAAe,iBAAf,EAAkC,YAAW;AAC7D,UAAIgC,eAAe,GAAG7C,KAAK,CAACwE,IAAN,CAAW,KAAK1D,GAAL,CAAS,iBAAT,CAAX,CAAtB;AAAA,UACIgC,eAAe,GAAG,KAAKhC,GAAL,CAAS,eAAT,EAA0BA,GAA1B,CAA8B,aAA9B,EAA6CsB,MAA7C,GAAsDlB,MAAtD,CAA6D6B,MADnF;AAAA,UAEI0B,YAAY,GAAG,EAFnB;AAKA,UAAIzD,IAAI,GAAG,KAAKF,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,CAAX;AAEA+B,MAAAA,eAAe,CAACoB,OAAhB,CAAwB,CAAxB;;AAEA,WAAK,IAAID,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAInB,eAAe,CAACE,MAAhB,GAAyB,CAA9C,EAAiDiB,CAAC,EAAlD,EAAsD;AAClD,YAAIU,GAAG,GAAG,CAAC7B,eAAe,CAACmB,CAAD,CAAf,GAAqBnB,eAAe,CAACmB,CAAC,GAAG,CAAL,CAArC,IAAgD,CAA1D;AACAS,QAAAA,YAAY,CAACN,IAAb,CAAmB,CAACO,GAAG,CAACC,OAAJ,CAAY,CAAZ,CAApB;AACH;;AAED,UAAG3D,IAAI,KAAK,QAAZ,EAAsB;AAClByD,QAAAA,YAAY,CAACvB,MAAb,CAAoB,CAApB,EAAsB,CAAtB,EADkB,CAElB;;AACAuB,QAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkB,CAAlB;AACA,YAAIG,GAAG,GAAG,KAAK9D,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,QAA3B,CAAV;AACA,YAAIiC,MAAM,GAAG,KAAKjC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,CAAb;AAEA,YAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AACA,YAAI+B,eAAe,CAACE,MAAhB,GAAyBD,eAAzB,KAA6CP,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAA5F,CAAJ,EAAgH;AAC5G,cAAGQ,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,CAAjC,EAAoC;AAChC0B,YAAAA,YAAY,CAACN,IAAb,CAAkBpB,MAAlB;AACH,WAFD,MAEO;AACH0B,YAAAA,YAAY,CAACN,IAAb,CAAkBtB,eAAe,CAACA,eAAe,CAACE,MAAhB,GAAyB,CAA1B,CAAjC;AACH;AACJ;AACJ,OA9B4D,CA+B7D;AACC;;;AAED,aAAO0B,YAAP;AACH,KAnCmB,CAjOc;AAsQlCI,IAAAA,YAAY,EAAEC,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAtQoB;AAwQlCC,IAAAA,mCAAmC,EAAElF,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAArC,EAAmD,iBAAnD,EAAsE,oBAAtE,EAA4F,mBAA5F,EAAiH,mBAAjH,EAAsI,YAAW;AAClL,UAAIgC,eAAe,GAAG,KAAK/B,GAAL,CAAS,iBAAT,CAAtB;AACA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIyD,kBAAkB,GAAG,KAAKzD,GAAL,CAAS,oBAAT,CAAzB,CAHkL,CAKlL;;AAEA,UAAG,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,MAAmD,CAAtD,EAAyD;AAAC;AACtD,YAAG,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAH,EAA0C;AAAE;AACxC,cAAIyB,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,aAAzD,EAAwE;AACpEM,YAAAA,eAAe,GAAG,KAAK/B,GAAL,CAAS,mBAAT,CAAlB;AACH,WAFD,MAEO,IAAIyB,SAAS,KAAK,uBAAlB,EAA2C;AAC9CM,YAAAA,eAAe,GAAG,KAAK/B,GAAL,CAAS,mBAAT,CAAlB;AACH;AACJ,SAND,MAMO;AAAE;AACL,cAAIyB,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,aAAzD,EAAwE;AACpEM,YAAAA,eAAe,GAAG,KAAK/B,GAAL,CAAS,mBAAT,CAAlB;AACH,WAFD,MAEO,IAAIyB,SAAS,KAAK,uBAAlB,EAA2C;AAC9CM,YAAAA,eAAe,GAAG,KAAK/B,GAAL,CAAS,mBAAT,CAAlB;AACH;AACJ;AACJ;;AAED,UAAI,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AACxE,YAAGyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAAxF,EAAuG;AACnG,iBAAOgC,kBAAkB,CAACpD,GAAnB,CAAuB,UAASgE,cAAT,EAAwB;AAClD,mBAAO;AACHpE,cAAAA,GAAG,EAAEoE,cADF;AAEHnE,cAAAA,IAAI,EAAE,iBAFH;AAGHE,cAAAA,MAAM,EAAE,CACJiE,cADI;AAHL,aAAP;AAOH,WARM,CAAP;AAUH;AACJ;;AAED,aAAOtC,eAAe,CAAC1B,GAAhB,CAAoB,UAASgE,cAAT,EAAwB;AAC/C,eAAO;AACHpE,UAAAA,GAAG,EAAEoE,cADF;AAEHnE,UAAAA,IAAI,EAAE,iBAFH;AAGHE,UAAAA,MAAM,EAAE,CACJiE,cADI;AAHL,SAAP;AAOH,OARM,CAAP;AASH,KA/CoC,CAxQH;AAyTlCC,IAAAA,2BAA2B,EAAEpF,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzE,UAAI0B,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAEA,UAAIyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAAnD,EAAkE;AAC9D,eAAO,EAAP;AACH,OAFD,MAEO,IAAG,CAACA,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,uBAAtD,KAAkF,KAAKzB,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAArF,EAA4H;AAC/H,eAAO,EAAP;AACH;;AACD,aAAO,CAAP;AACH,KAT4B,CAzTK;AAoUlCuE,IAAAA,kBAAkB,EAAErF,KAAK,CAACa,QAAN,CAAe,gBAAf,EAAiC,gBAAjC,EAAmD,6BAAnD,EAAkF,2BAAlF,EAA+G,YAAW;AAC1I,YAAMyE,KAAK,GAAG,IAAd;AAAA,YACI1E,2BAA2B,GAAG,KAAKE,GAAL,CAAS,6BAAT,CADlC;AAAA,YAEIQ,yBAAyB,GAAG,KAAKR,GAAL,CAAS,2BAAT,CAFhC;AAAA,YAGIiB,cAAc,GAAG,KAAKjB,GAAL,CAAS,gBAAT,CAHrB;AAAA,YAII6B,cAAc,GAAG,KAAK7B,GAAL,CAAS,gBAAT,CAJrB;AAAA,YAKI+B,eAAe,GAAG,KAAK/B,GAAL,CAAS,iBAAT,CALtB;AAAA,YAMIqC,iBAAiB,GAAG,KAAKrC,GAAL,CAAS,mBAAT,CANxB;AAAA,YAOIwD,iBAAiB,GAAG,KAAKxD,GAAL,CAAS,mBAAT,CAPxB;AAAA,YAQIoE,mCAAmC,GAAG,KAAKpE,GAAL,CAAS,qCAAT,CAR1C;AAAA,YASIyD,kBAAkB,GAAG,KAAKzD,GAAL,CAAS,oBAAT,CATzB;;AAWA,UAAIuE,kBAAkB,GAAG,EAAzB;AAEA,UAAI9C,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;;AAGA,UAAI,CAACyB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,aAAhD,KAAkE,KAAKzB,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAApI,EAA8I;AAC1IuE,QAAAA,kBAAkB,GAAGtD,cAAc,CAACZ,GAAf,CAAmB,UAASoE,SAAT,EAAoBC,cAApB,EAAmC;AACvE,iBAAO;AACHzE,YAAAA,GAAG,EAAEyE,cADF;AAEH;AACAxE,YAAAA,IAAI,EAAE,OAHH;AAIHQ,YAAAA,SAAS,EAAEmB,cAAc,CAAC6C,cAAD,CAJtB;AAKHtE,YAAAA,MAAM,EAAEqE,SAAS,CAACrE,MAAV,CAAiBC,GAAjB,CAAqB,UAASsE,SAAT,EAAoBC,cAApB,EAAoC;AAC7D,qBAAO,CACHnB,kBAAkB,CAACmB,cAAD,CADf,EAEHD,SAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,CAArB;AAcH,OAfD,MAeO,IAAIlD,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,aAAzD,EAAyE;AAAC;AAC7E8C,QAAAA,kBAAkB,GAAGtD,cAAc,CAACZ,GAAf,CAAmB,UAASoE,SAAT,EAAoBC,cAApB,EAAmC;AACvE,iBAAO;AACHzE,YAAAA,GAAG,EAAEyE,cADF;AAEH;AACAxE,YAAAA,IAAI,EAAE,OAHH;AAIHQ,YAAAA,SAAS,EAAEmB,cAAc,CAAC6C,cAAD,CAJtB;AAKHtE,YAAAA,MAAM,EAAEqE,SAAS,CAACrE,MAAV,CAAiBC,GAAjB,CAAqB,UAASsE,SAAT,EAAoBC,cAApB,EAAoC;AAC7D,qBAAO,CACHvC,iBAAiB,CAACuC,cAAD,CADd,EAEHD,SAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,CAArB;AAcH,OAfM,MAeA,IAAIlD,SAAS,KAAK,uBAAlB,EAA4C;AAAE;AACjD8C,QAAAA,kBAAkB,GAAGtD,cAAc,CAACZ,GAAf,CAAmB,UAASoE,SAAT,EAAoBC,cAApB,EAAmC;AACvE,iBAAO;AACHzE,YAAAA,GAAG,EAAEyE,cADF;AAEH;AACAxE,YAAAA,IAAI,EAAE,OAHH;AAIHQ,YAAAA,SAAS,EAAEmB,cAAc,CAAC6C,cAAD,CAJtB;AAKHtE,YAAAA,MAAM,EAAEqE,SAAS,CAACrE,MAAV,CAAiBC,GAAjB,CAAqB,UAASsE,SAAT,EAAoBC,cAApB,EAAoC;AAC7D,qBAAO,CACHpB,iBAAiB,CAACoB,cAAD,CADd,EAEHD,SAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,CAArB;AAcH,OAfM,MAeA;AACHJ,QAAAA,kBAAkB,GAAGtD,cAAc,CAACZ,GAAf,CAAmB,UAASoE,SAAT,EAAoBC,cAApB,EAAmC;AACvE,iBAAO;AACHzE,YAAAA,GAAG,EAAEyE,cADF;AAEH;AACAxE,YAAAA,IAAI,EAAE,OAHH;AAIHQ,YAAAA,SAAS,EAAEmB,cAAc,CAAC6C,cAAD,CAJtB;AAKHtE,YAAAA,MAAM,EAAEqE,SAAS,CAACrE,MAAV,CAAiBC,GAAjB,CAAqB,UAASsE,SAAT,EAAoBC,cAApB,EAAoC;AAC7D,qBAAO,CACH7C,eAAe,CAAC6C,cAAD,CADZ,EAEHD,SAFG,CAAP;AAIH,aALO;AALL,WAAP;AAYH,SAboB,CAArB;AAcH,OA7EyI,CA+E1I;;;AACA,UAAI7E,2BAAJ,EAAiC;AAC7ByE,QAAAA,kBAAkB,GAAGA,kBAAkB,CAAC3B,MAAnB,CAA0B9C,2BAA1B,CAArB;AACH;;AACD,UAAIU,yBAAJ,EAA+B;AAC3B+D,QAAAA,kBAAkB,GAAGA,kBAAkB,CAAC3B,MAAnB,CAA0BpC,yBAA1B,CAArB;AACH;;AACD,UAAI4D,mCAAJ,EAAyC;AACrCG,QAAAA,kBAAkB,GAAGA,kBAAkB,CAAC3B,MAAnB,CAA0BwB,mCAA1B,CAArB;AACH;;AAED,aAAOG,kBAAP;AACH,KA3FmB,CApUc;AAialCM,IAAAA,uBAAuB,EAAE3F,KAAK,CAACa,QAAN,CAAe,qBAAf,EAAsC,qBAAtC,EAA6D,YAAW;AAC7F,YAAMyE,KAAK,GAAG,IAAd;AAAA,YACI5C,mBAAmB,GAAG,KAAK5B,GAAL,CAAS,qBAAT,CAD1B;AAAA,YAEI8B,mBAAmB,GAAG,KAAK9B,GAAL,CAAS,qBAAT,CAF1B;;AAKA,UAAI+B,eAAe,GAAG,KAAK/B,GAAL,CAAS,iBAAT,CAAtB;AAEA,UAAIyB,SAAS,GAAG,KAAKzB,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIE,IAAI,GAAG,KAAKF,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,CAAX;;AAEA,UAAGE,IAAI,KAAK,QAAZ,EAAsB;AAClB,YAAGuB,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAAxF,EAAuG;AACnG;AACAG,UAAAA,mBAAmB,CAACkD,OAApB,CAA4BC,OAAO,IAAIA,OAAO,CAAC3E,MAAR,CAAe,CAAf,IAAkB,CAAzD;AACH;AACJ;;AAGD,aAAO2B,eAAe,CAAC1B,GAAhB,CAAoB,UAAS2E,aAAT,EAAwBN,cAAxB,EAAuC;AAC9D,eAAO;AACHzE,UAAAA,GAAG,EAAE+E,aADF;AAEH;AACA9E,UAAAA,IAAI,EAAE,OAHH;AAIHE,UAAAA,MAAM,EAAEwB,mBAAmB,CAACvB,GAApB,CAAwB,UAASsE,SAAT,EAAoBC,cAApB,EAAoC;AAChE,mBAAO,CACH,qBAAQ9C,mBAAmB,CAAC8C,cAAD,CAA3B,EAA8CrE,OAA9C,EADG,EAEHoE,SAAS,CAACvE,MAAV,CAAiBsE,cAAjB,CAFG,CAAP;AAIH,WALO;AAJL,SAAP;AAWH,OAZM,EAYJ5D,MAZI,CAYG,WAZH,CAAP;AAaH,KAhCwB,CAjaS;AAmclCmE,IAAAA,QAAQ,EAAE/F,KAAK,CAACa,QAAN,CAAe,gBAAf,EAAiC,YAAW;AAClD,aAAO,KAAKC,GAAL,CAAS,gBAAT,EAA2BiC,MAAlC;AACH,KAFS,CAncwB;AAuclCiD,IAAAA,aAAa,EAAEhG,KAAK,CAACa,QAAN,CAAe,UAAf,EAA2B,YAAW;AACjD,aAAQ,SAAS,KAAKC,GAAL,CAAS,UAAT,IAAuB,CAAhC,CAAD,GAAwC,IAAI,EAAnD;AACH,KAFc,CAvcmB;AA2clCmF,IAAAA,kBAAkB,EAAEjG,KAAK,CAACa,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,aAAO,KAAKC,GAAL,CAAS,eAAT,EAA0BoF,KAA1B,CAAgCC,UAAvC;AACH,KAFmB,CA3cc;AA+clCC,IAAAA,WAAW,EAAEpG,KAAK,CAACa,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzD,UAAIoF,kBAAkB,GAAG,KAAKnF,GAAL,CAAS,oBAAT,CAAzB;AACA,UAAIuF,OAAO,GAAG,KAAKvF,GAAL,CAAS,OAAT,EAAkBoF,KAAlB,CAAwB,aAAxB,EAAuC;AAACI,QAAAA,KAAK,EAAEL,kBAAkB,CAACM,MAAnB,CAA0B,CAA1B,EAA6BN,kBAAkB,CAACO,WAAnB,CAA+B,GAA/B,CAA7B,EAAkEC,OAAlE,CAA0E,GAA1E,EAA8E,GAA9E;AAAR,OAAvC,CAAd;AACA,aAAOJ,OAAP;AACH,KAJY,CA/cqB;AAqdlCK,IAAAA,gBAAgB,EAAE,YAAW;AACzB,YAAMpB,KAAK,GAAG,IAAd;AAAA,YACID,kBAAkB,GAAGC,KAAK,CAACxE,GAAN,CAAU,oBAAV,CADzB;AAAA,YAEI6E,uBAAuB,GAAGL,KAAK,CAACxE,GAAN,CAAU,yBAAV,CAF9B;AAAA,YAGIsE,2BAA2B,GAAGE,KAAK,CAACxE,GAAN,CAAU,6BAAV,CAHlC;AAAA,YAIIL,yBAAyB,GAAG6E,KAAK,CAACxE,GAAN,CAAU,2BAAV,CAJhC;AAAA,YAKIJ,cAAc,GAAG4E,KAAK,CAACxE,GAAN,CAAU,gBAAV,CALrB;AAAA,YAMIH,4BAA4B,GAAG2E,KAAK,CAACxE,GAAN,CAAU,8BAAV,CANnC;;AASA,UAAIS,kBAAkB,GAAG,KAAKT,GAAL,CAAS,oBAAT,CAAzB;AAAA,UACIe,gBAAgB,GAAG,KAAKf,GAAL,CAAS,kBAAT,CADvB;AAAA,UAEI6F,YAAY,GAAG7B,EAAE,CAAC8B,MAAH,CAAU,MAAMtB,KAAK,CAACxE,GAAN,CAAU,SAAV,CAAN,GAA6B,kCAAvC,CAFnB;AAAA,UAGI+F,iBAAiB,GAAG/B,EAAE,CAAC8B,MAAH,CAAU,MAAMtB,KAAK,CAACxE,GAAN,CAAU,SAAV,CAAN,GAA6B,wCAAvC,CAHxB;AAAA,UAIIsF,WAAW,GAAG,KAAKtF,GAAL,CAAS,aAAT,CAJlB;AAAA,UAKIgG,gBAAgB,GAAG,CAACV,WAAD,CALvB,CAVyB,CAkBzB;;AACApG,MAAAA,KAAK,CAAC+G,IAAN,CAAWC,OAAX,CAAmBC,GAAnB,CAAuBH,gBAAvB,EAAyCI,IAAzC,CAA8C,UAASC,OAAT,EAAiB;AAC3D;AACA,YAAIb,KAAK,GAAG,EAAZ;;AACA,YAAIF,WAAJ,EAAiB;AACbA,UAAAA,WAAW,GAAGA,WAAW,CAACtF,GAAZ,CAAgB,aAAhB,CAAd,CADa,CAGb;;AACA,cAAIE,IAAI,GAAGsE,KAAK,CAAC8B,UAAN,CAAiBtG,GAAjB,CAAqB,kBAArB,EAAyCuG,QAAzC,EAAX;;AACA,cAAIhF,SAAS,GAAGiD,KAAK,CAACxE,GAAN,CAAU,WAAV,CAAhB;;AACAuB,UAAAA,SAAS,CAACuD,OAAV,CAAkB,UAAS5D,IAAT,EAAe;AAC7B,gBAAGA,IAAI,CAACsF,EAAL,KAAYtG,IAAf,EAAqB;AACjBqB,cAAAA,SAAS,GAAGL,IAAZ;AACA;AACH;AACJ,WALD;AAOA,cAAIuF,QAAQ,GAAG,EAAf;AACA,cAAIC,KAAK,GAAGnF,SAAS,CAACvB,GAAV,CAAc,OAAd,CAAZ;;AACA,kBAAOsF,WAAW,CAACtF,GAAZ,CAAgB,OAAhB,CAAP;AACI,iBAAK,cAAL;AACIyG,cAAAA,QAAQ,GAAGlF,SAAS,CAACvB,GAAV,CAAc,0BAAd,CAAX;AACA;;AACJ,iBAAK,UAAL;AACIyG,cAAAA,QAAQ,GAAGlF,SAAS,CAACvB,GAAV,CAAc,sBAAd,CAAX;AACA0G,cAAAA,KAAK,IAAI,MAAT;AACA;;AACJ,iBAAK,cAAL;AACID,cAAAA,QAAQ,GAAGlF,SAAS,CAACvB,GAAV,CAAc,0BAAd,CAAX;AACA0G,cAAAA,KAAK,IAAI,OAAT;AACA;;AACJ,iBAAK,QAAL;AACID,cAAAA,QAAQ,GAAGlF,SAAS,CAACvB,GAAV,CAAc,oBAAd,CAAX;AACA0G,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,aAAL;AACID,cAAAA,QAAQ,GAAGlF,SAAS,CAACvB,GAAV,CAAc,wBAAd,CAAX;AACA0G,cAAAA,KAAK,GAAG,OAAR;AACA;;AACJ,iBAAK,MAAL;AACID,cAAAA,QAAQ,GAAGlF,SAAS,CAACvB,GAAV,CAAc,kBAAd,CAAX;AACA;;AACJ,iBAAK,cAAL;AACIyG,cAAAA,QAAQ,GAAG,cAAX;AACAC,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,gBAAL;AACID,cAAAA,QAAQ,GAAG,gBAAX;AACAC,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,oBAAL;AACID,cAAAA,QAAQ,GAAG,oBAAX;AACA;;AACJ;AACIA,cAAAA,QAAQ,GAAG,SAAX;AAnCR;;AAsCA,cAAGnB,WAAW,CAACtF,GAAZ,CAAgB,OAAhB,MAA2B,MAA9B,EAAsC;AAClCwF,YAAAA,KAAK,GAAGiB,QAAQ,GAAG,OAAnB;AACH,WAFD,MAEO;AACHjB,YAAAA,KAAK,GAAGiB,QAAQ,GAAG,IAAX,GAAkBC,KAAlB,GAA0B,GAAlC;AACH;AACJ;;AAED,YAAIC,SAAS,GAAGC,EAAE,CAACC,MAAH,CAAUC,6BAAV,GACXC,MADW,CACJ;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADI,EAEXC,uBAFW,CAEa,KAFb,EAGXC,CAHW,CAGT,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHnB,EAIXC,CAJW,CAIT,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAJnB,EAKXE,cALW,CAKI,UAASF,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SALhC,EAMXnH,KANW,CAML6D,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EANK,EAOXsD,QAPW,CAOF,GAPE,EAQXC,SARW,CAQD,IARC,EASXC,UATW,CASA,IATA,EAUXhI,yBAVW,CAUeA,yBAVf,EAWXiI,SAXW,CAWD,IAXC,EAYXC,MAZW,CAYJ,gBAZI,CAAhB;AAgBA,YAAI5F,MAAM,GAAG,CAAb;;AACA,YAAI;AACAA,UAAAA,MAAM,GAAGuC,KAAK,CAAC8B,UAAN,CAAiBtG,GAAjB,CAAqB,kBAArB,CAAT;;AACA,cAAIE,IAAI,GAAGsE,KAAK,CAAC8B,UAAN,CAAiBtG,GAAjB,CAAqB,gBAArB,CAAX;;AACA,cAAIE,IAAI,KAAK,QAAb,EAAuB;AACnB+B,YAAAA,MAAM,GAAGA,MAAM,GAAG,IAAlB;AACH;AAEJ,SAPD,CAOE,OAAO6F,EAAP,EAAW,CAEZ;;AAED,YAAG7F,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,CAAjC,EAAoC;AAChCA,UAAAA,MAAM,GAAG,CAAT;AACH;;AAED0E,QAAAA,SAAS,CAACoB,MAAV,CAAiB,CAAC,CAAD,EAAI9F,MAAJ,CAAjB;AACZ;AACA;AACA;AACA;AACY;AACA;;AACA2E,QAAAA,EAAE,CAACoB,QAAH,CAAY,YAAW;AAEnBrB,UAAAA,SAAS,CAACsB,KAAV,CACKC,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGI;AACA;AACA;AACA;AACA;AAPJ;AASAxB,UAAAA,SAAS,CAACyB,KAAV,CACKC,SADL,CACe7C,KADf,EAEK8C,UAFL,CAEgBtE,EAAE,CAACrD,MAAH,CAAU,KAAV,CAFhB;AAIAgG,UAAAA,SAAS,CAAC4B,SAAV,CACKL,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGI;AAHJ,WAIKG,UAJL,CAIgB,UAAShB,CAAT,EAAY;AACpB,gBAAIzC,uBAAuB,CAAC5C,MAAxB,GAAiC,CAArC,EAAwC;AACpC,kBAAIuG,2BAA2B,GAAG3D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BzE,MAA3B,CAAkC6B,MAApE;AACA,qBAAO2E,EAAE,CAAC6B,KAAH,CAASC,sBAAT,CAAiC7D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BzE,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0EyE,uBAAuB,CAAC,CAAD,CAAvB,CAA2BzE,MAA3B,CAAkCoI,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAIG,IAAJ,CAASrB,CAAT,CAA/I,CAAP;AACH,aAHD,MAGO;AACH,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WAXL;AAaAX,UAAAA,SAAS,CAACiC,KAAV,CACK7B,MADL,CACY;AAACC,YAAAA,GAAG,EAAE,CAAN;AAASC,YAAAA,KAAK,EAAE,CAAhB;AAAmBC,YAAAA,MAAM,EAAE,CAA3B;AAA8BC,YAAAA,IAAI,EAAE;AAApC,WADZ,EAEK0B,IAFL,CAEU,EAFV,EAGKC,wBAHL,CAG8B,EAH9B,EAIKlJ,cAJL,CAIoBA,cAJpB,EAKKC,4BALL,CAKkCA,4BALlC,EAMKkJ,yBANL,CAM+B,KAN/B,EAOKC,SAPL,CAOe,CAPf,EA5BmB,CAqCnB;;AAEAnD,UAAAA,YAAY,CAACoD,KAAb,CAAmB1E,kBAAnB,EAAuC2E,IAAvC,CAA4CvC,SAA5C;AAEAA,UAAAA,SAAS,CAACwC,QAAV,CAAmBC,EAAnB,CAAsB,YAAtB,EAAoC,UAAUC,WAAV,EAAuB;AACvD7E,YAAAA,KAAK,CAAC8E,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACA7E,YAAAA,KAAK,CAAC8E,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AACA,gBAAI5J,cAAc,GAAG,qBAAO+E,KAAK,CAACxE,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCW,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAIjB,YAAY,GAAG,qBAAO8E,KAAK,CAACxE,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCW,MAAvC,CAA8C,yBAA9C,CAAnB;AAEAgG,YAAAA,SAAS,CAAC4C,OAAV,CAAkBC,MAAlB,CAAyB,IAAzB,EANuD,CAQvD;;AACAhF,YAAAA,KAAK,CAACiF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAACjK,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WAVF;AAYAiH,UAAAA,SAAS,CAACwC,QAAV,CAAmBC,EAAnB,CAAsB,OAAtB,EAA+B,UAAUC,WAAV,EAAuB;AAClD,gBAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B;AAC3B;AACAC,cAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoCR,WAAW,CAACM,MAAhD;AACH;AACH,WALF;;AAOA,mBAASG,kBAAT,CAA4BC,cAA5B,EAA4C;AAExC,gBAAI,OAAOA,cAAP,KAA0B,WAA9B,EAA2C;AACvC,qBAAO,KAAP;AACH;;AAED,gBAAIC,WAAW,GAAG,EAAlB;AAAA,gBACIC,YAAY,GAAG,EADnB;AAAA,gBAEIrJ,SAAS,GAAG,IAFhB;;AAKA,gBAAI,OAAOmJ,cAAP,KAA2B,QAA/B,EAAyC;AACrC,kBAAIA,cAAc,CAAC7J,IAAf,KAAwB,OAA5B,EAAqC;AACjC+J,gBAAAA,YAAY,GAAG,OAAf;AACArJ,gBAAAA,SAAS,GAAG,sCAAsCmJ,cAAc,CAAC/I,MAArD,GAA8D,SAA1E;AACH,eAHD,MAGO,IAAI+I,cAAc,CAAC7J,IAAf,KAAwB,SAA5B,EAAuC;AAC1C+J,gBAAAA,YAAY,GAAG,SAAf;AACArJ,gBAAAA,SAAS,GAAG,gDAAgDmJ,cAAc,CAAClJ,eAA/D,GAAiF,SAA7F;AACH,eAHM,MAGA,IAAIkJ,cAAc,CAAC7J,IAAf,KAAwB,OAA5B,EAAqC;AACxC+J,gBAAAA,YAAY,GAAG,OAAf;AACH;;AACDD,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACrJ,SAAvC,GAAmD,SAAnD,GACA,iCADA,GACoCqJ,cAAc,CAAC7J,IADnD,GAC0D,SAD1D,GAEAU,SAFd;AAIH,aAdD,MAcO;AACHoJ,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACrJ,SAAvC,GAAmD,SAAjE;AACH;;AAED,mBAAO;AACHuJ,cAAAA,YAAY,EAAEA,YADX;AAEHD,cAAAA,WAAW,EAAEA;AAFV,aAAP;AAKH;;AAEDrD,UAAAA,SAAS,CAACiC,KAAV,CAAgBO,QAAhB,CAAyBC,EAAzB,CAA4B,gBAA5B,EAA8C,UAAUc,cAAV,EAA0B;AACpE;AACA,gBAAKzJ,kBAAkB,CAACwB,MAAnB,IAA6BiI,cAAc,CAACC,MAAf,GAAwB,CAAC,CAA3D,EAA+D;AAC3DxD,cAAAA,SAAS,CAACiC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAACrJ,kBAAkB,CAACyJ,cAAc,CAACC,MAAhB,CAAnB,CAAnE;AACH;;AACD,gBAAKpJ,gBAAgB,CAACkB,MAAjB,IAA2BiI,cAAc,CAACG,MAAf,GAAwB,CAAC,CAAzD,EAA6D;AACzD1D,cAAAA,SAAS,CAACiC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAAC/I,gBAAgB,CAACmJ,cAAc,CAACG,MAAhB,CAAjB,CAAnE;AACH;;AAED,gBAAI,CAAC5J,kBAAkB,CAACwB,MAApB,IAA8B,CAAClB,gBAAgB,CAACkB,MAApD,EAA4D;AACxD,kBAAIqI,UAAU,GAAGJ,cAAc,CAACC,MAAhC;;AACA,kBAAIG,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGJ,cAAc,CAACG,MAA5B;AACH;;AAED,kBAAIE,oBAAoB,GAAG9J,kBAAkB,CAAC6J,UAAD,CAA7C;;AACA,kBAAI,CAACC,oBAAL,EAA2B;AACvBA,gBAAAA,oBAAoB,GAAGxJ,gBAAgB,CAACuJ,UAAD,CAAvC;AACH;;AACD3D,cAAAA,SAAS,CAACiC,KAAV,CAAgBO,QAAhB,CAAyBiB,sBAAzB,CAAiDN,kBAAkB,CAACS,oBAAD,CAAnE;AACH;AACJ,WArBD,EAhGmB,CAuHnB;;AACA3D,UAAAA,EAAE,CAAC6B,KAAH,CAAS+B,YAAT,CAAsB7D,SAAS,CAAC8D,MAAhC;AAEA9D,UAAAA,SAAS,CAACwC,QAAV,CAAmBC,EAAnB,CAAsB,aAAtB,EAAqC,UAASsB,CAAT,EAAY;AAAE9D,YAAAA,EAAE,CAAC+D,GAAH,CAAO,YAAP,EAAqBC,IAAI,CAACC,SAAL,CAAeH,CAAf,CAArB;AAA0C,WAA7F;AACA/D,UAAAA,SAAS,CAACmE,KAAV,CAAgB3B,QAAhB,CAAyBC,EAAzB,CAA4B,QAA5B,EAAsC,UAAS0B,KAAT,EAAe;AACjDlE,YAAAA,EAAE,CAAC+D,GAAH,CAAO,OAAP,EAAgBC,IAAI,CAACC,SAAL,CAAeC,KAAf,CAAhB;AACH,WAFD;AAIA,iBAAOnE,SAAP;AACH,SAhID,EAtG2D,CAwO3D;;AACA,YAAIiD,cAAc,GAAGhD,EAAE,CAACC,MAAH,CAAUkE,KAAV,CAAgBnE,EAAE,CAACC,MAAH,CAAUmE,IAAV,EAAhB,EACjBjE,MADiB,CACV;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADU,EAEhBE,CAFgB,CAEd,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAFd,EAGhBC,CAHgB,CAGd,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHd,EAIhBnH,KAJgB,CAIV6D,EAAE,CAACC,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAJU,EAKhB8G,YALgB,CAKH,KALG,EAMhBC,mBANgB,CAMI,IANJ,EAOhBtD,SAPgB,CAON,IAPM,EAQhBuD,SARgB,CAQN,KARM,CAArB;AAYAvE,QAAAA,EAAE,CAACoB,QAAH,CAAY,YAAW;AAEnB4B,UAAAA,cAAc,CAAC3B,KAAf,CACKE,UADL,CACgB,KADhB,EAEKG,UAFL,CAEgB,UAAShB,CAAT,EAAY;AACpB,gBAAIzC,uBAAuB,CAAC5C,MAAxB,GAAiC,CAArC,EAAwC;AACpC,kBAAIuG,2BAA2B,GAAG3D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BzE,MAA3B,CAAkC6B,MAApE;AACA,qBAAO2E,EAAE,CAAC6B,KAAH,CAASC,sBAAT,CAAiC7D,uBAAuB,CAAC,CAAD,CAAvB,CAA2BzE,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0EyE,uBAAuB,CAAC,CAAD,CAAvB,CAA2BzE,MAA3B,CAAkCoI,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAIG,IAAJ,CAASrB,CAAT,CAA/I,CAAP;AACH,aAHD,MAGO;AACH,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WATL;AAWAsC,UAAAA,cAAc,CAACxB,KAAf,CAAqBE,UAArB,CAAgCtE,EAAE,CAACrD,MAAH,CAAU,KAAV,CAAhC;AAEAoF,UAAAA,iBAAiB,CAACkD,KAAlB,CAAwBpE,uBAAxB,EAAiDqE,IAAjD,CAAsDU,cAAtD;AAGAA,UAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,YAA3B,EAAyC,UAAUC,WAAV,EAAuB;AAC5D7E,YAAAA,KAAK,CAAC8E,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACA7E,YAAAA,KAAK,CAAC8E,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AAEA,gBAAI5J,cAAc,GAAG,qBAAO+E,KAAK,CAACxE,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCW,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAIjB,YAAY,GAAG,qBAAO8E,KAAK,CAACxE,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCW,MAAvC,CAA8C,yBAA9C,CAAnB,CAL4D,CAO5D;;AACA6D,YAAAA,KAAK,CAACiF,KAAN,CAAYC,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAACjK,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WATF;AAWAkK,UAAAA,cAAc,CAACT,QAAf,CAAwBC,EAAxB,CAA2B,OAA3B,EAAoC,UAAUC,WAAV,EAAuB;AACvD,gBAAIA,WAAW,CAACM,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B,CAC3B;AACH;AACH,WAJF,EA7BmB,CAmCnB;;AACA/C,UAAAA,EAAE,CAAC6B,KAAH,CAAS+B,YAAT,CAAsBZ,cAAc,CAACa,MAArC,EApCmB,CAsCnB;;AACA,cAAIhL,cAAc,GAAG,qBAAO+E,KAAK,CAACiF,KAAN,CAAY2B,cAAZ,CAA2B,iBAA3B,CAAP,EAAsD7K,OAAtD,EAArB;AACA,cAAIb,YAAY,GAAG,qBAAO8E,KAAK,CAACiF,KAAN,CAAY2B,cAAZ,CAA2B,eAA3B,CAAP,EAAoD7K,OAApD,EAAnB;;AACA,cAAId,cAAc,IAAIC,YAAtB,EAAoC;AAChCkK,YAAAA,cAAc,CAACT,QAAf,CAAwBU,WAAxB,CAAoC,CAACpK,cAAD,EAAiBC,YAAjB,CAApC;AACH;;AAED,iBAAOkK,cAAP;AACH,SA9CD;AAgDH,OArSD;AAuSH;AA/wBiC,GAAvB,C;;;;;;;;;;;;;ACDf;iBAEeyB,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAElCC,IAAAA,KAAK,EAAEH,KAAK,CAACI,MAAN,CAAaC,OAAb,EAF2B;AAGlCC,IAAAA,OAAO,EAAE,gBAHyB;AAIlCC,IAAAA,cAAc,EAAE,IAJkB;AAKlCC,IAAAA,YAAY,EAAE,IALoB;AAMlCC,IAAAA,cAAc,EAAE,IANkB;AAOlCC,IAAAA,4BAA4B,EAAE,GAPI;AASlCC,IAAAA,2BAA2B,EAAEX,KAAK,CAACY,QAAN,CAAe,eAAf,EAAgC,YAAW;AACpE,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AAClD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf4B,CATK;AA0BlCQ,IAAAA,wBAAwB,EAAErB,KAAK,CAACY,QAAN,CAAe,YAAf,EAA6B,YAAW;AAC9D,UAAIU,MAAM,GAAG,KAAKT,GAAL,CAAS,YAAT,CAAb,CAD8D,CAE9D;AACA;;AACA,UAAK,KAAKA,GAAL,CAAS,YAAT,CAAL,EAA8B;AAC1B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,YAAT,EAAuBK,GAAvB,CAA2B,UAASC,KAAT,EAAgB;AAC/C,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,IAAV,CAAR,EAA0BO,OAA1B,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAlByB,CA1BQ;AA8ClCU,IAAAA,yBAAyB,EAAEvB,KAAK,CAACY,QAAN,CAAe,aAAf,EAA8B,YAAW;AAChE,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,eAAO,CAAC;AACJC,UAAAA,GAAG,EAAE,OADD;AAEJC,UAAAA,IAAI,EAAE,OAFF;AAGJC,UAAAA,KAAK,EAAE,SAHH;AAIJC,UAAAA,MAAM,EAAE,KAAKJ,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AAChD,mBAAO,CACH,qBAAQA,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCO,OAAjC,EADG,EAEHD,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAFlD,CAAP;AAIH,WALO;AAJJ,SAAD,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAf0B,CA9CO;AA+DlCW,IAAAA,kBAAkB,EAAExB,KAAK,CAACY,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,UAAK,KAAKC,GAAL,CAAS,eAAT,CAAL,EAAiC;AAC7B,eAAO,KAAKA,GAAL,CAAS,eAAT,EAA0BK,GAA1B,CAA8B,UAASC,KAAT,EAAgB;AACjD,iBAAO;AACHJ,YAAAA,IAAI,EAAE,SADH;AAEHU,YAAAA,IAAI,EAAEN,KAAK,CAACN,GAAN,CAAU,WAAV,CAFH;AAGHa,YAAAA,SAAS,EAAE,qBAAQP,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCc,MAAjC,CAAwC,uBAAxC,CAHR;AAIH;AACAC,YAAAA,SAAS,EAAET,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAL7D;AAMHgB,YAAAA,eAAe,EAAEV,KAAK,CAACN,GAAN,CAAU,iBAAV,CANd;AAOHiB,YAAAA,QAAQ,EAAEX,KAAK,CAACN,GAAN,CAAU,UAAV;AAPP,WAAP;AASH,SAVM,EAUJkB,MAVI,CAUG,MAVH,CAAP;AAWH;;AACD,aAAO,KAAP;AACH,KAfmB,CA/Dc;AAgFlCC,IAAAA,gBAAgB,EAAEhC,KAAK,CAACY,QAAN,CAAe,aAAf,EAA8B,YAAW;AACvD,UAAK,KAAKC,GAAL,CAAS,aAAT,CAAL,EAA+B;AAC3B,YAAIoB,QAAQ,GAAG,KAAKpB,GAAL,CAAS,aAAT,EAAwBK,GAAxB,CAA4B,UAASC,KAAT,EAAgB;AACvD;AACA,iBAAO;AACHJ,YAAAA,IAAI,EAAE,OADH;AAEHU,YAAAA,IAAI,EAAEN,KAAK,CAACN,GAAN,CAAU,WAAV,CAFH;AAGHa,YAAAA,SAAS,EAAE,qBAAQP,KAAK,CAACN,GAAN,CAAU,WAAV,CAAR,EAAiCc,MAAjC,CAAwC,uBAAxC,CAHR;AAIHC,YAAAA,SAAS,EAAET,KAAK,CAACN,GAAN,CAAU,MAAV,IAAqBM,KAAK,CAACN,GAAN,CAAU,MAAV,IAAoB,CAAC,EAAtB,GAA4B,EAAhD,GAAqD,EAJ7D;AAKHqB,YAAAA,MAAM,EAAEf,KAAK,CAACN,GAAN,CAAU,QAAV,CALL;AAMHiB,YAAAA,QAAQ,EAAEX,KAAK,CAACN,GAAN,CAAU,UAAV;AANP,WAAP;AAQH,SAVc,EAUZkB,MAVY,CAUL,MAVK,CAAf,CAD2B,CAY3B;;AACA,eAAOE,QAAP;AACH;;AACD,aAAO,KAAP;AACH,KAjBiB,CAhFgB;AAmGlCE,IAAAA,eAAe,EAAEnC,KAAK,CAACY,QAAN,CAAe,YAAf,EAA6B,YAAW;AACrD,UAAIU,MAAM,GAAG,KAAKT,GAAL,CAAS,YAAT,CAAb,CADqD,CAErD;;AACA,UAAKS,MAAL,EAAc;AACV,eAAOA,MAAM,CAACJ,GAAP,CAAW,UAASC,KAAT,EAAgB;AAC9B,iBAAO;AACHJ,YAAAA,IAAI,EAAE,SADH;AAEHU,YAAAA,IAAI,EAAEN,KAAK,CAACN,GAAN,CAAU,IAAV,CAFH;AAGHa,YAAAA,SAAS,EAAE,qBAAQP,KAAK,CAACN,GAAN,CAAU,IAAV,CAAR,EAA0Bc,MAA1B,CAAiC,uBAAjC,CAHR;AAIHS,YAAAA,GAAG,EAAEjB,KAAK,CAACN,GAAN,CAAU,KAAV,CAJF;AAKHwB,YAAAA,GAAG,EAAElB,KAAK,CAACN,GAAN,CAAU,KAAV,CALF;AAMHyB,YAAAA,IAAI,EAAEnB,KAAK,CAACN,GAAN,CAAU,WAAV;AANH,WAAP;AAQH,SATM,EASJkB,MATI,CASG,MATH,CAAP;AAUH;;AACD,aAAO,KAAP;AACH,KAhBgB,CAnGiB;AAqHlCQ,IAAAA,cAAc,EAAEvC,KAAK,CAACY,QAAN,CAAe,cAAf,EAA+B,UAAS4B,IAAT,EAAc;AACzD,UAAIC,YAAY,GAAG,KAAK5B,GAAL,CAAS,cAAT,EAAyBK,GAAzB,CAA6BsB,IAAI,IAAI;AACpD,YAAIE,SAAS,GAAGC,MAAM,CAACC,IAAP,CAAYJ,IAAI,CAACK,MAAL,EAAZ,CAAhB;AACA,YAAIC,SAAS,GAAGN,IAAI,CAACO,aAAL,CAAmBL,SAAnB,CAAhB,CAFoD,CAIpD;;AACA,YAAID,YAAY,GAAG,EAAnB;;AACA,aAAK,IAAI3B,GAAT,IAAgBgC,SAAhB,EAA2B;AACvBL,UAAAA,YAAY,CAAC3B,GAAD,CAAZ,GAAoBgC,SAAS,CAAChC,GAAD,CAA7B;AACH;;AACD,eAAO2B,YAAP;AACH,OAVkB,CAAnB,CADyD,CAazD;;AACA,UAAI,KAAK5B,GAAL,CAAS,gBAAT,EAA2BmC,MAA3B,IAAqC,CAAzC,EAA4C;AACxC,eAAO,EAAP;AACH,OAFD,MAEO;AACH,eAAOP,YAAP;AACH;AACJ,KAnBe,CArHkB;AA0IlCQ,IAAAA,cAAc,EAAEjD,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASsB,IAAT,EAAc;AAC9D,UAAIU,SAAS,GAAGP,MAAM,CAACC,IAAP,CAAYJ,IAAI,CAACK,MAAL,EAAZ,CAAhB;AACA,UAAIM,YAAY,GAAG,QAAnB;AAEA,UAAIL,SAAS,GAAGN,IAAI,CAACO,aAAL,CAAmBG,SAAnB,CAAhB;AAEA,UAAIE,SAAS,GAAG,KAAKvC,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIwC,SAAS,GAAG,KAAKC,KAAL,CAAWC,cAAX,CAA0B,YAA1B,CAAhB,CAP8D,CAS9D;;AACA,UAAIH,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAArF,IAAsGA,SAAS,KAAK,qBAApH,IAA6IA,SAAS,KAAK,uBAA/J,EAAwL;AACpL,YAAII,MAAM,GAAG,KAAK3C,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,QAA3B,CAAb;;AAEA,YAAI,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AACxE,cAAG2C,MAAH,EAAW;AACPV,YAAAA,SAAS,CAAC7B,MAAV,CAAiB,CAAjB,IAAsB6B,SAAS,CAAC7B,MAAV,CAAiB,CAAjB,CAAtB;AACH,WAFD,MAEO;AACH6B,YAAAA,SAAS,CAAC7B,MAAV,CAAiB,CAAjB,IAAsB,CAAtB;AACH;AACJ,SAND,MAMO,CACH;AACH;;AACD6B,QAAAA,SAAS,CAAC7B,MAAV,CAAiBwC,IAAjB,CAAsB,CAAtB;AACH,OAvB6D,CAwB9D;;;AACA,UAAGJ,SAAS,KAAK,OAAjB,EAA0B;AACtBP,QAAAA,SAAS,CAAC7B,MAAV,GAAmB6B,SAAS,CAAC7B,MAAV,CAAiBC,GAAjB,CAAqB,UAASsB,IAAT,EAAe;AACnD,iBAAOA,IAAI,GAAGW,YAAd;AACH,SAFkB,CAAnB;AAGH;;AACD,aAAOL,SAAP;AACH,KA/Be,CA1IkB;AA2KlCY,IAAAA,mBAAmB,EAAE1D,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASsB,IAAT,EAAc;AACxE,UAAIU,SAAS,GAAGP,MAAM,CAACC,IAAP,CAAYJ,IAAI,CAACK,MAAL,EAAZ,CAAhB;AAEA,aAAOL,IAAI,CAACO,aAAL,CAAmBG,SAAnB,CAAP;AACH,KAJoB,CA3Ka;;AAiLtC;AACA;AACA;AACA;AACA;AACA;AACIS,IAAAA,cAAc,EAAE3D,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,eAAnB,EAAoC,UAASsB,IAAT,EAAc;AAC9D,aAAOA,IAAI,CAAC3B,GAAL,CAAS,IAAT,CAAP;AACH,KAFe,CAvLkB;AA2LlC+C,IAAAA,mBAAmB,EAAE5D,KAAK,CAACY,QAAN,CAAeM,GAAf,CAAmB,oBAAnB,EAAyC,UAASsB,IAAT,EAAc;AACxE,aAAOA,IAAI,CAAC3B,GAAL,CAAS,IAAT,CAAP;AACH,KAFoB,CA3La;AA+LlCgD,IAAAA,eAAe,EAAE7D,KAAK,CAACY,QAAN,CAAe,YAAf,EAA6B,oBAA7B,EAAmD,YAAW;AAC3E,UAAIkD,QAAQ,GAAG,KAAKC,UAAL,CAAgBlD,GAAhB,CAAoB,gBAApB,EAAsCA,GAAtC,CAA0C,OAA1C,CAAf;;AACA,UAAGiD,QAAQ,KAAK,MAAhB,EAAwB;AACpB,eAAO,CAAC,GAAD,EAAK,GAAL,EAAS,GAAT,CAAP;AACH,OAFD,MAEO,IAAGA,QAAQ,KAAK,MAAhB,EAAwB;AAC3B,YAAIE,OAAO,GAAG,EAAd;AACA,YAAIC,QAAQ,GAAG,KAAKF,UAAL,CAAgBlD,GAAhB,CAAoB,UAApB,CAAf;AACA,YAAIqD,QAAQ,GAAG,CAAf;AACA,YAAIC,MAAM,GAAGF,QAAb;AACZ;AACA;AACA;AACA;AACA;AACA;;AAAe,aAAI,IAAIG,GAAG,GAAGF,QAAd,EAAwBE,GAAG,GAAGD,MAA9B,EAAsCC,GAAG,EAAzC,EAA6C;AAC5CJ,UAAAA,OAAO,CAACP,IAAR,CAAa,OAAOW,GAAG,GAAG,CAAb,CAAb;AACAJ,UAAAA,OAAO,CAACP,IAAR,CAAaW,GAAG,GAAG,CAAnB;AACH;;AACD,eAAOJ,OAAP;AACH,OAfM,MAeA,IAAGF,QAAQ,KAAK,SAAhB,EAA2B;AAC9B,eAAO,CAAC,MAAD,CAAP;AACH;;AACD,UAAIhB,SAAS,GAAG,KAAKjC,GAAL,CAAS,oBAAT,CAAhB;AACA,UAAIwD,eAAJ;;AACA,UAAI;AACAA,QAAAA,eAAe,GAAGvB,SAAS,CAACjC,GAAV,CAAc,aAAd,EAA6BgC,MAA7B,GAAsC5B,MAAtC,CAA6C+B,MAA/D;AACH,OAFD,CAEE,OAAOsB,KAAP,EAAc;AACZD,QAAAA,eAAe,GAAG,CAAlB;AACH;;AACD,UAAIL,OAAO,GAAG,KAAKnD,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAd;AAEA,UAAIgD,eAAe,GAAGG,OAAO,CAAC9C,GAAR,CAAY,UAASqD,MAAT,EAAgB;AAC9C,eAAOA,MAAM,CAAC1D,GAAP,CAAW,UAAX,CAAP;AACH,OAFqB,CAAtB,CA/B2E,CAmC3E;AAEA;;AACA,UAAIuC,SAAS,GAAG,KAAKvC,GAAL,CAAS,oBAAT,CAAhB;;AAEA,UAAIuC,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAArF,IAAsGA,SAAS,KAAK,qBAApH,IAA6IA,SAAS,KAAK,uBAA/J,EAAwL;AACpL,YAAIoB,SAAS,GAAG,EAAhB;;AACA,YAAI,KAAK3D,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AACxE;AACA,eAAI,IAAIuD,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,eAAe,CAACb,MAAvC,EAAgDoB,GAAG,EAAnD,EAAuD;AACnD,gBAAIK,GAAG,GAAG,CAACZ,eAAe,CAACO,GAAG,GAAG,CAAP,CAAf,GAA2BP,eAAe,CAACO,GAAD,CAA3C,IAAoD,CAA9D;AACAI,YAAAA,SAAS,CAACJ,GAAD,CAAT,GAAiB,CAAEK,GAAG,CAACC,OAAJ,CAAY,CAAZ,CAAnB;AACH,WALuE,CAOxE;AAEA;;;AACAF,UAAAA,SAAS,CAACG,MAAV,CAAiB,CAAjB,EAAmB,CAAnB;AACAH,UAAAA,SAAS,CAAC,CAAD,CAAT,GAAe,CAAf;AACAA,UAAAA,SAAS,CAACf,IAAV,CAAeI,eAAe,CAACA,eAAe,CAACb,MAAhB,GAAyB,CAA1B,CAA9B,EAZwE,CAYV;AAC9D;AACH,SAdD,MAcO,IAAI,KAAKnC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AAC/E;AACA;AACA,cAAI+D,aAAa,GAAG,KAAK/D,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,cAAIgE,WAAW,GAAG,CAACD,aAAD,CAAlB;AACA,cAAIE,YAAY,GAAG,CAACF,aAAD,CAAnB;AAEA,cAAIG,MAAM,GAAGlB,eAAe,CAACb,MAAhB,GAAyB,CAAtC;AACA+B,UAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAF,UAAAA,WAAW,GAAGA,WAAW,CAACK,MAAZ,CAAmBrB,eAAe,CAACsB,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAnB,CAAd;AACAD,UAAAA,YAAY,GAAGA,YAAY,CAACI,MAAb,CAAoBrB,eAAe,CAACsB,KAAhB,CAAsBJ,MAAM,GAAG,CAA/B,CAApB,CAAf;AAEAD,UAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkB,CAACD,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoC,CAAtD;AAEA,cAAIO,OAAO,GAAG,EAAd;;AACA,eAAI,IAAIhB,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGS,WAAW,CAAC7B,MAAZ,GAAqB,CAA5C,EAA+CoB,GAAG,EAAlD,EAAsD;AAClDgB,YAAAA,OAAO,CAAChB,GAAD,CAAP,GAAe,CAACS,WAAW,CAACT,GAAD,CAAX,GAAmBS,WAAW,CAACT,GAAG,GAAG,CAAP,CAA/B,IAA4C,CAA3D;AACH;;AAED,cAAIiB,QAAQ,GAAG,EAAf;;AACA,eAAI,IAAIjB,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGU,YAAY,CAAC9B,MAAb,GAAsB,CAA7C,EAAgDoB,GAAG,EAAnD,EAAuD;AACnDiB,YAAAA,QAAQ,CAACjB,GAAD,CAAR,GAAgB,CAACU,YAAY,CAACV,GAAD,CAAZ,GAAoBU,YAAY,CAACV,GAAG,GAAG,CAAP,CAAjC,IAA8C,CAA9D;AACH;;AAED,cAAIhB,SAAS,KAAK,qBAAd,IAAuCA,SAAS,KAAK,uBAArD,IAAgFA,SAAS,KAAK,aAAlG,EAAiH;AAC7G,gBAAG,KAAKvC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAH,EAA0C;AACtC2D,cAAAA,SAAS,GAAGY,OAAZ;;AACA,kBAAIhC,SAAS,KAAK,aAAlB,EAAiC;AAC7BoB,gBAAAA,SAAS,CAACf,IAAV,CAAe,KAAK5C,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,kBAA3B,IAAiD,IAAhE;AACH;AACJ,aALD,MAKO;AACH2D,cAAAA,SAAS,GAAGY,OAAO,CAACF,MAAR,CAAeG,QAAf,CAAZ;AACA;AACxB;AACA;;AACwB,kBAAIjC,SAAS,KAAK,uBAAlB,EAA2C;AACvCoB,gBAAAA,SAAS,CAACc,KAAV;AACAd,gBAAAA,SAAS,CAACe,GAAV;AACH;AAEJ;AACJ,WAjBD,MAiBO;AACHf,YAAAA,SAAS,GAAGY,OAAO,CAACF,MAAR,CAAeG,QAAf,CAAZ;AACH;;AACD,cAAIjC,SAAS,KAAK,eAAd,IAAiCA,SAAS,KAAK,oBAA/C,IAAuEA,SAAS,KAAK,aAAzF,EAAwG;AACpG,iBAAI,IAAIgB,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGI,SAAS,CAACxB,MAAjC,EAAyCoB,GAAG,EAA5C,EAAgD;AAC5CI,cAAAA,SAAS,CAACJ,GAAD,CAAT,GAAkBA,GAAG,GAAC,CAAL,GAAU,GAAV,GAAgBI,SAAS,CAACJ,GAAD,CAA1C;AACH;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAAoB;AACP,SA1DM,MA0DA;AACH,eAAI,IAAIA,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,eAAe,CAACb,MAAhB,GAAuB,CAA9C,EAAiDoB,GAAG,EAApD,EAAwD;AACpDI,YAAAA,SAAS,CAACJ,GAAD,CAAT,GAAiB,CAAC,CAACP,eAAe,CAACO,GAAD,CAAf,GAAuBP,eAAe,CAACO,GAAG,GAAG,CAAP,CAAvC,IAAoD,CAArD,EAAwDM,OAAxD,CAAgE,CAAhE,CAAjB;AACH;AACJ;;AACD,YAAGtB,SAAS,KAAG,qBAAf,EAAsC;AAClCoB,UAAAA,SAAS,CAACgB,OAAV,CAAkB,CAAlB;AACH;;AACD3B,QAAAA,eAAe,GAAGW,SAAlB;AACH,OAnFD,MAmFO,IAAIpB,SAAS,KAAK,2BAAd,IAA6C,KAAKvC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAjD,EAAwF;AAC3F,YAAI4D,GAAG,GAAG,CAACZ,eAAe,CAACb,MAAhB,GAAyB,CAA1B,IAA+B,CAAzC;;AACA,eAAOa,eAAe,CAACb,MAAhB,GAA0ByB,GAAG,GAAG,CAAvC,EAA2C;AACvCZ,UAAAA,eAAe,CAAC0B,GAAhB;AACH;;AACD1B,QAAAA,eAAe,CAAC,CAAD,CAAf,GAAqB,KAAKhD,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAArB;AACH,OANM,MAMA,IAAIuC,SAAS,KAAK,2BAAd,IAA6C,CAAC,KAAKvC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAlD,EAAyF;AAC5FgD,QAAAA,eAAe,CAAC4B,IAAhB,CAAqB,UAASC,CAAT,EAAWC,CAAX,EAAa;AAAC,iBAAOD,CAAC,GAACC,CAAT;AAAY,SAA/C,EAD4F,CAG5F;;AACA9B,QAAAA,eAAe,CAAC,CAAD,CAAf,GAAqB,KAAKhD,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAArB;AACH,OALM,MAKA;AACH,YAAI,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AACxE,cAAIuC,SAAS,KAAK,qBAAlB,EAAyC;AAAE;AACvC,gBAAIoB,SAAS,GAAG,EAAhB;AACA,gBAAII,aAAa,GAAG,KAAK/D,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,qBAA3B,CAApB;AACA,gBAAIgE,WAAW,GAAG,CAACD,aAAD,CAAlB;AACA,gBAAIE,YAAY,GAAG,CAACF,aAAD,CAAnB;AAEA,gBAAIG,MAAM,GAAGlB,eAAe,CAACb,MAAhB,GAAyB,CAAtC;AACA+B,YAAAA,MAAM,GAAGC,IAAI,CAACC,IAAL,CAAUF,MAAM,GAAG,CAAnB,CAAT;AAEAF,YAAAA,WAAW,GAAGA,WAAW,CAACK,MAAZ,CAAmBrB,eAAe,CAACsB,KAAhB,CAAsB,CAAtB,EAAyBJ,MAAM,GAAG,CAAlC,CAAnB,CAAd;AACAD,YAAAA,YAAY,GAAGA,YAAY,CAACI,MAAb,CAAoBrB,eAAe,CAACsB,KAAhB,CAAsBJ,MAAM,GAAG,CAA/B,CAApB,CAAf;;AAEA,gBAAG,CAAC,KAAKlE,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,SAA3B,CAAJ,EAA2C;AACvCiE,cAAAA,YAAY,CAAC,CAAD,CAAZ,GAAkB,CAACD,WAAW,CAAC,CAAD,CAAX,GAAiBA,WAAW,CAAC,CAAD,CAA7B,IAAoC,CAAtD;AACH;;AAED,gBAAIO,OAAO,GAAG,EAAd;;AACA,iBAAI,IAAIhB,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGS,WAAW,CAAC7B,MAAZ,GAAqB,CAA5C,EAA+CoB,GAAG,EAAlD,EAAsD;AAClDgB,cAAAA,OAAO,CAAChB,GAAD,CAAP,GAAe,CAACS,WAAW,CAACT,GAAD,CAAX,GAAmBS,WAAW,CAACT,GAAG,GAAG,CAAP,CAA/B,IAA4C,CAA3D;AACH;;AAED,gBAAIiB,QAAQ,GAAG,EAAf;;AACA,iBAAI,IAAIjB,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGU,YAAY,CAAC9B,MAAb,GAAsB,CAA7C,EAAgDoB,GAAG,EAAnD,EAAuD;AACnDiB,cAAAA,QAAQ,CAACjB,GAAD,CAAR,GAAgB,CAACU,YAAY,CAACV,GAAD,CAAZ,GAAoBU,YAAY,CAACV,GAAG,GAAG,CAAP,CAAjC,IAA8C,CAA9D;AACH;;AAEDI,YAAAA,SAAS,GAAGY,OAAO,CAACF,MAAR,CAAeG,QAAf,CAAZ;AACAxB,YAAAA,eAAe,GAAGW,SAAlB;AAEAX,YAAAA,eAAe,CAAC2B,OAAhB,CAAwB,CAAxB;AACH;;AACD,eAAI,IAAIpB,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,eAAe,CAACb,MAAhB,GAAyB,CAAhD,EAAmDoB,GAAG,EAAtD,EAA0D;AACtDP,YAAAA,eAAe,CAACO,GAAD,CAAf,GAAuBA,GAAG,GAAG,GAAN,GAAYP,eAAe,CAACO,GAAD,CAAlD;AACH;;AAED,eAAI,IAAIA,GAAG,GAAG,CAAd,EAAiBA,GAAG,GAAGP,eAAe,CAACb,MAAvC,EAA+CoB,GAAG,EAAlD,EAAsD;AAClDP,YAAAA,eAAe,CAACO,GAAD,CAAf,GAAuBA,GAAG,GAAG,GAAN,GAAYP,eAAe,CAACO,GAAD,CAAlD;AACH;AACJ;AACJ,OA/K0E,CAgL3E;;;AACA,aAAOP,eAAP;AACH,KAlLgB,CA/LiB;AAmXlC+B,IAAAA,kBAAkB,EAAE5F,KAAK,CAACY,QAAN,CAAe,gBAAf,EAAiC,gBAAjC,EAAmD,gBAAnD,EAAqE,6BAArE,EAAoG,2BAApG,EAAiI,0BAAjI,EAA6J,YAAW;AAC5L;AACQ,YAAMiF,KAAK,GAAG,IAAd;AAAA,YACAlF,2BAA2B,GAAG,KAAKE,GAAL,CAAS,6BAAT,CAD9B;AAAA,YAEAU,yBAAyB,GAAG,KAAKV,GAAL,CAAS,2BAAT,CAF5B;AAAA,YAGAQ,wBAAwB,GAAG,KAAKR,GAAL,CAAS,0BAAT,CAH3B;AAAA,YAIAoC,cAAc,GAAG,KAAKpC,GAAL,CAAS,gBAAT,CAJjB;AAAA,YAKA0B,cAAc,GAAG,KAAK1B,GAAL,CAAS,gBAAT,CALjB;AAAA,YAMA8C,cAAc,GAAG,KAAK9C,GAAL,CAAS,gBAAT,CANjB,CAFoL,CAWxL;AACA;;;AAEA,UAAIgD,eAAe,GAAG,KAAKhD,GAAL,CAAS,iBAAT,CAAtB;AAAA,UACI+E,kBAAkB,GAAG,EADzB;;AAGA,UAAG3C,cAAc,CAACD,MAAf,IAAyB,CAA5B,EAA+B;AAC3B,YAAI,KAAKnC,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,QAAlE,EAA4E;AACxE,cAAIiF,KAAK,GAAGD,KAAK,CAAChF,GAAN,CAAU,oBAAV,CAAZ;;AACA,cAAIiF,KAAK,KAAK,eAAV,IAA6BA,KAAK,KAAK,oBAAvC,IAA+DA,KAAK,KAAK,aAA7E,EAA4F;AACxF7C,YAAAA,cAAc,CAAC8C,OAAf,CAAuBC,OAAO,IAAIA,OAAO,CAAC/E,MAAR,CAAe,CAAf,IAAoB,CAAtD;AACH;AACJ,SAN0B,CAQ3B;AACA;AACA;AAEA;;;AACA,YAAI4E,KAAK,CAAChF,GAAN,CAAU,oBAAV,MAAoC,oBAAxC,EAA8D;AAC1D+E,UAAAA,kBAAkB,GAAG/B,eAAe,CAAC3C,GAAhB,CAAoB,UAAS+E,aAAT,EAAwBC,cAAxB,EAAuC;AAC5E,mBAAO;AACHpF,cAAAA,GAAG,EAAEmF,aADF;AAEH;AACAlF,cAAAA,IAAI,EAAE,OAHH;AAIHoF,cAAAA,KAAK,EAAE,CAJJ;AAKHlF,cAAAA,MAAM,EAAEgC,cAAc,CAAC/B,GAAf,CAAmB,UAASkF,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,uBAAO,CACH,qBAAQ1C,cAAc,CAAC0C,cAAD,CAAtB,EAAyCjF,OAAzC,EADG,EAEHgF,SAAS,CAACnF,MAAV,CAAiBiF,cAAjB,CAFG,CAAP;AAIH,eALO;AALL,aAAP;AAYH,WAboB,CAArB;AAcH,SAfD,MAeO;AACHN,UAAAA,kBAAkB,GAAG,CAAC;AAClB9E,YAAAA,GAAG,EAAE,MADa;AAElB;AACAC,YAAAA,IAAI,EAAE,OAHY;AAIlBoF,YAAAA,KAAK,EAAE,CAJW;AAKlBlF,YAAAA,MAAM,EAAEgC,cAAc,CAAC/B,GAAf,CAAmB,UAASkF,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,qBAAO,CACH,qBAAQ1C,cAAc,CAAC0C,cAAD,CAAtB,EAAyCjF,OAAzC,EADG,EAEHgF,SAAS,CAACnF,MAAV,CAAiB,CAAjB,CAFG,CAAP;AAIH,aALO;AALU,WAAD,CAArB;AAYH,SAzC0B,CA2C3B;AACA;;;AAEA,YAAI4E,KAAK,CAAChF,GAAN,CAAU,oBAAV,MAAoC,oBAAxC,EAA8D;AAC1D,cAAIgF,KAAK,CAAChF,GAAN,CAAU,oBAAV,MAAoC,qBAApC,IAA6D,KAAKA,GAAL,CAAS,YAAT,EAAuBA,GAAvB,CAA2B,gBAA3B,EAA6CA,GAA7C,CAAiD,OAAjD,MAA8D,SAA/H,EAAyI;AACrI,mBAAM0B,cAAc,CAACS,MAAf,GAAwBC,cAAc,CAACD,MAA7C,EAAqD;AACjDT,cAAAA,cAAc,CAACgD,GAAf;AACAhD,cAAAA,cAAc,CAAC+C,KAAf;AACH;AACJ;;AACD,cAAIgB,IAAI,GAAG;AAACxF,YAAAA,GAAG,EAAE,GAAN;AACPC,YAAAA,IAAI,EAAE,OADC;AAEPoF,YAAAA,KAAK,EAAE,CAFA;AAGPlF,YAAAA,MAAM,EAAEsB,cAAc,CAACrB,GAAf,CAAmB,UAASkF,SAAT,EAAoBC,cAApB,EAAoC;AAC3D,qBAAO,CACH,qBAAQ1C,cAAc,CAAC0C,cAAD,CAAtB,EAAyCjF,OAAzC,EADG,EAEHgF,SAAS,CAACnF,MAAV,CAAiB,CAAjB,CAFG,CAAP;AAIH,aALO;AAHD,WAAX,CAP0D,CAiB1D;;AACA2E,UAAAA,kBAAkB,CAACnC,IAAnB,CAAwB6C,IAAxB,EAlB0D,CAkB3B;AAC/B;AACH,SAlE0B,CAoE3B;;;AACA,YAAI3F,2BAAJ,EAAiC;AAC7BiF,UAAAA,kBAAkB,GAAGA,kBAAkB,CAACV,MAAnB,CAA0BvE,2BAA1B,CAArB;AACH;;AACD,YAAIY,yBAAJ,EAA+B;AAC3BqE,UAAAA,kBAAkB,GAAGA,kBAAkB,CAACV,MAAnB,CAA0B3D,yBAA1B,CAArB;AACH;;AACD,YAAIF,wBAAJ,EAA8B;AAC1BuE,UAAAA,kBAAkB,GAAGA,kBAAkB,CAACV,MAAnB,CAA0B7D,wBAA1B,CAArB;AACH;;AAED,eAAOuE,kBAAP;AAEH;;AACD,aAAO,EAAP;AACH,KApGmB,CAnXc;AAydlCW,IAAAA,uBAAuB,EAAEvG,KAAK,CAACY,QAAN,CAAe,qBAAf,EAAsC,qBAAtC,EAA6D,YAAW;AAC7F,YAAMiF,KAAK,GAAG,IAAd;AAAA,YACInC,mBAAmB,GAAG,KAAK7C,GAAL,CAAS,qBAAT,CAD1B;AAAA,YAEI+C,mBAAmB,GAAG,KAAK/C,GAAL,CAAS,qBAAT,CAF1B;;AAKA,UAAIgD,eAAe,GAAG,KAAKhD,GAAL,CAAS,iBAAT,CAAtB;AAEA,aAAOgD,eAAe,CAAC3C,GAAhB,CAAoB,UAAS+E,aAAT,EAAwBC,cAAxB,EAAuC;AAC9D,eAAO;AACHpF,UAAAA,GAAG,EAAEmF,aADF;AAEH;AACAlF,UAAAA,IAAI,EAAE,OAHH;AAIHE,UAAAA,MAAM,EAAEyC,mBAAmB,CAACxC,GAApB,CAAwB,UAASkF,SAAT,EAAoBC,cAApB,EAAoC;AAChE,mBAAO,CACH,qBAAQzC,mBAAmB,CAACyC,cAAD,CAA3B,EAA8CjF,OAA9C,EADG,EAEHgF,SAAS,CAACnF,MAAV,CAAiBiF,cAAjB,CAFG,CAAP;AAIH,WALO;AAJL,SAAP;AAWH,OAZM,EAYJnE,MAZI,CAYG,WAZH,CAAP;AAaH,KArBwB,CAzdS;AAgflCyE,IAAAA,kBAAkB,EAAExG,KAAK,CAACY,QAAN,CAAe,eAAf,EAAgC,YAAW;AAC3D,aAAO,KAAKC,GAAL,CAAS,eAAT,EAA0B4F,KAA1B,CAAgCC,UAAvC;AACH,KAFmB,CAhfc;AAoflCC,IAAAA,WAAW,EAAE3G,KAAK,CAACY,QAAN,CAAe,oBAAf,EAAqC,YAAW;AACzD,UAAI4F,kBAAkB,GAAG,KAAK3F,GAAL,CAAS,oBAAT,CAAzB;AACA,UAAI+F,OAAO,GAAG,KAAK/F,GAAL,CAAS,OAAT,EAAkBgG,WAAlB,CAA8B,aAA9B,EAA6C;AAACC,QAAAA,KAAK,EAAEN,kBAAkB,CAACO,MAAnB,CAA0B,CAA1B,EAA6BP,kBAAkB,CAACQ,WAAnB,CAA+B,GAA/B,CAA7B,EAAkEC,OAAlE,CAA0E,GAA1E,EAA8E,GAA9E;AAAR,OAA7C,CAAd;AACA,aAAOL,OAAP;AACH,KAJY,CApfqB;AA0flCM,IAAAA,gBAAgB,EAAE,YAAW;AACzB,YAAMrB,KAAK,GAAG,IAAd;AAAA,YACID,kBAAkB,GAAGC,KAAK,CAAChF,GAAN,CAAU,oBAAV,CADzB;AAAA,YAEI0F,uBAAuB,GAAGV,KAAK,CAAChF,GAAN,CAAU,yBAAV,CAF9B;AAAA,YAGIJ,cAAc,GAAGoF,KAAK,CAAChF,GAAN,CAAU,gBAAV,CAHrB;AAAA,YAIIH,4BAA4B,GAAGmF,KAAK,CAAChF,GAAN,CAAU,8BAAV,CAJnC;;AAOA,UAAIW,kBAAkB,GAAG,KAAKX,GAAL,CAAS,oBAAT,CAAzB;AAAA,UACImB,gBAAgB,GAAG,KAAKnB,GAAL,CAAS,kBAAT,CADvB;AAAA,UAEIsB,eAAe,GAAG,KAAKtB,GAAL,CAAS,iBAAT,CAFtB;AAAA,UAGIsG,YAAY,GAAGC,EAAE,CAACC,MAAH,CAAU,MAAMxB,KAAK,CAAChF,GAAN,CAAU,SAAV,CAAN,GAA6B,mCAAvC,CAHnB;AAAA,UAIIyG,iBAAiB,GAAGF,EAAE,CAACC,MAAH,CAAU,MAAMxB,KAAK,CAAChF,GAAN,CAAU,SAAV,CAAN,GAA6B,yCAAvC,CAJxB;AAAA,UAKI8F,WAAW,GAAG,KAAK9F,GAAL,CAAS,aAAT,CALlB;AAAA,UAMI0G,gBAAgB,GAAG,CAACZ,WAAD,CANvB,CARyB,CAiBzB;AAEA;;AACA3G,MAAAA,KAAK,CAACwH,IAAN,CAAWC,OAAX,CAAmBC,GAAnB,CAAuBH,gBAAvB,EAAyCI,IAAzC,CAA8C,UAASC,OAAT,EAAiB;AAC3D;AACA;AACA,YAAId,KAAK,GAAG,EAAZ;;AACA,YAAIH,WAAJ,EAAiB;AACbA,UAAAA,WAAW,GAAGA,WAAd,CADa,CACa;AAE1B;;AACA,cAAI5F,IAAI,GAAG8E,KAAK,CAAC9B,UAAN,CAAiBlD,GAAjB,CAAqB,kBAArB,EAAyCgH,QAAzC,EAAX;;AACA,cAAI/E,SAAS,GAAG+C,KAAK,CAAChF,GAAN,CAAU,WAAV,CAAhB;;AACAiC,UAAAA,SAAS,CAACiD,OAAV,CAAkB,UAASvD,IAAT,EAAe;AAC7B,gBAAGA,IAAI,CAACsF,EAAL,KAAY/G,IAAf,EAAqB;AACjB+B,cAAAA,SAAS,GAAGN,IAAZ;AACA;AACH;AACJ,WALD;;AAOA,cAAIsB,QAAQ,GAAG+B,KAAK,CAAC9B,UAAN,CAAiBlD,GAAjB,CAAqB,gBAArB,EAAuCA,GAAvC,CAA2C,OAA3C,CAAf;;AAEA,cAAIkH,QAAQ,GAAG,EAAf;AACA,cAAIC,KAAK,GAAGlF,SAAS,CAACjC,GAAV,CAAc,OAAd,CAAZ;AACAiG,UAAAA,KAAK,GAAG,EAAR;;AACA,cAAIhD,QAAQ,KAAK,SAAjB,EAA4B;AACxBgD,YAAAA,KAAK,GAAGjB,KAAK,CAAChF,GAAN,CAAU,oBAAV,CAAR;AACH,WAFD,MAEO;AACHiG,YAAAA,KAAK,GAAGH,WAAW,CAAC9F,GAAZ,CAAgB,OAAhB,CAAR;AACH;;AACD,cAAIwC,SAAS,GAAGwC,KAAK,CAACvC,KAAN,CAAYC,cAAZ,CAA2B,YAA3B,CAAhB,CAvBa,CAyBb;AACA;;;AACA,cAAGF,SAAS,IAAI,IAAb,IAAqBA,SAAS,IAAI4E,SAAlC,IAA+C5E,SAAS,IAAI,EAA/D,EAAmE;AAC/DyD,YAAAA,KAAK,GAAG,cAAR;AACH,WAFD,MAEO,IAAIzD,SAAS,KAAK,OAAlB,EAA0B;AAC7ByD,YAAAA,KAAK,GAAGzD,SAAR;AACH;;AAED,kBAAOyD,KAAP;AACI,iBAAK,cAAL;AACIiB,cAAAA,QAAQ,GAAGjF,SAAS,CAACjC,GAAV,CAAc,0BAAd,CAAX;AACA;;AACJ,iBAAK,UAAL;AACIkH,cAAAA,QAAQ,GAAGjF,SAAS,CAACjC,GAAV,CAAc,sBAAd,CAAX;AACAmH,cAAAA,KAAK,IAAI,MAAT;AACA;;AACJ,iBAAK,OAAL;AACID,cAAAA,QAAQ,GAAGjF,SAAS,CAACjC,GAAV,CAAc,0BAAd,CAAX;AACAmH,cAAAA,KAAK,GAAG,EAAR,CAFJ,CAEgB;;AACZ;;AACJ,iBAAK,QAAL;AACID,cAAAA,QAAQ,GAAGjF,SAAS,CAACjC,GAAV,CAAc,oBAAd,CAAX;AACAmH,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,aAAL;AACID,cAAAA,QAAQ,GAAGjF,SAAS,CAACjC,GAAV,CAAc,wBAAd,CAAX;AACAmH,cAAAA,KAAK,GAAG,OAAR;AACA;;AACJ,iBAAK,MAAL;AACID,cAAAA,QAAQ,GAAGjF,SAAS,CAACjC,GAAV,CAAc,kBAAd,CAAX;AACA;;AACJ,iBAAK,cAAL;AACIkH,cAAAA,QAAQ,GAAG,cAAX;AACAC,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,gBAAL;AACID,cAAAA,QAAQ,GAAG,gBAAX;AACAC,cAAAA,KAAK,GAAG,GAAR;AACA;;AACJ,iBAAK,oBAAL;AACID,cAAAA,QAAQ,GAAG,oBAAX;AACA;;AACJ,iBAAK,aAAL;AACIA,cAAAA,QAAQ,GAAG,aAAX;AACAC,cAAAA,KAAK,GAAG,IAAR;AACA;;AACJ,iBAAK,iBAAL;AACID,cAAAA,QAAQ,GAAG,iBAAX;AACA;;AACJ,iBAAK,WAAL;AACIA,cAAAA,QAAQ,GAAG,WAAX;AACA;;AACJ,iBAAK,WAAL;AACIA,cAAAA,QAAQ,GAAG,WAAX;AACA;;AACJ,iBAAK,4BAAL;AACIA,cAAAA,QAAQ,GAAG,sBAAX;AACA;;AACJ,iBAAK,sBAAL;AACIA,cAAAA,QAAQ,GAAG,gBAAX;AACA;;AACJ,iBAAK,sBAAL;AACIA,cAAAA,QAAQ,GAAG,gBAAX;AACA;;AACJ;AACIA,cAAAA,QAAQ,GAAG,SAAX;AACA;AA1DR;AA6DA;AAChB;AACA;AACA;AACA;AACA;;;AAEgB,cAAIpB,WAAJ,EAAiB;AACb,gBAAIuB,GAAG,GAAGrC,KAAK,CAACqC,GAAhB;;AACA,gBAAGvB,WAAW,CAAC9F,GAAZ,CAAgB,OAAhB,MAA2B,MAA9B,EAAsC;AAClCiG,cAAAA,KAAK,GAAGiB,QAAQ,GAAG,OAAnB;AACH,aAFD,MAEO,IAAIjE,QAAQ,KAAK,MAAjB,EAAyB;AAC5B,kBAAIoE,GAAG,KAAK,IAAZ,EAAkB;AACdpB,gBAAAA,KAAK,GAAG,gBAAR;AACH,eAFD,MAEO;AACHA,gBAAAA,KAAK,GAAG,mBAAR;AACH;AACJ,aANM,MAMA;AACH,kBAAGkB,KAAK,KAAK,EAAb,EAAiB;AACblB,gBAAAA,KAAK,GAAGiB,QAAR;AACH,eAFD,MAEO;AACHjB,gBAAAA,KAAK,GAAGiB,QAAQ,GAAG,IAAX,GAAkBC,KAAlB,GAA0B,GAAlC;AACH;AACJ;AACJ,WAjBD,MAiBO;AACH,gBAAIlE,QAAQ,KAAK,SAAjB,EAA4B;AACxBgD,cAAAA,KAAK,GAAGiB,QAAR;AACH,aAFD,MAEO;AACH,kBAAGC,KAAK,KAAK,EAAb,EAAiB;AACblB,gBAAAA,KAAK,GAAGiB,QAAR;AACH,eAFD,MAEO;AACHjB,gBAAAA,KAAK,GAAGiB,QAAQ,GAAI,IAAZ,GAAmBC,KAAnB,GAA2B,GAAnC;AACH;AACJ;AACJ,WAhIY,CAiIb;;AACH;;AAED,iBAASG,UAAT,CAAoBC,SAApB,EAA+B;AAC3B;AACA,kBAAOA,SAAP;AACI,iBAAK,WAAL;AACA,iBAAK,WAAL;AACI,qBAAO,IAAP;AAHR;;AAKA,iBAAO,KAAP;AACH,SAhJ0D,CAiJ3D;;;AACA,YAAIC,SAAS,GAAGC,EAAE,CAACC,MAAH,CAAUC,qBAAV,CAAgCL,UAAU,CAACtC,KAAK,CAAChF,GAAN,CAAU,oBAAV,CAAD,CAA1C,EACX4H,MADW,CACJ;AAACC,UAAAA,GAAG,EAAE,EAAN;AAAUC,UAAAA,KAAK,EAAE,EAAjB;AAAqBC,UAAAA,MAAM,EAAE,EAA7B;AAAiCC,UAAAA,IAAI,EAAE;AAAvC,SADI,EAEXC,uBAFW,CAEa,IAFb,EAGXC,CAHW,CAGT,UAASC,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAHnB,EAIXC,CAJW,CAIT,UAASD,CAAT,EAAY;AAAE,iBAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,SAJnB,EAKXhI,KALW,CAKLoG,EAAE,CAAC8B,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EALK,EAMXC,QANW,CAMF,GANE,EAOXC,SAPW,CAOD,IAPC,EAQXC,MARW,CAQJ,gBARI,CAAhB;AAWAlB,QAAAA,SAAS,CAACmB,MAAV,CAAiBf,MAAjB,CAAwB;AAACG,UAAAA,MAAM,EAAE;AAAT,SAAxB,EA7J2D,CA+J3D;AAEA;AACA;;AACAN,QAAAA,EAAE,CAACmB,QAAH,CAAY,YAAW;AAEnBpB,UAAAA,SAAS,CAACqB,KAAV,CACKC,WADL,CACiB,EADjB,EAEKC,UAFL,CAEgB,KAFhB,EAGKC,UAHL,CAGgB,UAASb,CAAT,EAAY;AACpB,gBAAIc,sBAAsB,GAAGlE,kBAAkB,CAAC,CAAD,CAAlB,CAAsB3E,MAAtB,CAA6B+B,MAA1D;AACA,mBAAOsF,EAAE,CAACyB,KAAH,CAASC,sBAAT,CAAiCpE,kBAAkB,CAAC,CAAD,CAAlB,CAAsB3E,MAAtB,CAA6B,CAA7B,EAAgC,CAAhC,CAAjC,EAAqE2E,kBAAkB,CAAC,CAAD,CAAlB,CAAsB3E,MAAtB,CAA6B6I,sBAAsB,GAAC,CAApD,EAAuD,CAAvD,CAArE,EAAgI,IAAIG,IAAJ,CAASjB,CAAT,CAAhI,CAAP;AACH,WANL;AAQAX,UAAAA,SAAS,CAAC6B,MAAV,CACKC,SADL,CACerD,KADf,EAEKsD,iBAFL,CAEuB,EAFvB;AAGA/B,UAAAA,SAAS,CAACgC,MAAV,CACKF,SADL,CACe,kBADf,EAEKC,iBAFL,CAEuB,EAFvB;AAGA/B,UAAAA,SAAS,CAACiC,KAAV,CACK7B,MADL,CACY;AAACC,YAAAA,GAAG,EAAE,CAAN;AAASC,YAAAA,KAAK,EAAE,CAAhB;AAAmBC,YAAAA,MAAM,EAAE,CAA3B;AAA8BC,YAAAA,IAAI,EAAE;AAApC,WADZ,EAEK0B,IAFL,CAEU,EAFV,EAGKC,wBAHL,CAG8B,CAH9B,EAIK/J,cAJL,CAIoBA,cAJpB,EAKKgK,mBALL,CAKyB,KALzB,EAMK/J,4BANL,CAMkCA,4BANlC,EAOKgK,yBAPL,CAO+B,KAP/B,EAQKC,SARL,CAQe,CARf;;AAWA,cAAI9E,KAAK,CAAC9B,UAAN,CAAiBlD,GAAjB,CAAqB,gBAArB,EAAuCA,GAAvC,CAA2C,OAA3C,MAAwD,MAA5D,EAAoE;AAChEwH,YAAAA,SAAS,CAAC6B,MAAV,CAAiBL,UAAjB,CAA4BzC,EAAE,CAACzF,MAAH,CAAU,KAAV,CAA5B;AACA0G,YAAAA,SAAS,CAACmB,MAAV,CAAiBoB,WAAjB,CAA6B,CAA7B;AACH,WAHD,MAGO;AACHvC,YAAAA,SAAS,CAAC6B,MAAV,CAAiBL,UAAjB,CAA4BzC,EAAE,CAACzF,MAAH,CAAU,KAAV,CAA5B;AACH;;AACD0G,UAAAA,SAAS,CAACgC,MAAV,CAAiBR,UAAjB,CAA4BzC,EAAE,CAACzF,MAAH,CAAU,KAAV,CAA5B;AAEAwF,UAAAA,YAAY,CAAC0D,KAAb,CAAmBjF,kBAAnB,EAAuCkF,IAAvC,CAA4CzC,SAA5C;AAEAA,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,YAAtB,EAAoC,UAAUC,WAAV,EAAuB;AACvDpF,YAAAA,KAAK,CAACqF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACApF,YAAAA,KAAK,CAACqF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AACA,gBAAI1K,cAAc,GAAG,qBAAOsF,KAAK,CAAChF,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCc,MAAzC,CAAgD,yBAAhD,CAArB;AACA,gBAAInB,YAAY,GAAG,qBAAOqF,KAAK,CAAChF,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCc,MAAvC,CAA8C,yBAA9C,CAAnB;AAEA0G,YAAAA,SAAS,CAAC8C,OAAV,CAAkBC,MAAlB,CAAyB,IAAzB,EANuD,CAQvD;;AACAvF,YAAAA,KAAK,CAACvC,KAAN,CAAY+H,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAAC9K,cAAD,EAAiBC,YAAjB,CAAnE;AACF,WAVF;AAYA6H,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,OAAtB,EAA+B,UAAUC,WAAV,EAAuB;AAClD,gBAAIA,WAAW,CAACK,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B;AAC3B;AACAC,cAAAA,cAAc,CAACR,QAAf,CAAwBS,WAAxB,CAAoCP,WAAW,CAACK,MAAhD;AACH;AACJ,WALD;;AAOA,mBAASG,cAAT,GAA0B;AACtBpD,YAAAA,SAAS,CAACvF,SAAV,CAAoBiD,OAApB,CAA4B,UAAS2F,MAAT,EAAiB;AAAEA,cAAAA,MAAM,CAACC,QAAP,GAAkB,KAAlB;AAA0B,aAAzE;AACH;;AAED,mBAASC,kBAAT,CAA4BC,cAA5B,EAA4C;AAExC,gBAAI,OAAOA,cAAP,KAA0B,WAA9B,EAA2C;AACvC,qBAAO,KAAP;AACH;;AAED,gBAAIC,WAAW,GAAG,EAAlB;AAAA,gBACIC,YAAY,GAAG,EADnB;AAAA,gBAEInK,SAAS,GAAG,IAFhB;;AAKA,gBAAI,OAAOiK,cAAP,KAA2B,QAA/B,EAAyC;AACrC,kBAAIA,cAAc,CAAC9K,IAAf,KAAwB,OAA5B,EAAqC;AACjCgL,gBAAAA,YAAY,GAAG,OAAf;AACAnK,gBAAAA,SAAS,GAAG,wCAAwCiK,cAAc,CAAC/J,QAAvD,GAAkE,gBAAlE,GAAqF+J,cAAc,CAAC3J,MAApG,GAA6G,SAAzH;AACH,eAHD,MAGO,IAAI2J,cAAc,CAAC9K,IAAf,KAAwB,SAA5B,EAAuC;AAC1CgL,gBAAAA,YAAY,GAAG,SAAf;AACAnK,gBAAAA,SAAS,GAAG,wCAAwCiK,cAAc,CAAC/J,QAAvD,GAAkE,0BAAlE,GAA+F+J,cAAc,CAAChK,eAA9G,GAAgI,SAA5I;AACH,eAHM,MAGA,IAAIgK,cAAc,CAAC9K,IAAf,KAAwB,SAA5B,EAAuC;AAC1CgL,gBAAAA,YAAY,GAAG,SAAf;AACAnK,gBAAAA,SAAS,GAAG,0CAA0CiK,cAAc,CAACxJ,GAAzD,GAA+D,0BAA/D,GAA4FwJ,cAAc,CAACzJ,GAA3G,GAAiH,wBAAjH,GAA4IyJ,cAAc,CAACvJ,IAA3J,GAAkK,SAA9K;AACH,eAHM,MAGA,IAAIuJ,cAAc,CAAC9K,IAAf,KAAwB,OAA5B,EAAqC;AACxCgL,gBAAAA,YAAY,GAAG,OAAf;AACH;;AACDD,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACnK,SAAvC,GAAmD,SAAnD,GACA,iCADA,GACoCmK,cAAc,CAAC9K,IADnD,GAC0D,SAD1D,GAEAa,SAFd;AAIH,aAjBD,MAiBO;AACHkK,cAAAA,WAAW,GAAG,wBAAwBD,cAAc,CAACnK,SAAvC,GAAmD,SAAjE;AACH;;AAED,mBAAO;AACHqK,cAAAA,YAAY,EAAEA,YADX;AAEHD,cAAAA,WAAW,EAAEA;AAFV,aAAP;AAIH;;AAEDzD,UAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBC,EAAzB,CAA4B,gBAA5B,EAA8C,UAAUgB,cAAV,EAA0B;AACpE;AACA;AACA;AAEA,gBAAK7J,eAAe,CAACa,MAAhB,IAA0BgJ,cAAc,CAACC,MAAf,GAAwB,CAAC,CAAxD,EAA4D;AACxD;AACA;AACA5D,cAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBmB,sBAAzB,CAAiDN,kBAAkB,CAACzJ,eAAe,CAAC6J,cAAc,CAACC,MAAhB,CAAhB,CAAnE;AACH;;AACD,gBAAKzK,kBAAkB,CAACwB,MAAnB,IAA6BgJ,cAAc,CAACG,MAAf,GAAwB,CAAC,CAA3D,EAA+D;AAC3D9D,cAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBmB,sBAAzB,CAAiDN,kBAAkB,CAACpK,kBAAkB,CAACwK,cAAc,CAACG,MAAhB,CAAnB,CAAnE;AACH;;AACD,gBAAKnK,gBAAgB,CAACgB,MAAjB,IAA2BgJ,cAAc,CAACI,MAAf,GAAwB,CAAC,CAAzD,EAA6D;AACzD/D,cAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBmB,sBAAzB,CAAiDN,kBAAkB,CAAC5J,gBAAgB,CAACgK,cAAc,CAACI,MAAhB,CAAjB,CAAnE;AACH;;AACD,gBAAI,CAAC5K,kBAAkB,CAACwB,MAApB,IAA8B,CAAChB,gBAAgB,CAACgB,MAAhD,IAA0D,CAACb,eAAe,CAACa,MAA/E,EAAuF;AACnF,kBAAIqJ,UAAU,GAAGL,cAAc,CAACG,MAAhC;AACA,kBAAIlK,QAAQ,GAAG,CAAf;;AACA,kBAAIoK,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGL,cAAc,CAACI,MAA5B;AACAnK,gBAAAA,QAAQ,GAAG,CAAX;AACH;;AACD,kBAAIoK,UAAU,KAAK,CAAC,CAApB,EAAuB;AACnBA,gBAAAA,UAAU,GAAGL,cAAc,CAACC,MAA5B;AACAhK,gBAAAA,QAAQ,GAAG,CAAX;AACH;;AAED,kBAAIqK,oBAAoB,GAAG9K,kBAAkB,CAAC6K,UAAD,CAA7C;;AACA,kBAAIpK,QAAQ,KAAG,CAAf,EAAkB;AACdqK,gBAAAA,oBAAoB,GAAGtK,gBAAgB,CAACqK,UAAD,CAAvC;AACH;;AACD,kBAAIpK,QAAQ,KAAG,CAAf,EAAkB;AACdqK,gBAAAA,oBAAoB,GAAGnK,eAAe,CAACkK,UAAD,CAAtC;AACH;;AACDhE,cAAAA,SAAS,CAACiC,KAAV,CAAgBS,QAAhB,CAAyBmB,sBAAzB,CAAiDN,kBAAkB,CAACU,oBAAD,CAAnE;AACH;AACJ,WArCD,EAlGmB,CAyInB;;AACAhE,UAAAA,EAAE,CAACyB,KAAH,CAASwC,YAAT,CAAsBlE,SAAS,CAACmE,MAAhC;AAEAnE,UAAAA,SAAS,CAAC0C,QAAV,CAAmBC,EAAnB,CAAsB,aAAtB,EAAqC,UAASyB,CAAT,EAAY;AAAEnE,YAAAA,EAAE,CAACoE,GAAH,CAAO,YAAP,EAAqBC,IAAI,CAACC,SAAL,CAAeH,CAAf,CAArB;AAA0C,WAA7F;AACApE,UAAAA,SAAS,CAACwE,KAAV,CAAgB9B,QAAhB,CAAyBC,EAAzB,CAA4B,QAA5B,EAAsC,UAAS6B,KAAT,EAAe;AACjDvE,YAAAA,EAAE,CAACoE,GAAH,CAAO,OAAP,EAAgBC,IAAI,CAACC,SAAL,CAAeC,KAAf,CAAhB;AACH,WAFD,EA7ImB,CAiJnB;;AACAhH,UAAAA,KAAK,CAACiH,UAAN,CAAiB,SAAjB,EAA2BlH,kBAA3B;;AACAC,UAAAA,KAAK,CAACiH,UAAN,CAAiB,UAAjB,EAA4BzE,SAA5B;;AAEA,iBAAOA,SAAP;AACH,SAtJD;AAuJH,OA1TD;;AA6TA,eAASF,UAAT,CAAoBC,SAApB,EAA+B;AAC3B;AACA,gBAAOA,SAAP;AACI,eAAK,WAAL;AACA,eAAK,WAAL;AACI,mBAAO,IAAP;AAHR;;AAKA,eAAO,KAAP;AACH;;AAED,UAAI2E,UAAU,GAAG,IAAjB;;AACA,UAAI5E,UAAU,CAACtC,KAAK,CAAChF,GAAN,CAAU,oBAAV,CAAD,CAAd,EAAiD;AAC7CkM,QAAAA,UAAU,GAAGzE,EAAE,CAACC,MAAH,CAAUyE,OAAV,EAAb;AACH,OAFD,MAEO;AACHD,QAAAA,UAAU,GAAGzE,EAAE,CAACC,MAAH,CAAU0E,IAAV,EAAb;AACH;;AAED,UAAI1B,cAAc,GAAGjD,EAAE,CAACC,MAAH,CAAU2E,KAAV,CAAgBH,UAAhB,EAChBtE,MADgB,CACT;AAACC,QAAAA,GAAG,EAAE,EAAN;AAAUC,QAAAA,KAAK,EAAE,EAAjB;AAAqBC,QAAAA,MAAM,EAAE,EAA7B;AAAiCC,QAAAA,IAAI,EAAE;AAAvC,OADS,EAEhBE,CAFgB,CAEd,UAASC,CAAT,EAAY;AAAE,eAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,OAFd,EAGhBC,CAHgB,CAGd,UAASD,CAAT,EAAY;AAAE,eAAOA,CAAC,CAAC,CAAD,CAAR;AAAc,OAHd,EAIhBhI,KAJgB,CAIVoG,EAAE,CAAC8B,KAAH,CAASC,UAAT,GAAsBC,KAAtB,EAJU,EAKhB+D,YALgB,CAKH,KALG,EAMhBC,mBANgB,CAMI,IANJ,EAOhBC,SAPgB,CAON,IAPM,EAQhBC,SARgB,CAQN,KARM,CAArB;AAWAhF,MAAAA,EAAE,CAACmB,QAAH,CAAY,YAAW;AAEnB8B,QAAAA,cAAc,CAAC7B,KAAf,CACKE,UADL,CACgB,KADhB,EAEKC,UAFL,CAEgB,UAASb,CAAT,EAAY;AACpB;AACA,cAAIzC,uBAAuB,CAACvD,MAAxB,GAAiC,CAArC,EAAwC;AACpC,gBAAIuK,2BAA2B,GAAGhH,uBAAuB,CAAC,CAAD,CAAvB,CAA2BtF,MAA3B,CAAkC+B,MAApE;;AACA,gBAAI;AACA,qBAAOsF,EAAE,CAACyB,KAAH,CAASC,sBAAT,CAAiCzD,uBAAuB,CAAC,CAAD,CAAvB,CAA2BtF,MAA3B,CAAkC,CAAlC,EAAqC,CAArC,CAAjC,EAA0EsF,uBAAuB,CAAC,CAAD,CAAvB,CAA2BtF,MAA3B,CAAkCsM,2BAA2B,GAAC,CAA9D,EAAiE,CAAjE,CAA1E,EAA+I,IAAItD,IAAJ,CAASjB,CAAT,CAA/I,CAAP;AACH,aAFD,CAEE,OAAOwE,EAAP,EAAW;AACT,qBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,WAPD,MAOO;AACH,mBAAO,CAAC,CAAD,EAAI,CAAJ,CAAP;AACH;AACJ,SAdL;AAiBAjC,QAAAA,cAAc,CAACpF,KAAf,CAAqB0D,UAArB,CAAgCzC,EAAE,CAACzF,MAAH,CAAU,KAAV,CAAhC;AAEA2F,QAAAA,iBAAiB,CAACuD,KAAlB,CAAwBtE,uBAAxB,EAAiDuE,IAAjD,CAAsDS,cAAtD;AAGAA,QAAAA,cAAc,CAACR,QAAf,CAAwBC,EAAxB,CAA2B,YAA3B,EAAyC,UAAUC,WAAV,EAAuB;AAC5DpF,UAAAA,KAAK,CAACqF,GAAN,CAAU,gBAAV,EAA4BD,WAAW,CAAC,CAAD,CAAvC;;AACApF,UAAAA,KAAK,CAACqF,GAAN,CAAU,cAAV,EAA0BD,WAAW,CAAC,CAAD,CAArC;;AACA,cAAI1K,cAAc,GAAG,qBAAOsF,KAAK,CAAChF,GAAN,CAAU,gBAAV,CAAP,EAAoC,GAApC,EAAyCc,MAAzC,CAAgD,yBAAhD,CAArB;AACA,cAAInB,YAAY,GAAG,qBAAOqF,KAAK,CAAChF,GAAN,CAAU,cAAV,CAAP,EAAkC,GAAlC,EAAuCc,MAAvC,CAA8C,yBAA9C,CAAnB,CAJ4D,CAM5D;;AACAkE,UAAAA,KAAK,CAACvC,KAAN,CAAY+H,gBAAZ,CAA6B,CAAC,iBAAD,EAAoB,eAApB,CAA7B,EAAmE,CAAC9K,cAAD,EAAiBC,YAAjB,CAAnE;AACF,SARF;AAUA+K,QAAAA,cAAc,CAACR,QAAf,CAAwBC,EAAxB,CAA2B,OAA3B,EAAoC,UAAUC,WAAV,EAAuB;AACvD,cAAIA,WAAW,CAACK,MAAZ,CAAmB,CAAnB,IAAwB,CAA5B,EAA+B,CAC3B;AACH;AACH,SAJF,EAlCmB,CAwCnB;;AACAhD,QAAAA,EAAE,CAACyB,KAAH,CAASwC,YAAT,CAAsBhB,cAAc,CAACiB,MAArC,EAzCmB,CA2CnB;;AACA,YAAIjM,cAAc,GAAG,qBAAOsF,KAAK,CAACvC,KAAN,CAAYC,cAAZ,CAA2B,iBAA3B,CAAP,EAAsDnC,OAAtD,EAArB;AACA,YAAIZ,YAAY,GAAG,qBAAOqF,KAAK,CAACvC,KAAN,CAAYC,cAAZ,CAA2B,eAA3B,CAAP,EAAoDnC,OAApD,EAAnB;;AACA,YAAIb,cAAc,IAAIC,YAAtB,EAAoC;AAChC+K,UAAAA,cAAc,CAACR,QAAf,CAAwBS,WAAxB,CAAoC,CAACjL,cAAD,EAAiBC,YAAjB,CAApC;AACH;;AAED,eAAO+K,cAAP;AACH,OAnDD;AAoDH;AA35BiC,GAAvB,C;;;;;;;;;;;;;iBCAAkC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,sBAAsB,EAAE,KADU;AAGlCC,IAAAA,iBAAiB,EAAEJ,KAAK,CAACK,QAAN,CAAe,kBAAf,EAAmC,YAAW;AAC7D;AACA,UAAIC,EAAE,GAAG,KAAKC,gBAAd;AACAD,MAAAA,EAAE,CAACE,OAAH,CAAW,UAASC,KAAT,EAAgB;AACvBA,QAAAA,KAAK,CAACC,MAAN,CAAaC,KAAb,GADuB,CAEvB;AACH,OAHD,EAH6D,CAO7D;;AACA,aAAOL,EAAP;AACH,KATkB,CAHe;AAclCM,IAAAA,eAAe,EAAEZ,KAAK,CAACK,QAAN,CAAe,YAAf,EAA6B,YAAW;AACrD,aAAM,CAAC,KAAD,CAAN;AACH,KAFgB,CAdiB;AAiBlCQ,IAAAA,OAAO,EAAE;AACLC,MAAAA,cAAc,CAACC,YAAD,EAAeC,aAAf,EAA8B;AACxC,aAAKC,GAAL,CAASF,YAAT,EAAuBC,aAAvB;AACH;;AAHI;AAjByB,GAAvB,C;;;;;;;;;;;;;iBCSAE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB,EAAvB,C;;;;;;;;;;;;;iBCAAC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB,CAClC;AACA;AACA;AACA;AACA;AACA;AACA;AAPkC,GAAvB,C;;;;;;;;;;;;;ACbf;AAGe,QAAMC,uBAAN,SAAsCC,kBAAtC,CAAgD;AAC/C,QAAVC,UAAU,GAAG;AACf,WAAKC,IAAL,CAAUC,KAAV,KAAoB,KAAKD,IAAL,CAAUE,WAA9B;AACD;;AAH4D;;;;;;;;;;;;;iBCChDC,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,OAAO,EAAE,sBADyB;AAElCC,IAAAA,kBAAkB,EAAE,sBAFc;;AAGlCC,IAAAA,IAAI,GAAG;AACH,WAAKC,MAAL,CAAY,GAAGC,SAAf;;AACAC,MAAAA,OAAO,CAACC,GAAR,CAAY,eAAZ;AACAD,MAAAA,OAAO,CAACC,GAAR,CAAY,KAAKC,GAAL,CAAS,cAAT,CAAZ;AACH,KAPiC;;AAQlCC,IAAAA,wBAAwB,EAAEX,KAAK,CAACY,QAAN,CAAe,YAAf,EAA6B,YAAW;AAC9D,UAAIC,iBAAiB,GAAG,KAAKH,GAAL,CAAS,YAAT,GAAwBN,kBAAxB,EAA4CU,OAApE;AACA,UAAGD,iBAAH,EACI,OAAO,CAACA,iBAAiB,CAACE,QAA1B;AACJ,aAAO,IAAP;AACH,KALyB,CARQ;AAclCC,IAAAA,aAAa,EAAEhB,KAAK,CAACY,QAAN,CAAe,EAAf,EAAmB,YAAW;AACzC,aAAO,KAAKF,GAAL,CAAS,cAAT,EAAyBO,uBAAhC;AACH,KAFc,CAdmB;AAiBlCC,IAAAA,YAAY,EAAElB,KAAK,CAACY,QAAN,CAAe,EAAf,EAAmB,YAAW;AACxC,aAAO,KAAKF,GAAL,CAAS,cAAT,EAAyBS,sBAAhC;AACH,KAFa,CAjBoB;AAoBlCC,IAAAA,UAAU,EAACpB,KAAK,CAACY,QAAN,CAAe,cAAf,EAA8B,YAAW;AAChD,aAAO,KAAKF,GAAL,CAAS,cAAT,GAA0BW,OAAjC;AACH,KAFU,CApBuB;AAwBlCC,IAAAA,WAAW,EAACtB,KAAK,CAACY,QAAN,CAAe,cAAf,EAA8B,YAAW;AACjD,aAAO,KAAKF,GAAL,CAAS,cAAT,GAA0Ba,QAAjC;AACH,KAFW,CAxBsB;AA2BlCC,IAAAA,WAAW,EAACxB,KAAK,CAACY,QAAN,CAAe,cAAf,EAA8B,YAAW;AACjD,aAAO,KAAKF,GAAL,CAAS,cAAT,GAA0Be,SAAjC;AACH,KAFW,CA3BsB;AA8BlCC,IAAAA,UAAU,EAAC1B,KAAK,CAACY,QAAN,CAAe,cAAf,EAA8B,YAAW;AAChD,aAAO,KAAKF,GAAL,CAAS,cAAT,GAA0BK,QAAjC;AACH,KAFU,CA9BuB;AAiClCY,IAAAA,eAAe,EAAE3B,KAAK,CAACY,QAAN,CAAe,cAAf,EAA8B,YAAU;AACrD,aAAO,KAAKF,GAAL,CAAS,cAAT,GAA0BkB,qBAAjC;AACH,KAFgB,CAjCiB;AAoClCC,IAAAA,OAAO,EAAE;AAELC,MAAAA,KAAK,GAAE;AACH,aAAKpB,GAAL,CAAS,YAAT;AACH,OAJI;;AAKLqB,MAAAA,IAAI,GAAE;AACF,YAAIC,IAAI,GAAC,EAAT;AACA,YAAIC,SAAS,GAAGC,QAAQ,CAACC,cAAT,CAAwB,gBAAxB,CAAhB;;AACA,YAAGF,SAAS,IAAI,IAAhB,EAAqB;AACjBD,UAAAA,IAAI,CAAC,SAAD,CAAJ,GAAkBC,SAAS,CAACG,KAA5B;AACH;;AAED,YAAIC,UAAU,GAAGH,QAAQ,CAACC,cAAT,CAAwB,iBAAxB,CAAjB;;AACA,YAAGE,UAAU,IAAI,IAAjB,EAAsB;AAClBL,UAAAA,IAAI,CAAC,UAAD,CAAJ,GAAmBK,UAAU,CAACD,KAA9B;AACH;;AAED,YAAIE,kBAAkB,GAAGJ,QAAQ,CAACC,cAAT,CAAwB,oBAAxB,CAAzB;;AACA,YAAGG,kBAAkB,IAAI,IAAzB,EAA8B;AAC1BN,UAAAA,IAAI,CAAC,cAAD,CAAJ,GAAuBM,kBAAkB,CAACC,OAA1C;AACH;;AACD,YAAIC,mBAAmB,GAAGN,QAAQ,CAACC,cAAT,CAAwB,qBAAxB,CAA1B;;AACA,YAAGK,mBAAmB,IAAI,IAA1B,EAA+B;AAC3BR,UAAAA,IAAI,CAAC,eAAD,CAAJ,GAAwBQ,mBAAmB,CAACD,OAA5C;AACH;;AAED,aAAK7B,GAAL,CAAS,WAAT,EAAsBsB,IAAtB;AACH;;AA3BI;AApCyB,GAAvB,C;;;;;ACJf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;iBCJeS,mBAAUC,MAAV,CAAiB;AAC5BC,IAAAA,OAAO,EAAE,sBADmB;AAE5BC,IAAAA,YAAY,EAAE,KAFc;AAG5BC,IAAAA,0BAA0B,EAAEC,KAAK,CAACC,QAAN,CAAe,cAAf,EAA+B,YAAW;AAClE,UAAI,KAAKC,GAAL,CAAS,cAAT,CAAJ,EAA8B;AAC1B,aAAKC,IAAL,CAAU,YAAV;AACH;AACJ,KAJ2B,CAHA;AAQ5BC,IAAAA,QAAQ,EAAE,IARkB;AAS5BC,IAAAA,KAAK,EAAE,IATqB;AAU5BC,IAAAA,YAAY,EAAE,eAAS;AACnBJ,MAAAA,GAAG,GAAG;AACF,eAAO;AACHK,UAAAA,OAAO,EAAE;AACLC,YAAAA,MAAM,EAAE,0BADH;AAELC,YAAAA,eAAe,EAAE,IAFZ;AAGLC,YAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AAHnC;AADN,SAAP;AAOH;;AATkB,KAAT,CAVc;AAqB5BC,IAAAA,YAAY,EAAE,EArBc;AAsB5BC,IAAAA,cAAc,EAAE,UAAST,KAAT,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;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACRA,WAASC,mBAAT,CAA6BC,KAA7B,EAAoC;AAChC,QAAIC,cAAc,GAAG;AACjB,sBAAgB,EADC;AAEjB,gBAAU,MAFO;AAGjB,mBAAa,IAHI;AAIjB,eAAS,IAJQ;AAKjB,kBAAY,MALK;AAMjB,kBAAY,IANK;AAOjB,gBAAU,EAPO;AAQjB,iBAAW,EARM;AASjB,oBAAc,IATG;AAUjB,sBAAgB,CAVC;AAWjB,gBAAU,KAXO;AAYjB,iBAAW,EAZM;AAajB,mBAAa,KAbI;AAcjB,kBAAY,KAdK;AAejB,sBAAgB,IAfC;AAgBjB,uBAAiB;AAhBA,KAArB;;AAkBAD,IAAAA,KAAK,CAACE,GAAN,CAAU,mBAAV,EAA8B,IAA9B;;AACAF,IAAAA,KAAK,CAACE,GAAN,CAAU,gBAAV,EAA4BD,cAA5B,EApBgC,CAqBhC;;AACH;;iBAEcE,KAAK,CAACC,SAAN,CAAgBC,MAAhB,CAAuB;AAClCC,IAAAA,IAAI,GAAG;AACH,WAAKC,MAAL,CAAY,GAAGC,SAAf;;AACAT,MAAAA,mBAAmB,CAAC,IAAD,CAAnB;AACH,KAJiC;;AAKlC;AACA;AACA;AACAU,IAAAA,KAAK,EAAEN,KAAK,CAACO,MAAN,CAAaC,OAAb,EAR2B;AASlCC,IAAAA,OAAO,EAAET,KAAK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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;iBCVeguB,KAAK,CAACC,MAAN,CAAaC,MAAb,CAAoB,gBAAoC;AAAA,QAA3B,CAACC,SAAD,EAAYC,YAAZ,CAA2B;AACrE,QAAIC,MAAM,GAAGF,SAAS,CAACG,QAAV,OAAyBF,YAAY,CAACE,QAAb,EAAtC;AACAC,IAAAA,OAAO,CAACC,GAAR,CAAa,4BAA2BL,SAAU,mBAAkBC,YAAa,aAAYC,MAAO,EAApG;AACA,WAAOA,MAAP;AACD,GAJc,C;;;;;;;;;;;;;iBCCA,oBAAO,SAASI,WAAT,CAAqBC;AAAM;AAA3B,IAAuC;AACzD,WAAO,uBAASC,MAAT,CAAgBD,MAAM,CAAC,CAAD,CAAtB,CAAP;AACH,GAFc,C;;;;;ACHf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;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AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AACA;AAEA;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;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;;AACO,iBAAeyE,6BAAf,CAA6C1L,OAA7C,EAAsD6D,IAAtD,EAAuF;AAAA,QAA3BC,oBAA2B,uEAAJ,EAAI;AAC1F,UAAMlB,QAAQ,GAAGpC,QAAQ,CAACC,cAAT,CAAwB,iCAAxB,CAAjB;AACA,QAAI,CAACmC,QAAL,EAAe;AACf,UAAMC,aAAa,GAAGC,OAAO,CAACiB,IAAR,CAAanB,QAAb,CAAtB,CAH0F,CAK1F;;AACA,UAAM+I,QAAQ,GAAG9H,IAAI,CAACI,GAAL,CAAS2D,CAAC,IAAI,CAACA,CAAC,CAAC5E,CAAH,EAAM4E,CAAC,CAAC3E,CAAR,EAAW2E,CAAC,CAAC1E,CAAb,CAAd,CAAjB;AAEA,UAAMiB,MAAM,GAAG;AACXC,MAAAA,OAAO,EAAE;AACLC,QAAAA,eAAe,EAAE,oBADZ;AAELC,QAAAA,SAAS,EAAE;AACPtD,UAAAA,KAAK,EAAE,MADA;AA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AOC,KAAK,CAAC,gBAAD,CAAL,CAAwB,OAAxB,CAAP;AACI,WAAK,SAAL;AACI,YAAIE,SAAS,GAAG,CAAC,UAAD,EAAa,QAAb,EAAuB,QAAvB,CAAhB;AACA,YAAIC,SAAS,GAAG,CAAE,QAAF,CAAhB;;AACA,gBAAOH,KAAK,CAAC,UAAD,CAAZ;AACI,eAAK,GAAL;AACI,mBAAOE,SAAS,CAACE,QAAV,CAAmBH,UAAnB,CAAP;;AACJ,eAAK,GAAL;AACI,mBAAOE,SAAS,CAACC,QAAV,CAAmBH,UAAnB,CAAP;;AACJ;AACI,mBAAO,IAAP;AANR;;AAQJ;AACI,eAAO,IAAP;AAbR,KAb8C,CA4B9C;;AACH;;iBAEcI,KAAK,CAACC,MAAN,CAAaC,MAAb,CAAoBT,yBAApB,C;;;;;AClCf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBO,WAASU,aAAT,CAAuBC,MAAvB,EAA+B;AAClC,QAAIA,MAAM,CAAC,CAAD,CAAN,IAAaA,MAAM,CAAC,CAAD,CAAvB,EAA4B;AACxB,aAAOA,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAzB;AACH;AACJ;;iBAEcC,KAAK,CAACC,MAAN,CAAaC,MAAb,CAAoBJ,aAApB,C;;;;;;;;;;;;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;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPO,iBAAeY,cAAf,CAA8BC,QAA9B,EAAuC;AAC1C,QAAI;AACA,UAAIC,GAAG,GAAG,kCAAkB,GAAlB,GAAwBD,QAAlC;AACA,YAAME,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAD,EAAM;AAChCG,QAAAA,MAAM,EAAE,KADwB;AAEhCC,QAAAA,OAAO,EAAE;AACL,0BAAgB,kBADX;AAELC,UAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AAFnC;AAFuB,OAAN,CAA5B;;AAOA,UAAGN,QAAH,EAAY;AACR,cAAMO,YAAY,GAAG,MAAMP,QAAQ,CAACQ,IAAT,EAA3B;AACA,eAAOD,YAAP;AACH;AACJ,KAbD,CAaE,OAAOE,KAAP,EAAc;AAChBC,MAAAA,OAAO,CAACD,KAAR,CAAc,uBAAd,EAAuCA,KAAvC;AACA,aAAO,KAAP;AACC;AACJ;;AACM,iBAAeE,eAAf,CAA+Bb,QAA/B,EAAyCc,IAAzC,EAA8C;AACjD,QAAI;AACA,UAAIb,GAAG,GAAG,kCAAkB,GAAlB,GAAwBD,QAAlC;AACA,YAAME,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAD,EAAM;AAChCG,QAAAA,MAAM,EAAE,MADwB;AAEhCC,QAAAA,OAAO,EAAE;AACL,0BAAgB,kBADX;AAELC,UAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AAFnC,SAFuB;AAMhCO,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeH,IAAf;AAN0B,OAAN,CAA5B;;AAQA,UAAGZ,QAAH,EAAY;AACR,cAAMO,YAAY,GAAG,MAAMP,QAAQ,CAACQ,IAAT,EAA3B;AACA,eAAOD,YAAP;AAEH;AAEJ,KAhBD,CAgBE,OAAOE,KAAP,EAAc;AACZC,MAAAA,OAAO,CAACD,KAAR,CAAc,wBAAd,EAAwCA,KAAxC;AACA,aAAO,KAAP;AACH;AACJ;;AACM,iBAAeO,gBAAf,CAAgClB,QAAhC,EAA0Cc,IAA1C,EAA+C;AAClD,QAAI;AACA,UAAIb,GAAG,GAAG,kCAAkB,GAAlB,GAAwBD,QAAlC;AACA,YAAME,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAD,EAAM;AAChCG,QAAAA,MAAM,EAAE,OADwB;AAEhCC,QAAAA,OAAO,EAAE;AACL,0BAAgB,kBADX;AAELC,UAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AAFnC,SAFuB;AAMhCO,QAAAA,IAAI,EAAEC,IAAI,CAACC,SAAL,CAAeH,IAAf;AAN0B,OAAN,CAA5B;;AAQA,UAAGZ,QAAH,EAAY;AACR,cAAMO,YAAY,GAAG,MAAMP,QAAQ,CAACQ,IAAT,EAA3B;AACA,eAAOD,YAAP;AACH;AAEJ,KAfD,CAeE,OAAOE,KAAP,EAAc;AACZC,MAAAA,OAAO,CAACD,KAAR,CAAc,yBAAd,EAAyCA,KAAzC;AACA,aAAO,IAAP;AACH;AACJ;;AACM,iBAAeQ,iBAAf,CAAiCnB,QAAjC,EAA0C;AAC7C,QAAI;AACA,UAAIC,GAAG,GAAG,kCAAkB,GAAlB,GAAwBD,QAAlC;AACA,YAAME,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAD,EAAM;AAChCG,QAAAA,MAAM,EAAE,QADwB;AAEhCC,QAAAA,OAAO,EAAE;AACL,0BAAgB,kBADX;AAELC,UAAAA,aAAa,EAAE,YAAYC,YAAY,CAACC;AAFnC;AAFuB,OAAN,CAA5B;;AAQA,UAAGN,QAAH,EAAY;AACR,cAAMO,YAAY,GAAG,MAAMP,QAAQ,CAACQ,IAAT,EAA3B;AACA,eAAOD,YAAP;AACH;AACJ,KAdD,CAcE,OAAOE,KAAP,EAAc;AACZC,MAAAA,OAAO,CAACD,KAAR,CAAc,6BAAd,EAA6CA,KAA7C;AACA,aAAO,IAAP;AACH;AACJ;;;ACtFD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACZO,iBAAeS,oBAAf,CAAoCC,OAApC,EAA4C;AAC/C,QAAIC,QAAQ,GAAG,8BAAf;AACAC,IAAAA,MAAM,CAACC,OAAP,CAAeH,OAAO,CAACI,GAAR,CAAY,eAAZ,CAAf,EAA6CC,OAA7C,CAAqD,OAAeC,KAAf,KAAyB;AAAA,UAAxB,CAACC,GAAD,EAAMC,KAAN,CAAwB;;AAC1E,UAAGA,KAAK,IAAI,IAAZ,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","file":"geotechnical-data-platform-new.js"}