{"version":3,"sources":["node_modules/geolib/es/constants.js","node_modules/geolib/es/getCoordinateKey.js","node_modules/geolib/es/isDecimal.js","node_modules/geolib/es/isSexagesimal.js","node_modules/geolib/es/sexagesimalToDecimal.js","node_modules/geolib/es/getCoordinateKeys.js","node_modules/geolib/es/isValidLatitude.js","node_modules/geolib/es/isValidLongitude.js","node_modules/geolib/es/isValidCoordinate.js","node_modules/geolib/es/toDecimal.js","node_modules/geolib/es/getLatitude.js","node_modules/geolib/es/getLongitude.js","node_modules/geolib/es/toRad.js","node_modules/geolib/es/toDeg.js","node_modules/geolib/es/computeDestinationPoint.js","node_modules/geolib/es/convertArea.js","node_modules/geolib/es/convertDistance.js","node_modules/geolib/es/convertSpeed.js","node_modules/geolib/es/decimalToSexagesimal.js","node_modules/geolib/es/robustAcos.js","node_modules/geolib/es/getDistance.js","node_modules/geolib/es/orderByDistance.js","node_modules/geolib/es/findNearest.js","node_modules/geolib/es/getAreaOfPolygon.js","node_modules/geolib/es/getBounds.js","node_modules/geolib/es/getBoundsOfDistance.js","node_modules/geolib/es/getCenter.js","node_modules/geolib/es/getCenterOfBounds.js","node_modules/geolib/es/getRhumbLineBearing.js","node_modules/geolib/es/getCompassDirection.js","node_modules/geolib/es/getDistanceFromLine.js","node_modules/geolib/es/getGreatCircleBearing.js","node_modules/geolib/es/getPathLength.js","node_modules/geolib/es/getPreciseDistance.js","node_modules/geolib/es/getRoughCompassDirection.js","node_modules/geolib/es/getSpeed.js","node_modules/geolib/es/isPointInLine.js","node_modules/geolib/es/isPointInPolygon.js","node_modules/geolib/es/isPointNearLine.js","node_modules/geolib/es/isPointWithinRadius.js","node_modules/geolib/es/wktToPolygon.js","node_modules/geolib/es/index.js","node_modules/pubnub/dist/web/pubnub.min.js","node_modules/@angular/material/fesm2022/progress-spinner.mjs","node_modules/@angular/material/fesm2022/legacy-progress-spinner.mjs","node_modules/@angular/material/fesm2022/legacy-slider.mjs","src/app/shared/shared-base/amg-ui/humanize.pipe.ts","src/lib/amg-humanize/amg-humanize.module.ts","src/store/pubnub/pubnub-store.model.ts","src/lib/amg-pubnub/components/pubnub-status/pubnub-status.component.ts","src/lib/amg-pubnub/components/pubnub-status/pubnub-status.component.html","src/lib/amg-pubnub/components/pubnub-message/pubnub-message.component.ts","src/lib/amg-pubnub/components/pubnub-message/pubnub-message.component.html","src/lib/amg-pubnub/components/pubnub-presence/pubnub-presence.component.ts","src/lib/amg-pubnub/components/pubnub-presence/pubnub-presence.component.html","src/lib/amg-pubnub/components/pubnub-subscribed-channels/pubnub-subscribed-channels.component.ts","src/lib/amg-pubnub/components/pubnub-subscribed-channels/pubnub-subscribed-channels.component.html","src/lib/amg-pubnub/components/pubnub-details/pubnub-details.component.ts","src/lib/amg-pubnub/components/pubnub-details/pubnub-details.component.html","src/lib/amg-pubnub/amg-pubnub.module.ts","src/app/shared/components/load-until/components/load-until/load-until.component.ts","src/app/shared/components/load-until/components/load-until/load-until.component.html","src/app/shared/components/load-until/load-until.directive.ts","src/app/shared/components/load-until/components/load-card/load-card.component.ts","src/app/shared/components/load-until/components/load-card/load-card.component.html","src/lib/tcs-load-until/tcs-load-until.module.ts","src/app/shared/components/loading/fadeInOut.animation.ts","node_modules/@angular/material/fesm2022/progress-bar.mjs","node_modules/@angular/material/fesm2022/legacy-progress-bar.mjs","src/app/shared/components/loading/components/loading/loading.component.ts","src/app/shared/components/loading/components/loading/loading.component.html","src/app/shared/components/loading/loading.factory.ts","src/app/shared/components/loading/loading.service.ts","src/app/shared/components/loading/loading.directive.ts","src/lib/tcs-loading/tcs-loading.module.ts","src/util/executor.ts","src/util/storage/session-storage.ts","src/lib/tcs-tabs/tabs.service.ts","src/app/shared/tick.service.ts","src/util/graphql/command-result.ts","src/util/graphql/mutation-actions.ts","src/app/shared/graphql/graphql-mutation-executor.service.ts","src/app/shared/graphql/graphql-mutations.service.ts","src/app/shared/components/client-sync-status/client-sync-status.component.ts","src/app/shared/components/client-sync-status/client-sync-status.component.html","src/lib/tcs-client-sync/tcs-client-sync.module.ts","src/util/angular/ng-navigation-fx.ts","src/app/shared/tcs-navigation.service.ts","src/util/helpers/date-helper.ts","src/store/entityStores/card-summary-selectors.ts","src/store/entityStores/external-action-selectors.ts","src/models/card-summary-view-model.ts","src/store/entityStores/timestamp-selectors.ts","src/util/lookup.ts","src/store/entityStores/communication-center-selectors.ts","src/models/control-zone-view-model.ts","src/app/ops/config/operation-type-config.ts","src/store/model-helpers.ts","src/store/entityStores/operation-selectors.ts","src/store/entityStores/trip-selectors.ts","src/store/entityStores/vehicle-selectors.ts","src/store/entityStores/vehicle-disposition-selector.ts","src/store/entityStores/tripleg-selectors.ts","src/store/entityStores/waypoint-selectors.ts","src/util/mapping/trip-leg-model-record.ts","src/store/entityStores/estimated-duration-selectors.ts","src/store/entityStores/request-selectors.ts","src/util/helpers/unit-helper.ts","src/models/unit-summary-view-model.ts","src/store/entityStores/unit-position-selectors.ts","src/store/entityStores/vehicle-unit-selectors.ts","src/models/unit-view-model.ts","src/app/ops/config/waypoint-type-config.ts","src/models/location-hazard-view-model.ts","src/models/timezone-view-model.ts","src/models/location-view-model.ts","src/models/waypoint-view-model.ts","src/models/position-report-view-model.ts","src/models/flight-following-report-view-model.ts","src/models/vehicle-disposition-view-model.ts","src/models/vehicle-model-view-model.ts","src/models/vehicle-make-view-model.ts","src/models/vehicle-view-model.ts","src/models/vehicle-summary-view-model.ts","src/models/active-alert-view-model.ts","src/models/base-view-model.ts","src/models/card-timeline-item-view-model.ts","src/models/notification-recipient-view-model.ts","src/models/view-model-helper.ts","src/store/entityStores/message-status-update-selectors.ts","src/store/entityStores/notification-recipient-selectors.ts","src/models/message-status-update-view-model.ts","src/models/notification-view-model.ts","src/models/timestamp-type-view-model.ts","src/models/timestamp-view-model.ts","src/store/entityStores/active-alert-selectors.ts","src/store/entityStores/medical-control-contact-log-entry-slector.ts","src/store/entityStores/notification-selectors.ts","src/store/entityStores/timestamp-type-selectors.ts","src/models/card-view-model.ts","src/models/company-view-model.ts","src/models/fbo-view-model.ts","src/models/medical-facility-contact-view-model.ts","src/models/medical-facility-view-model.ts","src/models/trip-leg-view-model.ts","src/models/manifest-entry-view-model.ts","src/store/entityStores/flight-following-report-selectors.ts","src/store/entityStores/trip-passenger-selectors.ts","src/store/entityStores/manifest-selectors.ts","src/models/trip-passenger-view-model.ts","src/models/trip-view-model.ts","src/models/operation-view-model.ts","src/models/region-view-model.ts","src/store/entityStores/rendezvous-request-selectors.ts","src/store/entityStores/card-link-selectors.ts","src/models/rendezvous-request-view-model.ts","src/models/request-location-view-model.ts","src/models/request-patient-view-model.ts","src/models/request-view-model.ts","src/models/requester-view-model.ts","src/store/entityStores/requester-selectors.ts","src/models/timeline-item-view-model.ts","src/models/transport-offer-view-model.ts","src/models/card-link-view-model.ts","src/lib/tcs-card-link/card-link-fetch.service.ts","src/app/shared/view-model.service.ts","src/app/shared/company-authorization.service.ts","src/lib/region-context-service/region-context.service.ts","src/app/shared/app-context/app-context.service.ts","src/lib/tcs-polling-service/polling.service.ts","node_modules/rxjs/dist/esm/internal/observable/dom/fetch.js","src/util/rxjs/operators/retry-backoff.ts","src/lib/tcs-network/tcs-network.service.ts","src/app/shared/pubnub/pubnub.service.ts","src/store/pubnub/pubnub-store.actions.ts","src/util/backpressure-queue/backpressure-queue-shared.ts","src/util/backpressure-queue/backpressure-queue.ts","src/app/shared/tcs-logging/app-insights-logger.ts","src/app/shared/tcs-logging/new-relic-logger.ts","src/app/shared/tcs-logging/cache-logger-cache.service.ts","node_modules/ngx-monaco-editor-v2/fesm2022/ngx-monaco-editor-v2.mjs","src/lib/tcs-editor/editor/editor.component.ts","src/lib/tcs-editor/editor/editor.component.html"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.areaConversion = exports.timeConversion = exports.distanceConversion = exports.altitudeKeys = exports.latitudeKeys = exports.longitudeKeys = exports.MAXLON = exports.MINLON = exports.MAXLAT = exports.MINLAT = exports.earthRadius = exports.sexagesimalPattern = void 0;\nvar sexagesimalPattern = /^([0-9]{1,3})°\\s*([0-9]{1,3}(?:\\.(?:[0-9]{1,}))?)['′]\\s*(([0-9]{1,3}(\\.([0-9]{1,}))?)[\"″]\\s*)?([NEOSW]?)$/;\nexports.sexagesimalPattern = sexagesimalPattern;\nvar earthRadius = 6378137;\nexports.earthRadius = earthRadius;\nvar MINLAT = -90;\nexports.MINLAT = MINLAT;\nvar MAXLAT = 90;\nexports.MAXLAT = MAXLAT;\nvar MINLON = -180;\nexports.MINLON = MINLON;\nvar MAXLON = 180;\nexports.MAXLON = MAXLON;\nvar longitudeKeys = [\"lng\", \"lon\", \"longitude\", 0];\nexports.longitudeKeys = longitudeKeys;\nvar latitudeKeys = [\"lat\", \"latitude\", 1];\nexports.latitudeKeys = latitudeKeys;\nvar altitudeKeys = [\"alt\", \"altitude\", \"elevation\", \"elev\", 2];\nexports.altitudeKeys = altitudeKeys;\nvar distanceConversion = {\n m: 1,\n km: 0.001,\n cm: 100,\n mm: 1000,\n mi: 1 / 1609.344,\n sm: 1 / 1852.216,\n ft: 100 / 30.48,\n in: 100 / 2.54,\n yd: 1 / 0.9144\n};\nexports.distanceConversion = distanceConversion;\nvar timeConversion = {\n m: 60,\n h: 3600,\n d: 86400\n};\nexports.timeConversion = timeConversion;\nvar areaConversion = {\n m2: 1,\n km2: 0.000001,\n ha: 0.0001,\n a: 0.01,\n ft2: 10.763911,\n yd2: 1.19599,\n in2: 1550.0031\n};\nexports.areaConversion = areaConversion;\nareaConversion.sqm = areaConversion.m2;\nareaConversion.sqkm = areaConversion.km2;\nareaConversion.sqft = areaConversion.ft2;\nareaConversion.sqyd = areaConversion.yd2;\nareaConversion.sqin = areaConversion.in2;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar getCoordinateKey = function getCoordinateKey(point, keysToLookup) {\n return keysToLookup.reduce(function (foundKey, key) {\n if (typeof point === \"undefined\" || point === null) {\n throw new Error(\"'\".concat(point, \"' is no valid coordinate.\"));\n }\n if (Object.prototype.hasOwnProperty.call(point, key) && typeof key !== \"undefined\" && typeof foundKey === \"undefined\") {\n foundKey = key;\n return key;\n }\n return foundKey;\n }, undefined);\n};\nvar _default = getCoordinateKey;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar isDecimal = function isDecimal(value) {\n var checkedValue = value.toString().trim();\n if (isNaN(parseFloat(checkedValue))) {\n return false;\n }\n return parseFloat(checkedValue) === Number(checkedValue);\n};\nvar _default = isDecimal;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar isSexagesimal = function isSexagesimal(value) {\n return _constants.sexagesimalPattern.test(value.toString().trim());\n};\nvar _default = isSexagesimal;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar sexagesimalToDecimal = function sexagesimalToDecimal(sexagesimal) {\n var data = new RegExp(_constants.sexagesimalPattern).exec(sexagesimal.toString().trim());\n if (typeof data === \"undefined\" || data === null) {\n throw new Error(\"Given value is not in sexagesimal format\");\n }\n var min = Number(data[2]) / 60 || 0;\n var sec = Number(data[4]) / 3600 || 0;\n var decimal = parseFloat(data[1]) + min + sec;\n return [\"S\", \"W\"].includes(data[7]) ? -decimal : decimal;\n};\nvar _default = sexagesimalToDecimal;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar _getCoordinateKey = _interopRequireDefault(require(\"./getCoordinateKey\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar getCoordinateKeys = function getCoordinateKeys(point) {\n var keysToLookup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n longitude: _constants.longitudeKeys,\n latitude: _constants.latitudeKeys,\n altitude: _constants.altitudeKeys\n };\n var longitude = (0, _getCoordinateKey.default)(point, keysToLookup.longitude);\n var latitude = (0, _getCoordinateKey.default)(point, keysToLookup.latitude);\n var altitude = (0, _getCoordinateKey.default)(point, keysToLookup.altitude);\n return _objectSpread({\n latitude: latitude,\n longitude: longitude\n }, altitude ? {\n altitude: altitude\n } : {});\n};\nvar _default = getCoordinateKeys;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _isDecimal = _interopRequireDefault(require(\"./isDecimal\"));\nvar _isSexagesimal = _interopRequireDefault(require(\"./isSexagesimal\"));\nvar _sexagesimalToDecimal = _interopRequireDefault(require(\"./sexagesimalToDecimal\"));\nvar _constants = require(\"./constants\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isValidLatitude = function isValidLatitude(value) {\n if ((0, _isDecimal.default)(value)) {\n if (parseFloat(value) > _constants.MAXLAT || value < _constants.MINLAT) {\n return false;\n }\n return true;\n }\n if ((0, _isSexagesimal.default)(value)) {\n return isValidLatitude((0, _sexagesimalToDecimal.default)(value));\n }\n return false;\n};\nvar _default = isValidLatitude;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _isDecimal = _interopRequireDefault(require(\"./isDecimal\"));\nvar _isSexagesimal = _interopRequireDefault(require(\"./isSexagesimal\"));\nvar _sexagesimalToDecimal = _interopRequireDefault(require(\"./sexagesimalToDecimal\"));\nvar _constants = require(\"./constants\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isValidLongitude = function isValidLongitude(value) {\n if ((0, _isDecimal.default)(value)) {\n if (parseFloat(value) > _constants.MAXLON || value < _constants.MINLON) {\n return false;\n }\n return true;\n }\n if ((0, _isSexagesimal.default)(value)) {\n return isValidLongitude((0, _sexagesimalToDecimal.default)(value));\n }\n return false;\n};\nvar _default = isValidLongitude;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getCoordinateKeys2 = _interopRequireDefault(require(\"./getCoordinateKeys\"));\nvar _isValidLatitude = _interopRequireDefault(require(\"./isValidLatitude\"));\nvar _isValidLongitude = _interopRequireDefault(require(\"./isValidLongitude\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isValidCoordinate = function isValidCoordinate(point) {\n var _getCoordinateKeys = (0, _getCoordinateKeys2.default)(point),\n latitude = _getCoordinateKeys.latitude,\n longitude = _getCoordinateKeys.longitude;\n if (Array.isArray(point) && point.length >= 2) {\n return (0, _isValidLongitude.default)(point[0]) && (0, _isValidLatitude.default)(point[1]);\n }\n if (typeof latitude === \"undefined\" || typeof longitude === \"undefined\") {\n return false;\n }\n var lon = point[longitude];\n var lat = point[latitude];\n if (typeof lat === \"undefined\" || typeof lon === \"undefined\") {\n return false;\n }\n if ((0, _isValidLatitude.default)(lat) === false || (0, _isValidLongitude.default)(lon) === false) {\n return false;\n }\n return true;\n};\nvar _default = isValidCoordinate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _isDecimal = _interopRequireDefault(require(\"./isDecimal\"));\nvar _isSexagesimal = _interopRequireDefault(require(\"./isSexagesimal\"));\nvar _sexagesimalToDecimal = _interopRequireDefault(require(\"./sexagesimalToDecimal\"));\nvar _isValidCoordinate = _interopRequireDefault(require(\"./isValidCoordinate\"));\nvar _getCoordinateKeys = _interopRequireDefault(require(\"./getCoordinateKeys\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nvar toDecimal = function toDecimal(value) {\n if ((0, _isDecimal.default)(value)) {\n return Number(value);\n }\n if ((0, _isSexagesimal.default)(value)) {\n return (0, _sexagesimalToDecimal.default)(value);\n }\n if ((0, _isValidCoordinate.default)(value)) {\n var keys = (0, _getCoordinateKeys.default)(value);\n if (Array.isArray(value)) {\n return value.map(function (v, index) {\n return [0, 1].includes(index) ? toDecimal(v) : v;\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, value), keys.latitude && _defineProperty({}, keys.latitude, toDecimal(value[keys.latitude]))), keys.longitude && _defineProperty({}, keys.longitude, toDecimal(value[keys.longitude])));\n }\n if (Array.isArray(value)) {\n return value.map(function (point) {\n return (0, _isValidCoordinate.default)(point) ? toDecimal(point) : point;\n });\n }\n return value;\n};\nvar _default = toDecimal;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar _getCoordinateKey = _interopRequireDefault(require(\"./getCoordinateKey\"));\nvar _toDecimal = _interopRequireDefault(require(\"./toDecimal\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getLatitude = function getLatitude(point, raw) {\n var latKey = (0, _getCoordinateKey.default)(point, _constants.latitudeKeys);\n if (typeof latKey === \"undefined\" || latKey === null) {\n return;\n }\n var value = point[latKey];\n return raw === true ? value : (0, _toDecimal.default)(value);\n};\nvar _default = getLatitude;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar _getCoordinateKey = _interopRequireDefault(require(\"./getCoordinateKey\"));\nvar _toDecimal = _interopRequireDefault(require(\"./toDecimal\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getLongitude = function getLongitude(point, raw) {\n var latKey = (0, _getCoordinateKey.default)(point, _constants.longitudeKeys);\n if (typeof latKey === \"undefined\" || latKey === null) {\n return;\n }\n var value = point[latKey];\n return raw === true ? value : (0, _toDecimal.default)(value);\n};\nvar _default = getLongitude;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar toRad = function toRad(value) {\n return value * Math.PI / 180;\n};\nvar _default = toRad;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar toDeg = function toDeg(value) {\n return value * 180 / Math.PI;\n};\nvar _default = toDeg;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _toDeg = _interopRequireDefault(require(\"./toDeg\"));\nvar _constants = require(\"./constants\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar computeDestinationPoint = function computeDestinationPoint(start, distance, bearing) {\n var radius = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 6371000;\n var lat = (0, _getLatitude.default)(start);\n var lng = (0, _getLongitude.default)(start);\n var delta = distance / radius;\n var theta = (0, _toRad.default)(bearing);\n var phi1 = (0, _toRad.default)(lat);\n var lambda1 = (0, _toRad.default)(lng);\n var phi2 = Math.asin(Math.sin(phi1) * Math.cos(delta) + Math.cos(phi1) * Math.sin(delta) * Math.cos(theta));\n var lambda2 = lambda1 + Math.atan2(Math.sin(theta) * Math.sin(delta) * Math.cos(phi1), Math.cos(delta) - Math.sin(phi1) * Math.sin(phi2));\n var longitude = (0, _toDeg.default)(lambda2);\n if (longitude < _constants.MINLON || longitude > _constants.MAXLON) {\n lambda2 = (lambda2 + 3 * Math.PI) % (2 * Math.PI) - Math.PI;\n longitude = (0, _toDeg.default)(lambda2);\n }\n return {\n latitude: (0, _toDeg.default)(phi2),\n longitude: longitude\n };\n};\nvar _default = computeDestinationPoint;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar convertArea = function convertArea(squareMeters) {\n var targetUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"m\";\n var factor = _constants.areaConversion[targetUnit];\n if (factor) {\n return squareMeters * factor;\n }\n throw new Error(\"Invalid unit used for area conversion.\");\n};\nvar _default = convertArea;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar convertDistance = function convertDistance(meters) {\n var targetUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"m\";\n var factor = _constants.distanceConversion[targetUnit];\n if (factor) {\n return meters * factor;\n }\n throw new Error(\"Invalid unit used for distance conversion.\");\n};\nvar _default = convertDistance;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _constants = require(\"./constants\");\nvar convertSpeed = function convertSpeed(metersPerSecond) {\n var targetUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"kmh\";\n switch (targetUnit) {\n case \"kmh\":\n return metersPerSecond * _constants.timeConversion.h * _constants.distanceConversion.km;\n case \"mph\":\n return metersPerSecond * _constants.timeConversion.h * _constants.distanceConversion.mi;\n default:\n return metersPerSecond;\n }\n};\nvar _default = convertSpeed;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nvar imprecise = function imprecise(number) {\n var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;\n var factor = Math.pow(10, decimals);\n return Math.round(number * factor) / factor;\n};\nvar decimal2sexagesimalNext = function decimal2sexagesimalNext(decimal) {\n var _decimal$toString$spl = decimal.toString().split(\".\"),\n _decimal$toString$spl2 = _slicedToArray(_decimal$toString$spl, 2),\n pre = _decimal$toString$spl2[0],\n post = _decimal$toString$spl2[1];\n var deg = Math.abs(Number(pre));\n var min0 = Number(\"0.\" + (post || 0)) * 60;\n var sec0 = min0.toString().split(\".\");\n var min = Math.floor(min0);\n var sec = imprecise(Number(\"0.\" + (sec0[1] || 0)) * 60).toString();\n var _sec$split = sec.split(\".\"),\n _sec$split2 = _slicedToArray(_sec$split, 2),\n secPreDec = _sec$split2[0],\n _sec$split2$ = _sec$split2[1],\n secDec = _sec$split2$ === void 0 ? \"0\" : _sec$split2$;\n return deg + \"\\xB0 \" + min.toString().padStart(2, \"0\") + \"' \" + secPreDec.padStart(2, \"0\") + \".\" + secDec.padEnd(1, \"0\") + \"\\\"\";\n};\nvar _default = decimal2sexagesimalNext;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar robustAcos = function robustAcos(value) {\n if (value > 1) {\n return 1;\n }\n if (value < -1) {\n return -1;\n }\n return value;\n};\nvar _default = robustAcos;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _robustAcos = _interopRequireDefault(require(\"./robustAcos\"));\nvar _constants = require(\"./constants\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getDistance = function getDistance(from, to) {\n var accuracy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n accuracy = typeof accuracy !== \"undefined\" && !isNaN(accuracy) ? accuracy : 1;\n var fromLat = (0, _getLatitude.default)(from);\n var fromLon = (0, _getLongitude.default)(from);\n var toLat = (0, _getLatitude.default)(to);\n var toLon = (0, _getLongitude.default)(to);\n var distance = Math.acos((0, _robustAcos.default)(Math.sin((0, _toRad.default)(toLat)) * Math.sin((0, _toRad.default)(fromLat)) + Math.cos((0, _toRad.default)(toLat)) * Math.cos((0, _toRad.default)(fromLat)) * Math.cos((0, _toRad.default)(fromLon) - (0, _toRad.default)(toLon)))) * _constants.earthRadius;\n return Math.round(distance / accuracy) * accuracy;\n};\nvar _default = getDistance;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getDistance = _interopRequireDefault(require(\"./getDistance\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar orderByDistance = function orderByDistance(point, coords) {\n var distanceFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _getDistance.default;\n distanceFn = typeof distanceFn === \"function\" ? distanceFn : _getDistance.default;\n return coords.slice().sort(function (a, b) {\n return distanceFn(point, a) - distanceFn(point, b);\n });\n};\nvar _default = orderByDistance;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _orderByDistance = _interopRequireDefault(require(\"./orderByDistance\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar findNearest = function findNearest(point, coords) {\n return (0, _orderByDistance.default)(point, coords)[0];\n};\nvar _default = findNearest;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _constants = require(\"./constants\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getAreaOfPolygon = function getAreaOfPolygon(points) {\n var area = 0;\n if (points.length > 2) {\n var lowerIndex;\n var middleIndex;\n var upperIndex;\n for (var i = 0; i < points.length; i++) {\n if (i === points.length - 2) {\n lowerIndex = points.length - 2;\n middleIndex = points.length - 1;\n upperIndex = 0;\n } else if (i === points.length - 1) {\n lowerIndex = points.length - 1;\n middleIndex = 0;\n upperIndex = 1;\n } else {\n lowerIndex = i;\n middleIndex = i + 1;\n upperIndex = i + 2;\n }\n var p1lon = (0, _getLongitude.default)(points[lowerIndex]);\n var p2lat = (0, _getLatitude.default)(points[middleIndex]);\n var p3lon = (0, _getLongitude.default)(points[upperIndex]);\n area += ((0, _toRad.default)(p3lon) - (0, _toRad.default)(p1lon)) * Math.sin((0, _toRad.default)(p2lat));\n }\n area = area * _constants.earthRadius * _constants.earthRadius / 2;\n }\n return Math.abs(area);\n};\nvar _default = getAreaOfPolygon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getBounds = function getBounds(points) {\n if (Array.isArray(points) === false || points.length === 0) {\n throw new Error(\"No points were given.\");\n }\n return points.reduce(function (stats, point) {\n var latitude = (0, _getLatitude.default)(point);\n var longitude = (0, _getLongitude.default)(point);\n return {\n maxLat: Math.max(latitude, stats.maxLat),\n minLat: Math.min(latitude, stats.minLat),\n maxLng: Math.max(longitude, stats.maxLng),\n minLng: Math.min(longitude, stats.minLng)\n };\n }, {\n maxLat: -Infinity,\n minLat: Infinity,\n maxLng: -Infinity,\n minLng: Infinity\n });\n};\nvar _default = getBounds;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _toDeg = _interopRequireDefault(require(\"./toDeg\"));\nvar _constants = require(\"./constants\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getBoundsOfDistance = function getBoundsOfDistance(point, distance) {\n var latitude = (0, _getLatitude.default)(point);\n var longitude = (0, _getLongitude.default)(point);\n var radLat = (0, _toRad.default)(latitude);\n var radLon = (0, _toRad.default)(longitude);\n var radDist = distance / _constants.earthRadius;\n var minLat = radLat - radDist;\n var maxLat = radLat + radDist;\n var MAX_LAT_RAD = (0, _toRad.default)(_constants.MAXLAT);\n var MIN_LAT_RAD = (0, _toRad.default)(_constants.MINLAT);\n var MAX_LON_RAD = (0, _toRad.default)(_constants.MAXLON);\n var MIN_LON_RAD = (0, _toRad.default)(_constants.MINLON);\n var minLon;\n var maxLon;\n if (minLat > MIN_LAT_RAD && maxLat < MAX_LAT_RAD) {\n var deltaLon = Math.asin(Math.sin(radDist) / Math.cos(radLat));\n minLon = radLon - deltaLon;\n if (minLon < MIN_LON_RAD) {\n minLon += Math.PI * 2;\n }\n maxLon = radLon + deltaLon;\n if (maxLon > MAX_LON_RAD) {\n maxLon -= Math.PI * 2;\n }\n } else {\n minLat = Math.max(minLat, MIN_LAT_RAD);\n maxLat = Math.min(maxLat, MAX_LAT_RAD);\n minLon = MIN_LON_RAD;\n maxLon = MAX_LON_RAD;\n }\n return [{\n latitude: (0, _toDeg.default)(minLat),\n longitude: (0, _toDeg.default)(minLon)\n }, {\n latitude: (0, _toDeg.default)(maxLat),\n longitude: (0, _toDeg.default)(maxLon)\n }];\n};\nvar _default = getBoundsOfDistance;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _toDeg = _interopRequireDefault(require(\"./toDeg\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getCenter = function getCenter(points) {\n if (Array.isArray(points) === false || points.length === 0) {\n return false;\n }\n var numberOfPoints = points.length;\n var sum = points.reduce(function (acc, point) {\n var pointLat = (0, _toRad.default)((0, _getLatitude.default)(point));\n var pointLon = (0, _toRad.default)((0, _getLongitude.default)(point));\n return {\n X: acc.X + Math.cos(pointLat) * Math.cos(pointLon),\n Y: acc.Y + Math.cos(pointLat) * Math.sin(pointLon),\n Z: acc.Z + Math.sin(pointLat)\n };\n }, {\n X: 0,\n Y: 0,\n Z: 0\n });\n var X = sum.X / numberOfPoints;\n var Y = sum.Y / numberOfPoints;\n var Z = sum.Z / numberOfPoints;\n return {\n longitude: (0, _toDeg.default)(Math.atan2(Y, X)),\n latitude: (0, _toDeg.default)(Math.atan2(Z, Math.sqrt(X * X + Y * Y)))\n };\n};\nvar _default = getCenter;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getBounds = _interopRequireDefault(require(\"./getBounds\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getCenterOfBounds = function getCenterOfBounds(coords) {\n var bounds = (0, _getBounds.default)(coords);\n var latitude = bounds.minLat + (bounds.maxLat - bounds.minLat) / 2;\n var longitude = bounds.minLng + (bounds.maxLng - bounds.minLng) / 2;\n return {\n latitude: parseFloat(latitude.toFixed(6)),\n longitude: parseFloat(longitude.toFixed(6))\n };\n};\nvar _default = getCenterOfBounds;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _toDeg = _interopRequireDefault(require(\"./toDeg\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getRhumbLineBearing = function getRhumbLineBearing(origin, dest) {\n var diffLon = (0, _toRad.default)((0, _getLongitude.default)(dest)) - (0, _toRad.default)((0, _getLongitude.default)(origin));\n var diffPhi = Math.log(Math.tan((0, _toRad.default)((0, _getLatitude.default)(dest)) / 2 + Math.PI / 4) / Math.tan((0, _toRad.default)((0, _getLatitude.default)(origin)) / 2 + Math.PI / 4));\n if (Math.abs(diffLon) > Math.PI) {\n if (diffLon > 0) {\n diffLon = (Math.PI * 2 - diffLon) * -1;\n } else {\n diffLon = Math.PI * 2 + diffLon;\n }\n }\n return ((0, _toDeg.default)(Math.atan2(diffLon, diffPhi)) + 360) % 360;\n};\nvar _default = getRhumbLineBearing;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getRhumbLineBearing = _interopRequireDefault(require(\"./getRhumbLineBearing\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getCompassDirection = function getCompassDirection(origin, dest) {\n var bearingFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _getRhumbLineBearing.default;\n var bearing = typeof bearingFn === \"function\" ? bearingFn(origin, dest) : (0, _getRhumbLineBearing.default)(origin, dest);\n if (isNaN(bearing)) {\n throw new Error(\"Could not calculate bearing for given points. Check your bearing function\");\n }\n switch (Math.round(bearing / 22.5)) {\n case 1:\n return \"NNE\";\n case 2:\n return \"NE\";\n case 3:\n return \"ENE\";\n case 4:\n return \"E\";\n case 5:\n return \"ESE\";\n case 6:\n return \"SE\";\n case 7:\n return \"SSE\";\n case 8:\n return \"S\";\n case 9:\n return \"SSW\";\n case 10:\n return \"SW\";\n case 11:\n return \"WSW\";\n case 12:\n return \"W\";\n case 13:\n return \"WNW\";\n case 14:\n return \"NW\";\n case 15:\n return \"NNW\";\n default:\n return \"N\";\n }\n};\nvar _default = getCompassDirection;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getDistance = _interopRequireDefault(require(\"./getDistance\"));\nvar _robustAcos = _interopRequireDefault(require(\"./robustAcos\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getDistanceFromLine = function getDistanceFromLine(point, lineStart, lineEnd) {\n var accuracy = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var d1 = (0, _getDistance.default)(lineStart, point, accuracy);\n var d2 = (0, _getDistance.default)(point, lineEnd, accuracy);\n var d3 = (0, _getDistance.default)(lineStart, lineEnd, accuracy);\n var alpha = Math.acos((0, _robustAcos.default)((d1 * d1 + d3 * d3 - d2 * d2) / (2 * d1 * d3)));\n var beta = Math.acos((0, _robustAcos.default)((d2 * d2 + d3 * d3 - d1 * d1) / (2 * d2 * d3)));\n if (alpha > Math.PI / 2) {\n return d1;\n }\n if (beta > Math.PI / 2) {\n return d2;\n }\n return Math.sin(alpha) * d1;\n};\nvar _default = getDistanceFromLine;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _toDeg = _interopRequireDefault(require(\"./toDeg\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getGreatCircleBearing = function getGreatCircleBearing(origin, dest) {\n var destLat = (0, _getLatitude.default)(dest);\n var detLon = (0, _getLongitude.default)(dest);\n var originLat = (0, _getLatitude.default)(origin);\n var originLon = (0, _getLongitude.default)(origin);\n var bearing = ((0, _toDeg.default)(Math.atan2(Math.sin((0, _toRad.default)(detLon) - (0, _toRad.default)(originLon)) * Math.cos((0, _toRad.default)(destLat)), Math.cos((0, _toRad.default)(originLat)) * Math.sin((0, _toRad.default)(destLat)) - Math.sin((0, _toRad.default)(originLat)) * Math.cos((0, _toRad.default)(destLat)) * Math.cos((0, _toRad.default)(detLon) - (0, _toRad.default)(originLon)))) + 360) % 360;\n return bearing;\n};\nvar _default = getGreatCircleBearing;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getDistance = _interopRequireDefault(require(\"./getDistance\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nvar getPathLength = function getPathLength(points) {\n var distanceFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _getDistance.default;\n return points.reduce(function (acc, point) {\n if (_typeof(acc) === \"object\" && acc.last !== null) {\n acc.distance += distanceFn(point, acc.last);\n }\n acc.last = point;\n return acc;\n }, {\n last: null,\n distance: 0\n }).distance;\n};\nvar _default = getPathLength;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _constants = require(\"./constants\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getDistance = function getDistance(start, end) {\n var accuracy = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n accuracy = typeof accuracy !== \"undefined\" && !isNaN(accuracy) ? accuracy : 1;\n var startLat = (0, _getLatitude.default)(start);\n var startLon = (0, _getLongitude.default)(start);\n var endLat = (0, _getLatitude.default)(end);\n var endLon = (0, _getLongitude.default)(end);\n var b = 6356752.314245;\n var ellipsoidParams = 1 / 298.257223563;\n var L = (0, _toRad.default)(endLon - startLon);\n var cosSigma;\n var sigma;\n var sinAlpha;\n var cosSqAlpha;\n var cos2SigmaM;\n var sinSigma;\n var U1 = Math.atan((1 - ellipsoidParams) * Math.tan((0, _toRad.default)(parseFloat(startLat))));\n var U2 = Math.atan((1 - ellipsoidParams) * Math.tan((0, _toRad.default)(parseFloat(endLat))));\n var sinU1 = Math.sin(U1);\n var cosU1 = Math.cos(U1);\n var sinU2 = Math.sin(U2);\n var cosU2 = Math.cos(U2);\n var lambda = L;\n var lambdaP;\n var iterLimit = 100;\n do {\n var sinLambda = Math.sin(lambda);\n var cosLambda = Math.cos(lambda);\n sinSigma = Math.sqrt(cosU2 * sinLambda * (cosU2 * sinLambda) + (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda) * (cosU1 * sinU2 - sinU1 * cosU2 * cosLambda));\n if (sinSigma === 0) {\n return 0;\n }\n cosSigma = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda;\n sigma = Math.atan2(sinSigma, cosSigma);\n sinAlpha = cosU1 * cosU2 * sinLambda / sinSigma;\n cosSqAlpha = 1 - sinAlpha * sinAlpha;\n cos2SigmaM = cosSigma - 2 * sinU1 * sinU2 / cosSqAlpha;\n if (isNaN(cos2SigmaM)) {\n cos2SigmaM = 0;\n }\n var C = ellipsoidParams / 16 * cosSqAlpha * (4 + ellipsoidParams * (4 - 3 * cosSqAlpha));\n lambdaP = lambda;\n lambda = L + (1 - C) * ellipsoidParams * sinAlpha * (sigma + C * sinSigma * (cos2SigmaM + C * cosSigma * (-1 + 2 * cos2SigmaM * cos2SigmaM)));\n } while (Math.abs(lambda - lambdaP) > 1e-12 && --iterLimit > 0);\n if (iterLimit === 0) {\n return NaN;\n }\n var uSq = cosSqAlpha * (_constants.earthRadius * _constants.earthRadius - b * b) / (b * b);\n var A = 1 + uSq / 16384 * (4096 + uSq * (-768 + uSq * (320 - 175 * uSq)));\n var B = uSq / 1024 * (256 + uSq * (-128 + uSq * (74 - 47 * uSq)));\n var deltaSigma = B * sinSigma * (cos2SigmaM + B / 4 * (cosSigma * (-1 + 2 * cos2SigmaM * cos2SigmaM) - B / 6 * cos2SigmaM * (-3 + 4 * sinSigma * sinSigma) * (-3 + 4 * cos2SigmaM * cos2SigmaM)));\n var distance = b * A * (sigma - deltaSigma);\n return Math.round(distance / accuracy) * accuracy;\n};\nvar _default = getDistance;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar getRoughCompassDirection = function getRoughCompassDirection(exact) {\n if (/^(NNE|NE|NNW|N)$/.test(exact)) {\n return \"N\";\n }\n if (/^(ENE|E|ESE|SE)$/.test(exact)) {\n return \"E\";\n }\n if (/^(SSE|S|SSW|SW)$/.test(exact)) {\n return \"S\";\n }\n if (/^(WSW|W|WNW|NW)$/.test(exact)) {\n return \"W\";\n }\n};\nvar _default = getRoughCompassDirection;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getDistance = _interopRequireDefault(require(\"./getDistance\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar getSpeed = function getSpeed(start, end) {\n var distanceFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _getDistance.default;\n var distance = distanceFn(start, end);\n var time = Number(end.time) - Number(start.time);\n var metersPerSecond = distance / time * 1000;\n return metersPerSecond;\n};\nvar _default = getSpeed;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getDistance = _interopRequireDefault(require(\"./getDistance\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isPointInLine = function isPointInLine(point, lineStart, lineEnd) {\n return (0, _getDistance.default)(lineStart, point) + (0, _getDistance.default)(point, lineEnd) === (0, _getDistance.default)(lineStart, lineEnd);\n};\nvar _default = isPointInLine;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isPointInPolygon = function isPointInPolygon(point, polygon) {\n var isInside = false;\n var totalPolys = polygon.length;\n for (var i = -1, j = totalPolys - 1; ++i < totalPolys; j = i) {\n if (((0, _getLongitude.default)(polygon[i]) <= (0, _getLongitude.default)(point) && (0, _getLongitude.default)(point) < (0, _getLongitude.default)(polygon[j]) || (0, _getLongitude.default)(polygon[j]) <= (0, _getLongitude.default)(point) && (0, _getLongitude.default)(point) < (0, _getLongitude.default)(polygon[i])) && (0, _getLatitude.default)(point) < ((0, _getLatitude.default)(polygon[j]) - (0, _getLatitude.default)(polygon[i])) * ((0, _getLongitude.default)(point) - (0, _getLongitude.default)(polygon[i])) / ((0, _getLongitude.default)(polygon[j]) - (0, _getLongitude.default)(polygon[i])) + (0, _getLatitude.default)(polygon[i])) {\n isInside = !isInside;\n }\n }\n return isInside;\n};\nvar _default = isPointInPolygon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getDistanceFromLine = _interopRequireDefault(require(\"./getDistanceFromLine\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isPointNearLine = function isPointNearLine(point, start, end, distance) {\n return (0, _getDistanceFromLine.default)(point, start, end) < distance;\n};\nvar _default = isPointNearLine;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _getDistance = _interopRequireDefault(require(\"./getDistance\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nvar isPointWithinRadius = function isPointWithinRadius(point, center, radius) {\n var accuracy = 0.01;\n return (0, _getDistance.default)(point, center, accuracy) < radius;\n};\nvar _default = isPointWithinRadius;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nvar wktToPolygon = function wktToPolygon(wkt) {\n if (!wkt.startsWith(\"POLYGON\")) {\n throw new Error(\"Invalid wkt.\");\n }\n var coordsText = wkt.slice(wkt.indexOf(\"(\") + 2, wkt.indexOf(\")\")).split(\", \");\n var polygon = coordsText.map(function (coordText) {\n var _coordText$split = coordText.split(\" \"),\n _coordText$split2 = _slicedToArray(_coordText$split, 2),\n longitude = _coordText$split2[0],\n latitude = _coordText$split2[1];\n return {\n longitude: parseFloat(longitude),\n latitude: parseFloat(latitude)\n };\n });\n return polygon;\n};\nvar _default = wktToPolygon;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n computeDestinationPoint: true,\n convertArea: true,\n convertDistance: true,\n convertSpeed: true,\n decimalToSexagesimal: true,\n findNearest: true,\n getAreaOfPolygon: true,\n getBounds: true,\n getBoundsOfDistance: true,\n getCenter: true,\n getCenterOfBounds: true,\n getCompassDirection: true,\n getCoordinateKey: true,\n getCoordinateKeys: true,\n getDistance: true,\n getDistanceFromLine: true,\n getGreatCircleBearing: true,\n getLatitude: true,\n getLongitude: true,\n getPathLength: true,\n getPreciseDistance: true,\n getRhumbLineBearing: true,\n getRoughCompassDirection: true,\n getSpeed: true,\n isDecimal: true,\n isPointInLine: true,\n isPointInPolygon: true,\n isPointNearLine: true,\n isPointWithinRadius: true,\n isSexagesimal: true,\n isValidCoordinate: true,\n isValidLatitude: true,\n isValidLongitude: true,\n orderByDistance: true,\n sexagesimalToDecimal: true,\n toDecimal: true,\n toRad: true,\n toDeg: true,\n wktToPolygon: true\n};\nObject.defineProperty(exports, \"computeDestinationPoint\", {\n enumerable: true,\n get: function get() {\n return _computeDestinationPoint.default;\n }\n});\nObject.defineProperty(exports, \"convertArea\", {\n enumerable: true,\n get: function get() {\n return _convertArea.default;\n }\n});\nObject.defineProperty(exports, \"convertDistance\", {\n enumerable: true,\n get: function get() {\n return _convertDistance.default;\n }\n});\nObject.defineProperty(exports, \"convertSpeed\", {\n enumerable: true,\n get: function get() {\n return _convertSpeed.default;\n }\n});\nObject.defineProperty(exports, \"decimalToSexagesimal\", {\n enumerable: true,\n get: function get() {\n return _decimalToSexagesimal.default;\n }\n});\nObject.defineProperty(exports, \"findNearest\", {\n enumerable: true,\n get: function get() {\n return _findNearest.default;\n }\n});\nObject.defineProperty(exports, \"getAreaOfPolygon\", {\n enumerable: true,\n get: function get() {\n return _getAreaOfPolygon.default;\n }\n});\nObject.defineProperty(exports, \"getBounds\", {\n enumerable: true,\n get: function get() {\n return _getBounds.default;\n }\n});\nObject.defineProperty(exports, \"getBoundsOfDistance\", {\n enumerable: true,\n get: function get() {\n return _getBoundsOfDistance.default;\n }\n});\nObject.defineProperty(exports, \"getCenter\", {\n enumerable: true,\n get: function get() {\n return _getCenter.default;\n }\n});\nObject.defineProperty(exports, \"getCenterOfBounds\", {\n enumerable: true,\n get: function get() {\n return _getCenterOfBounds.default;\n }\n});\nObject.defineProperty(exports, \"getCompassDirection\", {\n enumerable: true,\n get: function get() {\n return _getCompassDirection.default;\n }\n});\nObject.defineProperty(exports, \"getCoordinateKey\", {\n enumerable: true,\n get: function get() {\n return _getCoordinateKey.default;\n }\n});\nObject.defineProperty(exports, \"getCoordinateKeys\", {\n enumerable: true,\n get: function get() {\n return _getCoordinateKeys.default;\n }\n});\nObject.defineProperty(exports, \"getDistance\", {\n enumerable: true,\n get: function get() {\n return _getDistance.default;\n }\n});\nObject.defineProperty(exports, \"getDistanceFromLine\", {\n enumerable: true,\n get: function get() {\n return _getDistanceFromLine.default;\n }\n});\nObject.defineProperty(exports, \"getGreatCircleBearing\", {\n enumerable: true,\n get: function get() {\n return _getGreatCircleBearing.default;\n }\n});\nObject.defineProperty(exports, \"getLatitude\", {\n enumerable: true,\n get: function get() {\n return _getLatitude.default;\n }\n});\nObject.defineProperty(exports, \"getLongitude\", {\n enumerable: true,\n get: function get() {\n return _getLongitude.default;\n }\n});\nObject.defineProperty(exports, \"getPathLength\", {\n enumerable: true,\n get: function get() {\n return _getPathLength.default;\n }\n});\nObject.defineProperty(exports, \"getPreciseDistance\", {\n enumerable: true,\n get: function get() {\n return _getPreciseDistance.default;\n }\n});\nObject.defineProperty(exports, \"getRhumbLineBearing\", {\n enumerable: true,\n get: function get() {\n return _getRhumbLineBearing.default;\n }\n});\nObject.defineProperty(exports, \"getRoughCompassDirection\", {\n enumerable: true,\n get: function get() {\n return _getRoughCompassDirection.default;\n }\n});\nObject.defineProperty(exports, \"getSpeed\", {\n enumerable: true,\n get: function get() {\n return _getSpeed.default;\n }\n});\nObject.defineProperty(exports, \"isDecimal\", {\n enumerable: true,\n get: function get() {\n return _isDecimal.default;\n }\n});\nObject.defineProperty(exports, \"isPointInLine\", {\n enumerable: true,\n get: function get() {\n return _isPointInLine.default;\n }\n});\nObject.defineProperty(exports, \"isPointInPolygon\", {\n enumerable: true,\n get: function get() {\n return _isPointInPolygon.default;\n }\n});\nObject.defineProperty(exports, \"isPointNearLine\", {\n enumerable: true,\n get: function get() {\n return _isPointNearLine.default;\n }\n});\nObject.defineProperty(exports, \"isPointWithinRadius\", {\n enumerable: true,\n get: function get() {\n return _isPointWithinRadius.default;\n }\n});\nObject.defineProperty(exports, \"isSexagesimal\", {\n enumerable: true,\n get: function get() {\n return _isSexagesimal.default;\n }\n});\nObject.defineProperty(exports, \"isValidCoordinate\", {\n enumerable: true,\n get: function get() {\n return _isValidCoordinate.default;\n }\n});\nObject.defineProperty(exports, \"isValidLatitude\", {\n enumerable: true,\n get: function get() {\n return _isValidLatitude.default;\n }\n});\nObject.defineProperty(exports, \"isValidLongitude\", {\n enumerable: true,\n get: function get() {\n return _isValidLongitude.default;\n }\n});\nObject.defineProperty(exports, \"orderByDistance\", {\n enumerable: true,\n get: function get() {\n return _orderByDistance.default;\n }\n});\nObject.defineProperty(exports, \"sexagesimalToDecimal\", {\n enumerable: true,\n get: function get() {\n return _sexagesimalToDecimal.default;\n }\n});\nObject.defineProperty(exports, \"toDecimal\", {\n enumerable: true,\n get: function get() {\n return _toDecimal.default;\n }\n});\nObject.defineProperty(exports, \"toRad\", {\n enumerable: true,\n get: function get() {\n return _toRad.default;\n }\n});\nObject.defineProperty(exports, \"toDeg\", {\n enumerable: true,\n get: function get() {\n return _toDeg.default;\n }\n});\nObject.defineProperty(exports, \"wktToPolygon\", {\n enumerable: true,\n get: function get() {\n return _wktToPolygon.default;\n }\n});\nvar _computeDestinationPoint = _interopRequireDefault(require(\"./computeDestinationPoint\"));\nvar _convertArea = _interopRequireDefault(require(\"./convertArea\"));\nvar _convertDistance = _interopRequireDefault(require(\"./convertDistance\"));\nvar _convertSpeed = _interopRequireDefault(require(\"./convertSpeed\"));\nvar _decimalToSexagesimal = _interopRequireDefault(require(\"./decimalToSexagesimal\"));\nvar _findNearest = _interopRequireDefault(require(\"./findNearest\"));\nvar _getAreaOfPolygon = _interopRequireDefault(require(\"./getAreaOfPolygon\"));\nvar _getBounds = _interopRequireDefault(require(\"./getBounds\"));\nvar _getBoundsOfDistance = _interopRequireDefault(require(\"./getBoundsOfDistance\"));\nvar _getCenter = _interopRequireDefault(require(\"./getCenter\"));\nvar _getCenterOfBounds = _interopRequireDefault(require(\"./getCenterOfBounds\"));\nvar _getCompassDirection = _interopRequireDefault(require(\"./getCompassDirection\"));\nvar _getCoordinateKey = _interopRequireDefault(require(\"./getCoordinateKey\"));\nvar _getCoordinateKeys = _interopRequireDefault(require(\"./getCoordinateKeys\"));\nvar _getDistance = _interopRequireDefault(require(\"./getDistance\"));\nvar _getDistanceFromLine = _interopRequireDefault(require(\"./getDistanceFromLine\"));\nvar _getGreatCircleBearing = _interopRequireDefault(require(\"./getGreatCircleBearing\"));\nvar _getLatitude = _interopRequireDefault(require(\"./getLatitude\"));\nvar _getLongitude = _interopRequireDefault(require(\"./getLongitude\"));\nvar _getPathLength = _interopRequireDefault(require(\"./getPathLength\"));\nvar _getPreciseDistance = _interopRequireDefault(require(\"./getPreciseDistance\"));\nvar _getRhumbLineBearing = _interopRequireDefault(require(\"./getRhumbLineBearing\"));\nvar _getRoughCompassDirection = _interopRequireDefault(require(\"./getRoughCompassDirection\"));\nvar _getSpeed = _interopRequireDefault(require(\"./getSpeed\"));\nvar _isDecimal = _interopRequireDefault(require(\"./isDecimal\"));\nvar _isPointInLine = _interopRequireDefault(require(\"./isPointInLine\"));\nvar _isPointInPolygon = _interopRequireDefault(require(\"./isPointInPolygon\"));\nvar _isPointNearLine = _interopRequireDefault(require(\"./isPointNearLine\"));\nvar _isPointWithinRadius = _interopRequireDefault(require(\"./isPointWithinRadius\"));\nvar _isSexagesimal = _interopRequireDefault(require(\"./isSexagesimal\"));\nvar _isValidCoordinate = _interopRequireDefault(require(\"./isValidCoordinate\"));\nvar _isValidLatitude = _interopRequireDefault(require(\"./isValidLatitude\"));\nvar _isValidLongitude = _interopRequireDefault(require(\"./isValidLongitude\"));\nvar _orderByDistance = _interopRequireDefault(require(\"./orderByDistance\"));\nvar _sexagesimalToDecimal = _interopRequireDefault(require(\"./sexagesimalToDecimal\"));\nvar _toDecimal = _interopRequireDefault(require(\"./toDecimal\"));\nvar _toRad = _interopRequireDefault(require(\"./toRad\"));\nvar _toDeg = _interopRequireDefault(require(\"./toDeg\"));\nvar _wktToPolygon = _interopRequireDefault(require(\"./wktToPolygon\"));\nvar _constants = require(\"./constants\");\nObject.keys(_constants).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _constants[key];\n }\n });\n});\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","!function (e, t) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(t) : (e = \"undefined\" != typeof globalThis ? globalThis : e || self).PubNub = t();\n}(this, function () {\n \"use strict\";\n\n /*! *****************************************************************************\n Copyright (c) Microsoft Corporation.\n \n Permission to use, copy, modify, and/or distribute this software for any\n purpose with or without fee is hereby granted.\n \n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\n PERFORMANCE OF THIS SOFTWARE.\n ***************************************************************************** */\n var e = function (t, n) {\n return e = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (e, t) {\n e.__proto__ = t;\n } || function (e, t) {\n for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);\n }, e(t, n);\n };\n function t(t, n) {\n if (\"function\" != typeof n && null !== n) throw new TypeError(\"Class extends value \" + String(n) + \" is not a constructor or null\");\n function r() {\n this.constructor = t;\n }\n e(t, n), t.prototype = null === n ? Object.create(n) : (r.prototype = n.prototype, new r());\n }\n var n = function () {\n return n = Object.assign || function (e) {\n for (var t, n = 1, r = arguments.length; n < r; n++) for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);\n return e;\n }, n.apply(this, arguments);\n };\n function r(e, t) {\n var n = {};\n for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);\n if (null != e && \"function\" == typeof Object.getOwnPropertySymbols) {\n var o = 0;\n for (r = Object.getOwnPropertySymbols(e); o < r.length; o++) t.indexOf(r[o]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[o]) && (n[r[o]] = e[r[o]]);\n }\n return n;\n }\n function o(e, t, n, r) {\n return new (n || (n = Promise))(function (o, i) {\n function s(e) {\n try {\n u(r.next(e));\n } catch (e) {\n i(e);\n }\n }\n function a(e) {\n try {\n u(r.throw(e));\n } catch (e) {\n i(e);\n }\n }\n function u(e) {\n var t;\n e.done ? o(e.value) : (t = e.value, t instanceof n ? t : new n(function (e) {\n e(t);\n })).then(s, a);\n }\n u((r = r.apply(e, t || [])).next());\n });\n }\n function i(e, t) {\n var n,\n r,\n o,\n i,\n s = {\n label: 0,\n sent: function () {\n if (1 & o[0]) throw o[1];\n return o[1];\n },\n trys: [],\n ops: []\n };\n return i = {\n next: a(0),\n throw: a(1),\n return: a(2)\n }, \"function\" == typeof Symbol && (i[Symbol.iterator] = function () {\n return this;\n }), i;\n function a(i) {\n return function (a) {\n return function (i) {\n if (n) throw new TypeError(\"Generator is already executing.\");\n for (; s;) try {\n if (n = 1, r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, i[1])).done) return o;\n switch (r = 0, o && (i = [2 & i[0], o.value]), i[0]) {\n case 0:\n case 1:\n o = i;\n break;\n case 4:\n return s.label++, {\n value: i[1],\n done: !1\n };\n case 5:\n s.label++, r = i[1], i = [0];\n continue;\n case 7:\n i = s.ops.pop(), s.trys.pop();\n continue;\n default:\n if (!(o = s.trys, (o = o.length > 0 && o[o.length - 1]) || 6 !== i[0] && 2 !== i[0])) {\n s = 0;\n continue;\n }\n if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {\n s.label = i[1];\n break;\n }\n if (6 === i[0] && s.label < o[1]) {\n s.label = o[1], o = i;\n break;\n }\n if (o && s.label < o[2]) {\n s.label = o[2], s.ops.push(i);\n break;\n }\n o[2] && s.ops.pop(), s.trys.pop();\n continue;\n }\n i = t.call(e, s);\n } catch (e) {\n i = [6, e], r = 0;\n } finally {\n n = o = 0;\n }\n if (5 & i[0]) throw i[1];\n return {\n value: i[0] ? i[1] : void 0,\n done: !0\n };\n }([i, a]);\n };\n }\n }\n function s(e) {\n var t = \"function\" == typeof Symbol && Symbol.iterator,\n n = t && e[t],\n r = 0;\n if (n) return n.call(e);\n if (e && \"number\" == typeof e.length) return {\n next: function () {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n throw new TypeError(t ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }\n function a(e, t) {\n var n = \"function\" == typeof Symbol && e[Symbol.iterator];\n if (!n) return e;\n var r,\n o,\n i = n.call(e),\n s = [];\n try {\n for (; (void 0 === t || t-- > 0) && !(r = i.next()).done;) s.push(r.value);\n } catch (e) {\n o = {\n error: e\n };\n } finally {\n try {\n r && !r.done && (n = i.return) && n.call(i);\n } finally {\n if (o) throw o.error;\n }\n }\n return s;\n }\n function u(e, t, n) {\n if (n || 2 === arguments.length) for (var r, o = 0, i = t.length; o < i; o++) !r && o in t || (r || (r = Array.prototype.slice.call(t, 0, o)), r[o] = t[o]);\n return e.concat(r || Array.prototype.slice.call(t));\n }\n var c = \"undefined\" != typeof globalThis ? globalThis : \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self ? self : {};\n function l(e) {\n if (e.__esModule) return e;\n var t = Object.defineProperty({}, \"__esModule\", {\n value: !0\n });\n return Object.keys(e).forEach(function (n) {\n var r = Object.getOwnPropertyDescriptor(e, n);\n Object.defineProperty(t, n, r.get ? r : {\n enumerable: !0,\n get: function () {\n return e[n];\n }\n });\n }), t;\n }\n var p = {\n exports: {}\n };\n !function (e) {\n !function (t, n) {\n var r = Math.pow(2, -24),\n o = Math.pow(2, 32),\n i = Math.pow(2, 53);\n var s = {\n encode: function (e) {\n var t,\n r = new ArrayBuffer(256),\n s = new DataView(r),\n a = 0;\n function u(e) {\n for (var n = r.byteLength, o = a + e; n < o;) n *= 2;\n if (n !== r.byteLength) {\n var i = s;\n r = new ArrayBuffer(n), s = new DataView(r);\n for (var u = a + 3 >> 2, c = 0; c < u; ++c) s.setUint32(4 * c, i.getUint32(4 * c));\n }\n return t = e, s;\n }\n function c() {\n a += t;\n }\n function l(e) {\n c(u(1).setUint8(a, e));\n }\n function p(e) {\n for (var t = u(e.length), n = 0; n < e.length; ++n) t.setUint8(a + n, e[n]);\n c();\n }\n function h(e, t) {\n t < 24 ? l(e << 5 | t) : t < 256 ? (l(e << 5 | 24), l(t)) : t < 65536 ? (l(e << 5 | 25), function (e) {\n c(u(2).setUint16(a, e));\n }(t)) : t < 4294967296 ? (l(e << 5 | 26), function (e) {\n c(u(4).setUint32(a, e));\n }(t)) : (l(e << 5 | 27), function (e) {\n var t = e % o,\n n = (e - t) / o,\n r = u(8);\n r.setUint32(a, n), r.setUint32(a + 4, t), c();\n }(t));\n }\n if (function e(t) {\n var r;\n if (!1 === t) return l(244);\n if (!0 === t) return l(245);\n if (null === t) return l(246);\n if (t === n) return l(247);\n switch (typeof t) {\n case \"number\":\n if (Math.floor(t) === t) {\n if (0 <= t && t <= i) return h(0, t);\n if (-i <= t && t < 0) return h(1, -(t + 1));\n }\n return l(251), function (e) {\n c(u(8).setFloat64(a, e));\n }(t);\n case \"string\":\n var o = [];\n for (r = 0; r < t.length; ++r) {\n var s = t.charCodeAt(r);\n s < 128 ? o.push(s) : s < 2048 ? (o.push(192 | s >> 6), o.push(128 | 63 & s)) : s < 55296 ? (o.push(224 | s >> 12), o.push(128 | s >> 6 & 63), o.push(128 | 63 & s)) : (s = (1023 & s) << 10, s |= 1023 & t.charCodeAt(++r), s += 65536, o.push(240 | s >> 18), o.push(128 | s >> 12 & 63), o.push(128 | s >> 6 & 63), o.push(128 | 63 & s));\n }\n return h(3, o.length), p(o);\n default:\n var f;\n if (Array.isArray(t)) for (h(4, f = t.length), r = 0; r < f; ++r) e(t[r]);else if (t instanceof Uint8Array) h(2, t.length), p(t);else {\n var d = Object.keys(t);\n for (h(5, f = d.length), r = 0; r < f; ++r) {\n var y = d[r];\n e(y), e(t[y]);\n }\n }\n }\n }(e), \"slice\" in r) return r.slice(0, a);\n for (var f = new ArrayBuffer(a), d = new DataView(f), y = 0; y < a; ++y) d.setUint8(y, s.getUint8(y));\n return f;\n },\n decode: function (e, t, i) {\n var s = new DataView(e),\n a = 0;\n function u(e, t) {\n return a += t, e;\n }\n function c(t) {\n return u(new Uint8Array(e, a, t), t);\n }\n function l() {\n return u(s.getUint8(a), 1);\n }\n function p() {\n return u(s.getUint16(a), 2);\n }\n function h() {\n return u(s.getUint32(a), 4);\n }\n function f() {\n return 255 === s.getUint8(a) && (a += 1, !0);\n }\n function d(e) {\n if (e < 24) return e;\n if (24 === e) return l();\n if (25 === e) return p();\n if (26 === e) return h();\n if (27 === e) return h() * o + h();\n if (31 === e) return -1;\n throw \"Invalid length encoding\";\n }\n function y(e) {\n var t = l();\n if (255 === t) return -1;\n var n = d(31 & t);\n if (n < 0 || t >> 5 !== e) throw \"Invalid indefinite length element\";\n return n;\n }\n function g(e, t) {\n for (var n = 0; n < t; ++n) {\n var r = l();\n 128 & r && (r < 224 ? (r = (31 & r) << 6 | 63 & l(), t -= 1) : r < 240 ? (r = (15 & r) << 12 | (63 & l()) << 6 | 63 & l(), t -= 2) : (r = (15 & r) << 18 | (63 & l()) << 12 | (63 & l()) << 6 | 63 & l(), t -= 3)), r < 65536 ? e.push(r) : (r -= 65536, e.push(55296 | r >> 10), e.push(56320 | 1023 & r));\n }\n }\n \"function\" != typeof t && (t = function (e) {\n return e;\n }), \"function\" != typeof i && (i = function () {\n return n;\n });\n var m = function e() {\n var o,\n h,\n m = l(),\n b = m >> 5,\n v = 31 & m;\n if (7 === b) switch (v) {\n case 25:\n return function () {\n var e = new ArrayBuffer(4),\n t = new DataView(e),\n n = p(),\n o = 32768 & n,\n i = 31744 & n,\n s = 1023 & n;\n if (31744 === i) i = 261120;else if (0 !== i) i += 114688;else if (0 !== s) return s * r;\n return t.setUint32(0, o << 16 | i << 13 | s << 13), t.getFloat32(0);\n }();\n case 26:\n return u(s.getFloat32(a), 4);\n case 27:\n return u(s.getFloat64(a), 8);\n }\n if ((h = d(v)) < 0 && (b < 2 || 6 < b)) throw \"Invalid length\";\n switch (b) {\n case 0:\n return h;\n case 1:\n return -1 - h;\n case 2:\n if (h < 0) {\n for (var _ = [], S = 0; (h = y(b)) >= 0;) S += h, _.push(c(h));\n var w = new Uint8Array(S),\n O = 0;\n for (o = 0; o < _.length; ++o) w.set(_[o], O), O += _[o].length;\n return w;\n }\n return c(h);\n case 3:\n var P = [];\n if (h < 0) for (; (h = y(b)) >= 0;) g(P, h);else g(P, h);\n return String.fromCharCode.apply(null, P);\n case 4:\n var E;\n if (h < 0) for (E = []; !f();) E.push(e());else for (E = new Array(h), o = 0; o < h; ++o) E[o] = e();\n return E;\n case 5:\n var A = {};\n for (o = 0; o < h || h < 0 && !f(); ++o) {\n A[e()] = e();\n }\n return A;\n case 6:\n return t(e(), h);\n case 7:\n switch (h) {\n case 20:\n return !1;\n case 21:\n return !0;\n case 22:\n return null;\n case 23:\n return n;\n default:\n return i(h);\n }\n }\n }();\n if (a !== e.byteLength) throw \"Remaining bytes\";\n return m;\n }\n };\n e.exports ? e.exports = s : t.CBOR || (t.CBOR = s);\n }(c);\n }(p);\n var h = p.exports,\n f = {\n exports: {}\n };\n /*! lil-uuid - v0.1 - MIT License - https://github.com/lil-js/uuid */\n !function (e, t) {\n !function (e) {\n var t = \"0.1.0\",\n n = {\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n };\n function r() {\n var e,\n t,\n n = \"\";\n for (e = 0; e < 32; e++) t = 16 * Math.random() | 0, 8 !== e && 12 !== e && 16 !== e && 20 !== e || (n += \"-\"), n += (12 === e ? 4 : 16 === e ? 3 & t | 8 : t).toString(16);\n return n;\n }\n function o(e, t) {\n var r = n[t || \"all\"];\n return r && r.test(e) || !1;\n }\n r.isUUID = o, r.VERSION = t, e.uuid = r, e.isUUID = o;\n }(t), null !== e && (e.exports = t.uuid);\n }(f, f.exports);\n var d = f.exports,\n y = function () {\n return d.uuid ? d.uuid() : d();\n },\n g = function () {\n function e(e) {\n var t,\n n,\n r,\n o,\n i = e.setup;\n if (this._PNSDKSuffix = {}, this.instanceId = \"pn-\".concat(y()), this.secretKey = i.secretKey || i.secret_key, this.subscribeKey = i.subscribeKey || i.subscribe_key, this.publishKey = i.publishKey || i.publish_key, this.sdkName = i.sdkName, this.sdkFamily = i.sdkFamily, this.partnerId = i.partnerId, this.setAuthKey(i.authKey), this.cryptoModule = i.cryptoModule, this.setFilterExpression(i.filterExpression), \"string\" != typeof i.origin && !Array.isArray(i.origin) && void 0 !== i.origin) throw new Error(\"Origin must be either undefined, a string or a list of strings.\");\n if (this.origin = i.origin || Array.from({\n length: 20\n }, function (e, t) {\n return \"ps\".concat(t + 1, \".pndsn.com\");\n }), this.secure = i.ssl || !1, this.restore = i.restore || !1, this.proxy = i.proxy, this.keepAlive = i.keepAlive, this.keepAliveSettings = i.keepAliveSettings, this.autoNetworkDetection = i.autoNetworkDetection || !1, this.dedupeOnSubscribe = i.dedupeOnSubscribe || !1, this.maximumCacheSize = i.maximumCacheSize || 100, this.customEncrypt = i.customEncrypt, this.customDecrypt = i.customDecrypt, this.fileUploadPublishRetryLimit = null !== (t = i.fileUploadPublishRetryLimit) && void 0 !== t ? t : 5, this.useRandomIVs = null === (n = i.useRandomIVs) || void 0 === n || n, this.enableEventEngine = null !== (r = i.enableEventEngine) && void 0 !== r && r, this.maintainPresenceState = null === (o = i.maintainPresenceState) || void 0 === o || o, \"undefined\" != typeof location && \"https:\" === location.protocol && (this.secure = !0), this.logVerbosity = i.logVerbosity || !1, this.suppressLeaveEvents = i.suppressLeaveEvents || !1, this.announceFailedHeartbeats = i.announceFailedHeartbeats || !0, this.announceSuccessfulHeartbeats = i.announceSuccessfulHeartbeats || !1, this.useInstanceId = i.useInstanceId || !1, this.useRequestId = i.useRequestId || !1, this.requestMessageCountThreshold = i.requestMessageCountThreshold, i.retryConfiguration && this._setRetryConfiguration(i.retryConfiguration), this.setTransactionTimeout(i.transactionalRequestTimeout || 15e3), this.setSubscribeTimeout(i.subscribeRequestTimeout || 31e4), this.setSendBeaconConfig(i.useSendBeacon || !0), i.presenceTimeout ? this.setPresenceTimeout(i.presenceTimeout) : this._presenceTimeout = 300, null != i.heartbeatInterval && this.setHeartbeatInterval(i.heartbeatInterval), \"string\" == typeof i.userId) {\n if (\"string\" == typeof i.uuid) throw new Error(\"Only one of the following configuration options has to be provided: `uuid` or `userId`\");\n this.setUserId(i.userId);\n } else {\n if (\"string\" != typeof i.uuid) throw new Error(\"One of the following configuration options has to be provided: `uuid` or `userId`\");\n this.setUUID(i.uuid);\n }\n this.setCipherKey(i.cipherKey, i);\n }\n return e.prototype.getAuthKey = function () {\n return this.authKey;\n }, e.prototype.setAuthKey = function (e) {\n return this.authKey = e, this;\n }, e.prototype.setCipherKey = function (e, t, n) {\n var r;\n return this.cipherKey = e, this.cipherKey && (this.cryptoModule = null !== (r = t.cryptoModule) && void 0 !== r ? r : t.initCryptoModule({\n cipherKey: this.cipherKey,\n useRandomIVs: this.useRandomIVs\n }), n && (n.cryptoModule = this.cryptoModule)), this;\n }, e.prototype.getUUID = function () {\n return this.UUID;\n }, e.prototype.setUUID = function (e) {\n if (!e || \"string\" != typeof e || 0 === e.trim().length) throw new Error(\"Missing uuid parameter. Provide a valid string uuid\");\n return this.UUID = e, this;\n }, e.prototype.getUserId = function () {\n return this.UUID;\n }, e.prototype.setUserId = function (e) {\n if (!e || \"string\" != typeof e || 0 === e.trim().length) throw new Error(\"Missing or invalid userId parameter. Provide a valid string userId\");\n return this.UUID = e, this;\n }, e.prototype.getFilterExpression = function () {\n return this.filterExpression;\n }, e.prototype.setFilterExpression = function (e) {\n return this.filterExpression = e, this;\n }, e.prototype.getPresenceTimeout = function () {\n return this._presenceTimeout;\n }, e.prototype.setPresenceTimeout = function (e) {\n return e >= 20 ? this._presenceTimeout = e : (this._presenceTimeout = 20, console.log(\"WARNING: Presence timeout is less than the minimum. Using minimum value: \", this._presenceTimeout)), this.setHeartbeatInterval(this._presenceTimeout / 2 - 1), this;\n }, e.prototype.setProxy = function (e) {\n this.proxy = e;\n }, e.prototype.getHeartbeatInterval = function () {\n return this._heartbeatInterval;\n }, e.prototype.setHeartbeatInterval = function (e) {\n return this._heartbeatInterval = e, this;\n }, e.prototype.getSubscribeTimeout = function () {\n return this._subscribeRequestTimeout;\n }, e.prototype.setSubscribeTimeout = function (e) {\n return this._subscribeRequestTimeout = e, this;\n }, e.prototype.getTransactionTimeout = function () {\n return this._transactionalRequestTimeout;\n }, e.prototype.setTransactionTimeout = function (e) {\n return this._transactionalRequestTimeout = e, this;\n }, e.prototype.isSendBeaconEnabled = function () {\n return this._useSendBeacon;\n }, e.prototype.setSendBeaconConfig = function (e) {\n return this._useSendBeacon = e, this;\n }, e.prototype.getVersion = function () {\n return \"7.6.3\";\n }, e.prototype._setRetryConfiguration = function (e) {\n if (e.minimumdelay < 2) throw new Error(\"Minimum delay can not be set less than 2 seconds for retry\");\n if (e.maximumDelay > 150) throw new Error(\"Maximum delay can not be set more than 150 seconds for retry\");\n if (e.maximumDelay && maximumRetry > 6) throw new Error(\"Maximum retry for exponential retry policy can not be more than 6\");\n if (e.maximumRetry > 10) throw new Error(\"Maximum retry for linear retry policy can not be more than 10\");\n this.retryConfiguration = e;\n }, e.prototype._addPnsdkSuffix = function (e, t) {\n this._PNSDKSuffix[e] = t;\n }, e.prototype._getPnsdkSuffix = function (e) {\n var t = this;\n return Object.keys(this._PNSDKSuffix).reduce(function (n, r) {\n return n + e + t._PNSDKSuffix[r];\n }, \"\");\n }, e;\n }();\n function m(e) {\n var t = e.replace(/==?$/, \"\"),\n n = Math.floor(t.length / 4 * 3),\n r = new ArrayBuffer(n),\n o = new Uint8Array(r),\n i = 0;\n function s() {\n var e = t.charAt(i++),\n n = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(e);\n if (-1 === n) throw new Error(\"Illegal character at \".concat(i, \": \").concat(t.charAt(i - 1)));\n return n;\n }\n for (var a = 0; a < n; a += 3) {\n var u = s(),\n c = s(),\n l = s(),\n p = s(),\n h = (63 & u) << 2 | c >> 4,\n f = (15 & c) << 4 | l >> 2,\n d = (3 & l) << 6 | p >> 0;\n o[a] = h, 64 != l && (o[a + 1] = f), 64 != p && (o[a + 2] = d);\n }\n return r;\n }\n function b(e) {\n for (var t, n = \"\", r = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", o = new Uint8Array(e), i = o.byteLength, s = i % 3, a = i - s, u = 0; u < a; u += 3) n += r[(16515072 & (t = o[u] << 16 | o[u + 1] << 8 | o[u + 2])) >> 18] + r[(258048 & t) >> 12] + r[(4032 & t) >> 6] + r[63 & t];\n return 1 == s ? n += r[(252 & (t = o[a])) >> 2] + r[(3 & t) << 4] + \"==\" : 2 == s && (n += r[(64512 & (t = o[a] << 8 | o[a + 1])) >> 10] + r[(1008 & t) >> 4] + r[(15 & t) << 2] + \"=\"), n;\n }\n var v,\n _,\n S,\n w,\n O,\n P = P || function (e, t) {\n var n = {},\n r = n.lib = {},\n o = function () {},\n i = r.Base = {\n extend: function (e) {\n o.prototype = this;\n var t = new o();\n return e && t.mixIn(e), t.hasOwnProperty(\"init\") || (t.init = function () {\n t.$super.init.apply(this, arguments);\n }), t.init.prototype = t, t.$super = this, t;\n },\n create: function () {\n var e = this.extend();\n return e.init.apply(e, arguments), e;\n },\n init: function () {},\n mixIn: function (e) {\n for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]);\n e.hasOwnProperty(\"toString\") && (this.toString = e.toString);\n },\n clone: function () {\n return this.init.prototype.extend(this);\n }\n },\n s = r.WordArray = i.extend({\n init: function (e, t) {\n e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length;\n },\n toString: function (e) {\n return (e || u).stringify(this);\n },\n concat: function (e) {\n var t = this.words,\n n = e.words,\n r = this.sigBytes;\n if (e = e.sigBytes, this.clamp(), r % 4) for (var o = 0; o < e; o++) t[r + o >>> 2] |= (n[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 24 - (r + o) % 4 * 8;else if (65535 < n.length) for (o = 0; o < e; o += 4) t[r + o >>> 2] = n[o >>> 2];else t.push.apply(t, n);\n return this.sigBytes += e, this;\n },\n clamp: function () {\n var t = this.words,\n n = this.sigBytes;\n t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4);\n },\n clone: function () {\n var e = i.clone.call(this);\n return e.words = this.words.slice(0), e;\n },\n random: function (t) {\n for (var n = [], r = 0; r < t; r += 4) n.push(4294967296 * e.random() | 0);\n return new s.init(n, t);\n }\n }),\n a = n.enc = {},\n u = a.Hex = {\n stringify: function (e) {\n var t = e.words;\n e = e.sigBytes;\n for (var n = [], r = 0; r < e; r++) {\n var o = t[r >>> 2] >>> 24 - r % 4 * 8 & 255;\n n.push((o >>> 4).toString(16)), n.push((15 & o).toString(16));\n }\n return n.join(\"\");\n },\n parse: function (e) {\n for (var t = e.length, n = [], r = 0; r < t; r += 2) n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - r % 8 * 4;\n return new s.init(n, t / 2);\n }\n },\n c = a.Latin1 = {\n stringify: function (e) {\n var t = e.words;\n e = e.sigBytes;\n for (var n = [], r = 0; r < e; r++) n.push(String.fromCharCode(t[r >>> 2] >>> 24 - r % 4 * 8 & 255));\n return n.join(\"\");\n },\n parse: function (e) {\n for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 2] |= (255 & e.charCodeAt(r)) << 24 - r % 4 * 8;\n return new s.init(n, t);\n }\n },\n l = a.Utf8 = {\n stringify: function (e) {\n try {\n return decodeURIComponent(escape(c.stringify(e)));\n } catch (e) {\n throw Error(\"Malformed UTF-8 data\");\n }\n },\n parse: function (e) {\n return c.parse(unescape(encodeURIComponent(e)));\n }\n },\n p = r.BufferedBlockAlgorithm = i.extend({\n reset: function () {\n this._data = new s.init(), this._nDataBytes = 0;\n },\n _append: function (e) {\n \"string\" == typeof e && (e = l.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;\n },\n _process: function (t) {\n var n = this._data,\n r = n.words,\n o = n.sigBytes,\n i = this.blockSize,\n a = o / (4 * i);\n if (t = (a = t ? e.ceil(a) : e.max((0 | a) - this._minBufferSize, 0)) * i, o = e.min(4 * t, o), t) {\n for (var u = 0; u < t; u += i) this._doProcessBlock(r, u);\n u = r.splice(0, t), n.sigBytes -= o;\n }\n return new s.init(u, o);\n },\n clone: function () {\n var e = i.clone.call(this);\n return e._data = this._data.clone(), e;\n },\n _minBufferSize: 0\n });\n r.Hasher = p.extend({\n cfg: i.extend(),\n init: function (e) {\n this.cfg = this.cfg.extend(e), this.reset();\n },\n reset: function () {\n p.reset.call(this), this._doReset();\n },\n update: function (e) {\n return this._append(e), this._process(), this;\n },\n finalize: function (e) {\n return e && this._append(e), this._doFinalize();\n },\n blockSize: 16,\n _createHelper: function (e) {\n return function (t, n) {\n return new e.init(n).finalize(t);\n };\n },\n _createHmacHelper: function (e) {\n return function (t, n) {\n return new h.HMAC.init(e, n).finalize(t);\n };\n }\n });\n var h = n.algo = {};\n return n;\n }(Math);\n !function (e) {\n for (var t = P, n = (o = t.lib).WordArray, r = o.Hasher, o = t.algo, i = [], s = [], a = function (e) {\n return 4294967296 * (e - (0 | e)) | 0;\n }, u = 2, c = 0; 64 > c;) {\n var l;\n e: {\n l = u;\n for (var p = e.sqrt(l), h = 2; h <= p; h++) if (!(l % h)) {\n l = !1;\n break e;\n }\n l = !0;\n }\n l && (8 > c && (i[c] = a(e.pow(u, .5))), s[c] = a(e.pow(u, 1 / 3)), c++), u++;\n }\n var f = [];\n o = o.SHA256 = r.extend({\n _doReset: function () {\n this._hash = new n.init(i.slice(0));\n },\n _doProcessBlock: function (e, t) {\n for (var n = this._hash.words, r = n[0], o = n[1], i = n[2], a = n[3], u = n[4], c = n[5], l = n[6], p = n[7], h = 0; 64 > h; h++) {\n if (16 > h) f[h] = 0 | e[t + h];else {\n var d = f[h - 15],\n y = f[h - 2];\n f[h] = ((d << 25 | d >>> 7) ^ (d << 14 | d >>> 18) ^ d >>> 3) + f[h - 7] + ((y << 15 | y >>> 17) ^ (y << 13 | y >>> 19) ^ y >>> 10) + f[h - 16];\n }\n d = p + ((u << 26 | u >>> 6) ^ (u << 21 | u >>> 11) ^ (u << 7 | u >>> 25)) + (u & c ^ ~u & l) + s[h] + f[h], y = ((r << 30 | r >>> 2) ^ (r << 19 | r >>> 13) ^ (r << 10 | r >>> 22)) + (r & o ^ r & i ^ o & i), p = l, l = c, c = u, u = a + d | 0, a = i, i = o, o = r, r = d + y | 0;\n }\n n[0] = n[0] + r | 0, n[1] = n[1] + o | 0, n[2] = n[2] + i | 0, n[3] = n[3] + a | 0, n[4] = n[4] + u | 0, n[5] = n[5] + c | 0, n[6] = n[6] + l | 0, n[7] = n[7] + p | 0;\n },\n _doFinalize: function () {\n var t = this._data,\n n = t.words,\n r = 8 * this._nDataBytes,\n o = 8 * t.sigBytes;\n return n[o >>> 5] |= 128 << 24 - o % 32, n[14 + (o + 64 >>> 9 << 4)] = e.floor(r / 4294967296), n[15 + (o + 64 >>> 9 << 4)] = r, t.sigBytes = 4 * n.length, this._process(), this._hash;\n },\n clone: function () {\n var e = r.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n });\n t.SHA256 = r._createHelper(o), t.HmacSHA256 = r._createHmacHelper(o);\n }(Math), _ = (v = P).enc.Utf8, v.algo.HMAC = v.lib.Base.extend({\n init: function (e, t) {\n e = this._hasher = new e.init(), \"string\" == typeof t && (t = _.parse(t));\n var n = e.blockSize,\n r = 4 * n;\n t.sigBytes > r && (t = e.finalize(t)), t.clamp();\n for (var o = this._oKey = t.clone(), i = this._iKey = t.clone(), s = o.words, a = i.words, u = 0; u < n; u++) s[u] ^= 1549556828, a[u] ^= 909522486;\n o.sigBytes = i.sigBytes = r, this.reset();\n },\n reset: function () {\n var e = this._hasher;\n e.reset(), e.update(this._iKey);\n },\n update: function (e) {\n return this._hasher.update(e), this;\n },\n finalize: function (e) {\n var t = this._hasher;\n return e = t.finalize(e), t.reset(), t.finalize(this._oKey.clone().concat(e));\n }\n }), w = (S = P).lib.WordArray, S.enc.Base64 = {\n stringify: function (e) {\n var t = e.words,\n n = e.sigBytes,\n r = this._map;\n e.clamp(), e = [];\n for (var o = 0; o < n; o += 3) for (var i = (t[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (t[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << 8 | t[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, s = 0; 4 > s && o + .75 * s < n; s++) e.push(r.charAt(i >>> 6 * (3 - s) & 63));\n if (t = r.charAt(64)) for (; e.length % 4;) e.push(t);\n return e.join(\"\");\n },\n parse: function (e) {\n var t = e.length,\n n = this._map;\n (r = n.charAt(64)) && -1 != (r = e.indexOf(r)) && (t = r);\n for (var r = [], o = 0, i = 0; i < t; i++) if (i % 4) {\n var s = n.indexOf(e.charAt(i - 1)) << i % 4 * 2,\n a = n.indexOf(e.charAt(i)) >>> 6 - i % 4 * 2;\n r[o >>> 2] |= (s | a) << 24 - o % 4 * 8, o++;\n }\n return w.create(r, o);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n }, function (e) {\n function t(e, t, n, r, o, i, s) {\n return ((e = e + (t & n | ~t & r) + o + s) << i | e >>> 32 - i) + t;\n }\n function n(e, t, n, r, o, i, s) {\n return ((e = e + (t & r | n & ~r) + o + s) << i | e >>> 32 - i) + t;\n }\n function r(e, t, n, r, o, i, s) {\n return ((e = e + (t ^ n ^ r) + o + s) << i | e >>> 32 - i) + t;\n }\n function o(e, t, n, r, o, i, s) {\n return ((e = e + (n ^ (t | ~r)) + o + s) << i | e >>> 32 - i) + t;\n }\n for (var i = P, s = (u = i.lib).WordArray, a = u.Hasher, u = i.algo, c = [], l = 0; 64 > l; l++) c[l] = 4294967296 * e.abs(e.sin(l + 1)) | 0;\n u = u.MD5 = a.extend({\n _doReset: function () {\n this._hash = new s.init([1732584193, 4023233417, 2562383102, 271733878]);\n },\n _doProcessBlock: function (e, i) {\n for (var s = 0; 16 > s; s++) {\n var a = e[u = i + s];\n e[u] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8);\n }\n s = this._hash.words;\n var u = e[i + 0],\n l = (a = e[i + 1], e[i + 2]),\n p = e[i + 3],\n h = e[i + 4],\n f = e[i + 5],\n d = e[i + 6],\n y = e[i + 7],\n g = e[i + 8],\n m = e[i + 9],\n b = e[i + 10],\n v = e[i + 11],\n _ = e[i + 12],\n S = e[i + 13],\n w = e[i + 14],\n O = e[i + 15],\n P = t(P = s[0], T = s[1], A = s[2], E = s[3], u, 7, c[0]),\n E = t(E, P, T, A, a, 12, c[1]),\n A = t(A, E, P, T, l, 17, c[2]),\n T = t(T, A, E, P, p, 22, c[3]);\n P = t(P, T, A, E, h, 7, c[4]), E = t(E, P, T, A, f, 12, c[5]), A = t(A, E, P, T, d, 17, c[6]), T = t(T, A, E, P, y, 22, c[7]), P = t(P, T, A, E, g, 7, c[8]), E = t(E, P, T, A, m, 12, c[9]), A = t(A, E, P, T, b, 17, c[10]), T = t(T, A, E, P, v, 22, c[11]), P = t(P, T, A, E, _, 7, c[12]), E = t(E, P, T, A, S, 12, c[13]), A = t(A, E, P, T, w, 17, c[14]), P = n(P, T = t(T, A, E, P, O, 22, c[15]), A, E, a, 5, c[16]), E = n(E, P, T, A, d, 9, c[17]), A = n(A, E, P, T, v, 14, c[18]), T = n(T, A, E, P, u, 20, c[19]), P = n(P, T, A, E, f, 5, c[20]), E = n(E, P, T, A, b, 9, c[21]), A = n(A, E, P, T, O, 14, c[22]), T = n(T, A, E, P, h, 20, c[23]), P = n(P, T, A, E, m, 5, c[24]), E = n(E, P, T, A, w, 9, c[25]), A = n(A, E, P, T, p, 14, c[26]), T = n(T, A, E, P, g, 20, c[27]), P = n(P, T, A, E, S, 5, c[28]), E = n(E, P, T, A, l, 9, c[29]), A = n(A, E, P, T, y, 14, c[30]), P = r(P, T = n(T, A, E, P, _, 20, c[31]), A, E, f, 4, c[32]), E = r(E, P, T, A, g, 11, c[33]), A = r(A, E, P, T, v, 16, c[34]), T = r(T, A, E, P, w, 23, c[35]), P = r(P, T, A, E, a, 4, c[36]), E = r(E, P, T, A, h, 11, c[37]), A = r(A, E, P, T, y, 16, c[38]), T = r(T, A, E, P, b, 23, c[39]), P = r(P, T, A, E, S, 4, c[40]), E = r(E, P, T, A, u, 11, c[41]), A = r(A, E, P, T, p, 16, c[42]), T = r(T, A, E, P, d, 23, c[43]), P = r(P, T, A, E, m, 4, c[44]), E = r(E, P, T, A, _, 11, c[45]), A = r(A, E, P, T, O, 16, c[46]), P = o(P, T = r(T, A, E, P, l, 23, c[47]), A, E, u, 6, c[48]), E = o(E, P, T, A, y, 10, c[49]), A = o(A, E, P, T, w, 15, c[50]), T = o(T, A, E, P, f, 21, c[51]), P = o(P, T, A, E, _, 6, c[52]), E = o(E, P, T, A, p, 10, c[53]), A = o(A, E, P, T, b, 15, c[54]), T = o(T, A, E, P, a, 21, c[55]), P = o(P, T, A, E, g, 6, c[56]), E = o(E, P, T, A, O, 10, c[57]), A = o(A, E, P, T, d, 15, c[58]), T = o(T, A, E, P, S, 21, c[59]), P = o(P, T, A, E, h, 6, c[60]), E = o(E, P, T, A, v, 10, c[61]), A = o(A, E, P, T, l, 15, c[62]), T = o(T, A, E, P, m, 21, c[63]);\n s[0] = s[0] + P | 0, s[1] = s[1] + T | 0, s[2] = s[2] + A | 0, s[3] = s[3] + E | 0;\n },\n _doFinalize: function () {\n var t = this._data,\n n = t.words,\n r = 8 * this._nDataBytes,\n o = 8 * t.sigBytes;\n n[o >>> 5] |= 128 << 24 - o % 32;\n var i = e.floor(r / 4294967296);\n for (n[15 + (o + 64 >>> 9 << 4)] = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), n[14 + (o + 64 >>> 9 << 4)] = 16711935 & (r << 8 | r >>> 24) | 4278255360 & (r << 24 | r >>> 8), t.sigBytes = 4 * (n.length + 1), this._process(), n = (t = this._hash).words, r = 0; 4 > r; r++) o = n[r], n[r] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8);\n return t;\n },\n clone: function () {\n var e = a.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n }), i.MD5 = a._createHelper(u), i.HmacMD5 = a._createHmacHelper(u);\n }(Math), function () {\n var e,\n t = P,\n n = (e = t.lib).Base,\n r = e.WordArray,\n o = (e = t.algo).EvpKDF = n.extend({\n cfg: n.extend({\n keySize: 4,\n hasher: e.MD5,\n iterations: 1\n }),\n init: function (e) {\n this.cfg = this.cfg.extend(e);\n },\n compute: function (e, t) {\n for (var n = (a = this.cfg).hasher.create(), o = r.create(), i = o.words, s = a.keySize, a = a.iterations; i.length < s;) {\n u && n.update(u);\n var u = n.update(e).finalize(t);\n n.reset();\n for (var c = 1; c < a; c++) u = n.finalize(u), n.reset();\n o.concat(u);\n }\n return o.sigBytes = 4 * s, o;\n }\n });\n t.EvpKDF = function (e, t, n) {\n return o.create(n).compute(e, t);\n };\n }(), P.lib.Cipher || function (e) {\n var t = (f = P).lib,\n n = t.Base,\n r = t.WordArray,\n o = t.BufferedBlockAlgorithm,\n i = f.enc.Base64,\n s = f.algo.EvpKDF,\n a = t.Cipher = o.extend({\n cfg: n.extend(),\n createEncryptor: function (e, t) {\n return this.create(this._ENC_XFORM_MODE, e, t);\n },\n createDecryptor: function (e, t) {\n return this.create(this._DEC_XFORM_MODE, e, t);\n },\n init: function (e, t, n) {\n this.cfg = this.cfg.extend(n), this._xformMode = e, this._key = t, this.reset();\n },\n reset: function () {\n o.reset.call(this), this._doReset();\n },\n process: function (e) {\n return this._append(e), this._process();\n },\n finalize: function (e) {\n return e && this._append(e), this._doFinalize();\n },\n keySize: 4,\n ivSize: 4,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n _createHelper: function (e) {\n return {\n encrypt: function (t, n, r) {\n return (\"string\" == typeof n ? d : h).encrypt(e, t, n, r);\n },\n decrypt: function (t, n, r) {\n return (\"string\" == typeof n ? d : h).decrypt(e, t, n, r);\n }\n };\n }\n });\n t.StreamCipher = a.extend({\n _doFinalize: function () {\n return this._process(!0);\n },\n blockSize: 1\n });\n var u = f.mode = {},\n c = function (e, t, n) {\n var r = this._iv;\n r ? this._iv = undefined : r = this._prevBlock;\n for (var o = 0; o < n; o++) e[t + o] ^= r[o];\n },\n l = (t.BlockCipherMode = n.extend({\n createEncryptor: function (e, t) {\n return this.Encryptor.create(e, t);\n },\n createDecryptor: function (e, t) {\n return this.Decryptor.create(e, t);\n },\n init: function (e, t) {\n this._cipher = e, this._iv = t;\n }\n })).extend();\n l.Encryptor = l.extend({\n processBlock: function (e, t) {\n var n = this._cipher,\n r = n.blockSize;\n c.call(this, e, t, r), n.encryptBlock(e, t), this._prevBlock = e.slice(t, t + r);\n }\n }), l.Decryptor = l.extend({\n processBlock: function (e, t) {\n var n = this._cipher,\n r = n.blockSize,\n o = e.slice(t, t + r);\n n.decryptBlock(e, t), c.call(this, e, t, r), this._prevBlock = o;\n }\n }), u = u.CBC = l, l = (f.pad = {}).Pkcs7 = {\n pad: function (e, t) {\n for (var n, o = (n = (n = 4 * t) - e.sigBytes % n) << 24 | n << 16 | n << 8 | n, i = [], s = 0; s < n; s += 4) i.push(o);\n n = r.create(i, n), e.concat(n);\n },\n unpad: function (e) {\n e.sigBytes -= 255 & e.words[e.sigBytes - 1 >>> 2];\n }\n }, t.BlockCipher = a.extend({\n cfg: a.cfg.extend({\n mode: u,\n padding: l\n }),\n reset: function () {\n a.reset.call(this);\n var e = (t = this.cfg).iv,\n t = t.mode;\n if (this._xformMode == this._ENC_XFORM_MODE) var n = t.createEncryptor;else n = t.createDecryptor, this._minBufferSize = 1;\n this._mode = n.call(t, this, e && e.words);\n },\n _doProcessBlock: function (e, t) {\n this._mode.processBlock(e, t);\n },\n _doFinalize: function () {\n var e = this.cfg.padding;\n if (this._xformMode == this._ENC_XFORM_MODE) {\n e.pad(this._data, this.blockSize);\n var t = this._process(!0);\n } else t = this._process(!0), e.unpad(t);\n return t;\n },\n blockSize: 4\n });\n var p = t.CipherParams = n.extend({\n init: function (e) {\n this.mixIn(e);\n },\n toString: function (e) {\n return (e || this.formatter).stringify(this);\n }\n }),\n h = (u = (f.format = {}).OpenSSL = {\n stringify: function (e) {\n var t = e.ciphertext;\n return ((e = e.salt) ? r.create([1398893684, 1701076831]).concat(e).concat(t) : t).toString(i);\n },\n parse: function (e) {\n var t = (e = i.parse(e)).words;\n if (1398893684 == t[0] && 1701076831 == t[1]) {\n var n = r.create(t.slice(2, 4));\n t.splice(0, 4), e.sigBytes -= 16;\n }\n return p.create({\n ciphertext: e,\n salt: n\n });\n }\n }, t.SerializableCipher = n.extend({\n cfg: n.extend({\n format: u\n }),\n encrypt: function (e, t, n, r) {\n r = this.cfg.extend(r);\n var o = e.createEncryptor(n, r);\n return t = o.finalize(t), o = o.cfg, p.create({\n ciphertext: t,\n key: n,\n iv: o.iv,\n algorithm: e,\n mode: o.mode,\n padding: o.padding,\n blockSize: e.blockSize,\n formatter: r.format\n });\n },\n decrypt: function (e, t, n, r) {\n return r = this.cfg.extend(r), t = this._parse(t, r.format), e.createDecryptor(n, r).finalize(t.ciphertext);\n },\n _parse: function (e, t) {\n return \"string\" == typeof e ? t.parse(e, this) : e;\n }\n })),\n f = (f.kdf = {}).OpenSSL = {\n execute: function (e, t, n, o) {\n return o || (o = r.random(8)), e = s.create({\n keySize: t + n\n }).compute(e, o), n = r.create(e.words.slice(t), 4 * n), e.sigBytes = 4 * t, p.create({\n key: e,\n iv: n,\n salt: o\n });\n }\n },\n d = t.PasswordBasedCipher = h.extend({\n cfg: h.cfg.extend({\n kdf: f\n }),\n encrypt: function (e, t, n, r) {\n return n = (r = this.cfg.extend(r)).kdf.execute(n, e.keySize, e.ivSize), r.iv = n.iv, (e = h.encrypt.call(this, e, t, n.key, r)).mixIn(n), e;\n },\n decrypt: function (e, t, n, r) {\n return r = this.cfg.extend(r), t = this._parse(t, r.format), n = r.kdf.execute(n, e.keySize, e.ivSize, t.salt), r.iv = n.iv, h.decrypt.call(this, e, t, n.key, r);\n }\n });\n }(), function () {\n for (var e = P, t = e.lib.BlockCipher, n = e.algo, r = [], o = [], i = [], s = [], a = [], u = [], c = [], l = [], p = [], h = [], f = [], d = 0; 256 > d; d++) f[d] = 128 > d ? d << 1 : d << 1 ^ 283;\n var y = 0,\n g = 0;\n for (d = 0; 256 > d; d++) {\n var m = (m = g ^ g << 1 ^ g << 2 ^ g << 3 ^ g << 4) >>> 8 ^ 255 & m ^ 99;\n r[y] = m, o[m] = y;\n var b = f[y],\n v = f[b],\n _ = f[v],\n S = 257 * f[m] ^ 16843008 * m;\n i[y] = S << 24 | S >>> 8, s[y] = S << 16 | S >>> 16, a[y] = S << 8 | S >>> 24, u[y] = S, S = 16843009 * _ ^ 65537 * v ^ 257 * b ^ 16843008 * y, c[m] = S << 24 | S >>> 8, l[m] = S << 16 | S >>> 16, p[m] = S << 8 | S >>> 24, h[m] = S, y ? (y = b ^ f[f[f[_ ^ b]]], g ^= f[f[g]]) : y = g = 1;\n }\n var w = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];\n n = n.AES = t.extend({\n _doReset: function () {\n for (var e = (n = this._key).words, t = n.sigBytes / 4, n = 4 * ((this._nRounds = t + 6) + 1), o = this._keySchedule = [], i = 0; i < n; i++) if (i < t) o[i] = e[i];else {\n var s = o[i - 1];\n i % t ? 6 < t && 4 == i % t && (s = r[s >>> 24] << 24 | r[s >>> 16 & 255] << 16 | r[s >>> 8 & 255] << 8 | r[255 & s]) : (s = r[(s = s << 8 | s >>> 24) >>> 24] << 24 | r[s >>> 16 & 255] << 16 | r[s >>> 8 & 255] << 8 | r[255 & s], s ^= w[i / t | 0] << 24), o[i] = o[i - t] ^ s;\n }\n for (e = this._invKeySchedule = [], t = 0; t < n; t++) i = n - t, s = t % 4 ? o[i] : o[i - 4], e[t] = 4 > t || 4 >= i ? s : c[r[s >>> 24]] ^ l[r[s >>> 16 & 255]] ^ p[r[s >>> 8 & 255]] ^ h[r[255 & s]];\n },\n encryptBlock: function (e, t) {\n this._doCryptBlock(e, t, this._keySchedule, i, s, a, u, r);\n },\n decryptBlock: function (e, t) {\n var n = e[t + 1];\n e[t + 1] = e[t + 3], e[t + 3] = n, this._doCryptBlock(e, t, this._invKeySchedule, c, l, p, h, o), n = e[t + 1], e[t + 1] = e[t + 3], e[t + 3] = n;\n },\n _doCryptBlock: function (e, t, n, r, o, i, s, a) {\n for (var u = this._nRounds, c = e[t] ^ n[0], l = e[t + 1] ^ n[1], p = e[t + 2] ^ n[2], h = e[t + 3] ^ n[3], f = 4, d = 1; d < u; d++) {\n var y = r[c >>> 24] ^ o[l >>> 16 & 255] ^ i[p >>> 8 & 255] ^ s[255 & h] ^ n[f++],\n g = r[l >>> 24] ^ o[p >>> 16 & 255] ^ i[h >>> 8 & 255] ^ s[255 & c] ^ n[f++],\n m = r[p >>> 24] ^ o[h >>> 16 & 255] ^ i[c >>> 8 & 255] ^ s[255 & l] ^ n[f++];\n h = r[h >>> 24] ^ o[c >>> 16 & 255] ^ i[l >>> 8 & 255] ^ s[255 & p] ^ n[f++], c = y, l = g, p = m;\n }\n y = (a[c >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[p >>> 8 & 255] << 8 | a[255 & h]) ^ n[f++], g = (a[l >>> 24] << 24 | a[p >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & c]) ^ n[f++], m = (a[p >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[c >>> 8 & 255] << 8 | a[255 & l]) ^ n[f++], h = (a[h >>> 24] << 24 | a[c >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & p]) ^ n[f++], e[t] = y, e[t + 1] = g, e[t + 2] = m, e[t + 3] = h;\n },\n keySize: 8\n });\n e.AES = t._createHelper(n);\n }(), P.mode.ECB = ((O = P.lib.BlockCipherMode.extend()).Encryptor = O.extend({\n processBlock: function (e, t) {\n this._cipher.encryptBlock(e, t);\n }\n }), O.Decryptor = O.extend({\n processBlock: function (e, t) {\n this._cipher.decryptBlock(e, t);\n }\n }), O);\n var E = P;\n function A(e) {\n var t,\n n = [];\n for (t = 0; t < e.length; t += 1) n[t / 4 | 0] |= e[t] << 24 - 8 * t;\n return E.lib.WordArray.create(n, e.length);\n }\n var T = function () {\n function e(e) {\n var t = e.config;\n this._config = t, this._iv = \"0123456789012345\", this._allowedKeyEncodings = [\"hex\", \"utf8\", \"base64\", \"binary\"], this._allowedKeyLengths = [128, 256], this._allowedModes = [\"ecb\", \"cbc\"], this._defaultOptions = {\n encryptKey: !0,\n keyEncoding: \"utf8\",\n keyLength: 256,\n mode: \"cbc\"\n };\n }\n return e.prototype.HMACSHA256 = function (e) {\n return E.HmacSHA256(e, this._config.secretKey).toString(E.enc.Base64);\n }, e.prototype.SHA256 = function (e) {\n return E.SHA256(e).toString(E.enc.Hex);\n }, e.prototype._parseOptions = function (e) {\n var t = e || {};\n return t.hasOwnProperty(\"encryptKey\") || (t.encryptKey = this._defaultOptions.encryptKey), t.hasOwnProperty(\"keyEncoding\") || (t.keyEncoding = this._defaultOptions.keyEncoding), t.hasOwnProperty(\"keyLength\") || (t.keyLength = this._defaultOptions.keyLength), t.hasOwnProperty(\"mode\") || (t.mode = this._defaultOptions.mode), -1 === this._allowedKeyEncodings.indexOf(t.keyEncoding.toLowerCase()) && (t.keyEncoding = this._defaultOptions.keyEncoding), -1 === this._allowedKeyLengths.indexOf(parseInt(t.keyLength, 10)) && (t.keyLength = this._defaultOptions.keyLength), -1 === this._allowedModes.indexOf(t.mode.toLowerCase()) && (t.mode = this._defaultOptions.mode), t;\n }, e.prototype._decodeKey = function (e, t) {\n return \"base64\" === t.keyEncoding ? E.enc.Base64.parse(e) : \"hex\" === t.keyEncoding ? E.enc.Hex.parse(e) : e;\n }, e.prototype._getPaddedKey = function (e, t) {\n return e = this._decodeKey(e, t), t.encryptKey ? E.enc.Utf8.parse(this.SHA256(e).slice(0, 32)) : e;\n }, e.prototype._getMode = function (e) {\n return \"ecb\" === e.mode ? E.mode.ECB : E.mode.CBC;\n }, e.prototype._getIV = function (e) {\n return \"cbc\" === e.mode ? E.enc.Utf8.parse(this._iv) : null;\n }, e.prototype._getRandomIV = function () {\n return E.lib.WordArray.random(16);\n }, e.prototype.encrypt = function (e, t, n) {\n return this._config.customEncrypt ? this._config.customEncrypt(e) : this.pnEncrypt(e, t, n);\n }, e.prototype.decrypt = function (e, t, n) {\n return this._config.customDecrypt ? this._config.customDecrypt(e) : this.pnDecrypt(e, t, n);\n }, e.prototype.pnEncrypt = function (e, t, n) {\n if (!t && !this._config.cipherKey) return e;\n n = this._parseOptions(n);\n var r = this._getMode(n),\n o = this._getPaddedKey(t || this._config.cipherKey, n);\n if (this._config.useRandomIVs) {\n var i = this._getRandomIV(),\n s = E.AES.encrypt(e, o, {\n iv: i,\n mode: r\n }).ciphertext;\n return i.clone().concat(s.clone()).toString(E.enc.Base64);\n }\n var a = this._getIV(n);\n return E.AES.encrypt(e, o, {\n iv: a,\n mode: r\n }).ciphertext.toString(E.enc.Base64) || e;\n }, e.prototype.pnDecrypt = function (e, t, n) {\n if (!t && !this._config.cipherKey) return e;\n n = this._parseOptions(n);\n var r = this._getMode(n),\n o = this._getPaddedKey(t || this._config.cipherKey, n);\n if (this._config.useRandomIVs) {\n var i = A((u = new Uint8ClampedArray(m(e))).slice(0, 16)),\n s = A(u.slice(16));\n try {\n var a = E.AES.decrypt({\n ciphertext: s\n }, o, {\n iv: i,\n mode: r\n }).toString(E.enc.Utf8);\n return JSON.parse(a);\n } catch (e) {\n return null;\n }\n } else {\n i = this._getIV(n);\n try {\n var u = E.enc.Base64.parse(e);\n a = E.AES.decrypt({\n ciphertext: u\n }, o, {\n iv: i,\n mode: r\n }).toString(E.enc.Utf8);\n return JSON.parse(a);\n } catch (e) {\n return null;\n }\n }\n }, e;\n }(),\n N = function () {\n function e(e) {\n var t = e.timeEndpoint;\n this._timeEndpoint = t;\n }\n return e.prototype.onReconnection = function (e) {\n this._reconnectionCallback = e;\n }, e.prototype.startPolling = function () {\n this._timeTimer = setInterval(this._performTimeLoop.bind(this), 3e3);\n }, e.prototype.stopPolling = function () {\n clearInterval(this._timeTimer);\n }, e.prototype._performTimeLoop = function () {\n var e = this;\n this._timeEndpoint(function (t) {\n t.error || (clearInterval(e._timeTimer), e._reconnectionCallback());\n });\n }, e;\n }(),\n C = function () {\n function e(e) {\n var t = e.config;\n this.hashHistory = [], this._config = t;\n }\n return e.prototype.getKey = function (e) {\n var t = function (e) {\n var t = 0;\n if (0 === e.length) return t;\n for (var n = 0; n < e.length; n += 1) t = (t << 5) - t + e.charCodeAt(n), t &= t;\n return t;\n }(JSON.stringify(e.payload)).toString(),\n n = e.publishMetaData.publishTimetoken;\n return \"\".concat(n, \"-\").concat(t);\n }, e.prototype.isDuplicate = function (e) {\n return this.hashHistory.includes(this.getKey(e));\n }, e.prototype.addEntry = function (e) {\n this.hashHistory.length >= this._config.maximumCacheSize && this.hashHistory.shift(), this.hashHistory.push(this.getKey(e));\n }, e.prototype.clearHistory = function () {\n this.hashHistory = [];\n }, e;\n }(),\n k = {\n PNNetworkUpCategory: \"PNNetworkUpCategory\",\n PNNetworkDownCategory: \"PNNetworkDownCategory\",\n PNNetworkIssuesCategory: \"PNNetworkIssuesCategory\",\n PNTimeoutCategory: \"PNTimeoutCategory\",\n PNBadRequestCategory: \"PNBadRequestCategory\",\n PNAccessDeniedCategory: \"PNAccessDeniedCategory\",\n PNUnknownCategory: \"PNUnknownCategory\",\n PNReconnectedCategory: \"PNReconnectedCategory\",\n PNConnectedCategory: \"PNConnectedCategory\",\n PNRequestMessageCountExceededCategory: \"PNRequestMessageCountExceededCategory\",\n PNDisconnectedCategory: \"PNDisconnectedCategory\",\n PNConnectionErrorCategory: \"PNConnectionErrorCategory\",\n PNDisconnectedUnexpectedlyCategory: \"PNDisconnectedUnexpectedlyCategory\"\n },\n M = function () {\n function e(e) {\n var t = e.subscribeEndpoint,\n n = e.leaveEndpoint,\n r = e.heartbeatEndpoint,\n o = e.setStateEndpoint,\n i = e.timeEndpoint,\n s = e.getFileUrl,\n a = e.config,\n u = e.crypto,\n c = e.listenerManager,\n l = e.cryptoModule,\n p = e.eventEmitter;\n this._listenerManager = c, this._config = a, this._leaveEndpoint = n, this._heartbeatEndpoint = r, this._setStateEndpoint = o, this._subscribeEndpoint = t, this._getFileUrl = s, this._crypto = u, this._cryptoModule = l, this._channels = {}, this._presenceChannels = {}, this._heartbeatChannels = {}, this._heartbeatChannelGroups = {}, this._channelGroups = {}, this._presenceChannelGroups = {}, this._pendingChannelSubscriptions = [], this._pendingChannelGroupSubscriptions = [], this._currentTimetoken = 0, this._lastTimetoken = 0, this._storedTimetoken = null, this._subscriptionStatusAnnounced = !1, this._isOnline = !0, this._reconnectionManager = new N({\n timeEndpoint: i\n }), this._dedupingManager = new C({\n config: a\n }), this._cryptoModule && (this._decoder = new TextDecoder()), this._eventEmitter = p;\n }\n return e.prototype.adaptStateChange = function (e, t) {\n var n = this,\n r = e.state,\n o = e.channels,\n i = void 0 === o ? [] : o,\n s = e.channelGroups,\n a = void 0 === s ? [] : s,\n u = e.withHeartbeat,\n c = void 0 !== u && u;\n if (i.forEach(function (e) {\n e in n._channels && (n._channels[e].state = r);\n }), a.forEach(function (e) {\n e in n._channelGroups && (n._channelGroups[e].state = r);\n }), c) {\n var l = {};\n return i.forEach(function (e) {\n return l[e] = r;\n }), a.forEach(function (e) {\n return l[e] = r;\n }), this._heartbeatEndpoint({\n channels: i,\n channelGroups: a,\n state: l\n }, t);\n }\n return this._setStateEndpoint({\n state: r,\n channels: i,\n channelGroups: a\n }, t);\n }, e.prototype.adaptPresenceChange = function (e) {\n var t = this,\n n = e.connected,\n r = e.channels,\n o = void 0 === r ? [] : r,\n i = e.channelGroups,\n s = void 0 === i ? [] : i;\n n ? (o.forEach(function (e) {\n t._heartbeatChannels[e] = {\n state: {}\n };\n }), s.forEach(function (e) {\n t._heartbeatChannelGroups[e] = {\n state: {}\n };\n })) : (o.forEach(function (e) {\n e in t._heartbeatChannels && delete t._heartbeatChannels[e];\n }), s.forEach(function (e) {\n e in t._heartbeatChannelGroups && delete t._heartbeatChannelGroups[e];\n }), !1 === this._config.suppressLeaveEvents && this._leaveEndpoint({\n channels: o,\n channelGroups: s\n }, function (e) {\n t._listenerManager.announceStatus(e);\n })), this.reconnect();\n }, e.prototype.adaptSubscribeChange = function (e) {\n var t = this,\n n = e.timetoken,\n r = e.channels,\n o = void 0 === r ? [] : r,\n i = e.channelGroups,\n s = void 0 === i ? [] : i,\n a = e.withPresence,\n u = void 0 !== a && a,\n c = e.withHeartbeats,\n l = void 0 !== c && c;\n this._config.subscribeKey && \"\" !== this._config.subscribeKey ? (n && (this._lastTimetoken = this._currentTimetoken, this._currentTimetoken = n), \"0\" !== this._currentTimetoken && 0 !== this._currentTimetoken && (this._storedTimetoken = this._currentTimetoken, this._currentTimetoken = 0), o.forEach(function (e) {\n t._channels[e] = {\n state: {}\n }, u && (t._presenceChannels[e] = {}), (l || t._config.getHeartbeatInterval()) && (t._heartbeatChannels[e] = {}), t._pendingChannelSubscriptions.push(e);\n }), s.forEach(function (e) {\n t._channelGroups[e] = {\n state: {}\n }, u && (t._presenceChannelGroups[e] = {}), (l || t._config.getHeartbeatInterval()) && (t._heartbeatChannelGroups[e] = {}), t._pendingChannelGroupSubscriptions.push(e);\n }), this._subscriptionStatusAnnounced = !1, this.reconnect()) : console && console.log && console.log(\"subscribe key missing; aborting subscribe\");\n }, e.prototype.adaptUnsubscribeChange = function (e, t) {\n var n = this,\n r = e.channels,\n o = void 0 === r ? [] : r,\n i = e.channelGroups,\n s = void 0 === i ? [] : i,\n a = [],\n u = [];\n o.forEach(function (e) {\n e in n._channels && (delete n._channels[e], a.push(e), e in n._heartbeatChannels && delete n._heartbeatChannels[e]), e in n._presenceChannels && (delete n._presenceChannels[e], a.push(e));\n }), s.forEach(function (e) {\n e in n._channelGroups && (delete n._channelGroups[e], u.push(e), e in n._heartbeatChannelGroups && delete n._heartbeatChannelGroups[e]), e in n._presenceChannelGroups && (delete n._presenceChannelGroups[e], u.push(e));\n }), 0 === a.length && 0 === u.length || (!1 !== this._config.suppressLeaveEvents || t || this._leaveEndpoint({\n channels: a,\n channelGroups: u\n }, function (e) {\n e.affectedChannels = a, e.affectedChannelGroups = u, e.currentTimetoken = n._currentTimetoken, e.lastTimetoken = n._lastTimetoken, n._listenerManager.announceStatus(e);\n }), 0 === Object.keys(this._channels).length && 0 === Object.keys(this._presenceChannels).length && 0 === Object.keys(this._channelGroups).length && 0 === Object.keys(this._presenceChannelGroups).length && (this._lastTimetoken = 0, this._currentTimetoken = 0, this._storedTimetoken = null, this._region = null, this._reconnectionManager.stopPolling()), this.reconnect());\n }, e.prototype.unsubscribeAll = function (e) {\n this.adaptUnsubscribeChange({\n channels: this.getSubscribedChannels(),\n channelGroups: this.getSubscribedChannelGroups()\n }, e);\n }, e.prototype.getHeartbeatChannels = function () {\n return Object.keys(this._heartbeatChannels);\n }, e.prototype.getHeartbeatChannelGroups = function () {\n return Object.keys(this._heartbeatChannelGroups);\n }, e.prototype.getSubscribedChannels = function () {\n return Object.keys(this._channels);\n }, e.prototype.getSubscribedChannelGroups = function () {\n return Object.keys(this._channelGroups);\n }, e.prototype.reconnect = function () {\n this._startSubscribeLoop(), this._registerHeartbeatTimer();\n }, e.prototype.disconnect = function () {\n this._stopSubscribeLoop(), this._stopHeartbeatTimer(), this._reconnectionManager.stopPolling();\n }, e.prototype._registerHeartbeatTimer = function () {\n this._stopHeartbeatTimer(), 0 !== this._config.getHeartbeatInterval() && void 0 !== this._config.getHeartbeatInterval() && (this._performHeartbeatLoop(), this._heartbeatTimer = setInterval(this._performHeartbeatLoop.bind(this), 1e3 * this._config.getHeartbeatInterval()));\n }, e.prototype._stopHeartbeatTimer = function () {\n this._heartbeatTimer && (clearInterval(this._heartbeatTimer), this._heartbeatTimer = null);\n }, e.prototype._performHeartbeatLoop = function () {\n var e = this,\n t = this.getHeartbeatChannels(),\n n = this.getHeartbeatChannelGroups(),\n r = {};\n if (0 !== t.length || 0 !== n.length) {\n this.getSubscribedChannels().forEach(function (t) {\n var n = e._channels[t].state;\n Object.keys(n).length && (r[t] = n);\n }), this.getSubscribedChannelGroups().forEach(function (t) {\n var n = e._channelGroups[t].state;\n Object.keys(n).length && (r[t] = n);\n });\n this._heartbeatEndpoint({\n channels: t,\n channelGroups: n,\n state: r\n }, function (t) {\n t.error && e._config.announceFailedHeartbeats && e._listenerManager.announceStatus(t), t.error && e._config.autoNetworkDetection && e._isOnline && (e._isOnline = !1, e.disconnect(), e._listenerManager.announceNetworkDown(), e.reconnect()), !t.error && e._config.announceSuccessfulHeartbeats && e._listenerManager.announceStatus(t);\n }.bind(this));\n }\n }, e.prototype._startSubscribeLoop = function () {\n var e = this;\n this._stopSubscribeLoop();\n var t = {},\n n = [],\n r = [];\n if (Object.keys(this._channels).forEach(function (r) {\n var o = e._channels[r].state;\n Object.keys(o).length && (t[r] = o), n.push(r);\n }), Object.keys(this._presenceChannels).forEach(function (e) {\n n.push(\"\".concat(e, \"-pnpres\"));\n }), Object.keys(this._channelGroups).forEach(function (n) {\n var o = e._channelGroups[n].state;\n Object.keys(o).length && (t[n] = o), r.push(n);\n }), Object.keys(this._presenceChannelGroups).forEach(function (e) {\n r.push(\"\".concat(e, \"-pnpres\"));\n }), 0 !== n.length || 0 !== r.length) {\n var o = {\n channels: n,\n channelGroups: r,\n state: t,\n timetoken: this._currentTimetoken,\n filterExpression: this._config.filterExpression,\n region: this._region\n };\n this._subscribeCall = this._subscribeEndpoint(o, this._processSubscribeResponse.bind(this));\n }\n }, e.prototype._processSubscribeResponse = function (e, t) {\n var n = this;\n if (e.error) {\n if (e.errorData && \"Aborted\" === e.errorData.message) return;\n e.category === k.PNTimeoutCategory ? this._startSubscribeLoop() : e.category === k.PNNetworkIssuesCategory ? (this.disconnect(), e.error && this._config.autoNetworkDetection && this._isOnline && (this._isOnline = !1, this._listenerManager.announceNetworkDown()), this._reconnectionManager.onReconnection(function () {\n n._config.autoNetworkDetection && !n._isOnline && (n._isOnline = !0, n._listenerManager.announceNetworkUp()), n.reconnect(), n._subscriptionStatusAnnounced = !0;\n var t = {\n category: k.PNReconnectedCategory,\n operation: e.operation,\n lastTimetoken: n._lastTimetoken,\n currentTimetoken: n._currentTimetoken\n };\n n._listenerManager.announceStatus(t);\n }), this._reconnectionManager.startPolling(), this._listenerManager.announceStatus(e)) : e.category === k.PNBadRequestCategory ? (this._stopHeartbeatTimer(), this._listenerManager.announceStatus(e)) : this._listenerManager.announceStatus(e);\n } else {\n if (this._storedTimetoken ? (this._currentTimetoken = this._storedTimetoken, this._storedTimetoken = null) : (this._lastTimetoken = this._currentTimetoken, this._currentTimetoken = t.metadata.timetoken), !this._subscriptionStatusAnnounced) {\n var r = {};\n r.category = k.PNConnectedCategory, r.operation = e.operation, r.affectedChannels = this._pendingChannelSubscriptions, r.subscribedChannels = this.getSubscribedChannels(), r.affectedChannelGroups = this._pendingChannelGroupSubscriptions, r.lastTimetoken = this._lastTimetoken, r.currentTimetoken = this._currentTimetoken, this._subscriptionStatusAnnounced = !0, this._listenerManager.announceStatus(r), this._pendingChannelSubscriptions = [], this._pendingChannelGroupSubscriptions = [];\n }\n var o = t.messages || [],\n i = this._config,\n s = i.requestMessageCountThreshold,\n a = i.dedupeOnSubscribe;\n if (s && o.length >= s) {\n var u = {};\n u.category = k.PNRequestMessageCountExceededCategory, u.operation = e.operation, this._listenerManager.announceStatus(u);\n }\n o.forEach(function (e) {\n if (e.channel, e.subscriptionMatch, a) {\n if (n._dedupingManager.isDuplicate(e)) return;\n n._dedupingManager.addEntry(e);\n }\n n._eventEmitter.emitEvent(e);\n }), this._region = t.metadata.region, this._startSubscribeLoop();\n }\n }, e.prototype._stopSubscribeLoop = function () {\n this._subscribeCall && (\"function\" == typeof this._subscribeCall.abort && this._subscribeCall.abort(), this._subscribeCall = null);\n }, e.prototype._renameEvent = function (e) {\n return \"set\" === e ? \"updated\" : \"removed\";\n }, e.prototype._renameChannelField = function (e) {\n var t = e.channel,\n n = r(e, [\"channel\"]);\n return n.spaceId = t, n;\n }, e;\n }(),\n j = {\n PNTimeOperation: \"PNTimeOperation\",\n PNHistoryOperation: \"PNHistoryOperation\",\n PNDeleteMessagesOperation: \"PNDeleteMessagesOperation\",\n PNFetchMessagesOperation: \"PNFetchMessagesOperation\",\n PNMessageCounts: \"PNMessageCountsOperation\",\n PNSubscribeOperation: \"PNSubscribeOperation\",\n PNUnsubscribeOperation: \"PNUnsubscribeOperation\",\n PNPublishOperation: \"PNPublishOperation\",\n PNSignalOperation: \"PNSignalOperation\",\n PNAddMessageActionOperation: \"PNAddActionOperation\",\n PNRemoveMessageActionOperation: \"PNRemoveMessageActionOperation\",\n PNGetMessageActionsOperation: \"PNGetMessageActionsOperation\",\n PNCreateUserOperation: \"PNCreateUserOperation\",\n PNUpdateUserOperation: \"PNUpdateUserOperation\",\n PNDeleteUserOperation: \"PNDeleteUserOperation\",\n PNGetUserOperation: \"PNGetUsersOperation\",\n PNGetUsersOperation: \"PNGetUsersOperation\",\n PNCreateSpaceOperation: \"PNCreateSpaceOperation\",\n PNUpdateSpaceOperation: \"PNUpdateSpaceOperation\",\n PNDeleteSpaceOperation: \"PNDeleteSpaceOperation\",\n PNGetSpaceOperation: \"PNGetSpacesOperation\",\n PNGetSpacesOperation: \"PNGetSpacesOperation\",\n PNGetMembersOperation: \"PNGetMembersOperation\",\n PNUpdateMembersOperation: \"PNUpdateMembersOperation\",\n PNGetMembershipsOperation: \"PNGetMembershipsOperation\",\n PNUpdateMembershipsOperation: \"PNUpdateMembershipsOperation\",\n PNListFilesOperation: \"PNListFilesOperation\",\n PNGenerateUploadUrlOperation: \"PNGenerateUploadUrlOperation\",\n PNPublishFileOperation: \"PNPublishFileOperation\",\n PNGetFileUrlOperation: \"PNGetFileUrlOperation\",\n PNDownloadFileOperation: \"PNDownloadFileOperation\",\n PNGetAllUUIDMetadataOperation: \"PNGetAllUUIDMetadataOperation\",\n PNGetUUIDMetadataOperation: \"PNGetUUIDMetadataOperation\",\n PNSetUUIDMetadataOperation: \"PNSetUUIDMetadataOperation\",\n PNRemoveUUIDMetadataOperation: \"PNRemoveUUIDMetadataOperation\",\n PNGetAllChannelMetadataOperation: \"PNGetAllChannelMetadataOperation\",\n PNGetChannelMetadataOperation: \"PNGetChannelMetadataOperation\",\n PNSetChannelMetadataOperation: \"PNSetChannelMetadataOperation\",\n PNRemoveChannelMetadataOperation: \"PNRemoveChannelMetadataOperation\",\n PNSetMembersOperation: \"PNSetMembersOperation\",\n PNSetMembershipsOperation: \"PNSetMembershipsOperation\",\n PNPushNotificationEnabledChannelsOperation: \"PNPushNotificationEnabledChannelsOperation\",\n PNRemoveAllPushNotificationsOperation: \"PNRemoveAllPushNotificationsOperation\",\n PNWhereNowOperation: \"PNWhereNowOperation\",\n PNSetStateOperation: \"PNSetStateOperation\",\n PNHereNowOperation: \"PNHereNowOperation\",\n PNGetStateOperation: \"PNGetStateOperation\",\n PNHeartbeatOperation: \"PNHeartbeatOperation\",\n PNChannelGroupsOperation: \"PNChannelGroupsOperation\",\n PNRemoveGroupOperation: \"PNRemoveGroupOperation\",\n PNChannelsForGroupOperation: \"PNChannelsForGroupOperation\",\n PNAddChannelsToGroupOperation: \"PNAddChannelsToGroupOperation\",\n PNRemoveChannelsFromGroupOperation: \"PNRemoveChannelsFromGroupOperation\",\n PNAccessManagerGrant: \"PNAccessManagerGrant\",\n PNAccessManagerGrantToken: \"PNAccessManagerGrantToken\",\n PNAccessManagerAudit: \"PNAccessManagerAudit\",\n PNAccessManagerRevokeToken: \"PNAccessManagerRevokeToken\",\n PNHandshakeOperation: \"PNHandshakeOperation\",\n PNReceiveMessagesOperation: \"PNReceiveMessagesOperation\"\n },\n R = function () {\n function e(e) {\n this._maximumSamplesCount = 100, this._trackedLatencies = {}, this._latencies = {}, this._telemetryExcludeOperations = [j.PNSubscribeOperation, j.PNReceiveMessagesOperation, j.PNHandshakeOperation], this._maximumSamplesCount = e.maximumSamplesCount || this._maximumSamplesCount;\n }\n return e.prototype.operationsLatencyForRequest = function () {\n var e = this,\n t = {};\n return Object.keys(this._latencies).forEach(function (n) {\n var r = e._latencies[n],\n o = e._averageLatency(r);\n o > 0 && (t[\"l_\".concat(n)] = o);\n }), t;\n }, e.prototype.startLatencyMeasure = function (e, t) {\n !this._telemetryExcludeOperations.includes(e) && t && (this._trackedLatencies[t] = Date.now());\n }, e.prototype.stopLatencyMeasure = function (e, t) {\n if (!this._telemetryExcludeOperations.includes(e) && t) {\n var n = this._endpointName(e),\n r = this._latencies[n],\n o = this._trackedLatencies[t];\n r || (this._latencies[n] = [], r = this._latencies[n]), r.push(Date.now() - o), r.length > this._maximumSamplesCount && r.splice(0, r.length - this._maximumSamplesCount), delete this._trackedLatencies[t];\n }\n }, e.prototype._averageLatency = function (e) {\n return Math.floor(e.reduce(function (e, t) {\n return e + t;\n }, 0) / e.length);\n }, e.prototype._endpointName = function (e) {\n var t = null;\n switch (e) {\n case j.PNPublishOperation:\n t = \"pub\";\n break;\n case j.PNSignalOperation:\n t = \"sig\";\n break;\n case j.PNHistoryOperation:\n case j.PNFetchMessagesOperation:\n case j.PNDeleteMessagesOperation:\n case j.PNMessageCounts:\n t = \"hist\";\n break;\n case j.PNUnsubscribeOperation:\n case j.PNWhereNowOperation:\n case j.PNHereNowOperation:\n case j.PNHeartbeatOperation:\n case j.PNSetStateOperation:\n case j.PNGetStateOperation:\n t = \"pres\";\n break;\n case j.PNAddChannelsToGroupOperation:\n case j.PNRemoveChannelsFromGroupOperation:\n case j.PNChannelGroupsOperation:\n case j.PNRemoveGroupOperation:\n case j.PNChannelsForGroupOperation:\n t = \"cg\";\n break;\n case j.PNPushNotificationEnabledChannelsOperation:\n case j.PNRemoveAllPushNotificationsOperation:\n t = \"push\";\n break;\n case j.PNCreateUserOperation:\n case j.PNUpdateUserOperation:\n case j.PNDeleteUserOperation:\n case j.PNGetUserOperation:\n case j.PNGetUsersOperation:\n case j.PNCreateSpaceOperation:\n case j.PNUpdateSpaceOperation:\n case j.PNDeleteSpaceOperation:\n case j.PNGetSpaceOperation:\n case j.PNGetSpacesOperation:\n case j.PNGetMembersOperation:\n case j.PNUpdateMembersOperation:\n case j.PNGetMembershipsOperation:\n case j.PNUpdateMembershipsOperation:\n t = \"obj\";\n break;\n case j.PNAddMessageActionOperation:\n case j.PNRemoveMessageActionOperation:\n case j.PNGetMessageActionsOperation:\n t = \"msga\";\n break;\n case j.PNAccessManagerGrant:\n case j.PNAccessManagerAudit:\n t = \"pam\";\n break;\n case j.PNAccessManagerGrantToken:\n case j.PNAccessManagerRevokeToken:\n t = \"pamv3\";\n break;\n default:\n t = \"time\";\n }\n return t;\n }, e;\n }(),\n x = function () {\n function e(e, t, n) {\n this._payload = e, this._setDefaultPayloadStructure(), this.title = t, this.body = n;\n }\n return Object.defineProperty(e.prototype, \"payload\", {\n get: function () {\n return this._payload;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"title\", {\n set: function (e) {\n this._title = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"subtitle\", {\n set: function (e) {\n this._subtitle = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"body\", {\n set: function (e) {\n this._body = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"badge\", {\n set: function (e) {\n this._badge = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"sound\", {\n set: function (e) {\n this._sound = e;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype._setDefaultPayloadStructure = function () {}, e.prototype.toObject = function () {\n return {};\n }, e;\n }(),\n U = function (e) {\n function r() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(r, e), Object.defineProperty(r.prototype, \"configurations\", {\n set: function (e) {\n e && e.length && (this._configurations = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"notification\", {\n get: function () {\n return this._payload.aps;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (e) {\n e && e.length && (this._payload.aps.alert.title = e, this._title = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"subtitle\", {\n get: function () {\n return this._subtitle;\n },\n set: function (e) {\n e && e.length && (this._payload.aps.alert.subtitle = e, this._subtitle = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"body\", {\n get: function () {\n return this._body;\n },\n set: function (e) {\n e && e.length && (this._payload.aps.alert.body = e, this._body = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"badge\", {\n get: function () {\n return this._badge;\n },\n set: function (e) {\n null != e && (this._payload.aps.badge = e, this._badge = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"sound\", {\n get: function () {\n return this._sound;\n },\n set: function (e) {\n e && e.length && (this._payload.aps.sound = e, this._sound = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"silent\", {\n set: function (e) {\n this._isSilent = e;\n },\n enumerable: !1,\n configurable: !0\n }), r.prototype._setDefaultPayloadStructure = function () {\n this._payload.aps = {\n alert: {}\n };\n }, r.prototype.toObject = function () {\n var e = this,\n t = n({}, this._payload),\n r = t.aps,\n o = r.alert;\n if (this._isSilent && (r[\"content-available\"] = 1), \"apns2\" === this._apnsPushType) {\n if (!this._configurations || !this._configurations.length) throw new ReferenceError(\"APNS2 configuration is missing\");\n var i = [];\n this._configurations.forEach(function (t) {\n i.push(e._objectFromAPNS2Configuration(t));\n }), i.length && (t.pn_push = i);\n }\n return o && Object.keys(o).length || delete r.alert, this._isSilent && (delete r.alert, delete r.badge, delete r.sound, o = {}), this._isSilent || Object.keys(o).length ? t : null;\n }, r.prototype._objectFromAPNS2Configuration = function (e) {\n var t = this;\n if (!e.targets || !e.targets.length) throw new ReferenceError(\"At least one APNS2 target should be provided\");\n var n = [];\n e.targets.forEach(function (e) {\n n.push(t._objectFromAPNSTarget(e));\n });\n var r = e.collapseId,\n o = e.expirationDate,\n i = {\n auth_method: \"token\",\n targets: n,\n version: \"v2\"\n };\n return r && r.length && (i.collapse_id = r), o && (i.expiration = o.toISOString()), i;\n }, r.prototype._objectFromAPNSTarget = function (e) {\n if (!e.topic || !e.topic.length) throw new TypeError(\"Target 'topic' undefined.\");\n var t = e.topic,\n n = e.environment,\n r = void 0 === n ? \"development\" : n,\n o = e.excludedDevices,\n i = void 0 === o ? [] : o,\n s = {\n topic: t,\n environment: r\n };\n return i.length && (s.excluded_devices = i), s;\n }, r;\n }(x),\n I = function (e) {\n function r() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(r, e), Object.defineProperty(r.prototype, \"backContent\", {\n get: function () {\n return this._backContent;\n },\n set: function (e) {\n e && e.length && (this._payload.back_content = e, this._backContent = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"backTitle\", {\n get: function () {\n return this._backTitle;\n },\n set: function (e) {\n e && e.length && (this._payload.back_title = e, this._backTitle = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"count\", {\n get: function () {\n return this._count;\n },\n set: function (e) {\n null != e && (this._payload.count = e, this._count = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (e) {\n e && e.length && (this._payload.title = e, this._title = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n set: function (e) {\n e && e.length && (this._payload.type = e, this._type = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"subtitle\", {\n get: function () {\n return this.backTitle;\n },\n set: function (e) {\n this.backTitle = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"body\", {\n get: function () {\n return this.backContent;\n },\n set: function (e) {\n this.backContent = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(r.prototype, \"badge\", {\n get: function () {\n return this.count;\n },\n set: function (e) {\n this.count = e;\n },\n enumerable: !1,\n configurable: !0\n }), r.prototype.toObject = function () {\n return Object.keys(this._payload).length ? n({}, this._payload) : null;\n }, r;\n }(x),\n D = function (e) {\n function o() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(o, e), Object.defineProperty(o.prototype, \"notification\", {\n get: function () {\n return this._payload.notification;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(o.prototype, \"data\", {\n get: function () {\n return this._payload.data;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(o.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n set: function (e) {\n e && e.length && (this._payload.notification.title = e, this._title = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(o.prototype, \"body\", {\n get: function () {\n return this._body;\n },\n set: function (e) {\n e && e.length && (this._payload.notification.body = e, this._body = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(o.prototype, \"sound\", {\n get: function () {\n return this._sound;\n },\n set: function (e) {\n e && e.length && (this._payload.notification.sound = e, this._sound = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(o.prototype, \"icon\", {\n get: function () {\n return this._icon;\n },\n set: function (e) {\n e && e.length && (this._payload.notification.icon = e, this._icon = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(o.prototype, \"tag\", {\n get: function () {\n return this._tag;\n },\n set: function (e) {\n e && e.length && (this._payload.notification.tag = e, this._tag = e);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(o.prototype, \"silent\", {\n set: function (e) {\n this._isSilent = e;\n },\n enumerable: !1,\n configurable: !0\n }), o.prototype._setDefaultPayloadStructure = function () {\n this._payload.notification = {}, this._payload.data = {};\n }, o.prototype.toObject = function () {\n var e = n({}, this._payload.data),\n t = null,\n o = {};\n if (Object.keys(this._payload).length > 2) {\n var i = this._payload;\n i.notification, i.data;\n var s = r(i, [\"notification\", \"data\"]);\n e = n(n({}, e), s);\n }\n return this._isSilent ? e.notification = this._payload.notification : t = this._payload.notification, Object.keys(e).length && (o.data = e), t && Object.keys(t).length && (o.notification = t), Object.keys(o).length ? o : null;\n }, o;\n }(x),\n F = function () {\n function e(e, t) {\n this._payload = {\n apns: {},\n mpns: {},\n fcm: {}\n }, this._title = e, this._body = t, this.apns = new U(this._payload.apns, e, t), this.mpns = new I(this._payload.mpns, e, t), this.fcm = new D(this._payload.fcm, e, t);\n }\n return Object.defineProperty(e.prototype, \"debugging\", {\n set: function (e) {\n this._debugging = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"title\", {\n get: function () {\n return this._title;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"body\", {\n get: function () {\n return this._body;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"subtitle\", {\n get: function () {\n return this._subtitle;\n },\n set: function (e) {\n this._subtitle = e, this.apns.subtitle = e, this.mpns.subtitle = e, this.fcm.subtitle = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"badge\", {\n get: function () {\n return this._badge;\n },\n set: function (e) {\n this._badge = e, this.apns.badge = e, this.mpns.badge = e, this.fcm.badge = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"sound\", {\n get: function () {\n return this._sound;\n },\n set: function (e) {\n this._sound = e, this.apns.sound = e, this.mpns.sound = e, this.fcm.sound = e;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.buildPayload = function (e) {\n var t = {};\n if (e.includes(\"apns\") || e.includes(\"apns2\")) {\n this.apns._apnsPushType = e.includes(\"apns\") ? \"apns\" : \"apns2\";\n var n = this.apns.toObject();\n n && Object.keys(n).length && (t.pn_apns = n);\n }\n if (e.includes(\"mpns\")) {\n var r = this.mpns.toObject();\n r && Object.keys(r).length && (t.pn_mpns = r);\n }\n if (e.includes(\"fcm\")) {\n var o = this.fcm.toObject();\n o && Object.keys(o).length && (t.pn_gcm = o);\n }\n return Object.keys(t).length && this._debugging && (t.pn_debug = !0), t;\n }, e;\n }(),\n L = function () {\n function e() {\n this._listeners = [];\n }\n return e.prototype.addListener = function (e) {\n this._listeners.includes(e) || this._listeners.push(e);\n }, e.prototype.removeListener = function (e) {\n var t = [];\n this._listeners.forEach(function (n) {\n n !== e && t.push(n);\n }), this._listeners = t;\n }, e.prototype.removeAllListeners = function () {\n this._listeners = [];\n }, e.prototype.announcePresence = function (e) {\n this._listeners.forEach(function (t) {\n t.presence && t.presence(e);\n });\n }, e.prototype.announceStatus = function (e) {\n this._listeners.forEach(function (t) {\n t.status && t.status(e);\n });\n }, e.prototype.announceMessage = function (e) {\n this._listeners.forEach(function (t) {\n t.message && t.message(e);\n });\n }, e.prototype.announceSignal = function (e) {\n this._listeners.forEach(function (t) {\n t.signal && t.signal(e);\n });\n }, e.prototype.announceMessageAction = function (e) {\n this._listeners.forEach(function (t) {\n t.messageAction && t.messageAction(e);\n });\n }, e.prototype.announceFile = function (e) {\n this._listeners.forEach(function (t) {\n t.file && t.file(e);\n });\n }, e.prototype.announceObjects = function (e) {\n this._listeners.forEach(function (t) {\n t.objects && t.objects(e);\n });\n }, e.prototype.announceUser = function (e) {\n this._listeners.forEach(function (t) {\n t.user && t.user(e);\n });\n }, e.prototype.announceSpace = function (e) {\n this._listeners.forEach(function (t) {\n t.space && t.space(e);\n });\n }, e.prototype.announceMembership = function (e) {\n this._listeners.forEach(function (t) {\n t.membership && t.membership(e);\n });\n }, e.prototype.announceNetworkUp = function () {\n var e = {};\n e.category = k.PNNetworkUpCategory, this.announceStatus(e);\n }, e.prototype.announceNetworkDown = function () {\n var e = {};\n e.category = k.PNNetworkDownCategory, this.announceStatus(e);\n }, e;\n }(),\n G = function () {\n function e(e, t) {\n this._config = e, this._cbor = t;\n }\n return e.prototype.setToken = function (e) {\n e && e.length > 0 ? this._token = e : this._token = void 0;\n }, e.prototype.getToken = function () {\n return this._token;\n }, e.prototype.extractPermissions = function (e) {\n var t = {\n read: !1,\n write: !1,\n manage: !1,\n delete: !1,\n get: !1,\n update: !1,\n join: !1\n };\n return 128 == (128 & e) && (t.join = !0), 64 == (64 & e) && (t.update = !0), 32 == (32 & e) && (t.get = !0), 8 == (8 & e) && (t.delete = !0), 4 == (4 & e) && (t.manage = !0), 2 == (2 & e) && (t.write = !0), 1 == (1 & e) && (t.read = !0), t;\n }, e.prototype.parseToken = function (e) {\n var t = this,\n n = this._cbor.decodeToken(e);\n if (void 0 !== n) {\n var r = n.res.uuid ? Object.keys(n.res.uuid) : [],\n o = Object.keys(n.res.chan),\n i = Object.keys(n.res.grp),\n s = n.pat.uuid ? Object.keys(n.pat.uuid) : [],\n a = Object.keys(n.pat.chan),\n u = Object.keys(n.pat.grp),\n c = {\n version: n.v,\n timestamp: n.t,\n ttl: n.ttl,\n authorized_uuid: n.uuid\n },\n l = r.length > 0,\n p = o.length > 0,\n h = i.length > 0;\n (l || p || h) && (c.resources = {}, l && (c.resources.uuids = {}, r.forEach(function (e) {\n c.resources.uuids[e] = t.extractPermissions(n.res.uuid[e]);\n })), p && (c.resources.channels = {}, o.forEach(function (e) {\n c.resources.channels[e] = t.extractPermissions(n.res.chan[e]);\n })), h && (c.resources.groups = {}, i.forEach(function (e) {\n c.resources.groups[e] = t.extractPermissions(n.res.grp[e]);\n })));\n var f = s.length > 0,\n d = a.length > 0,\n y = u.length > 0;\n return (f || d || y) && (c.patterns = {}, f && (c.patterns.uuids = {}, s.forEach(function (e) {\n c.patterns.uuids[e] = t.extractPermissions(n.pat.uuid[e]);\n })), d && (c.patterns.channels = {}, a.forEach(function (e) {\n c.patterns.channels[e] = t.extractPermissions(n.pat.chan[e]);\n })), y && (c.patterns.groups = {}, u.forEach(function (e) {\n c.patterns.groups[e] = t.extractPermissions(n.pat.grp[e]);\n }))), Object.keys(n.meta).length > 0 && (c.meta = n.meta), c.signature = n.sig, c;\n }\n }, e;\n }();\n function K(e) {\n return encodeURIComponent(e).replace(/[!~*'()]/g, function (e) {\n return \"%\".concat(e.charCodeAt(0).toString(16).toUpperCase());\n });\n }\n function B(e) {\n return function (e) {\n var t = [];\n return Object.keys(e).forEach(function (e) {\n return t.push(e);\n }), t;\n }(e).sort();\n }\n var H = {\n signPamFromParams: function (e) {\n return B(e).map(function (t) {\n return \"\".concat(t, \"=\").concat(K(e[t]));\n }).join(\"&\");\n },\n endsWith: function (e, t) {\n return -1 !== e.indexOf(t, this.length - t.length);\n },\n createPromise: function () {\n var e, t;\n return {\n promise: new Promise(function (n, r) {\n e = n, t = r;\n }),\n reject: t,\n fulfill: e\n };\n },\n encodeString: K,\n stringToArrayBuffer: function (e) {\n for (var t = new ArrayBuffer(2 * e.length), n = new Uint16Array(t), r = 0, o = e.length; r < o; r++) n[r] = e.charCodeAt(r);\n return t;\n },\n removeSingleOccurance: function (e, t) {\n var n = Object.fromEntries(t.map(function (e) {\n return [e, !1];\n }));\n return e.filter(function (e) {\n return !(t.includes(e) && !n[e]) || (n[e] = !0, !1);\n });\n },\n findUniqueCommonElements: function (e, t) {\n return __spreadArray([], __read(e), !1).filter(function (n) {\n return t.includes(n) && e.indexOf(n) === e.lastIndexOf(n) && t.indexOf(n) === t.lastIndexOf(n);\n });\n }\n },\n q = function (e) {\n function n(t, n) {\n var r = this.constructor,\n o = e.call(this, t) || this;\n return o.name = o.constructor.name, o.status = n, o.message = t, Object.setPrototypeOf(o, r.prototype), o;\n }\n return t(n, e), n;\n }(Error);\n function z(e) {\n return (t = {\n message: e\n }).type = \"validationError\", t.error = !0, t;\n var t;\n }\n function V(e, t, n) {\n return e.usePost && e.usePost(t, n) ? e.postURL(t, n) : e.usePatch && e.usePatch(t, n) ? e.patchURL(t, n) : e.useGetFile && e.useGetFile(t, n) ? e.getFileURL(t, n) : e.getURL(t, n);\n }\n function W(e) {\n if (e.sdkName) return e.sdkName;\n var t = \"PubNub-JS-\".concat(e.sdkFamily);\n e.partnerId && (t += \"-\".concat(e.partnerId)), t += \"/\".concat(e.getVersion());\n var n = e._getPnsdkSuffix(\" \");\n return n.length > 0 && (t += n), t;\n }\n function J(e, t, n) {\n return t.usePost && t.usePost(e, n) ? \"POST\" : t.usePatch && t.usePatch(e, n) ? \"PATCH\" : t.useDelete && t.useDelete(e, n) ? \"DELETE\" : t.useGetFile && t.useGetFile(e, n) ? \"GETFILE\" : \"GET\";\n }\n function $(e, t, n, r, o) {\n var i = e.config,\n s = e.crypto,\n a = J(e, o, r);\n n.timestamp = Math.floor(new Date().getTime() / 1e3), \"PNPublishOperation\" === o.getOperation() && o.usePost && o.usePost(e, r) && (a = \"GET\"), \"GETFILE\" === a && (a = \"GET\");\n var u = \"\".concat(a, \"\\n\").concat(i.publishKey, \"\\n\").concat(t, \"\\n\").concat(H.signPamFromParams(n), \"\\n\");\n if (\"POST\" === a) u += \"string\" == typeof (c = o.postPayload(e, r)) ? c : JSON.stringify(c);else if (\"PATCH\" === a) {\n var c;\n u += \"string\" == typeof (c = o.patchPayload(e, r)) ? c : JSON.stringify(c);\n }\n var l = \"v2.\".concat(s.HMACSHA256(u));\n l = (l = (l = l.replace(/\\+/g, \"-\")).replace(/\\//g, \"_\")).replace(/=+$/, \"\"), n.signature = l;\n }\n function Q(e, t) {\n for (var r = [], o = 2; o < arguments.length; o++) r[o - 2] = arguments[o];\n var i = e.networking,\n s = e.config,\n a = e.telemetryManager,\n u = e.tokenManager,\n c = y(),\n l = null,\n p = null,\n h = {};\n t.getOperation() === j.PNTimeOperation || t.getOperation() === j.PNChannelGroupsOperation ? l = r[0] : (h = r[0], l = r[1]), \"undefined\" == typeof Promise || l || (p = H.createPromise());\n var f = t.validateParams(e, h);\n if (f) return l ? l(z(f)) : p ? (p.reject(new q(\"Validation failed, check status for details\", z(f))), p.promise) : void 0;\n var d,\n g = t.prepareParams(e, h),\n m = V(t, e, h),\n b = {\n url: m,\n operation: t.getOperation(),\n timeout: t.getRequestTimeout(e),\n headers: t.getRequestHeaders ? t.getRequestHeaders() : {},\n ignoreBody: \"function\" == typeof t.ignoreBody && t.ignoreBody(e),\n forceBuffered: \"function\" == typeof t.forceBuffered ? t.forceBuffered(e, h) : null,\n abortSignal: \"function\" == typeof t.getAbortSignal ? t.getAbortSignal(e, h) : null\n };\n g.uuid = s.UUID, g.pnsdk = W(s);\n var v = a.operationsLatencyForRequest();\n if (Object.keys(v).length && (g = n(n({}, g), v)), s.useInstanceId && (g.instanceid = s.instanceId), s.useRequestId && (g.requestid = c), t.isAuthSupported()) {\n var _ = u.getToken() || s.getAuthKey();\n _ && (g.auth = _);\n }\n s.secretKey && $(e, m, g, h, t);\n var S = function (n, r) {\n if (n.error) return t.handleError && t.handleError(e, h, n), void (l ? l(n) : p && p.reject(new q(\"PubNub call failed, check status for details\", n)));\n a.stopLatencyMeasure(t.getOperation(), c);\n var o = t.handleResponse(e, r, h);\n \"function\" != typeof (null == o ? void 0 : o.then) && (o = Promise.resolve(o)), o.then(function (e) {\n l ? l(n, e) : p && p.fulfill(e);\n }).catch(function (e) {\n if (l) {\n var n = e;\n t.getOperation() === j.PNSubscribeOperation && (n = {\n statusCode: 400,\n error: !0,\n operation: t.getOperation(),\n errorData: e,\n category: k.PNUnknownCategory\n }), l(n, null);\n } else p && p.reject(new q(\"PubNub call failed, check status for details\", e));\n });\n };\n if (a.startLatencyMeasure(t.getOperation(), c), \"POST\" === J(e, t, h)) {\n var w = t.postPayload(e, h);\n d = i.POST(g, w, b, S);\n } else if (\"PATCH\" === J(e, t, h)) {\n w = t.patchPayload(e, h);\n d = i.PATCH(g, w, b, S);\n } else d = \"DELETE\" === J(e, t, h) ? i.DELETE(g, b, S) : \"GETFILE\" === J(e, t, h) ? i.GETFILE(g, b, S) : i.GET(g, b, S);\n return t.getOperation() === j.PNSubscribeOperation ? d : p ? p.promise : void 0;\n }\n var X = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNAddChannelsToGroupOperation;\n },\n validateParams: function (e, t) {\n var n = t.channels,\n r = t.channelGroup,\n o = e.config;\n return r ? n && 0 !== n.length ? o.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Channels\" : \"Missing Channel Group\";\n },\n getURL: function (e, t) {\n var n = t.channelGroup,\n r = e.config;\n return \"/v1/channel-registration/sub-key/\".concat(r.subscribeKey, \"/channel-group/\").concat(H.encodeString(n));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.channels;\n return {\n add: (void 0 === n ? [] : n).join(\",\")\n };\n },\n handleResponse: function () {\n return {};\n }\n });\n var Y = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNRemoveChannelsFromGroupOperation;\n },\n validateParams: function (e, t) {\n var n = t.channels,\n r = t.channelGroup,\n o = e.config;\n return r ? n && 0 !== n.length ? o.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Channels\" : \"Missing Channel Group\";\n },\n getURL: function (e, t) {\n var n = t.channelGroup,\n r = e.config;\n return \"/v1/channel-registration/sub-key/\".concat(r.subscribeKey, \"/channel-group/\").concat(H.encodeString(n));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.channels;\n return {\n remove: (void 0 === n ? [] : n).join(\",\")\n };\n },\n handleResponse: function () {\n return {};\n }\n });\n var Z = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNRemoveGroupOperation;\n },\n validateParams: function (e, t) {\n var n = t.channelGroup,\n r = e.config;\n return n ? r.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Channel Group\";\n },\n getURL: function (e, t) {\n var n = t.channelGroup,\n r = e.config;\n return \"/v1/channel-registration/sub-key/\".concat(r.subscribeKey, \"/channel-group/\").concat(H.encodeString(n), \"/remove\");\n },\n isAuthSupported: function () {\n return !0;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function () {\n return {};\n }\n });\n var ee = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNChannelGroupsOperation;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e) {\n var t = e.config;\n return \"/v1/channel-registration/sub-key/\".concat(t.subscribeKey, \"/channel-group\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return {\n groups: t.payload.groups\n };\n }\n });\n var te = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNChannelsForGroupOperation;\n },\n validateParams: function (e, t) {\n var n = t.channelGroup,\n r = e.config;\n return n ? r.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Channel Group\";\n },\n getURL: function (e, t) {\n var n = t.channelGroup,\n r = e.config;\n return \"/v1/channel-registration/sub-key/\".concat(r.subscribeKey, \"/channel-group/\").concat(H.encodeString(n));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return {\n channels: t.payload.channels\n };\n }\n });\n var ne = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNPushNotificationEnabledChannelsOperation;\n },\n validateParams: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = t.channels,\n i = t.topic,\n s = e.config;\n return n ? r ? \"apns2\" !== r || i ? o && 0 !== o.length ? s.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Channels\" : \"Missing APNS2 topic\" : \"Missing GW Type (pushGateway: gcm, apns or apns2)\" : \"Missing Device ID (device)\";\n },\n getURL: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = e.config;\n return \"apns2\" === r ? \"/v2/push/sub-key/\".concat(o.subscribeKey, \"/devices-apns2/\").concat(n) : \"/v1/push/sub-key/\".concat(o.subscribeKey, \"/devices/\").concat(n);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var r = t.pushGateway,\n o = t.channels,\n i = void 0 === o ? [] : o,\n s = t.environment,\n a = void 0 === s ? \"development\" : s,\n u = t.topic,\n c = {\n type: r,\n add: i.join(\",\")\n };\n return \"apns2\" === r && delete (c = n(n({}, c), {\n environment: a,\n topic: u\n })).type, c;\n },\n handleResponse: function () {\n return {};\n }\n });\n var re = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNPushNotificationEnabledChannelsOperation;\n },\n validateParams: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = t.channels,\n i = t.topic,\n s = e.config;\n return n ? r ? \"apns2\" !== r || i ? o && 0 !== o.length ? s.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Channels\" : \"Missing APNS2 topic\" : \"Missing GW Type (pushGateway: gcm, apns or apns2)\" : \"Missing Device ID (device)\";\n },\n getURL: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = e.config;\n return \"apns2\" === r ? \"/v2/push/sub-key/\".concat(o.subscribeKey, \"/devices-apns2/\").concat(n) : \"/v1/push/sub-key/\".concat(o.subscribeKey, \"/devices/\").concat(n);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var r = t.pushGateway,\n o = t.channels,\n i = void 0 === o ? [] : o,\n s = t.environment,\n a = void 0 === s ? \"development\" : s,\n u = t.topic,\n c = {\n type: r,\n remove: i.join(\",\")\n };\n return \"apns2\" === r && delete (c = n(n({}, c), {\n environment: a,\n topic: u\n })).type, c;\n },\n handleResponse: function () {\n return {};\n }\n });\n var oe = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNPushNotificationEnabledChannelsOperation;\n },\n validateParams: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = t.topic,\n i = e.config;\n return n ? r ? \"apns2\" !== r || o ? i.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing APNS2 topic\" : \"Missing GW Type (pushGateway: gcm, apns or apns2)\" : \"Missing Device ID (device)\";\n },\n getURL: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = e.config;\n return \"apns2\" === r ? \"/v2/push/sub-key/\".concat(o.subscribeKey, \"/devices-apns2/\").concat(n) : \"/v1/push/sub-key/\".concat(o.subscribeKey, \"/devices/\").concat(n);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var r = t.pushGateway,\n o = t.environment,\n i = void 0 === o ? \"development\" : o,\n s = t.topic,\n a = t.start,\n u = t.count,\n c = {\n type: r\n };\n return \"apns2\" === r && delete (c = n(n({}, c), {\n environment: i,\n topic: s\n })).type, a && (c.start = a), u && u > 0 && (c.count = u), c;\n },\n handleResponse: function (e, t) {\n return {\n channels: t\n };\n }\n });\n var ie = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNRemoveAllPushNotificationsOperation;\n },\n validateParams: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = t.topic,\n i = e.config;\n return n ? r ? \"apns2\" !== r || o ? i.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing APNS2 topic\" : \"Missing GW Type (pushGateway: gcm, apns or apns2)\" : \"Missing Device ID (device)\";\n },\n getURL: function (e, t) {\n var n = t.device,\n r = t.pushGateway,\n o = e.config;\n return \"apns2\" === r ? \"/v2/push/sub-key/\".concat(o.subscribeKey, \"/devices-apns2/\").concat(n, \"/remove\") : \"/v1/push/sub-key/\".concat(o.subscribeKey, \"/devices/\").concat(n, \"/remove\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var r = t.pushGateway,\n o = t.environment,\n i = void 0 === o ? \"development\" : o,\n s = t.topic,\n a = {\n type: r\n };\n return \"apns2\" === r && delete (a = n(n({}, a), {\n environment: i,\n topic: s\n })).type, a;\n },\n handleResponse: function () {\n return {};\n }\n });\n var se = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNUnsubscribeOperation;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channels,\n o = void 0 === r ? [] : r,\n i = o.length > 0 ? o.join(\",\") : \",\";\n return \"/v2/presence/sub-key/\".concat(n.subscribeKey, \"/channel/\").concat(H.encodeString(i), \"/leave\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.channelGroups,\n r = void 0 === n ? [] : n,\n o = {};\n return r.length > 0 && (o[\"channel-group\"] = r.join(\",\")), o;\n },\n handleResponse: function () {\n return {};\n }\n });\n var ae = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNWhereNowOperation;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.uuid,\n o = void 0 === r ? n.UUID : r;\n return \"/v2/presence/sub-key/\".concat(n.subscribeKey, \"/uuid/\").concat(H.encodeString(o));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return t.payload ? {\n channels: t.payload.channels\n } : {\n channels: []\n };\n }\n });\n var ue = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNHeartbeatOperation;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channels,\n o = void 0 === r ? [] : r,\n i = o.length > 0 ? o.join(\",\") : \",\";\n return \"/v2/presence/sub-key/\".concat(n.subscribeKey, \"/channel/\").concat(H.encodeString(i), \"/heartbeat\");\n },\n isAuthSupported: function () {\n return !0;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n prepareParams: function (e, t) {\n var n = t.channelGroups,\n r = void 0 === n ? [] : n,\n o = t.state,\n i = e.config,\n s = {};\n return r.length > 0 && (s[\"channel-group\"] = r.join(\",\")), o && (s.state = JSON.stringify(o)), s.heartbeat = i.getPresenceTimeout(), s;\n },\n handleResponse: function () {\n return {};\n }\n });\n var ce = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNGetStateOperation;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.uuid,\n o = void 0 === r ? n.UUID : r,\n i = t.channels,\n s = void 0 === i ? [] : i,\n a = s.length > 0 ? s.join(\",\") : \",\";\n return \"/v2/presence/sub-key/\".concat(n.subscribeKey, \"/channel/\").concat(H.encodeString(a), \"/uuid/\").concat(o);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.channelGroups,\n r = void 0 === n ? [] : n,\n o = {};\n return r.length > 0 && (o[\"channel-group\"] = r.join(\",\")), o;\n },\n handleResponse: function (e, t, n) {\n var r = n.channels,\n o = void 0 === r ? [] : r,\n i = n.channelGroups,\n s = void 0 === i ? [] : i,\n a = {};\n return 1 === o.length && 0 === s.length ? a[o[0]] = t.payload : a = t.payload, {\n channels: a\n };\n }\n });\n var le = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNSetStateOperation;\n },\n validateParams: function (e, t) {\n var n = e.config,\n r = t.state,\n o = t.channels,\n i = void 0 === o ? [] : o,\n s = t.channelGroups,\n a = void 0 === s ? [] : s;\n return r ? n.subscribeKey ? 0 === i.length && 0 === a.length ? \"Please provide a list of channels and/or channel-groups\" : void 0 : \"Missing Subscribe Key\" : \"Missing State\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channels,\n o = void 0 === r ? [] : r,\n i = o.length > 0 ? o.join(\",\") : \",\";\n return \"/v2/presence/sub-key/\".concat(n.subscribeKey, \"/channel/\").concat(H.encodeString(i), \"/uuid/\").concat(H.encodeString(n.UUID), \"/data\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.state,\n r = t.channelGroups,\n o = void 0 === r ? [] : r,\n i = {};\n return i.state = JSON.stringify(n), o.length > 0 && (i[\"channel-group\"] = o.join(\",\")), i;\n },\n handleResponse: function (e, t) {\n return {\n state: t.payload\n };\n }\n });\n var pe = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNHereNowOperation;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channels,\n o = void 0 === r ? [] : r,\n i = t.channelGroups,\n s = void 0 === i ? [] : i,\n a = \"/v2/presence/sub-key/\".concat(n.subscribeKey);\n if (o.length > 0 || s.length > 0) {\n var u = o.length > 0 ? o.join(\",\") : \",\";\n a += \"/channel/\".concat(H.encodeString(u));\n }\n return a;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var r = t.channelGroups,\n o = void 0 === r ? [] : r,\n i = t.includeUUIDs,\n s = void 0 === i || i,\n a = t.includeState,\n u = void 0 !== a && a,\n c = t.queryParameters,\n l = void 0 === c ? {} : c,\n p = {};\n return s || (p.disable_uuids = 1), u && (p.state = 1), o.length > 0 && (p[\"channel-group\"] = o.join(\",\")), p = n(n({}, p), l);\n },\n handleResponse: function (e, t, n) {\n var r = n.channels,\n o = void 0 === r ? [] : r,\n i = n.channelGroups,\n s = void 0 === i ? [] : i,\n a = n.includeUUIDs,\n u = void 0 === a || a,\n c = n.includeState,\n l = void 0 !== c && c;\n return o.length > 1 || s.length > 0 || 0 === s.length && 0 === o.length ? function () {\n var e = {};\n return e.totalChannels = t.payload.total_channels, e.totalOccupancy = t.payload.total_occupancy, e.channels = {}, Object.keys(t.payload.channels).forEach(function (n) {\n var r = t.payload.channels[n],\n o = [];\n return e.channels[n] = {\n occupants: o,\n name: n,\n occupancy: r.occupancy\n }, u && r.uuids.forEach(function (e) {\n l ? o.push({\n state: e.state,\n uuid: e.uuid\n }) : o.push({\n state: null,\n uuid: e\n });\n }), e;\n }), e;\n }() : function () {\n var e = {},\n n = [];\n return e.totalChannels = 1, e.totalOccupancy = t.occupancy, e.channels = {}, e.channels[o[0]] = {\n occupants: n,\n name: o[0],\n occupancy: t.occupancy\n }, u && t.uuids && t.uuids.forEach(function (e) {\n l ? n.push({\n state: e.state,\n uuid: e.uuid\n }) : n.push({\n state: null,\n uuid: e\n });\n }), e;\n }();\n },\n handleError: function (e, t, n) {\n 402 !== n.statusCode || this.getURL(e, t).includes(\"channel\") || (n.errorData.message = \"You have tried to perform a Global Here Now operation, your keyset configuration does not support that. Please provide a channel, or enable the Global Here Now feature from the Portal.\");\n }\n });\n var he = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNAddMessageActionOperation;\n },\n validateParams: function (e, t) {\n var n = e.config,\n r = t.action,\n o = t.channel;\n return t.messageTimetoken ? n.subscribeKey ? o ? r ? r.value ? r.type ? r.type.length > 15 ? \"Action.type value exceed maximum length of 15\" : void 0 : \"Missing Action.type\" : \"Missing Action.value\" : \"Missing Action\" : \"Missing message channel\" : \"Missing Subscribe Key\" : \"Missing message timetoken\";\n },\n usePost: function () {\n return !0;\n },\n postURL: function (e, t) {\n var n = e.config,\n r = t.channel,\n o = t.messageTimetoken;\n return \"/v1/message-actions/\".concat(n.subscribeKey, \"/channel/\").concat(H.encodeString(r), \"/message/\").concat(o);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n getRequestHeaders: function () {\n return {\n \"Content-Type\": \"application/json\"\n };\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n postPayload: function (e, t) {\n return t.action;\n },\n handleResponse: function (e, t) {\n return {\n data: t.data\n };\n }\n });\n var fe = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNRemoveMessageActionOperation;\n },\n validateParams: function (e, t) {\n var n = e.config,\n r = t.channel,\n o = t.actionTimetoken;\n return t.messageTimetoken ? o ? n.subscribeKey ? r ? void 0 : \"Missing message channel\" : \"Missing Subscribe Key\" : \"Missing action timetoken\" : \"Missing message timetoken\";\n },\n useDelete: function () {\n return !0;\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channel,\n o = t.actionTimetoken,\n i = t.messageTimetoken;\n return \"/v1/message-actions/\".concat(n.subscribeKey, \"/channel/\").concat(H.encodeString(r), \"/message/\").concat(i, \"/action/\").concat(o);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return {\n data: t.data\n };\n }\n });\n var de = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNGetMessageActionsOperation;\n },\n validateParams: function (e, t) {\n var n = e.config,\n r = t.channel;\n return n.subscribeKey ? r ? void 0 : \"Missing message channel\" : \"Missing Subscribe Key\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channel;\n return \"/v1/message-actions/\".concat(n.subscribeKey, \"/channel/\").concat(H.encodeString(r));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.limit,\n r = t.start,\n o = t.end,\n i = {};\n return n && (i.limit = n), r && (i.start = r), o && (i.end = o), i;\n },\n handleResponse: function (e, t) {\n var n = {\n data: t.data,\n start: null,\n end: null\n };\n return n.data.length && (n.end = n.data[n.data.length - 1].actionTimetoken, n.start = n.data[0].actionTimetoken), n;\n }\n }),\n ye = {\n getOperation: function () {\n return j.PNListFilesOperation;\n },\n validateParams: function (e, t) {\n if (!(null == t ? void 0 : t.channel)) return \"channel can't be empty\";\n },\n getURL: function (e, t) {\n var n = e.config;\n return \"/v1/files/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel), \"/files\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = {};\n return t.limit && (n.limit = t.limit), t.next && (n.next = t.next), n;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n next: t.next,\n count: t.count\n };\n }\n },\n ge = {\n getOperation: function () {\n return j.PNGenerateUploadUrlOperation;\n },\n validateParams: function (e, t) {\n return (null == t ? void 0 : t.channel) ? (null == t ? void 0 : t.name) ? void 0 : \"name can't be empty\" : \"channel can't be empty\";\n },\n usePost: function () {\n return !0;\n },\n postURL: function (e, t) {\n var n = e.config;\n return \"/v1/files/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel), \"/generate-upload-url\");\n },\n postPayload: function (e, t) {\n return {\n name: t.name\n };\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n file_upload_request: t.file_upload_request\n };\n }\n },\n me = {\n getOperation: function () {\n return j.PNPublishFileOperation;\n },\n validateParams: function (e, t) {\n return (null == t ? void 0 : t.channel) ? (null == t ? void 0 : t.fileId) ? (null == t ? void 0 : t.fileName) ? void 0 : \"file name can't be empty\" : \"file id can't be empty\" : \"channel can't be empty\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = n.publishKey,\n o = n.subscribeKey,\n i = function (e, t) {\n var n = JSON.stringify(t);\n if (e.cryptoModule) {\n var r = e.cryptoModule.encrypt(n);\n n = \"string\" == typeof r ? r : b(r), n = JSON.stringify(n);\n }\n return n || \"\";\n }(e, {\n message: t.message,\n file: {\n name: t.fileName,\n id: t.fileId\n }\n });\n return \"/v1/files/publish-file/\".concat(r, \"/\").concat(o, \"/0/\").concat(H.encodeString(t.channel), \"/0/\").concat(H.encodeString(i));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = {};\n return t.ttl && (n.ttl = t.ttl), void 0 !== t.storeInHistory && (n.store = t.storeInHistory ? \"1\" : \"0\"), t.meta && \"object\" == typeof t.meta && (n.meta = JSON.stringify(t.meta)), n;\n },\n handleResponse: function (e, t) {\n return {\n timetoken: t[2]\n };\n }\n },\n be = function (e) {\n var t = function (e) {\n var t = this,\n n = e.generateUploadUrl,\n r = e.publishFile,\n s = e.modules,\n a = s.PubNubFile,\n u = s.config,\n c = s.cryptography,\n l = s.cryptoModule,\n p = s.networking;\n return function (e) {\n var s = e.channel,\n h = e.file,\n f = e.message,\n d = e.cipherKey,\n y = e.meta,\n g = e.ttl,\n m = e.storeInHistory;\n return o(t, void 0, void 0, function () {\n var e, t, o, b, v, _, S, w, O, P, E, A, T, N, C, k, M, j, R, x, U, I, D, F, L, G, K, B, H;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n if (!s) throw new q(\"Validation failed, check status for details\", z(\"channel can't be empty\"));\n if (!h) throw new q(\"Validation failed, check status for details\", z(\"file can't be empty\"));\n return e = a.create(h), [4, n({\n channel: s,\n name: e.name\n })];\n case 1:\n return t = i.sent(), o = t.file_upload_request, b = o.url, v = o.form_fields, _ = t.data, S = _.id, w = _.name, a.supportsEncryptFile && (d || l) ? null != d ? [3, 3] : [4, l.encryptFile(e, a)] : [3, 6];\n case 2:\n return O = i.sent(), [3, 5];\n case 3:\n return [4, c.encryptFile(d, e, a)];\n case 4:\n O = i.sent(), i.label = 5;\n case 5:\n e = O, i.label = 6;\n case 6:\n P = v, e.mimeType && (P = v.map(function (t) {\n return \"Content-Type\" === t.key ? {\n key: t.key,\n value: e.mimeType\n } : t;\n })), i.label = 7;\n case 7:\n return i.trys.push([7, 21,, 22]), a.supportsFileUri && h.uri ? (T = (A = p).POSTFILE, N = [b, P], [4, e.toFileUri()]) : [3, 10];\n case 8:\n return [4, T.apply(A, N.concat([i.sent()]))];\n case 9:\n return E = i.sent(), [3, 20];\n case 10:\n return a.supportsFile ? (k = (C = p).POSTFILE, M = [b, P], [4, e.toFile()]) : [3, 13];\n case 11:\n return [4, k.apply(C, M.concat([i.sent()]))];\n case 12:\n return E = i.sent(), [3, 20];\n case 13:\n return a.supportsBuffer ? (R = (j = p).POSTFILE, x = [b, P], [4, e.toBuffer()]) : [3, 16];\n case 14:\n return [4, R.apply(j, x.concat([i.sent()]))];\n case 15:\n return E = i.sent(), [3, 20];\n case 16:\n return a.supportsBlob ? (I = (U = p).POSTFILE, D = [b, P], [4, e.toBlob()]) : [3, 19];\n case 17:\n return [4, I.apply(U, D.concat([i.sent()]))];\n case 18:\n return E = i.sent(), [3, 20];\n case 19:\n throw new Error(\"Unsupported environment\");\n case 20:\n return [3, 22];\n case 21:\n throw (F = i.sent()).response && \"string\" == typeof F.response.text ? (L = F.response.text, G = /(.*)<\\/Message>/gi.exec(L), new q(G ? \"Upload to bucket failed: \".concat(G[1]) : \"Upload to bucket failed.\", F)) : new q(\"Upload to bucket failed.\", F);\n case 22:\n if (204 !== E.status) throw new q(\"Upload to bucket was unsuccessful\", E);\n K = u.fileUploadPublishRetryLimit, B = !1, H = {\n timetoken: \"0\"\n }, i.label = 23;\n case 23:\n return i.trys.push([23, 25,, 26]), [4, r({\n channel: s,\n message: f,\n fileId: S,\n fileName: w,\n meta: y,\n storeInHistory: m,\n ttl: g\n })];\n case 24:\n return H = i.sent(), B = !0, [3, 26];\n case 25:\n return i.sent(), K -= 1, [3, 26];\n case 26:\n if (!B && K > 0) return [3, 23];\n i.label = 27;\n case 27:\n if (B) return [2, {\n timetoken: H.timetoken,\n id: S,\n name: w\n }];\n throw new q(\"Publish failed. You may want to execute that operation manually using pubnub.publishFile\", {\n channel: s,\n id: S,\n name: w\n });\n }\n });\n });\n };\n }(e);\n return function (e, n) {\n var r = t(e);\n return \"function\" == typeof n ? (r.then(function (e) {\n return n(null, e);\n }).catch(function (e) {\n return n(e, null);\n }), r) : r;\n };\n },\n ve = function (e, t) {\n var n = t.channel,\n r = t.id,\n o = t.name,\n i = e.config,\n s = e.networking,\n a = e.tokenManager;\n if (!n) throw new q(\"Validation failed, check status for details\", z(\"channel can't be empty\"));\n if (!r) throw new q(\"Validation failed, check status for details\", z(\"file id can't be empty\"));\n if (!o) throw new q(\"Validation failed, check status for details\", z(\"file name can't be empty\"));\n var u = \"/v1/files/\".concat(i.subscribeKey, \"/channels/\").concat(H.encodeString(n), \"/files/\").concat(r, \"/\").concat(o),\n c = {};\n c.uuid = i.getUUID(), c.pnsdk = W(i);\n var l = a.getToken() || i.getAuthKey();\n l && (c.auth = l), i.secretKey && $(e, u, c, {}, {\n getOperation: function () {\n return \"PubNubGetFileUrlOperation\";\n }\n });\n var p = Object.keys(c).map(function (e) {\n return \"\".concat(encodeURIComponent(e), \"=\").concat(encodeURIComponent(c[e]));\n }).join(\"&\");\n return \"\" !== p ? \"\".concat(s.getStandardOrigin()).concat(u, \"?\").concat(p) : \"\".concat(s.getStandardOrigin()).concat(u);\n },\n _e = {\n getOperation: function () {\n return j.PNDownloadFileOperation;\n },\n validateParams: function (e, t) {\n return (null == t ? void 0 : t.channel) ? (null == t ? void 0 : t.name) ? (null == t ? void 0 : t.id) ? void 0 : \"id can't be empty\" : \"name can't be empty\" : \"channel can't be empty\";\n },\n useGetFile: function () {\n return !0;\n },\n getFileURL: function (e, t) {\n var n = e.config;\n return \"/v1/files/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel), \"/files/\").concat(t.id, \"/\").concat(t.name);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n ignoreBody: function () {\n return !0;\n },\n forceBuffered: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t, n) {\n var r = e.PubNubFile,\n s = e.config,\n a = e.cryptography,\n u = e.cryptoModule;\n return o(void 0, void 0, void 0, function () {\n var e, o, c, l;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return e = t.response.body, r.supportsEncryptFile && (n.cipherKey || u) ? null != n.cipherKey ? [3, 2] : [4, u.decryptFile(r.create({\n data: e,\n name: n.name\n }), r)] : [3, 5];\n case 1:\n return o = i.sent().data, [3, 4];\n case 2:\n return [4, a.decrypt(null !== (c = n.cipherKey) && void 0 !== c ? c : s.cipherKey, e)];\n case 3:\n o = i.sent(), i.label = 4;\n case 4:\n e = o, i.label = 5;\n case 5:\n return [2, r.create({\n data: e,\n name: null !== (l = t.response.name) && void 0 !== l ? l : n.name,\n mimeType: t.response.type\n })];\n }\n });\n });\n }\n },\n Se = {\n getOperation: function () {\n return j.PNListFilesOperation;\n },\n validateParams: function (e, t) {\n return (null == t ? void 0 : t.channel) ? (null == t ? void 0 : t.id) ? (null == t ? void 0 : t.name) ? void 0 : \"file name can't be empty\" : \"file id can't be empty\" : \"channel can't be empty\";\n },\n useDelete: function () {\n return !0;\n },\n getURL: function (e, t) {\n var n = e.config;\n return \"/v1/files/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel), \"/files/\").concat(t.id, \"/\").concat(t.name);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return {\n status: t.status\n };\n }\n },\n we = {\n getOperation: function () {\n return j.PNGetAllUUIDMetadataOperation;\n },\n validateParams: function () {},\n getURL: function (e) {\n var t = e.config;\n return \"/v2/objects/\".concat(t.subscribeKey, \"/uuids\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o,\n i,\n s,\n u,\n c,\n l,\n p,\n h = {\n include: [\"status\", \"type\"]\n };\n return (null == t ? void 0 : t.include) && (null === (n = t.include) || void 0 === n ? void 0 : n.customFields) && h.include.push(\"custom\"), h.include = h.include.join(\",\"), (null === (r = null == t ? void 0 : t.include) || void 0 === r ? void 0 : r.totalCount) && (h.count = null === (o = t.include) || void 0 === o ? void 0 : o.totalCount), (null === (i = null == t ? void 0 : t.page) || void 0 === i ? void 0 : i.next) && (h.start = null === (s = t.page) || void 0 === s ? void 0 : s.next), (null === (u = null == t ? void 0 : t.page) || void 0 === u ? void 0 : u.prev) && (h.end = null === (c = t.page) || void 0 === c ? void 0 : c.prev), (null == t ? void 0 : t.filter) && (h.filter = t.filter), h.limit = null !== (l = null == t ? void 0 : t.limit) && void 0 !== l ? l : 100, (null == t ? void 0 : t.sort) && (h.sort = Object.entries(null !== (p = t.sort) && void 0 !== p ? p : {}).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return \"asc\" === r || \"desc\" === r ? \"\".concat(n, \":\").concat(r) : n;\n })), h;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n totalCount: t.totalCount,\n next: t.next,\n prev: t.prev\n };\n }\n },\n Oe = {\n getOperation: function () {\n return j.PNGetUUIDMetadataOperation;\n },\n validateParams: function () {},\n getURL: function (e, t) {\n var n,\n r = e.config;\n return \"/v2/objects/\".concat(r.subscribeKey, \"/uuids/\").concat(H.encodeString(null !== (n = null == t ? void 0 : t.uuid) && void 0 !== n ? n : r.getUUID()));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o = e.config,\n i = {};\n return i.uuid = null !== (n = null == t ? void 0 : t.uuid) && void 0 !== n ? n : o.getUUID(), i.include = [\"status\", \"type\", \"custom\"], (null == t ? void 0 : t.include) && !1 === (null === (r = t.include) || void 0 === r ? void 0 : r.customFields) && i.include.pop(), i.include = i.include.join(\",\"), i;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data\n };\n }\n },\n Pe = {\n getOperation: function () {\n return j.PNSetUUIDMetadataOperation;\n },\n validateParams: function (e, t) {\n if (!(null == t ? void 0 : t.data)) return \"Data cannot be empty\";\n },\n usePatch: function () {\n return !0;\n },\n patchURL: function (e, t) {\n var n,\n r = e.config;\n return \"/v2/objects/\".concat(r.subscribeKey, \"/uuids/\").concat(H.encodeString(null !== (n = t.uuid) && void 0 !== n ? n : r.getUUID()));\n },\n patchPayload: function (e, t) {\n return t.data;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o = e.config,\n i = {};\n return i.uuid = null !== (n = null == t ? void 0 : t.uuid) && void 0 !== n ? n : o.getUUID(), i.include = [\"status\", \"type\", \"custom\"], (null == t ? void 0 : t.include) && !1 === (null === (r = t.include) || void 0 === r ? void 0 : r.customFields) && i.include.pop(), i.include = i.include.join(\",\"), i;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data\n };\n }\n },\n Ee = {\n getOperation: function () {\n return j.PNRemoveUUIDMetadataOperation;\n },\n validateParams: function () {},\n getURL: function (e, t) {\n var n,\n r = e.config;\n return \"/v2/objects/\".concat(r.subscribeKey, \"/uuids/\").concat(H.encodeString(null !== (n = null == t ? void 0 : t.uuid) && void 0 !== n ? n : r.getUUID()));\n },\n useDelete: function () {\n return !0;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r = e.config;\n return {\n uuid: null !== (n = null == t ? void 0 : t.uuid) && void 0 !== n ? n : r.getUUID()\n };\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data\n };\n }\n },\n Ae = {\n getOperation: function () {\n return j.PNGetAllChannelMetadataOperation;\n },\n validateParams: function () {},\n getURL: function (e) {\n var t = e.config;\n return \"/v2/objects/\".concat(t.subscribeKey, \"/channels\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o,\n i,\n s,\n u,\n c,\n l,\n p,\n h = {\n include: [\"status\", \"type\"]\n };\n return (null == t ? void 0 : t.include) && (null === (n = t.include) || void 0 === n ? void 0 : n.customFields) && h.include.push(\"custom\"), h.include = h.include.join(\",\"), (null === (r = null == t ? void 0 : t.include) || void 0 === r ? void 0 : r.totalCount) && (h.count = null === (o = t.include) || void 0 === o ? void 0 : o.totalCount), (null === (i = null == t ? void 0 : t.page) || void 0 === i ? void 0 : i.next) && (h.start = null === (s = t.page) || void 0 === s ? void 0 : s.next), (null === (u = null == t ? void 0 : t.page) || void 0 === u ? void 0 : u.prev) && (h.end = null === (c = t.page) || void 0 === c ? void 0 : c.prev), (null == t ? void 0 : t.filter) && (h.filter = t.filter), h.limit = null !== (l = null == t ? void 0 : t.limit) && void 0 !== l ? l : 100, (null == t ? void 0 : t.sort) && (h.sort = Object.entries(null !== (p = t.sort) && void 0 !== p ? p : {}).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return \"asc\" === r || \"desc\" === r ? \"\".concat(n, \":\").concat(r) : n;\n })), h;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n totalCount: t.totalCount,\n prev: t.prev,\n next: t.next\n };\n }\n },\n Te = {\n getOperation: function () {\n return j.PNGetChannelMetadataOperation;\n },\n validateParams: function (e, t) {\n if (!(null == t ? void 0 : t.channel)) return \"Channel cannot be empty\";\n },\n getURL: function (e, t) {\n var n = e.config;\n return \"/v2/objects/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r = {\n include: [\"status\", \"type\", \"custom\"]\n };\n return (null == t ? void 0 : t.include) && !1 === (null === (n = t.include) || void 0 === n ? void 0 : n.customFields) && r.include.pop(), r.include = r.include.join(\",\"), r;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data\n };\n }\n },\n Ne = {\n getOperation: function () {\n return j.PNSetChannelMetadataOperation;\n },\n validateParams: function (e, t) {\n return (null == t ? void 0 : t.channel) ? (null == t ? void 0 : t.data) ? void 0 : \"Data cannot be empty\" : \"Channel cannot be empty\";\n },\n usePatch: function () {\n return !0;\n },\n patchURL: function (e, t) {\n var n = e.config;\n return \"/v2/objects/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel));\n },\n patchPayload: function (e, t) {\n return t.data;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r = {\n include: [\"status\", \"type\", \"custom\"]\n };\n return (null == t ? void 0 : t.include) && !1 === (null === (n = t.include) || void 0 === n ? void 0 : n.customFields) && r.include.pop(), r.include = r.include.join(\",\"), r;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data\n };\n }\n },\n Ce = {\n getOperation: function () {\n return j.PNRemoveChannelMetadataOperation;\n },\n validateParams: function (e, t) {\n if (!(null == t ? void 0 : t.channel)) return \"Channel cannot be empty\";\n },\n getURL: function (e, t) {\n var n = e.config;\n return \"/v2/objects/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel));\n },\n useDelete: function () {\n return !0;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data\n };\n }\n },\n ke = {\n getOperation: function () {\n return j.PNGetMembersOperation;\n },\n validateParams: function (e, t) {\n if (!(null == t ? void 0 : t.channel)) return \"channel cannot be empty\";\n },\n getURL: function (e, t) {\n var n = e.config;\n return \"/v2/objects/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel), \"/uuids\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o,\n i,\n s,\n u,\n c,\n l,\n p,\n h,\n f,\n d,\n y,\n g,\n m = {\n include: []\n };\n return (null == t ? void 0 : t.include) && ((null === (n = t.include) || void 0 === n ? void 0 : n.statusField) && m.include.push(\"status\"), (null === (r = t.include) || void 0 === r ? void 0 : r.customFields) && m.include.push(\"custom\"), (null === (o = t.include) || void 0 === o ? void 0 : o.UUIDFields) && m.include.push(\"uuid\"), (null === (i = t.include) || void 0 === i ? void 0 : i.customUUIDFields) && m.include.push(\"uuid.custom\"), (null === (s = t.include) || void 0 === s ? void 0 : s.UUIDStatusField) && m.include.push(\"uuid.status\"), (null === (u = t.include) || void 0 === u ? void 0 : u.UUIDTypeField) && m.include.push(\"uuid.type\")), m.include = m.include.join(\",\"), (null === (c = null == t ? void 0 : t.include) || void 0 === c ? void 0 : c.totalCount) && (m.count = null === (l = t.include) || void 0 === l ? void 0 : l.totalCount), (null === (p = null == t ? void 0 : t.page) || void 0 === p ? void 0 : p.next) && (m.start = null === (h = t.page) || void 0 === h ? void 0 : h.next), (null === (f = null == t ? void 0 : t.page) || void 0 === f ? void 0 : f.prev) && (m.end = null === (d = t.page) || void 0 === d ? void 0 : d.prev), (null == t ? void 0 : t.filter) && (m.filter = t.filter), m.limit = null !== (y = null == t ? void 0 : t.limit) && void 0 !== y ? y : 100, (null == t ? void 0 : t.sort) && (m.sort = Object.entries(null !== (g = t.sort) && void 0 !== g ? g : {}).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return \"asc\" === r || \"desc\" === r ? \"\".concat(n, \":\").concat(r) : n;\n })), m;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n totalCount: t.totalCount,\n prev: t.prev,\n next: t.next\n };\n }\n },\n Me = {\n getOperation: function () {\n return j.PNSetMembersOperation;\n },\n validateParams: function (e, t) {\n return (null == t ? void 0 : t.channel) ? (null == t ? void 0 : t.uuids) && 0 !== (null == t ? void 0 : t.uuids.length) ? void 0 : \"UUIDs cannot be empty\" : \"Channel cannot be empty\";\n },\n usePatch: function () {\n return !0;\n },\n patchURL: function (e, t) {\n var n = e.config;\n return \"/v2/objects/\".concat(n.subscribeKey, \"/channels/\").concat(H.encodeString(t.channel), \"/uuids\");\n },\n patchPayload: function (e, t) {\n var n;\n return (n = {\n set: [],\n delete: []\n })[t.type] = t.uuids.map(function (e) {\n return \"string\" == typeof e ? {\n uuid: {\n id: e\n }\n } : {\n uuid: {\n id: e.id\n },\n custom: e.custom,\n status: e.status\n };\n }), n;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o,\n i,\n s,\n u,\n c,\n l,\n p,\n h = {\n include: [\"uuid.status\", \"uuid.type\", \"type\"]\n };\n return (null == t ? void 0 : t.include) && ((null === (n = t.include) || void 0 === n ? void 0 : n.customFields) && h.include.push(\"custom\"), (null === (r = t.include) || void 0 === r ? void 0 : r.customUUIDFields) && h.include.push(\"uuid.custom\"), (null === (o = t.include) || void 0 === o ? void 0 : o.UUIDFields) && h.include.push(\"uuid\")), h.include = h.include.join(\",\"), (null === (i = null == t ? void 0 : t.include) || void 0 === i ? void 0 : i.totalCount) && (h.count = !0), (null === (s = null == t ? void 0 : t.page) || void 0 === s ? void 0 : s.next) && (h.start = null === (u = t.page) || void 0 === u ? void 0 : u.next), (null === (c = null == t ? void 0 : t.page) || void 0 === c ? void 0 : c.prev) && (h.end = null === (l = t.page) || void 0 === l ? void 0 : l.prev), (null == t ? void 0 : t.filter) && (h.filter = t.filter), null != t.limit && (h.limit = t.limit), (null == t ? void 0 : t.sort) && (h.sort = Object.entries(null !== (p = t.sort) && void 0 !== p ? p : {}).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return \"asc\" === r || \"desc\" === r ? \"\".concat(n, \":\").concat(r) : n;\n })), h;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n totalCount: t.totalCount,\n prev: t.prev,\n next: t.next\n };\n }\n },\n je = {\n getOperation: function () {\n return j.PNGetMembershipsOperation;\n },\n validateParams: function () {},\n getURL: function (e, t) {\n var n,\n r = e.config;\n return \"/v2/objects/\".concat(r.subscribeKey, \"/uuids/\").concat(H.encodeString(null !== (n = null == t ? void 0 : t.uuid) && void 0 !== n ? n : r.getUUID()), \"/channels\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o,\n i,\n s,\n u,\n c,\n l,\n p,\n h,\n f,\n d,\n y,\n g,\n m = {\n include: []\n };\n return (null == t ? void 0 : t.include) && ((null === (n = t.include) || void 0 === n ? void 0 : n.statusField) && m.include.push(\"status\"), (null === (r = t.include) || void 0 === r ? void 0 : r.customFields) && m.include.push(\"custom\"), (null === (o = t.include) || void 0 === o ? void 0 : o.channelFields) && m.include.push(\"channel\"), (null === (i = t.include) || void 0 === i ? void 0 : i.customChannelFields) && m.include.push(\"channel.custom\"), (null === (s = t.include) || void 0 === s ? void 0 : s.channelStatusField) && m.include.push(\"channel.status\"), (null === (u = t.include) || void 0 === u ? void 0 : u.channelTypeField) && m.include.push(\"channel.type\")), m.include = m.include.join(\",\"), (null === (c = null == t ? void 0 : t.include) || void 0 === c ? void 0 : c.totalCount) && (m.count = null === (l = t.include) || void 0 === l ? void 0 : l.totalCount), (null === (p = null == t ? void 0 : t.page) || void 0 === p ? void 0 : p.next) && (m.start = null === (h = t.page) || void 0 === h ? void 0 : h.next), (null === (f = null == t ? void 0 : t.page) || void 0 === f ? void 0 : f.prev) && (m.end = null === (d = t.page) || void 0 === d ? void 0 : d.prev), (null == t ? void 0 : t.filter) && (m.filter = t.filter), m.limit = null !== (y = null == t ? void 0 : t.limit) && void 0 !== y ? y : 100, (null == t ? void 0 : t.sort) && (m.sort = Object.entries(null !== (g = t.sort) && void 0 !== g ? g : {}).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return \"asc\" === r || \"desc\" === r ? \"\".concat(n, \":\").concat(r) : n;\n })), m;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n totalCount: t.totalCount,\n prev: t.prev,\n next: t.next\n };\n }\n },\n Re = {\n getOperation: function () {\n return j.PNSetMembershipsOperation;\n },\n validateParams: function (e, t) {\n if (!(null == t ? void 0 : t.channels) || 0 === (null == t ? void 0 : t.channels.length)) return \"Channels cannot be empty\";\n },\n usePatch: function () {\n return !0;\n },\n patchURL: function (e, t) {\n var n,\n r = e.config;\n return \"/v2/objects/\".concat(r.subscribeKey, \"/uuids/\").concat(H.encodeString(null !== (n = t.uuid) && void 0 !== n ? n : r.getUUID()), \"/channels\");\n },\n patchPayload: function (e, t) {\n var n;\n return (n = {\n set: [],\n delete: []\n })[t.type] = t.channels.map(function (e) {\n return \"string\" == typeof e ? {\n channel: {\n id: e\n }\n } : {\n channel: {\n id: e.id\n },\n custom: e.custom,\n status: e.status\n };\n }), n;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n,\n r,\n o,\n i,\n s,\n u,\n c,\n l,\n p,\n h = {\n include: [\"channel.status\", \"channel.type\", \"status\"]\n };\n return (null == t ? void 0 : t.include) && ((null === (n = t.include) || void 0 === n ? void 0 : n.customFields) && h.include.push(\"custom\"), (null === (r = t.include) || void 0 === r ? void 0 : r.customChannelFields) && h.include.push(\"channel.custom\"), (null === (o = t.include) || void 0 === o ? void 0 : o.channelFields) && h.include.push(\"channel\")), h.include = h.include.join(\",\"), (null === (i = null == t ? void 0 : t.include) || void 0 === i ? void 0 : i.totalCount) && (h.count = !0), (null === (s = null == t ? void 0 : t.page) || void 0 === s ? void 0 : s.next) && (h.start = null === (u = t.page) || void 0 === u ? void 0 : u.next), (null === (c = null == t ? void 0 : t.page) || void 0 === c ? void 0 : c.prev) && (h.end = null === (l = t.page) || void 0 === l ? void 0 : l.prev), (null == t ? void 0 : t.filter) && (h.filter = t.filter), null != t.limit && (h.limit = t.limit), (null == t ? void 0 : t.sort) && (h.sort = Object.entries(null !== (p = t.sort) && void 0 !== p ? p : {}).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return \"asc\" === r || \"desc\" === r ? \"\".concat(n, \":\").concat(r) : n;\n })), h;\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data,\n totalCount: t.totalCount,\n prev: t.prev,\n next: t.next\n };\n }\n };\n var xe = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNAccessManagerAudit;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e) {\n var t = e.config;\n return \"/v2/auth/audit/sub-key/\".concat(t.subscribeKey);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !1;\n },\n prepareParams: function (e, t) {\n var n = t.channel,\n r = t.channelGroup,\n o = t.authKeys,\n i = void 0 === o ? [] : o,\n s = {};\n return n && (s.channel = n), r && (s[\"channel-group\"] = r), i.length > 0 && (s.auth = i.join(\",\")), s;\n },\n handleResponse: function (e, t) {\n return t.payload;\n }\n });\n var Ue = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNAccessManagerGrant;\n },\n validateParams: function (e, t) {\n var n = e.config;\n return n.subscribeKey ? n.publishKey ? n.secretKey ? null == t.uuids || t.authKeys ? null == t.uuids || null == t.channels && null == t.channelGroups ? void 0 : \"Both channel/channelgroup and uuid cannot be used in the same request\" : \"authKeys are required for grant request on uuids\" : \"Missing Secret Key\" : \"Missing Publish Key\" : \"Missing Subscribe Key\";\n },\n getURL: function (e) {\n var t = e.config;\n return \"/v2/auth/grant/sub-key/\".concat(t.subscribeKey);\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !1;\n },\n prepareParams: function (e, t) {\n var n = t.channels,\n r = void 0 === n ? [] : n,\n o = t.channelGroups,\n i = void 0 === o ? [] : o,\n s = t.uuids,\n a = void 0 === s ? [] : s,\n u = t.ttl,\n c = t.read,\n l = void 0 !== c && c,\n p = t.write,\n h = void 0 !== p && p,\n f = t.manage,\n d = void 0 !== f && f,\n y = t.get,\n g = void 0 !== y && y,\n m = t.join,\n b = void 0 !== m && m,\n v = t.update,\n _ = void 0 !== v && v,\n S = t.authKeys,\n w = void 0 === S ? [] : S,\n O = t.delete,\n P = {};\n return P.r = l ? \"1\" : \"0\", P.w = h ? \"1\" : \"0\", P.m = d ? \"1\" : \"0\", P.d = O ? \"1\" : \"0\", P.g = g ? \"1\" : \"0\", P.j = b ? \"1\" : \"0\", P.u = _ ? \"1\" : \"0\", r.length > 0 && (P.channel = r.join(\",\")), i.length > 0 && (P[\"channel-group\"] = i.join(\",\")), w.length > 0 && (P.auth = w.join(\",\")), a.length > 0 && (P[\"target-uuid\"] = a.join(\",\")), (u || 0 === u) && (P.ttl = u), P;\n },\n handleResponse: function () {\n return {};\n }\n });\n function Ie(e) {\n var t,\n n,\n r,\n o,\n i = void 0 !== (null == e ? void 0 : e.authorizedUserId),\n s = void 0 !== (null === (t = null == e ? void 0 : e.resources) || void 0 === t ? void 0 : t.users),\n a = void 0 !== (null === (n = null == e ? void 0 : e.resources) || void 0 === n ? void 0 : n.spaces),\n u = void 0 !== (null === (r = null == e ? void 0 : e.patterns) || void 0 === r ? void 0 : r.users),\n c = void 0 !== (null === (o = null == e ? void 0 : e.patterns) || void 0 === o ? void 0 : o.spaces);\n return u || s || c || a || i;\n }\n function De(e) {\n var t = 0;\n return e.join && (t |= 128), e.update && (t |= 64), e.get && (t |= 32), e.delete && (t |= 8), e.manage && (t |= 4), e.write && (t |= 2), e.read && (t |= 1), t;\n }\n function Fe(e, t) {\n if (Ie(t)) return function (e, t) {\n var n = t.ttl,\n r = t.resources,\n o = t.patterns,\n i = t.meta,\n s = t.authorizedUserId,\n a = {\n ttl: 0,\n permissions: {\n resources: {\n channels: {},\n groups: {},\n uuids: {},\n users: {},\n spaces: {}\n },\n patterns: {\n channels: {},\n groups: {},\n uuids: {},\n users: {},\n spaces: {}\n },\n meta: {}\n }\n };\n if (r) {\n var u = r.users,\n c = r.spaces,\n l = r.groups;\n u && Object.keys(u).forEach(function (e) {\n a.permissions.resources.uuids[e] = De(u[e]);\n }), c && Object.keys(c).forEach(function (e) {\n a.permissions.resources.channels[e] = De(c[e]);\n }), l && Object.keys(l).forEach(function (e) {\n a.permissions.resources.groups[e] = De(l[e]);\n });\n }\n if (o) {\n var p = o.users,\n h = o.spaces,\n f = o.groups;\n p && Object.keys(p).forEach(function (e) {\n a.permissions.patterns.uuids[e] = De(p[e]);\n }), h && Object.keys(h).forEach(function (e) {\n a.permissions.patterns.channels[e] = De(h[e]);\n }), f && Object.keys(f).forEach(function (e) {\n a.permissions.patterns.groups[e] = De(f[e]);\n });\n }\n return (n || 0 === n) && (a.ttl = n), i && (a.permissions.meta = i), s && (a.permissions.uuid = \"\".concat(s)), a;\n }(0, t);\n var n = t.ttl,\n r = t.resources,\n o = t.patterns,\n i = t.meta,\n s = t.authorized_uuid,\n a = {\n ttl: 0,\n permissions: {\n resources: {\n channels: {},\n groups: {},\n uuids: {},\n users: {},\n spaces: {}\n },\n patterns: {\n channels: {},\n groups: {},\n uuids: {},\n users: {},\n spaces: {}\n },\n meta: {}\n }\n };\n if (r) {\n var u = r.uuids,\n c = r.channels,\n l = r.groups;\n u && Object.keys(u).forEach(function (e) {\n a.permissions.resources.uuids[e] = De(u[e]);\n }), c && Object.keys(c).forEach(function (e) {\n a.permissions.resources.channels[e] = De(c[e]);\n }), l && Object.keys(l).forEach(function (e) {\n a.permissions.resources.groups[e] = De(l[e]);\n });\n }\n if (o) {\n var p = o.uuids,\n h = o.channels,\n f = o.groups;\n p && Object.keys(p).forEach(function (e) {\n a.permissions.patterns.uuids[e] = De(p[e]);\n }), h && Object.keys(h).forEach(function (e) {\n a.permissions.patterns.channels[e] = De(h[e]);\n }), f && Object.keys(f).forEach(function (e) {\n a.permissions.patterns.groups[e] = De(f[e]);\n });\n }\n return (n || 0 === n) && (a.ttl = n), i && (a.permissions.meta = i), s && (a.permissions.uuid = \"\".concat(s)), a;\n }\n var Le = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNAccessManagerGrantToken;\n },\n extractPermissions: De,\n validateParams: function (e, t) {\n var n,\n r,\n o,\n i,\n s,\n a,\n u = e.config;\n if (!u.subscribeKey) return \"Missing Subscribe Key\";\n if (!u.publishKey) return \"Missing Publish Key\";\n if (!u.secretKey) return \"Missing Secret Key\";\n if (!t.resources && !t.patterns) return \"Missing either Resources or Patterns.\";\n var c = void 0 !== (null == t ? void 0 : t.authorized_uuid),\n l = void 0 !== (null === (n = null == t ? void 0 : t.resources) || void 0 === n ? void 0 : n.uuids),\n p = void 0 !== (null === (r = null == t ? void 0 : t.resources) || void 0 === r ? void 0 : r.channels),\n h = void 0 !== (null === (o = null == t ? void 0 : t.resources) || void 0 === o ? void 0 : o.groups),\n f = void 0 !== (null === (i = null == t ? void 0 : t.patterns) || void 0 === i ? void 0 : i.uuids),\n d = void 0 !== (null === (s = null == t ? void 0 : t.patterns) || void 0 === s ? void 0 : s.channels),\n y = void 0 !== (null === (a = null == t ? void 0 : t.patterns) || void 0 === a ? void 0 : a.groups),\n g = c || l || f || p || d || h || y;\n return Ie(t) && g ? \"Cannot mix `users`, `spaces` and `authorizedUserId` with `uuids`, `channels`, `groups` and `authorized_uuid`\" : (!t.resources || t.resources.uuids && 0 !== Object.keys(t.resources.uuids).length || t.resources.channels && 0 !== Object.keys(t.resources.channels).length || t.resources.groups && 0 !== Object.keys(t.resources.groups).length || t.resources.users && 0 !== Object.keys(t.resources.users).length || t.resources.spaces && 0 !== Object.keys(t.resources.spaces).length) && (!t.patterns || t.patterns.uuids && 0 !== Object.keys(t.patterns.uuids).length || t.patterns.channels && 0 !== Object.keys(t.patterns.channels).length || t.patterns.groups && 0 !== Object.keys(t.patterns.groups).length || t.patterns.users && 0 !== Object.keys(t.patterns.users).length || t.patterns.spaces && 0 !== Object.keys(t.patterns.spaces).length) ? void 0 : \"Missing values for either Resources or Patterns.\";\n },\n postURL: function (e) {\n var t = e.config;\n return \"/v3/pam/\".concat(t.subscribeKey, \"/grant\");\n },\n usePost: function () {\n return !0;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !1;\n },\n prepareParams: function () {\n return {};\n },\n postPayload: function (e, t) {\n return Fe(0, t);\n },\n handleResponse: function (e, t) {\n return t.data.token;\n }\n }),\n Ge = {\n getOperation: function () {\n return j.PNAccessManagerRevokeToken;\n },\n validateParams: function (e, t) {\n return e.config.secretKey ? t ? void 0 : \"token can't be empty\" : \"Missing Secret Key\";\n },\n getURL: function (e, t) {\n var n = e.config;\n return \"/v3/pam/\".concat(n.subscribeKey, \"/grant/\").concat(H.encodeString(t));\n },\n useDelete: function () {\n return !0;\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !1;\n },\n prepareParams: function (e) {\n return {\n uuid: e.config.getUUID()\n };\n },\n handleResponse: function (e, t) {\n return {\n status: t.status,\n data: t.data\n };\n }\n };\n function Ke(e, t) {\n var n = JSON.stringify(t);\n if (e.cryptoModule) {\n var r = e.cryptoModule.encrypt(n);\n n = \"string\" == typeof r ? r : b(r), n = JSON.stringify(n);\n }\n return n || \"\";\n }\n var Be = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNPublishOperation;\n },\n validateParams: function (e, t) {\n var n = e.config,\n r = t.message;\n return t.channel ? r ? n.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Message\" : \"Missing Channel\";\n },\n usePost: function (e, t) {\n var n = t.sendByPost;\n return void 0 !== n && n;\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channel,\n o = Ke(e, t.message);\n return \"/publish/\".concat(n.publishKey, \"/\").concat(n.subscribeKey, \"/0/\").concat(H.encodeString(r), \"/0/\").concat(H.encodeString(o));\n },\n postURL: function (e, t) {\n var n = e.config,\n r = t.channel;\n return \"/publish/\".concat(n.publishKey, \"/\").concat(n.subscribeKey, \"/0/\").concat(H.encodeString(r), \"/0\");\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n postPayload: function (e, t) {\n return Ke(e, t.message);\n },\n prepareParams: function (e, t) {\n var n = t.meta,\n r = t.replicate,\n o = void 0 === r || r,\n i = t.storeInHistory,\n s = t.ttl,\n a = {};\n return null != i && (a.store = i ? \"1\" : \"0\"), s && (a.ttl = s), !1 === o && (a.norep = \"true\"), n && \"object\" == typeof n && (a.meta = JSON.stringify(n)), a;\n },\n handleResponse: function (e, t) {\n return {\n timetoken: t[2]\n };\n }\n });\n var He = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNSignalOperation;\n },\n validateParams: function (e, t) {\n var n = e.config,\n r = t.message;\n return t.channel ? r ? n.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing Message\" : \"Missing Channel\";\n },\n getURL: function (e, t) {\n var n,\n r = e.config,\n o = t.channel,\n i = t.message,\n s = (n = i, JSON.stringify(n));\n return \"/signal/\".concat(r.publishKey, \"/\").concat(r.subscribeKey, \"/0/\").concat(H.encodeString(o), \"/0/\").concat(H.encodeString(s));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function () {\n return {};\n },\n handleResponse: function (e, t) {\n return {\n timetoken: t[2]\n };\n }\n });\n var qe = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNHistoryOperation;\n },\n validateParams: function (e, t) {\n var n = t.channel,\n r = e.config;\n return n ? r.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing channel\";\n },\n getURL: function (e, t) {\n var n = t.channel,\n r = e.config;\n return \"/v2/history/sub-key/\".concat(r.subscribeKey, \"/channel/\").concat(H.encodeString(n));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.start,\n r = t.end,\n o = t.reverse,\n i = t.count,\n s = void 0 === i ? 100 : i,\n a = t.stringifiedTimeToken,\n u = void 0 !== a && a,\n c = t.includeMeta,\n l = void 0 !== c && c,\n p = {\n include_token: \"true\"\n };\n return p.count = s, n && (p.start = n), r && (p.end = r), u && (p.string_message_token = \"true\"), null != o && (p.reverse = o.toString()), l && (p.include_meta = \"true\"), p;\n },\n handleResponse: function (e, t) {\n var n = {\n messages: [],\n startTimeToken: t[1],\n endTimeToken: t[2]\n };\n return Array.isArray(t[0]) && t[0].forEach(function (t) {\n var r = function (e, t) {\n var n = {};\n if (!e.cryptoModule) return n.payload = t, n;\n try {\n var r = e.cryptoModule.decrypt(t),\n o = r instanceof ArrayBuffer ? JSON.parse(new TextDecoder().decode(r)) : r;\n return n.payload = o, n;\n } catch (r) {\n e.config.logVerbosity && console && console.log && console.log(\"decryption error\", r.message), n.payload = t, n.error = \"Error while decrypting message content: \".concat(r.message);\n }\n return n;\n }(e, t.message),\n o = {\n timetoken: t.timetoken,\n entry: r.payload\n };\n t.meta && (o.meta = t.meta), r.error && (o.error = r.error), n.messages.push(o);\n }), n;\n }\n });\n var ze = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNDeleteMessagesOperation;\n },\n validateParams: function (e, t) {\n var n = t.channel,\n r = e.config;\n return n ? r.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing channel\";\n },\n useDelete: function () {\n return !0;\n },\n getURL: function (e, t) {\n var n = t.channel,\n r = e.config;\n return \"/v3/history/sub-key/\".concat(r.subscribeKey, \"/channel/\").concat(H.encodeString(n));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.start,\n r = t.end,\n o = {};\n return n && (o.start = n), r && (o.end = r), o;\n },\n handleResponse: function (e, t) {\n return t.payload;\n }\n });\n var Ve = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNMessageCounts;\n },\n validateParams: function (e, t) {\n var n = t.channels,\n r = t.timetoken,\n o = t.channelTimetokens,\n i = e.config;\n return n ? r && o ? \"timetoken and channelTimetokens are incompatible together\" : o && o.length > 1 && n.length !== o.length ? \"Length of channelTimetokens and channels do not match\" : i.subscribeKey ? void 0 : \"Missing Subscribe Key\" : \"Missing channel\";\n },\n getURL: function (e, t) {\n var n = t.channels,\n r = e.config,\n o = n.join(\",\");\n return \"/v3/history/sub-key/\".concat(r.subscribeKey, \"/message-counts/\").concat(H.encodeString(o));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.timetoken,\n r = t.channelTimetokens,\n o = {};\n if (r && 1 === r.length) {\n var i = a(r, 1)[0];\n o.timetoken = i;\n } else r ? o.channelsTimetoken = r.join(\",\") : n && (o.timetoken = n);\n return o;\n },\n handleResponse: function (e, t) {\n return {\n channels: t.channels\n };\n }\n });\n var We = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNFetchMessagesOperation;\n },\n validateParams: function (e, t) {\n var n = t.channels,\n r = t.includeMessageActions,\n o = void 0 !== r && r,\n i = e.config;\n if (!n || 0 === n.length) return \"Missing channels\";\n if (!i.subscribeKey) return \"Missing Subscribe Key\";\n if (o && n.length > 1) throw new TypeError(\"History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.\");\n },\n getURL: function (e, t) {\n var n = t.channels,\n r = void 0 === n ? [] : n,\n o = t.includeMessageActions,\n i = void 0 !== o && o,\n s = e.config,\n a = i ? \"history-with-actions\" : \"history\",\n u = r.length > 0 ? r.join(\",\") : \",\";\n return \"/v3/\".concat(a, \"/sub-key/\").concat(s.subscribeKey, \"/channel/\").concat(H.encodeString(u));\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = t.channels,\n r = t.start,\n o = t.end,\n i = t.includeMessageActions,\n s = t.count,\n a = t.stringifiedTimeToken,\n u = void 0 !== a && a,\n c = t.includeMeta,\n l = void 0 !== c && c,\n p = t.includeUuid,\n h = t.includeUUID,\n f = void 0 === h || h,\n d = t.includeMessageType,\n y = void 0 === d || d,\n g = {};\n return g.max = s || (n.length > 1 || !0 === i ? 25 : 100), r && (g.start = r), o && (g.end = o), u && (g.string_message_token = \"true\"), l && (g.include_meta = \"true\"), f && !1 !== p && (g.include_uuid = \"true\"), y && (g.include_message_type = \"true\"), g;\n },\n handleResponse: function (e, t) {\n var n = {\n channels: {}\n };\n return Object.keys(t.channels || {}).forEach(function (r) {\n n.channels[r] = [], (t.channels[r] || []).forEach(function (t) {\n var o = {},\n i = function (e, t) {\n var n = {};\n if (!e.cryptoModule) return n.payload = t, n;\n try {\n var r = e.cryptoModule.decrypt(t),\n o = r instanceof ArrayBuffer ? JSON.parse(new TextDecoder().decode(r)) : r;\n return n.payload = o, n;\n } catch (r) {\n e.config.logVerbosity && console && console.log && console.log(\"decryption error\", r.message), n.payload = t, n.error = \"Error while decrypting message content: \".concat(r.message);\n }\n return n;\n }(e, t.message);\n o.channel = r, o.timetoken = t.timetoken, o.message = i.payload, o.messageType = t.message_type, o.uuid = t.uuid, t.actions && (o.actions = t.actions, o.data = t.actions), t.meta && (o.meta = t.meta), i.error && (o.error = i.error), n.channels[r].push(o);\n });\n }), t.more && (n.more = t.more), n;\n }\n });\n var Je = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNTimeOperation;\n },\n getURL: function () {\n return \"/time/0\";\n },\n getRequestTimeout: function (e) {\n return e.config.getTransactionTimeout();\n },\n prepareParams: function () {\n return {};\n },\n isAuthSupported: function () {\n return !1;\n },\n handleResponse: function (e, t) {\n return {\n timetoken: t[0]\n };\n },\n validateParams: function () {}\n });\n var $e = Object.freeze({\n __proto__: null,\n getOperation: function () {\n return j.PNSubscribeOperation;\n },\n validateParams: function (e) {\n if (!e.config.subscribeKey) return \"Missing Subscribe Key\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channels,\n o = void 0 === r ? [] : r,\n i = o.length > 0 ? o.join(\",\") : \",\";\n return \"/v2/subscribe/\".concat(n.subscribeKey, \"/\").concat(H.encodeString(i), \"/0\");\n },\n getRequestTimeout: function (e) {\n return e.config.getSubscribeTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = e.config,\n r = t.state,\n o = t.channelGroups,\n i = void 0 === o ? [] : o,\n s = t.timetoken,\n a = t.filterExpression,\n u = t.region,\n c = {\n heartbeat: n.getPresenceTimeout()\n };\n return i.length > 0 && (c[\"channel-group\"] = i.join(\",\")), a && a.length > 0 && (c[\"filter-expr\"] = a), Object.keys(r).length && (c.state = JSON.stringify(r)), s && (c.tt = s), u && (c.tr = u), c;\n },\n handleResponse: function (e, t) {\n var n = [];\n t.m.forEach(function (e) {\n var t = {\n timetoken: e.p.t,\n region: e.p.r\n },\n r = {\n shard: parseInt(e.a, 10),\n subscriptionMatch: e.b,\n channel: e.c,\n messageType: e.e,\n payload: e.d,\n flags: e.f,\n issuingClientId: e.i,\n subscribeKey: e.k,\n originationTimetoken: e.o,\n userMetadata: e.u,\n publishMetaData: t\n };\n n.push(r);\n });\n var r = {\n timetoken: t.t.t,\n region: t.t.r\n };\n return {\n messages: n,\n metadata: r\n };\n }\n }),\n Qe = {\n getOperation: function () {\n return j.PNHandshakeOperation;\n },\n validateParams: function (e, t) {\n if (!(null == t ? void 0 : t.channels) && !(null == t ? void 0 : t.channelGroups)) return \"channels and channleGroups both should not be empty\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channels,\n o = void 0 === r ? [] : r,\n i = o.length > 0 ? o.join(\",\") : \",\";\n return \"/v2/subscribe/\".concat(n.subscribeKey, \"/\").concat(H.encodeString(i), \"/0\");\n },\n getRequestTimeout: function (e) {\n return e.config.getSubscribeTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n prepareParams: function (e, t) {\n var n = {};\n return t.channelGroups && t.channelGroups.length > 0 && (n[\"channel-group\"] = t.channelGroups.join(\",\")), n.tt = 0, t.state && (n.state = JSON.stringify(t.state)), t.filterExpression && t.filterExpression.length > 0 && (n[\"filter-expr\"] = t.filterExpression), n.ee = \"\", n;\n },\n handleResponse: function (e, t) {\n return {\n region: t.t.r,\n timetoken: t.t.t\n };\n }\n },\n Xe = {\n getOperation: function () {\n return j.PNReceiveMessagesOperation;\n },\n validateParams: function (e, t) {\n return (null == t ? void 0 : t.channels) || (null == t ? void 0 : t.channelGroups) ? (null == t ? void 0 : t.timetoken) ? (null == t ? void 0 : t.region) ? void 0 : \"region can not be empty\" : \"timetoken can not be empty\" : \"channels and channleGroups both should not be empty\";\n },\n getURL: function (e, t) {\n var n = e.config,\n r = t.channels,\n o = void 0 === r ? [] : r,\n i = o.length > 0 ? o.join(\",\") : \",\";\n return \"/v2/subscribe/\".concat(n.subscribeKey, \"/\").concat(H.encodeString(i), \"/0\");\n },\n getRequestTimeout: function (e) {\n return e.config.getSubscribeTimeout();\n },\n isAuthSupported: function () {\n return !0;\n },\n getAbortSignal: function (e, t) {\n return t.abortSignal;\n },\n prepareParams: function (e, t) {\n var n = {};\n return t.channelGroups && t.channelGroups.length > 0 && (n[\"channel-group\"] = t.channelGroups.join(\",\")), t.filterExpression && t.filterExpression.length > 0 && (n[\"filter-expr\"] = t.filterExpression), n.tt = t.timetoken, n.tr = t.region, n.ee = \"\", n;\n },\n handleResponse: function (e, t) {\n var n = [];\n return t.m.forEach(function (e) {\n var t = {\n shard: parseInt(e.a, 10),\n subscriptionMatch: e.b,\n channel: e.c,\n messageType: e.e,\n payload: e.d,\n flags: e.f,\n issuingClientId: e.i,\n subscribeKey: e.k,\n originationTimetoken: e.o,\n userMetadata: e.u,\n publishMetaData: {\n timetoken: e.p.t,\n region: e.p.r\n }\n };\n n.push(t);\n }), {\n messages: n,\n metadata: {\n region: t.t.r,\n timetoken: t.t.t\n }\n };\n }\n },\n Ye = function () {\n function e(e) {\n void 0 === e && (e = !1), this.sync = e, this.listeners = new Set();\n }\n return e.prototype.subscribe = function (e) {\n var t = this;\n return this.listeners.add(e), function () {\n t.listeners.delete(e);\n };\n }, e.prototype.notify = function (e) {\n var t = this,\n n = function () {\n t.listeners.forEach(function (t) {\n t(e);\n });\n };\n this.sync ? n() : setTimeout(n, 0);\n }, e;\n }(),\n Ze = function () {\n function e(e) {\n this.label = e, this.transitionMap = new Map(), this.enterEffects = [], this.exitEffects = [];\n }\n return e.prototype.transition = function (e, t) {\n var n;\n if (this.transitionMap.has(t.type)) return null === (n = this.transitionMap.get(t.type)) || void 0 === n ? void 0 : n(e, t);\n }, e.prototype.on = function (e, t) {\n return this.transitionMap.set(e, t), this;\n }, e.prototype.with = function (e, t) {\n return [this, e, null != t ? t : []];\n }, e.prototype.onEnter = function (e) {\n return this.enterEffects.push(e), this;\n }, e.prototype.onExit = function (e) {\n return this.exitEffects.push(e), this;\n }, e;\n }(),\n et = function (e) {\n function n() {\n return null !== e && e.apply(this, arguments) || this;\n }\n return t(n, e), n.prototype.describe = function (e) {\n return new Ze(e);\n }, n.prototype.start = function (e, t) {\n this.currentState = e, this.currentContext = t, this.notify({\n type: \"engineStarted\",\n state: e,\n context: t\n });\n }, n.prototype.transition = function (e) {\n var t, n, r, o, i, u;\n if (!this.currentState) throw new Error(\"Start the engine first\");\n this.notify({\n type: \"eventReceived\",\n event: e\n });\n var c = this.currentState.transition(this.currentContext, e);\n if (c) {\n var l = a(c, 3),\n p = l[0],\n h = l[1],\n f = l[2];\n try {\n for (var d = s(this.currentState.exitEffects), y = d.next(); !y.done; y = d.next()) {\n var g = y.value;\n this.notify({\n type: \"invocationDispatched\",\n invocation: g(this.currentContext)\n });\n }\n } catch (e) {\n t = {\n error: e\n };\n } finally {\n try {\n y && !y.done && (n = d.return) && n.call(d);\n } finally {\n if (t) throw t.error;\n }\n }\n var m = this.currentState;\n this.currentState = p;\n var b = this.currentContext;\n this.currentContext = h, this.notify({\n type: \"transitionDone\",\n fromState: m,\n fromContext: b,\n toState: p,\n toContext: h,\n event: e\n });\n try {\n for (var v = s(f), _ = v.next(); !_.done; _ = v.next()) {\n g = _.value;\n this.notify({\n type: \"invocationDispatched\",\n invocation: g\n });\n }\n } catch (e) {\n r = {\n error: e\n };\n } finally {\n try {\n _ && !_.done && (o = v.return) && o.call(v);\n } finally {\n if (r) throw r.error;\n }\n }\n try {\n for (var S = s(this.currentState.enterEffects), w = S.next(); !w.done; w = S.next()) {\n g = w.value;\n this.notify({\n type: \"invocationDispatched\",\n invocation: g(this.currentContext)\n });\n }\n } catch (e) {\n i = {\n error: e\n };\n } finally {\n try {\n w && !w.done && (u = S.return) && u.call(S);\n } finally {\n if (i) throw i.error;\n }\n }\n }\n }, n;\n }(Ye),\n tt = function () {\n function e(e) {\n this.dependencies = e, this.instances = new Map(), this.handlers = new Map();\n }\n return e.prototype.on = function (e, t) {\n this.handlers.set(e, t);\n }, e.prototype.dispatch = function (e) {\n if (\"CANCEL\" !== e.type) {\n var t = this.handlers.get(e.type);\n if (!t) throw new Error(\"Unhandled invocation '\".concat(e.type, \"'\"));\n var n = t(e.payload, this.dependencies);\n e.managed && this.instances.set(e.type, n), n.start();\n } else if (this.instances.has(e.payload)) {\n var r = this.instances.get(e.payload);\n null == r || r.cancel(), this.instances.delete(e.payload);\n }\n }, e.prototype.dispose = function () {\n var e, t;\n try {\n for (var n = s(this.instances.entries()), r = n.next(); !r.done; r = n.next()) {\n var o = a(r.value, 2),\n i = o[0];\n o[1].cancel(), this.instances.delete(i);\n }\n } catch (t) {\n e = {\n error: t\n };\n } finally {\n try {\n r && !r.done && (t = n.return) && t.call(n);\n } finally {\n if (e) throw e.error;\n }\n }\n }, e;\n }();\n function nt(e, t) {\n var n = function () {\n for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r];\n return {\n type: e,\n payload: null == t ? void 0 : t.apply(void 0, u([], a(n), !1))\n };\n };\n return n.type = e, n;\n }\n function rt(e, t) {\n var n = function () {\n for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r];\n return {\n type: e,\n payload: t.apply(void 0, u([], a(n), !1)),\n managed: !1\n };\n };\n return n.type = e, n;\n }\n function ot(e, t) {\n var n = function () {\n for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r];\n return {\n type: e,\n payload: t.apply(void 0, u([], a(n), !1)),\n managed: !0\n };\n };\n return n.type = e, n.cancel = {\n type: \"CANCEL\",\n payload: e,\n managed: !1\n }, n;\n }\n var it = function (e) {\n function n() {\n var t = this.constructor,\n n = e.call(this, \"The operation was aborted.\") || this;\n return n.name = \"AbortError\", Object.setPrototypeOf(n, t.prototype), n;\n }\n return t(n, e), n;\n }(Error),\n st = function (e) {\n function n() {\n var t = null !== e && e.apply(this, arguments) || this;\n return t._aborted = !1, t;\n }\n return t(n, e), Object.defineProperty(n.prototype, \"aborted\", {\n get: function () {\n return this._aborted;\n },\n enumerable: !1,\n configurable: !0\n }), n.prototype.throwIfAborted = function () {\n if (this._aborted) throw new it();\n }, n.prototype.abort = function () {\n this._aborted = !0, this.notify(new it());\n }, n;\n }(Ye),\n at = function (e) {\n function n(t, n, r) {\n var o = e.call(this, t, n) || this;\n return o.asyncFunction = r, o.abortSignal = new st(), o;\n }\n return t(n, e), n.prototype.start = function () {\n this.asyncFunction(this.payload, this.abortSignal, this.dependencies).catch(function (e) {});\n }, n.prototype.cancel = function () {\n this.abortSignal.abort();\n }, n;\n }(function (e, t) {\n this.payload = e, this.dependencies = t;\n }),\n ut = function (e) {\n return function (t, n) {\n return new at(t, n, e);\n };\n },\n ct = ot(\"HANDSHAKE\", function (e, t) {\n return {\n channels: e,\n groups: t\n };\n }),\n lt = ot(\"RECEIVE_MESSAGES\", function (e, t, n) {\n return {\n channels: e,\n groups: t,\n cursor: n\n };\n }),\n pt = rt(\"EMIT_MESSAGES\", function (e) {\n return e;\n }),\n ht = rt(\"EMIT_STATUS\", function (e) {\n return e;\n }),\n ft = ot(\"RECEIVE_RECONNECT\", function (e) {\n return e;\n }),\n dt = ot(\"HANDSHAKE_RECONNECT\", function (e) {\n return e;\n }),\n yt = nt(\"SUBSCRIPTION_CHANGED\", function (e, t) {\n return {\n channels: e,\n groups: t\n };\n }),\n gt = nt(\"SUBSCRIPTION_RESTORED\", function (e, t, n, r) {\n return {\n channels: e,\n groups: t,\n cursor: {\n timetoken: n,\n region: null != r ? r : 0\n }\n };\n }),\n mt = nt(\"HANDSHAKE_SUCCESS\", function (e) {\n return e;\n }),\n bt = nt(\"HANDSHAKE_FAILURE\", function (e) {\n return e;\n }),\n vt = nt(\"HANDSHAKE_RECONNECT_SUCCESS\", function (e) {\n return {\n cursor: e\n };\n }),\n _t = nt(\"HANDSHAKE_RECONNECT_FAILURE\", function (e) {\n return e;\n }),\n St = nt(\"HANDSHAKE_RECONNECT_GIVEUP\", function (e) {\n return e;\n }),\n wt = nt(\"RECEIVE_SUCCESS\", function (e, t) {\n return {\n cursor: e,\n events: t\n };\n }),\n Ot = nt(\"RECEIVE_FAILURE\", function (e) {\n return e;\n }),\n Pt = nt(\"RECEIVE_RECONNECT_SUCCESS\", function (e, t) {\n return {\n cursor: e,\n events: t\n };\n }),\n Et = nt(\"RECEIVE_RECONNECT_FAILURE\", function (e) {\n return e;\n }),\n At = nt(\"RECEIVING_RECONNECT_GIVEUP\", function (e) {\n return e;\n }),\n Tt = nt(\"DISCONNECT\", function () {\n return {};\n }),\n Nt = nt(\"RECONNECT\", function (e, t) {\n return {\n cursor: {\n timetoken: null != e ? e : \"\",\n region: null != t ? t : 0\n }\n };\n }),\n Ct = nt(\"UNSUBSCRIBE_ALL\", function () {\n return {};\n }),\n kt = function (e) {\n function r(t, r) {\n var s = e.call(this, r) || this;\n return s.on(ct.type, ut(function (e, r, a) {\n var u = a.handshake,\n c = a.presenceState,\n l = a.config;\n return o(s, void 0, void 0, function () {\n var o, s;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n r.throwIfAborted(), i.label = 1;\n case 1:\n return i.trys.push([1, 3,, 4]), [4, u(n({\n abortSignal: r,\n channels: e.channels,\n channelGroups: e.groups,\n filterExpression: l.filterExpression\n }, l.maintainPresenceState && {\n state: c\n }))];\n case 2:\n return o = i.sent(), [2, t.transition(mt(o))];\n case 3:\n return (s = i.sent()) instanceof Error && \"Aborted\" === s.message ? [2] : s instanceof q ? [2, t.transition(bt(s))] : [3, 4];\n case 4:\n return [2];\n }\n });\n });\n })), s.on(lt.type, ut(function (e, n, r) {\n var a = r.receiveMessages,\n u = r.config;\n return o(s, void 0, void 0, function () {\n var r, o;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n n.throwIfAborted(), i.label = 1;\n case 1:\n return i.trys.push([1, 3,, 4]), [4, a({\n abortSignal: n,\n channels: e.channels,\n channelGroups: e.groups,\n timetoken: e.cursor.timetoken,\n region: e.cursor.region,\n filterExpression: u.filterExpression\n })];\n case 2:\n return r = i.sent(), t.transition(wt(r.metadata, r.messages)), [3, 4];\n case 3:\n return (o = i.sent()) instanceof Error && \"Aborted\" === o.message ? [2] : o instanceof q && !n.aborted ? [2, t.transition(Ot(o))] : [3, 4];\n case 4:\n return [2];\n }\n });\n });\n })), s.on(pt.type, ut(function (e, t, n) {\n var r = n.emitMessages;\n return o(s, void 0, void 0, function () {\n return i(this, function (t) {\n return e.length > 0 && r(e), [2];\n });\n });\n })), s.on(ht.type, ut(function (e, t, n) {\n var r = n.emitStatus;\n return o(s, void 0, void 0, function () {\n return i(this, function (t) {\n return r(e), [2];\n });\n });\n })), s.on(ft.type, ut(function (e, n, r) {\n var a = r.receiveMessages,\n u = r.delay,\n c = r.config;\n return o(s, void 0, void 0, function () {\n var r, o;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return c.retryConfiguration && c.retryConfiguration.shouldRetry(e.reason, e.attempts) ? (n.throwIfAborted(), [4, u(c.retryConfiguration.getDelay(e.attempts, e.reason))]) : [3, 6];\n case 1:\n i.sent(), n.throwIfAborted(), i.label = 2;\n case 2:\n return i.trys.push([2, 4,, 5]), [4, a({\n abortSignal: n,\n channels: e.channels,\n channelGroups: e.groups,\n timetoken: e.cursor.timetoken,\n region: e.cursor.region,\n filterExpression: c.filterExpression\n })];\n case 3:\n return r = i.sent(), [2, t.transition(Pt(r.metadata, r.messages))];\n case 4:\n return (o = i.sent()) instanceof Error && \"Aborted\" === o.message ? [2] : o instanceof q ? [2, t.transition(Et(o))] : [3, 5];\n case 5:\n return [3, 7];\n case 6:\n return [2, t.transition(At(new q(c.retryConfiguration.getGiveupReason(e.reason, e.attempts))))];\n case 7:\n return [2];\n }\n });\n });\n })), s.on(dt.type, ut(function (e, r, a) {\n var u = a.handshake,\n c = a.delay,\n l = a.presenceState,\n p = a.config;\n return o(s, void 0, void 0, function () {\n var o, s;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return p.retryConfiguration && p.retryConfiguration.shouldRetry(e.reason, e.attempts) ? (r.throwIfAborted(), [4, c(p.retryConfiguration.getDelay(e.attempts, e.reason))]) : [3, 6];\n case 1:\n i.sent(), r.throwIfAborted(), i.label = 2;\n case 2:\n return i.trys.push([2, 4,, 5]), [4, u(n({\n abortSignal: r,\n channels: e.channels,\n channelGroups: e.groups,\n filterExpression: p.filterExpression\n }, p.maintainPresenceState && {\n state: l\n }))];\n case 3:\n return o = i.sent(), [2, t.transition(vt(o))];\n case 4:\n return (s = i.sent()) instanceof Error && \"Aborted\" === s.message ? [2] : s instanceof q ? [2, t.transition(_t(s))] : [3, 5];\n case 5:\n return [3, 7];\n case 6:\n return [2, t.transition(St(new q(p.retryConfiguration.getGiveupReason(e.reason, e.attempts))))];\n case 7:\n return [2];\n }\n });\n });\n })), s;\n }\n return t(r, e), r;\n }(tt),\n Mt = new Ze(\"HANDSHAKE_FAILED\");\n Mt.on(yt.type, function (e, t) {\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: e.cursor\n });\n }), Mt.on(Nt.type, function (e, t) {\n return Ft.with({\n channels: e.channels,\n groups: e.groups,\n cursor: t.payload.cursor || e.cursor\n });\n }), Mt.on(gt.type, function (e, t) {\n var n, r;\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: t.payload.cursor.region ? t.payload.cursor.region : null !== (r = null === (n = null == e ? void 0 : e.cursor) || void 0 === n ? void 0 : n.region) && void 0 !== r ? r : 0\n }\n });\n }), Mt.on(Ct.type, function (e) {\n return Lt.with();\n });\n var jt = new Ze(\"HANDSHAKE_STOPPED\");\n jt.on(yt.type, function (e, t) {\n return jt.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: e.cursor\n });\n }), jt.on(Nt.type, function (e, t) {\n return Ft.with(n(n({}, e), {\n cursor: t.payload.cursor || e.cursor\n }));\n }), jt.on(gt.type, function (e, t) {\n var n;\n return jt.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: t.payload.cursor.region || (null === (n = null == e ? void 0 : e.cursor) || void 0 === n ? void 0 : n.region) || 0\n }\n });\n }), jt.on(Ct.type, function (e) {\n return Lt.with();\n });\n var Rt = new Ze(\"RECEIVE_FAILED\");\n Rt.on(Nt.type, function (e, t) {\n var n;\n return Ft.with({\n channels: e.channels,\n groups: e.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken ? null === (n = t.payload.cursor) || void 0 === n ? void 0 : n.timetoken : e.cursor.timetoken,\n region: t.payload.cursor.region || e.cursor.region\n }\n });\n }), Rt.on(yt.type, function (e, t) {\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: e.cursor\n });\n }), Rt.on(gt.type, function (e, t) {\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: t.payload.cursor.region || e.cursor.region\n }\n });\n }), Rt.on(Ct.type, function (e) {\n return Lt.with(void 0);\n });\n var xt = new Ze(\"RECEIVE_STOPPED\");\n xt.on(yt.type, function (e, t) {\n return xt.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: e.cursor\n });\n }), xt.on(gt.type, function (e, t) {\n return xt.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: t.payload.cursor.region || e.cursor.region\n }\n });\n }), xt.on(Nt.type, function (e, t) {\n var n;\n return Ft.with({\n channels: e.channels,\n groups: e.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken ? null === (n = t.payload.cursor) || void 0 === n ? void 0 : n.timetoken : e.cursor.timetoken,\n region: t.payload.cursor.region || e.cursor.region\n }\n });\n }), xt.on(Ct.type, function () {\n return Lt.with(void 0);\n });\n var Ut = new Ze(\"RECEIVE_RECONNECTING\");\n Ut.onEnter(function (e) {\n return ft(e);\n }), Ut.onExit(function () {\n return ft.cancel;\n }), Ut.on(Pt.type, function (e, t) {\n return It.with({\n channels: e.channels,\n groups: e.groups,\n cursor: t.payload.cursor\n }, [pt(t.payload.events)]);\n }), Ut.on(Et.type, function (e, t) {\n return Ut.with(n(n({}, e), {\n attempts: e.attempts + 1,\n reason: t.payload\n }));\n }), Ut.on(At.type, function (e, t) {\n var n;\n return Rt.with({\n groups: e.groups,\n channels: e.channels,\n cursor: e.cursor,\n reason: t.payload\n }, [ht({\n category: k.PNDisconnectedUnexpectedlyCategory,\n error: null === (n = t.payload) || void 0 === n ? void 0 : n.message\n })]);\n }), Ut.on(Tt.type, function (e) {\n return xt.with({\n channels: e.channels,\n groups: e.groups,\n cursor: e.cursor\n }, [ht({\n category: k.PNDisconnectedCategory\n })]);\n }), Ut.on(gt.type, function (e, t) {\n return It.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: t.payload.cursor.region || e.cursor.region\n }\n });\n }), Ut.on(yt.type, function (e, t) {\n return It.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: e.cursor\n });\n }), Ut.on(Ct.type, function (e) {\n return Lt.with(void 0, [ht({\n category: k.PNDisconnectedCategory\n })]);\n });\n var It = new Ze(\"RECEIVING\");\n It.onEnter(function (e) {\n return lt(e.channels, e.groups, e.cursor);\n }), It.onExit(function () {\n return lt.cancel;\n }), It.on(wt.type, function (e, t) {\n return It.with({\n channels: e.channels,\n groups: e.groups,\n cursor: t.payload.cursor\n }, [pt(t.payload.events)]);\n }), It.on(yt.type, function (e, t) {\n return 0 === t.payload.channels.length && 0 === t.payload.groups.length ? Lt.with(void 0) : It.with({\n cursor: e.cursor,\n channels: t.payload.channels,\n groups: t.payload.groups\n });\n }), It.on(gt.type, function (e, t) {\n return 0 === t.payload.channels.length && 0 === t.payload.groups.length ? Lt.with(void 0) : It.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: t.payload.cursor.region || e.cursor.region\n }\n });\n }), It.on(Ot.type, function (e, t) {\n return Ut.with(n(n({}, e), {\n attempts: 0,\n reason: t.payload\n }));\n }), It.on(Tt.type, function (e) {\n return xt.with({\n channels: e.channels,\n groups: e.groups,\n cursor: e.cursor\n }, [ht({\n category: k.PNDisconnectedCategory\n })]);\n }), It.on(Ct.type, function (e) {\n return Lt.with(void 0, [ht({\n category: k.PNDisconnectedCategory\n })]);\n });\n var Dt = new Ze(\"HANDSHAKE_RECONNECTING\");\n Dt.onEnter(function (e) {\n return dt(e);\n }), Dt.onExit(function () {\n return dt.cancel;\n }), Dt.on(vt.type, function (e, t) {\n var n,\n r,\n o = {\n timetoken: (null === (n = e.cursor) || void 0 === n ? void 0 : n.timetoken) ? null === (r = e.cursor) || void 0 === r ? void 0 : r.timetoken : t.payload.cursor.timetoken,\n region: t.payload.cursor.region\n };\n return It.with({\n channels: e.channels,\n groups: e.groups,\n cursor: o\n }, [ht({\n category: k.PNConnectedCategory\n })]);\n }), Dt.on(_t.type, function (e, t) {\n return Dt.with(n(n({}, e), {\n attempts: e.attempts + 1,\n reason: t.payload\n }));\n }), Dt.on(St.type, function (e, t) {\n var n;\n return Mt.with({\n groups: e.groups,\n channels: e.channels,\n cursor: e.cursor,\n reason: t.payload\n }, [ht({\n category: k.PNConnectionErrorCategory,\n error: null === (n = t.payload) || void 0 === n ? void 0 : n.message\n })]);\n }), Dt.on(Tt.type, function (e) {\n return jt.with({\n channels: e.channels,\n groups: e.groups,\n cursor: e.cursor\n });\n }), Dt.on(yt.type, function (e, t) {\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: e.cursor\n });\n }), Dt.on(gt.type, function (e, t) {\n var n, r;\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: (null === (n = t.payload.cursor) || void 0 === n ? void 0 : n.region) || (null === (r = null == e ? void 0 : e.cursor) || void 0 === r ? void 0 : r.region) || 0\n }\n });\n }), Dt.on(Ct.type, function (e) {\n return Lt.with(void 0);\n });\n var Ft = new Ze(\"HANDSHAKING\");\n Ft.onEnter(function (e) {\n return ct(e.channels, e.groups);\n }), Ft.onExit(function () {\n return ct.cancel;\n }), Ft.on(yt.type, function (e, t) {\n return 0 === t.payload.channels.length && 0 === t.payload.groups.length ? Lt.with(void 0) : Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: e.cursor\n });\n }), Ft.on(mt.type, function (e, t) {\n var n, r;\n return It.with({\n channels: e.channels,\n groups: e.groups,\n cursor: {\n timetoken: (null === (n = null == e ? void 0 : e.cursor) || void 0 === n ? void 0 : n.timetoken) ? null === (r = null == e ? void 0 : e.cursor) || void 0 === r ? void 0 : r.timetoken : t.payload.timetoken,\n region: t.payload.region\n }\n }, [ht({\n category: k.PNConnectedCategory\n })]);\n }), Ft.on(bt.type, function (e, t) {\n return Dt.with({\n channels: e.channels,\n groups: e.groups,\n cursor: e.cursor,\n attempts: 0,\n reason: t.payload\n });\n }), Ft.on(Tt.type, function (e) {\n return jt.with({\n channels: e.channels,\n groups: e.groups,\n cursor: e.cursor\n });\n }), Ft.on(gt.type, function (e, t) {\n var n;\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: {\n timetoken: t.payload.cursor.timetoken,\n region: t.payload.cursor.region || (null === (n = null == e ? void 0 : e.cursor) || void 0 === n ? void 0 : n.region) || 0\n }\n });\n }), Ft.on(Ct.type, function (e) {\n return Lt.with();\n });\n var Lt = new Ze(\"UNSUBSCRIBED\");\n Lt.on(yt.type, function (e, t) {\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups\n });\n }), Lt.on(gt.type, function (e, t) {\n return Ft.with({\n channels: t.payload.channels,\n groups: t.payload.groups,\n cursor: t.payload.cursor\n });\n });\n var Gt = function () {\n function e(e) {\n var t = this;\n this.engine = new et(), this.channels = [], this.groups = [], this.dependencies = e, this.dispatcher = new kt(this.engine, e), this._unsubscribeEngine = this.engine.subscribe(function (e) {\n \"invocationDispatched\" === e.type && t.dispatcher.dispatch(e.invocation);\n }), this.engine.start(Lt, void 0);\n }\n return Object.defineProperty(e.prototype, \"_engine\", {\n get: function () {\n return this.engine;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.subscribe = function (e) {\n var t = this,\n n = e.channels,\n r = e.channelGroups,\n o = e.timetoken,\n i = e.withPresence;\n this.channels = u(u([], a(this.channels), !1), a(null != n ? n : []), !1), this.groups = u(u([], a(this.groups), !1), a(null != r ? r : []), !1), i && (this.channels.map(function (e) {\n return t.channels.push(\"\".concat(e, \"-pnpres\"));\n }), this.groups.map(function (e) {\n return t.groups.push(\"\".concat(e, \"-pnpres\"));\n })), o ? this.engine.transition(gt(Array.from(new Set(u(u([], a(this.channels), !1), a(null != n ? n : []), !1))), Array.from(new Set(u(u([], a(this.groups), !1), a(null != r ? r : []), !1))), o)) : this.engine.transition(yt(Array.from(new Set(u(u([], a(this.channels), !1), a(null != n ? n : []), !1))), Array.from(new Set(u(u([], a(this.groups), !1), a(null != r ? r : []), !1))))), this.dependencies.join && this.dependencies.join({\n channels: Array.from(new Set(this.channels.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }))),\n groups: Array.from(new Set(this.groups.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n })))\n });\n }, e.prototype.unsubscribe = function (e) {\n var t = this,\n n = e.channels,\n r = void 0 === n ? [] : n,\n o = e.channelGroups,\n i = void 0 === o ? [] : o,\n s = H.removeSingleOccurance(this.channels, u(u([], a(r), !1), a(r.map(function (e) {\n return \"\".concat(e, \"-pnpres\");\n })), !1)),\n c = H.removeSingleOccurance(this.groups, u(u([], a(i), !1), a(i.map(function (e) {\n return \"\".concat(e, \"-pnpres\");\n })), !1));\n if (new Set(this.channels).size !== new Set(s).size || new Set(this.groups).size !== new Set(c).size) {\n var l = H.findUniqueCommonElements(this.channels, r),\n p = H.findUniqueCommonElements(this.groups, i);\n this.dependencies.presenceState && (null == l || l.forEach(function (e) {\n return delete t.dependencies.presenceState[e];\n }), null == p || p.forEach(function (e) {\n return delete t.dependencies.presenceState[e];\n })), this.channels = s, this.groups = c, this.engine.transition(yt(Array.from(new Set(this.channels.slice(0))), Array.from(new Set(this.groups.slice(0))))), this.dependencies.leave && this.dependencies.leave({\n channels: l.slice(0),\n groups: p.slice(0)\n });\n }\n }, e.prototype.unsubscribeAll = function () {\n this.channels = [], this.groups = [], this.dependencies.presenceState && (this.dependencies.presenceState = {}), this.engine.transition(yt(this.channels.slice(0), this.groups.slice(0))), this.dependencies.leaveAll && this.dependencies.leaveAll();\n }, e.prototype.reconnect = function (e) {\n var t = e.timetoken,\n n = e.region;\n this.engine.transition(Nt(t, n));\n }, e.prototype.disconnect = function () {\n this.engine.transition(Tt()), this.dependencies.leaveAll && this.dependencies.leaveAll();\n }, e.prototype.getSubscribedChannels = function () {\n return Array.from(new Set(this.channels));\n }, e.prototype.getSubscribedChannelGroups = function () {\n return Array.from(new Set(this.groups));\n }, e.prototype.dispose = function () {\n this.disconnect(), this._unsubscribeEngine(), this.dispatcher.dispose();\n }, e;\n }(),\n Kt = nt(\"RECONNECT\", function () {\n return {};\n }),\n Bt = nt(\"DISCONNECT\", function () {\n return {};\n }),\n Ht = nt(\"JOINED\", function (e, t) {\n return {\n channels: e,\n groups: t\n };\n }),\n qt = nt(\"LEFT\", function (e, t) {\n return {\n channels: e,\n groups: t\n };\n }),\n zt = nt(\"LEFT_ALL\", function () {\n return {};\n }),\n Vt = nt(\"HEARTBEAT_SUCCESS\", function (e) {\n return {\n statusCode: e\n };\n }),\n Wt = nt(\"HEARTBEAT_FAILURE\", function (e) {\n return e;\n }),\n Jt = nt(\"HEARTBEAT_GIVEUP\", function () {\n return {};\n }),\n $t = nt(\"TIMES_UP\", function () {\n return {};\n }),\n Qt = rt(\"HEARTBEAT\", function (e, t) {\n return {\n channels: e,\n groups: t\n };\n }),\n Xt = rt(\"LEAVE\", function (e, t) {\n return {\n channels: e,\n groups: t\n };\n }),\n Yt = rt(\"EMIT_STATUS\", function (e) {\n return e;\n }),\n Zt = ot(\"WAIT\", function () {\n return {};\n }),\n en = ot(\"DELAYED_HEARTBEAT\", function (e) {\n return e;\n }),\n tn = function (e) {\n function r(t, r) {\n var s = e.call(this, r) || this;\n return s.on(Qt.type, ut(function (e, r, a) {\n var u = a.heartbeat,\n c = a.presenceState,\n l = a.config;\n return o(s, void 0, void 0, function () {\n var r;\n return i(this, function (o) {\n switch (o.label) {\n case 0:\n return o.trys.push([0, 2,, 3]), [4, u(n({\n channels: e.channels,\n channelGroups: e.groups\n }, l.maintainPresenceState && {\n state: c\n }))];\n case 1:\n return o.sent(), t.transition(Vt(200)), [3, 3];\n case 2:\n return (r = o.sent()) instanceof q ? [2, t.transition(Wt(r))] : [3, 3];\n case 3:\n return [2];\n }\n });\n });\n })), s.on(Xt.type, ut(function (e, t, n) {\n var r = n.leave,\n a = n.config;\n return o(s, void 0, void 0, function () {\n return i(this, function (t) {\n switch (t.label) {\n case 0:\n if (a.suppressLeaveEvents) return [3, 4];\n t.label = 1;\n case 1:\n return t.trys.push([1, 3,, 4]), [4, r({\n channels: e.channels,\n channelGroups: e.groups\n })];\n case 2:\n case 3:\n return t.sent(), [3, 4];\n case 4:\n return [2];\n }\n });\n });\n })), s.on(Zt.type, ut(function (e, n, r) {\n var a = r.heartbeatDelay;\n return o(s, void 0, void 0, function () {\n return i(this, function (e) {\n switch (e.label) {\n case 0:\n return n.throwIfAborted(), [4, a()];\n case 1:\n return e.sent(), n.throwIfAborted(), [2, t.transition($t())];\n }\n });\n });\n })), s.on(en.type, ut(function (e, r, a) {\n var u = a.heartbeat,\n c = a.retryDelay,\n l = a.presenceState,\n p = a.config;\n return o(s, void 0, void 0, function () {\n var o;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return p.retryConfiguration && p.retryConfiguration.shouldRetry(e.reason, e.attempts) ? (r.throwIfAborted(), [4, c(p.retryConfiguration.getDelay(e.attempts, e.reason))]) : [3, 6];\n case 1:\n i.sent(), r.throwIfAborted(), i.label = 2;\n case 2:\n return i.trys.push([2, 4,, 5]), [4, u(n({\n channels: e.channels,\n channelGroups: e.groups\n }, p.maintainPresenceState && {\n state: l\n }))];\n case 3:\n return i.sent(), [2, t.transition(Vt(200))];\n case 4:\n return (o = i.sent()) instanceof Error && \"Aborted\" === o.message ? [2] : o instanceof q ? [2, t.transition(Wt(o))] : [3, 5];\n case 5:\n return [3, 7];\n case 6:\n return [2, t.transition(Jt())];\n case 7:\n return [2];\n }\n });\n });\n })), s.on(Yt.type, ut(function (e, t, r) {\n var a = r.emitStatus,\n u = r.config;\n return o(s, void 0, void 0, function () {\n var t;\n return i(this, function (r) {\n return u.announceFailedHeartbeats && !0 === (null === (t = null == e ? void 0 : e.status) || void 0 === t ? void 0 : t.error) ? a(e.status) : u.announceSuccessfulHeartbeats && 200 === e.statusCode && a(n(n({}, e), {\n operation: j.PNHeartbeatOperation,\n error: !1\n })), [2];\n });\n });\n })), s;\n }\n return t(r, e), r;\n }(tt),\n nn = new Ze(\"HEARTBEAT_STOPPED\");\n nn.on(Ht.type, function (e, t) {\n return nn.with({\n channels: u(u([], a(e.channels), !1), a(t.payload.channels), !1),\n groups: u(u([], a(e.groups), !1), a(t.payload.groups), !1)\n });\n }), nn.on(qt.type, function (e, t) {\n return nn.with({\n channels: e.channels.filter(function (e) {\n return !t.payload.channels.includes(e);\n }),\n groups: e.groups.filter(function (e) {\n return !t.payload.groups.includes(e);\n })\n });\n }), nn.on(Kt.type, function (e, t) {\n return an.with({\n channels: e.channels,\n groups: e.groups\n });\n }), nn.on(zt.type, function (e, t) {\n return un.with(void 0);\n });\n var rn = new Ze(\"HEARTBEAT_COOLDOWN\");\n rn.onEnter(function () {\n return Zt();\n }), rn.onExit(function () {\n return Zt.cancel;\n }), rn.on($t.type, function (e, t) {\n return an.with({\n channels: e.channels,\n groups: e.groups\n });\n }), rn.on(Ht.type, function (e, t) {\n return an.with({\n channels: u(u([], a(e.channels), !1), a(t.payload.channels), !1),\n groups: u(u([], a(e.groups), !1), a(t.payload.groups), !1)\n });\n }), rn.on(qt.type, function (e, t) {\n return an.with({\n channels: e.channels.filter(function (e) {\n return !t.payload.channels.includes(e);\n }),\n groups: e.groups.filter(function (e) {\n return !t.payload.groups.includes(e);\n })\n }, [Xt(t.payload.channels, t.payload.groups)]);\n }), rn.on(Bt.type, function (e) {\n return nn.with({\n channels: e.channels,\n groups: e.groups\n }, [Xt(e.channels, e.groups)]);\n }), rn.on(zt.type, function (e, t) {\n return un.with(void 0, [Xt(e.channels, e.groups)]);\n });\n var on = new Ze(\"HEARTBEAT_FAILED\");\n on.on(Ht.type, function (e, t) {\n return an.with({\n channels: u(u([], a(e.channels), !1), a(t.payload.channels), !1),\n groups: u(u([], a(e.groups), !1), a(t.payload.groups), !1)\n });\n }), on.on(qt.type, function (e, t) {\n return an.with({\n channels: e.channels.filter(function (e) {\n return !t.payload.channels.includes(e);\n }),\n groups: e.groups.filter(function (e) {\n return !t.payload.groups.includes(e);\n })\n }, [Xt(t.payload.channels, t.payload.groups)]);\n }), on.on(Kt.type, function (e, t) {\n return an.with({\n channels: e.channels,\n groups: e.groups\n });\n }), on.on(Bt.type, function (e, t) {\n return nn.with({\n channels: e.channels,\n groups: e.groups\n }, [Xt(e.channels, e.groups)]);\n }), on.on(zt.type, function (e, t) {\n return un.with(void 0, [Xt(e.channels, e.groups)]);\n });\n var sn = new Ze(\"HEARBEAT_RECONNECTING\");\n sn.onEnter(function (e) {\n return en(e);\n }), sn.onExit(function () {\n return en.cancel;\n }), sn.on(Ht.type, function (e, t) {\n return an.with({\n channels: u(u([], a(e.channels), !1), a(t.payload.channels), !1),\n groups: u(u([], a(e.groups), !1), a(t.payload.groups), !1)\n });\n }), sn.on(qt.type, function (e, t) {\n return an.with({\n channels: e.channels.filter(function (e) {\n return !t.payload.channels.includes(e);\n }),\n groups: e.groups.filter(function (e) {\n return !t.payload.groups.includes(e);\n })\n }, [Xt(t.payload.channels, t.payload.groups)]);\n }), sn.on(Bt.type, function (e, t) {\n nn.with({\n channels: e.channels,\n groups: e.groups\n }, [Xt(e.channels, e.groups)]);\n }), sn.on(Vt.type, function (e, t) {\n return rn.with({\n channels: e.channels,\n groups: e.groups\n });\n }), sn.on(Wt.type, function (e, t) {\n return sn.with(n(n({}, e), {\n attempts: e.attempts + 1,\n reason: t.payload\n }));\n }), sn.on(Jt.type, function (e, t) {\n return on.with({\n channels: e.channels,\n groups: e.groups\n });\n }), sn.on(zt.type, function (e, t) {\n return un.with(void 0, [Xt(e.channels, e.groups)]);\n });\n var an = new Ze(\"HEARTBEATING\");\n an.onEnter(function (e) {\n return Qt(e.channels, e.groups);\n }), an.on(Vt.type, function (e, t) {\n return rn.with({\n channels: e.channels,\n groups: e.groups\n });\n }), an.on(Ht.type, function (e, t) {\n return an.with({\n channels: u(u([], a(e.channels), !1), a(t.payload.channels), !1),\n groups: u(u([], a(e.groups), !1), a(t.payload.groups), !1)\n });\n }), an.on(qt.type, function (e, t) {\n return an.with({\n channels: e.channels.filter(function (e) {\n return !t.payload.channels.includes(e);\n }),\n groups: e.groups.filter(function (e) {\n return !t.payload.groups.includes(e);\n })\n }, [Xt(t.payload.channels, t.payload.groups)]);\n }), an.on(Wt.type, function (e, t) {\n return sn.with(n(n({}, e), {\n attempts: 0,\n reason: t.payload\n }));\n }), an.on(Bt.type, function (e) {\n return nn.with({\n channels: e.channels,\n groups: e.groups\n }, [Xt(e.channels, e.groups)]);\n }), an.on(zt.type, function (e, t) {\n return un.with(void 0, [Xt(e.channels, e.groups)]);\n });\n var un = new Ze(\"HEARTBEAT_INACTIVE\");\n un.on(Ht.type, function (e, t) {\n return an.with({\n channels: t.payload.channels,\n groups: t.payload.groups\n });\n });\n var cn = function () {\n function e(e) {\n var t = this;\n this.engine = new et(), this.channels = [], this.groups = [], this.dispatcher = new tn(this.engine, e), this.dependencies = e, this._unsubscribeEngine = this.engine.subscribe(function (e) {\n \"invocationDispatched\" === e.type && t.dispatcher.dispatch(e.invocation);\n }), this.engine.start(un, void 0);\n }\n return Object.defineProperty(e.prototype, \"_engine\", {\n get: function () {\n return this.engine;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.join = function (e) {\n var t = e.channels,\n n = e.groups;\n this.channels = u(u([], a(this.channels), !1), a(null != t ? t : []), !1), this.groups = u(u([], a(this.groups), !1), a(null != n ? n : []), !1), this.engine.transition(Ht(this.channels.slice(0), this.groups.slice(0)));\n }, e.prototype.leave = function (e) {\n var t = this,\n n = e.channels,\n r = e.groups;\n this.dependencies.presenceState && (null == n || n.forEach(function (e) {\n return delete t.dependencies.presenceState[e];\n }), null == r || r.forEach(function (e) {\n return delete t.dependencies.presenceState[e];\n })), this.engine.transition(qt(null != n ? n : [], null != r ? r : []));\n }, e.prototype.leaveAll = function () {\n this.engine.transition(zt());\n }, e.prototype.dispose = function () {\n this._unsubscribeEngine(), this.dispatcher.dispose();\n }, e;\n }(),\n ln = function () {\n function e() {}\n return e.LinearRetryPolicy = function (e) {\n return {\n delay: e.delay,\n maximumRetry: e.maximumRetry,\n shouldRetry: function (e, t) {\n var n;\n return 403 !== (null === (n = null == e ? void 0 : e.status) || void 0 === n ? void 0 : n.statusCode) && this.maximumRetry > t;\n },\n getDelay: function (e, t) {\n var n;\n return 1e3 * ((null !== (n = t.retryAfter) && void 0 !== n ? n : this.delay) + Math.random());\n },\n getGiveupReason: function (e, t) {\n var n;\n return this.maximumRetry <= t ? \"retry attempts exhaused.\" : 403 === (null === (n = null == e ? void 0 : e.status) || void 0 === n ? void 0 : n.statusCode) ? \"forbidden operation.\" : \"unknown error\";\n }\n };\n }, e.ExponentialRetryPolicy = function (e) {\n return {\n minimumDelay: e.minimumDelay,\n maximumDelay: e.maximumDelay,\n maximumRetry: e.maximumRetry,\n shouldRetry: function (e, t) {\n var n;\n return 403 !== (null === (n = null == e ? void 0 : e.status) || void 0 === n ? void 0 : n.statusCode) && this.maximumRetry > t;\n },\n getDelay: function (e, t) {\n var n;\n return 1e3 * ((null !== (n = t.retryAfter) && void 0 !== n ? n : Math.min(Math.pow(2, e), this.maximumDelay)) + Math.random());\n },\n getGiveupReason: function (e, t) {\n var n;\n return this.maximumRetry <= t ? \"retry attempts exhaused.\" : 403 === (null === (n = null == e ? void 0 : e.status) || void 0 === n ? void 0 : n.statusCode) ? \"forbidden operation.\" : \"unknown error\";\n }\n };\n }, e;\n }(),\n pn = function () {\n function e(e) {\n var t = e.modules,\n n = e.listenerManager,\n r = e.getFileUrl;\n this.modules = t, this.listenerManager = n, this.getFileUrl = r, this._channelListenerMap = new Map(), this._groupListenerMap = new Map(), t.cryptoModule && (this._decoder = new TextDecoder());\n }\n return e.prototype.emitEvent = function (e) {\n var t = e.channel,\n o = e.publishMetaData,\n i = e.subscriptionMatch;\n if (t === i && (i = null), e.channel.endsWith(\"-pnpres\")) {\n var s = {\n channel: null,\n subscription: null\n };\n t && (s.channel = t.substring(0, t.lastIndexOf(\"-pnpres\"))), i && (s.subscription = i.substring(0, i.lastIndexOf(\"-pnpres\"))), s.action = e.payload.action, s.state = e.payload.data, s.timetoken = o.timetoken, s.occupancy = e.payload.occupancy, s.uuid = e.payload.uuid, s.timestamp = e.payload.timestamp, e.payload.join && (s.join = e.payload.join), e.payload.leave && (s.leave = e.payload.leave), e.payload.timeout && (s.timeout = e.payload.timeout), s.actualChannel = null != i ? t : null, s.subscribedChannel = null != i ? i : t, this.listenerManager.announcePresence(s), this._announce(\"presence\", s, s.channel, s.subscription);\n } else if (1 === e.messageType) {\n (s = {\n channel: null,\n subscription: null\n }).channel = t, s.subscription = i, s.timetoken = o.timetoken, s.publisher = e.issuingClientId, e.userMetadata && (s.userMetadata = e.userMetadata), s.message = e.payload, this.listenerManager.announceSignal(s), this._announce(\"signal\", s, s.channel, s.subscription);\n } else if (2 === e.messageType) {\n if ((s = {\n channel: null,\n subscription: null\n }).channel = t, s.subscription = i, s.timetoken = o.timetoken, s.publisher = e.issuingClientId, e.userMetadata && (s.userMetadata = e.userMetadata), s.message = {\n event: e.payload.event,\n type: e.payload.type,\n data: e.payload.data\n }, this.listenerManager.announceObjects(s), this._announce(\"objects\", s, s.channel, s.subscription), \"uuid\" === e.payload.type) {\n var a = this._renameChannelField(s),\n u = n(n({}, a), {\n message: n(n({}, a.message), {\n event: this._renameEvent(a.message.event),\n type: \"user\"\n })\n });\n this.listenerManager.announceUser(u), this._announce(\"user\", u, s.channel, s.subscription);\n } else if (\"channel\" === e.payload.type) {\n a = this._renameChannelField(s);\n var c = n(n({}, a), {\n message: n(n({}, a.message), {\n event: this._renameEvent(a.message.event),\n type: \"space\"\n })\n });\n this.listenerManager.announceSpace(c), this._announce(\"space\", c, s.channel, s.subscription);\n } else if (\"membership\" === e.payload.type) {\n var l = (a = this._renameChannelField(s)).message.data,\n p = l.uuid,\n h = l.channel,\n f = r(l, [\"uuid\", \"channel\"]);\n f.user = p, f.space = h;\n var d = n(n({}, a), {\n message: n(n({}, a.message), {\n event: this._renameEvent(a.message.event),\n data: f\n })\n });\n this.listenerManager.announceMembership(d), this._announce(\"membership\", d, s.channel, s.subscription);\n }\n } else if (3 === e.messageType) {\n (s = {}).channel = t, s.subscription = i, s.timetoken = o.timetoken, s.publisher = e.issuingClientId, s.data = {\n messageTimetoken: e.payload.data.messageTimetoken,\n actionTimetoken: e.payload.data.actionTimetoken,\n type: e.payload.data.type,\n uuid: e.issuingClientId,\n value: e.payload.data.value\n }, s.event = e.payload.event, this.listenerManager.announceMessageAction(s), this._announce(\"messageAction\", s, s.channel, s.subscription);\n } else if (4 === e.messageType) {\n (s = {}).channel = t, s.subscription = i, s.timetoken = o.timetoken, s.publisher = e.issuingClientId;\n var y = e.payload;\n if (this.modules.cryptoModule) {\n var g = void 0;\n try {\n g = (m = this.modules.cryptoModule.decrypt(e.payload)) instanceof ArrayBuffer ? JSON.parse(this._decoder.decode(m)) : m;\n } catch (e) {\n g = null, s.error = \"Error while decrypting message content: \".concat(e.message);\n }\n null !== g && (y = g);\n }\n e.userMetadata && (s.userMetadata = e.userMetadata), s.message = y.message, s.file = {\n id: y.file.id,\n name: y.file.name,\n url: this.getFileUrl({\n id: y.file.id,\n name: y.file.name,\n channel: t\n })\n }, this.listenerManager.announceFile(s), this._announce(\"file\", s, s.channel, s.subscription);\n } else {\n if ((s = {\n channel: null,\n subscription: null\n }).channel = t, s.subscription = i, s.timetoken = o.timetoken, s.publisher = e.issuingClientId, e.userMetadata && (s.userMetadata = e.userMetadata), this.modules.cryptoModule) {\n g = void 0;\n try {\n var m;\n g = (m = this.modules.cryptoModule.decrypt(e.payload)) instanceof ArrayBuffer ? JSON.parse(this._decoder.decode(m)) : m;\n } catch (e) {\n g = null, s.error = \"Error while decrypting message content: \".concat(e.message);\n }\n s.message = null != g ? g : e.payload;\n } else s.message = e.payload;\n s.actualChannel = null != i ? t : null, s.subscribedChannel = null != i ? i : t, this.listenerManager.announceMessage(s), this._announce(\"message\", s, s.channel, s.subscription);\n }\n }, e.prototype.addListener = function (e, t, n) {\n var r = this;\n t && n ? (null == t || t.forEach(function (t) {\n r._channelListenerMap[t] ? r._channelListenerMap[t].includes(e) || r._channelListenerMap[t].push(e) : r._channelListenerMap[t] = [e];\n }), null == n || n.forEach(function (t) {\n r._groupListenerMap[t] ? r._groupListenerMap[t].includes(e) || r._groupListenerMap[t].push(e) : r._groupListenerMap[t] = [e];\n })) : this.listenerManager.addListener(e);\n }, e.prototype.removeListener = function (e, t, n) {\n var r = this;\n t && n ? (null == t || t.forEach(function (t) {\n var n;\n r._channelListenerMap[t] = null === (n = r._channelListenerMap[t]) || void 0 === n ? void 0 : n.filter(function (t) {\n return t !== e;\n });\n }), null == n || n.forEach(function (t) {\n var n;\n r._groupListenerMap[t] = null === (n = r._groupListenerMap[t]) || void 0 === n ? void 0 : n.filter(function (t) {\n return t !== e;\n });\n })) : this.listenerManager.removeListener(e);\n }, e.prototype.removeAllListeners = function () {\n this.listenerManager.removeAllListeners();\n }, e.prototype._renameEvent = function (e) {\n return \"set\" === e ? \"updated\" : \"removed\";\n }, e.prototype._renameChannelField = function (e) {\n var t = e.channel,\n n = r(e, [\"channel\"]);\n return n.spaceId = t, n;\n }, e.prototype._announce = function (e, t, n, r) {\n var o, i;\n null === (o = this._channelListenerMap[n]) || void 0 === o || o.forEach(function (n) {\n return n[e] && n[e](t);\n }), null === (i = this._groupListenerMap[r]) || void 0 === i || i.forEach(function (n) {\n return n[e] && n[e](t);\n });\n }, e;\n }(),\n hn = function () {\n function e() {}\n return e.prototype.subscribe = function () {\n var e, t;\n this.pubnub.subscribe(n({\n channels: this.channelNames,\n channelGroups: this.groupNames\n }, (null === (t = null === (e = this.options) || void 0 === e ? void 0 : e.cursor) || void 0 === t ? void 0 : t.timetoken) && {\n timetoken: this.options.cursor.timetoken\n }));\n }, e.prototype.unsubscribe = function () {\n this.pubnub.unsubscribe({\n channels: this.channelNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }),\n channelGroups: this.groupNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n })\n });\n }, Object.defineProperty(e.prototype, \"onMessage\", {\n set: function (e) {\n this.listener.message = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"onPresence\", {\n set: function (e) {\n this.listener.presence = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"onSignal\", {\n set: function (e) {\n this.listener.signal = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"onObjects\", {\n set: function (e) {\n this.listener.objects = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"onMessageAction\", {\n set: function (e) {\n this.listener.messageAction = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"onFile\", {\n set: function (e) {\n this.listener.file = e;\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.addListener = function (e) {\n this.eventEmitter.addListener(e, this.channelNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }), this.groupNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }));\n }, e.prototype.removeListener = function (e) {\n this.eventEmitter.removeListener(e, this.channelNames, this.groupNames);\n }, Object.defineProperty(e.prototype, \"channels\", {\n get: function () {\n return this.channelNames.slice(0);\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"channelGroups\", {\n get: function () {\n return this.groupNames.slice(0);\n },\n enumerable: !1,\n configurable: !0\n }), e;\n }(),\n fn = function (e) {\n function n(t) {\n var n = t.channels,\n r = void 0 === n ? [] : n,\n o = t.channelGroups,\n i = void 0 === o ? [] : o,\n s = t.subscriptionOptions,\n c = t.eventEmitter,\n l = t.pubnub,\n p = e.call(this) || this;\n return p.channelNames = [], p.groupNames = [], p.subscriptionList = [], p.options = s, p.eventEmitter = c, p.pubnub = l, r.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }).forEach(function (e) {\n var t = p.pubnub.channel(e).subscription(p.options);\n p.channelNames = u(u([], a(p.channelNames), !1), a(t.channels), !1), p.subscriptionList.push(t);\n }), i.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }).forEach(function (e) {\n var t = p.pubnub.channelGroup(e).subscription(p.options);\n p.groupNames = u(u([], a(p.groupNames), !1), a(t.channelGroups), !1), p.subscriptionList.push(t);\n }), p.listener = {}, c.addListener(p.listener, p.channelNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }), p.groupNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n })), p;\n }\n return t(n, e), n.prototype.addSubscription = function (e) {\n this.subscriptionList.push(e), this.channelNames = u(u([], a(this.channelNames), !1), a(e.channels), !1), this.groupNames = u(u([], a(this.groupNames), !1), a(e.channelGroups), !1), this.eventEmitter.addListener(this.listener, e.channels, e.channelGroups);\n }, n.prototype.removeSubscription = function (e) {\n var t = e.channels,\n n = e.channelGroups;\n this.channelNames = this.channelNames.filter(function (e) {\n return !t.includes(e);\n }), this.groupNames = this.groupNames.filter(function (e) {\n return !n.includes(e);\n }), this.subscriptionList = this.subscriptionList.filter(function (t) {\n return t !== e;\n }), this.eventEmitter.removeListener(this.listener, t, n);\n }, n.prototype.addSubscriptionSet = function (e) {\n this.subscriptionList = u(u([], a(this.subscriptionList), !1), a(e.subscriptions), !1), this.channelNames = u(u([], a(this.channelNames), !1), a(e.channels), !1), this.groupNames = u(u([], a(this.groupNames), !1), a(e.channelGroups), !1), this.eventEmitter.addListener(this.listener, e.channels, e.channelGroups);\n }, n.prototype.removeSubscriptionSet = function (e) {\n var t = e.channels,\n n = e.channelGroups;\n this.channelNames = this.channelNames.filter(function (e) {\n return !t.includes(e);\n }), this.groupNames = this.groupNames.filter(function (e) {\n return !n.includes(e);\n }), this.subscriptionList = this.subscriptionList.filter(function (t) {\n return !e.subscriptions.includes(t);\n }), this.eventEmitter.removeListener(this.listener, t, n);\n }, Object.defineProperty(n.prototype, \"subscriptions\", {\n get: function () {\n return this.subscriptionList.slice(0);\n },\n enumerable: !1,\n configurable: !0\n }), n;\n }(hn),\n dn = function (e) {\n function r(t) {\n var n = t.channels,\n r = t.channelGroups,\n o = t.subscriptionOptions,\n i = t.eventEmitter,\n s = t.pubnub,\n a = e.call(this) || this;\n return a.channelNames = [], a.groupNames = [], a.channelNames = n, a.groupNames = r, a.options = o, a.pubnub = s, a.eventEmitter = i, a.listener = {}, i.addListener(a.listener, a.channelNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n }), a.groupNames.filter(function (e) {\n return !e.endsWith(\"-pnpres\");\n })), a;\n }\n return t(r, e), r.prototype.addSubscription = function (e) {\n return new fn({\n channels: u(u([], a(this.channelNames), !1), a(e.channels), !1),\n channelGroups: u(u([], a(this.groupNames), !1), a(e.channelGroups), !1),\n subscriptionOptions: n(n({}, this.options), null == e ? void 0 : e.options),\n eventEmitter: this.eventEmitter,\n pubnub: this.pubnub\n });\n }, r;\n }(hn),\n yn = function () {\n function e(e, t, n) {\n this.name = e, this.eventEmitter = t, this.pubnub = n;\n }\n return e.prototype.subscription = function (e) {\n return new dn({\n channels: (null == e ? void 0 : e.receivePresenceEvents) ? [this.name, \"\".concat(this.name, \"-pnpres\")] : [this.name],\n channelGroups: [],\n subscriptionOptions: e,\n eventEmitter: this.eventEmitter,\n pubnub: this.pubnub\n });\n }, e;\n }(),\n gn = function () {\n function e(e, t, n) {\n this.name = e, this.eventEmitter = t, this.pubnub = n;\n }\n return e.prototype.subscription = function (e) {\n return new dn({\n channels: [],\n channelGroups: (null == e ? void 0 : e.receivePresenceEvents) ? [this.name, \"\".concat(this.name, \"-pnpres\")] : [this.name],\n subscriptionOptions: e,\n eventEmitter: this.eventEmitter,\n pubnub: this.pubnub\n });\n }, e;\n }(),\n mn = function () {\n function e(e, t, n) {\n this.id = e, this.eventEmitter = t, this.pubnub = n;\n }\n return e.prototype.subscription = function (e) {\n return new dn({\n channels: [this.id],\n channelGroups: [],\n subscriptionOptions: e,\n eventEmitter: this.eventEmitter,\n pubnub: this.pubnub\n });\n }, e;\n }(),\n bn = function () {\n function e(e, t, n) {\n this.id = e, this.eventEmitter = t, this.pubnub = n;\n }\n return e.prototype.subscription = function (e) {\n return new dn({\n channels: [this.id],\n channelGroups: [],\n subscriptionOptions: e,\n eventEmitter: this.eventEmitter,\n pubnub: this.pubnub\n });\n }, e;\n }(),\n vn = function () {\n function e(e) {\n var t = this,\n r = e.networking,\n o = e.cbor,\n i = new g({\n setup: e\n });\n this._config = i;\n var c = new T({\n config: i\n }),\n l = e.cryptography;\n r.init(i);\n var p = new G(i, o);\n this._tokenManager = p;\n var h = new R({\n maximumSamplesCount: 6e4\n });\n this._telemetryManager = h;\n var f = this._config.cryptoModule,\n d = {\n config: i,\n networking: r,\n crypto: c,\n cryptography: l,\n tokenManager: p,\n telemetryManager: h,\n PubNubFile: e.PubNubFile,\n cryptoModule: f\n };\n this.File = e.PubNubFile, this.encryptFile = function (e, t) {\n return 1 == arguments.length && \"string\" != typeof e && d.cryptoModule ? (t = e, d.cryptoModule.encryptFile(t, this.File)) : l.encryptFile(e, t, this.File);\n }, this.decryptFile = function (e, t) {\n return 1 == arguments.length && \"string\" != typeof e && d.cryptoModule ? (t = e, d.cryptoModule.decryptFile(t, this.File)) : l.decryptFile(e, t, this.File);\n };\n var y = Q.bind(this, d, Je),\n m = Q.bind(this, d, se),\n v = Q.bind(this, d, ue),\n _ = Q.bind(this, d, le),\n S = Q.bind(this, d, $e),\n w = new L();\n if (this._listenerManager = w, this.iAmHere = Q.bind(this, d, ue), this.iAmAway = Q.bind(this, d, se), this.setPresenceState = Q.bind(this, d, le), this.handshake = Q.bind(this, d, Qe), this.receiveMessages = Q.bind(this, d, Xe), this._eventEmitter = new pn({\n modules: d,\n listenerManager: this._listenerManager,\n getFileUrl: function (e) {\n return ve(d, e);\n }\n }), !0 === i.enableEventEngine) {\n if (i.maintainPresenceState && (this.presenceState = {}, this.setState = function (e) {\n var n, r;\n return null === (n = e.channels) || void 0 === n || n.forEach(function (n) {\n return t.presenceState[n] = e.state;\n }), null === (r = e.channelGroups) || void 0 === r || r.forEach(function (n) {\n return t.presenceState[n] = e.state;\n }), t.setPresenceState({\n channels: e.channels,\n channelGroups: e.channelGroups,\n state: t.presenceState\n });\n }), i.getHeartbeatInterval()) {\n var O = new cn({\n heartbeat: this.iAmHere,\n leave: this.iAmAway,\n heartbeatDelay: function () {\n return new Promise(function (e) {\n return setTimeout(e, 1e3 * d.config.getHeartbeatInterval());\n });\n },\n retryDelay: function (e) {\n return new Promise(function (t) {\n return setTimeout(t, e);\n });\n },\n config: d.config,\n presenceState: this.presenceState,\n emitStatus: function (e) {\n w.announceStatus(e);\n }\n });\n this.presenceEventEngine = O, this.join = this.presenceEventEngine.join.bind(O), this.leave = this.presenceEventEngine.leave.bind(O), this.leaveAll = this.presenceEventEngine.leaveAll.bind(O);\n }\n var P = new Gt({\n handshake: this.handshake,\n receiveMessages: this.receiveMessages,\n delay: function (e) {\n return new Promise(function (t) {\n return setTimeout(t, e);\n });\n },\n join: this.join,\n leave: this.leave,\n leaveAll: this.leaveAll,\n presenceState: this.presenceState,\n config: d.config,\n emitMessages: function (e) {\n var n, r;\n try {\n for (var o = s(e), i = o.next(); !i.done; i = o.next()) {\n var a = i.value;\n t._eventEmitter.emitEvent(a);\n }\n } catch (e) {\n n = {\n error: e\n };\n } finally {\n try {\n i && !i.done && (r = o.return) && r.call(o);\n } finally {\n if (n) throw n.error;\n }\n }\n },\n emitStatus: function (e) {\n w.announceStatus(e);\n }\n });\n this.subscribe = P.subscribe.bind(P), this.unsubscribe = P.unsubscribe.bind(P), this.unsubscribeAll = P.unsubscribeAll.bind(P), this.reconnect = P.reconnect.bind(P), this.disconnect = P.disconnect.bind(P), this.destroy = P.dispose.bind(P), this.getSubscribedChannels = P.getSubscribedChannels.bind(P), this.getSubscribedChannelGroups = P.getSubscribedChannelGroups.bind(P), this.eventEngine = P;\n } else {\n var E = new M({\n timeEndpoint: y,\n leaveEndpoint: m,\n heartbeatEndpoint: v,\n setStateEndpoint: _,\n subscribeEndpoint: S,\n crypto: d.crypto,\n config: d.config,\n listenerManager: w,\n getFileUrl: function (e) {\n return ve(d, e);\n },\n cryptoModule: d.cryptoModule,\n eventEmitter: this._eventEmitter\n });\n this.subscribe = E.adaptSubscribeChange.bind(E), this.unsubscribe = E.adaptUnsubscribeChange.bind(E), this.disconnect = E.disconnect.bind(E), this.reconnect = E.reconnect.bind(E), this.unsubscribeAll = E.unsubscribeAll.bind(E), this.getSubscribedChannels = E.getSubscribedChannels.bind(E), this.getSubscribedChannelGroups = E.getSubscribedChannelGroups.bind(E), this.setState = E.adaptStateChange.bind(E), this.presence = E.adaptPresenceChange.bind(E), this.destroy = function (e) {\n E.unsubscribeAll(e), E.disconnect();\n };\n }\n this.addListener = this._eventEmitter.addListener.bind(this._eventEmitter), this.removeListener = this._eventEmitter.removeListener.bind(this._eventEmitter), this.removeAllListeners = this._eventEmitter.removeAllListeners.bind(this._eventEmitter), this.parseToken = p.parseToken.bind(p), this.setToken = p.setToken.bind(p), this.getToken = p.getToken.bind(p), this.channelGroups = {\n listGroups: Q.bind(this, d, ee),\n listChannels: Q.bind(this, d, te),\n addChannels: Q.bind(this, d, X),\n removeChannels: Q.bind(this, d, Y),\n deleteGroup: Q.bind(this, d, Z)\n }, this.push = {\n addChannels: Q.bind(this, d, ne),\n removeChannels: Q.bind(this, d, re),\n deleteDevice: Q.bind(this, d, ie),\n listChannels: Q.bind(this, d, oe)\n }, this.hereNow = Q.bind(this, d, pe), this.whereNow = Q.bind(this, d, ae), this.getState = Q.bind(this, d, ce), this.grant = Q.bind(this, d, Ue), this.grantToken = Q.bind(this, d, Le), this.audit = Q.bind(this, d, xe), this.revokeToken = Q.bind(this, d, Ge), this.publish = Q.bind(this, d, Be), this.fire = function (e, n) {\n return e.replicate = !1, e.storeInHistory = !1, t.publish(e, n);\n }, this.signal = Q.bind(this, d, He), this.history = Q.bind(this, d, qe), this.deleteMessages = Q.bind(this, d, ze), this.messageCounts = Q.bind(this, d, Ve), this.fetchMessages = Q.bind(this, d, We), this.addMessageAction = Q.bind(this, d, he), this.removeMessageAction = Q.bind(this, d, fe), this.getMessageActions = Q.bind(this, d, de), this.listFiles = Q.bind(this, d, ye);\n var A = Q.bind(this, d, ge);\n this.publishFile = Q.bind(this, d, me), this.sendFile = be({\n generateUploadUrl: A,\n publishFile: this.publishFile,\n modules: d\n }), this.getFileUrl = function (e) {\n return ve(d, e);\n }, this.downloadFile = Q.bind(this, d, _e), this.deleteFile = Q.bind(this, d, Se), this.channel = function (e) {\n return new yn(e, t._eventEmitter, t);\n }, this.channelGroup = function (e) {\n return new gn(e, t._eventEmitter, t);\n }, this.channelMetadata = function (e) {\n return new mn(e, t._eventEmitter, t);\n }, this.userMetadata = function (e) {\n return new bn(e, t._eventEmitter, t);\n }, this.subscriptionSet = function (e) {\n return new fn({\n channels: e.channels,\n channelGroups: e.channelGroups,\n subscriptionOptions: e.subscriptionOptions,\n eventEmitter: t._eventEmitter,\n pubnub: t\n });\n }, this.objects = {\n getAllUUIDMetadata: Q.bind(this, d, we),\n getUUIDMetadata: Q.bind(this, d, Oe),\n setUUIDMetadata: Q.bind(this, d, Pe),\n removeUUIDMetadata: Q.bind(this, d, Ee),\n getAllChannelMetadata: Q.bind(this, d, Ae),\n getChannelMetadata: Q.bind(this, d, Te),\n setChannelMetadata: Q.bind(this, d, Ne),\n removeChannelMetadata: Q.bind(this, d, Ce),\n getChannelMembers: Q.bind(this, d, ke),\n setChannelMembers: function (e) {\n for (var r = [], o = 1; o < arguments.length; o++) r[o - 1] = arguments[o];\n return Q.call.apply(Q, u([t, d, Me, n({\n type: \"set\"\n }, e)], a(r), !1));\n },\n removeChannelMembers: function (e) {\n for (var r = [], o = 1; o < arguments.length; o++) r[o - 1] = arguments[o];\n return Q.call.apply(Q, u([t, d, Me, n({\n type: \"delete\"\n }, e)], a(r), !1));\n },\n getMemberships: Q.bind(this, d, je),\n setMemberships: function (e) {\n for (var r = [], o = 1; o < arguments.length; o++) r[o - 1] = arguments[o];\n return Q.call.apply(Q, u([t, d, Re, n({\n type: \"set\"\n }, e)], a(r), !1));\n },\n removeMemberships: function (e) {\n for (var r = [], o = 1; o < arguments.length; o++) r[o - 1] = arguments[o];\n return Q.call.apply(Q, u([t, d, Re, n({\n type: \"delete\"\n }, e)], a(r), !1));\n }\n }, this.createUser = function (e) {\n return t.objects.setUUIDMetadata({\n uuid: e.userId,\n data: e.data,\n include: e.include\n });\n }, this.updateUser = this.createUser, this.removeUser = function (e) {\n return t.objects.removeUUIDMetadata({\n uuid: null == e ? void 0 : e.userId\n });\n }, this.fetchUser = function (e) {\n return t.objects.getUUIDMetadata({\n uuid: null == e ? void 0 : e.userId,\n include: null == e ? void 0 : e.include\n });\n }, this.fetchUsers = this.objects.getAllUUIDMetadata, this.createSpace = function (e) {\n return t.objects.setChannelMetadata({\n channel: e.spaceId,\n data: e.data,\n include: e.include\n });\n }, this.updateSpace = this.createSpace, this.removeSpace = function (e) {\n return t.objects.removeChannelMetadata({\n channel: e.spaceId\n });\n }, this.fetchSpace = function (e) {\n return t.objects.getChannelMetadata({\n channel: e.spaceId,\n include: e.include\n });\n }, this.fetchSpaces = this.objects.getAllChannelMetadata, this.addMemberships = function (e) {\n var n, r;\n return \"string\" == typeof e.spaceId ? t.objects.setChannelMembers({\n channel: e.spaceId,\n uuids: null === (n = e.users) || void 0 === n ? void 0 : n.map(function (e) {\n return \"string\" == typeof e ? e : {\n id: e.userId,\n custom: e.custom,\n status: e.status\n };\n }),\n limit: 0\n }) : t.objects.setMemberships({\n uuid: e.userId,\n channels: null === (r = e.spaces) || void 0 === r ? void 0 : r.map(function (e) {\n return \"string\" == typeof e ? e : {\n id: e.spaceId,\n custom: e.custom,\n status: e.status\n };\n }),\n limit: 0\n });\n }, this.updateMemberships = this.addMemberships, this.removeMemberships = function (e) {\n return \"string\" == typeof e.spaceId ? t.objects.removeChannelMembers({\n channel: e.spaceId,\n uuids: e.userIds,\n limit: 0\n }) : t.objects.removeMemberships({\n uuid: e.userId,\n channels: e.spaceIds,\n limit: 0\n });\n }, this.fetchMemberships = function (e) {\n return \"string\" == typeof e.spaceId ? t.objects.getChannelMembers({\n channel: e.spaceId,\n filter: e.filter,\n limit: e.limit,\n page: e.page,\n include: {\n customFields: e.include.customFields,\n UUIDFields: e.include.userFields,\n customUUIDFields: e.include.customUserFields,\n statusField: e.include.statusField,\n UUIDStatusField: e.include.userStatusField,\n UUIDTypeField: e.include.userTypeField,\n totalCount: e.include.totalCount\n },\n sort: null != e.sort ? Object.fromEntries(Object.entries(e.sort).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return [n.replace(\"user\", \"uuid\"), r];\n })) : null\n }).then(function (e) {\n var t;\n return e.data = null === (t = e.data) || void 0 === t ? void 0 : t.map(function (e) {\n return {\n user: e.uuid,\n custom: e.custom,\n updated: e.updated,\n eTag: e.eTag\n };\n }), e;\n }) : t.objects.getMemberships({\n uuid: e.userId,\n filter: e.filter,\n limit: e.limit,\n page: e.page,\n include: {\n customFields: e.include.customFields,\n channelFields: e.include.spaceFields,\n customChannelFields: e.include.customSpaceFields,\n statusField: e.include.statusField,\n channelStatusField: e.include.spaceStatusField,\n channelTypeField: e.include.spaceTypeField,\n totalCount: e.include.totalCount\n },\n sort: null != e.sort ? Object.fromEntries(Object.entries(e.sort).map(function (e) {\n var t = a(e, 2),\n n = t[0],\n r = t[1];\n return [n.replace(\"space\", \"channel\"), r];\n })) : null\n }).then(function (e) {\n var t;\n return e.data = null === (t = e.data) || void 0 === t ? void 0 : t.map(function (e) {\n return {\n space: e.channel,\n custom: e.custom,\n updated: e.updated,\n eTag: e.eTag\n };\n }), e;\n });\n }, this.time = y, this.stop = this.destroy, this.encrypt = function (e, t) {\n if (void 0 === t && d.cryptoModule) {\n var n = d.cryptoModule.encrypt(e);\n return \"string\" == typeof n ? n : b(n);\n }\n return c.encrypt(e, t);\n }, this.decrypt = function (e, t) {\n if (void 0 === t && f) {\n var n = d.cryptoModule.decrypt(e);\n return n instanceof ArrayBuffer ? JSON.parse(new TextDecoder().decode(n)) : n;\n }\n return c.decrypt(e, t);\n }, this.getAuthKey = d.config.getAuthKey.bind(d.config), this.setAuthKey = d.config.setAuthKey.bind(d.config), this.getUUID = d.config.getUUID.bind(d.config), this.setUUID = d.config.setUUID.bind(d.config), this.getUserId = d.config.getUserId.bind(d.config), this.setUserId = d.config.setUserId.bind(d.config), this.getFilterExpression = d.config.getFilterExpression.bind(d.config), this.setFilterExpression = d.config.setFilterExpression.bind(d.config), this.setCipherKey = function (t) {\n return d.config.setCipherKey(t, e, d);\n }, this.setHeartbeatInterval = d.config.setHeartbeatInterval.bind(d.config), r.hasModule(\"proxy\") && (this.setProxy = function (e) {\n d.config.setProxy(e), t.reconnect();\n });\n }\n return e.prototype.getVersion = function () {\n return this._config.getVersion();\n }, e.prototype._addPnsdkSuffix = function (e, t) {\n this._config._addPnsdkSuffix(e, t);\n }, e.prototype.networkDownDetected = function () {\n this._listenerManager.announceNetworkDown(), this._config.restore ? this.disconnect() : this.destroy(!0);\n }, e.prototype.networkUpDetected = function () {\n this._listenerManager.announceNetworkUp(), this.reconnect();\n }, e.notificationPayload = function (e, t) {\n return new F(e, t);\n }, e.generateUUID = function () {\n return y();\n }, e.OPERATIONS = j, e.CATEGORIES = k, e.LinearRetryPolicy = ln.LinearRetryPolicy, e.ExponentialRetryPolicy = ln.ExponentialRetryPolicy, e;\n }(),\n _n = function () {\n function e(e) {\n var t = this;\n this._modules = {}, Object.keys(e).forEach(function (n) {\n t._modules[n] = e[n].bind(t);\n });\n }\n return e.prototype.init = function (e) {\n this._config = e, Array.isArray(this._config.origin) ? this._currentSubDomain = Math.floor(Math.random() * this._config.origin.length) : this._currentSubDomain = 0, this._coreParams = {}, this.shiftStandardOrigin();\n }, e.prototype.nextOrigin = function () {\n var e = this._config.secure ? \"https://\" : \"http://\";\n if (\"string\" == typeof this._config.origin) return \"\".concat(e).concat(this._config.origin);\n this._currentSubDomain += 1, this._currentSubDomain >= this._config.origin.length && (this._currentSubDomain = 0);\n var t = this._config.origin[this._currentSubDomain];\n return \"\".concat(e).concat(t);\n }, e.prototype.hasModule = function (e) {\n return e in this._modules;\n }, e.prototype.shiftStandardOrigin = function () {\n return this._standardOrigin = this.nextOrigin(), this._standardOrigin;\n }, e.prototype.getStandardOrigin = function () {\n return this._standardOrigin;\n }, e.prototype.POSTFILE = function (e, t, n) {\n return this._modules.postfile(e, t, n);\n }, e.prototype.GETFILE = function (e, t, n) {\n return this._modules.getfile(e, t, n);\n }, e.prototype.POST = function (e, t, n, r) {\n return this._modules.post(e, t, n, r);\n }, e.prototype.PATCH = function (e, t, n, r) {\n return this._modules.patch(e, t, n, r);\n }, e.prototype.GET = function (e, t, n) {\n return this._modules.get(e, t, n);\n }, e.prototype.DELETE = function (e, t, n) {\n return this._modules.del(e, t, n);\n }, e.prototype._detectErrorCategory = function (e) {\n if (\"ENOTFOUND\" === e.code) return k.PNNetworkIssuesCategory;\n if (\"ECONNREFUSED\" === e.code) return k.PNNetworkIssuesCategory;\n if (\"ECONNRESET\" === e.code) return k.PNNetworkIssuesCategory;\n if (\"EAI_AGAIN\" === e.code) return k.PNNetworkIssuesCategory;\n if (0 === e.status || e.hasOwnProperty(\"status\") && void 0 === e.status) return k.PNNetworkIssuesCategory;\n if (e.timeout) return k.PNTimeoutCategory;\n if (\"ETIMEDOUT\" === e.code) return k.PNNetworkIssuesCategory;\n if (e.response) {\n if (e.response.badRequest) return k.PNBadRequestCategory;\n if (e.response.forbidden) return k.PNAccessDeniedCategory;\n }\n return k.PNUnknownCategory;\n }, e;\n }();\n function Sn(e) {\n var t = function (e) {\n return e && \"object\" == typeof e && e.constructor === Object;\n };\n if (!t(e)) return e;\n var n = {};\n return Object.keys(e).forEach(function (r) {\n var o = function (e) {\n return \"string\" == typeof e || e instanceof String;\n }(r),\n i = r,\n s = e[r];\n Array.isArray(r) || o && r.indexOf(\",\") >= 0 ? i = (o ? r.split(\",\") : r).reduce(function (e, t) {\n return e += String.fromCharCode(t);\n }, \"\") : (function (e) {\n return \"number\" == typeof e && isFinite(e);\n }(r) || o && !isNaN(r)) && (i = String.fromCharCode(o ? parseInt(r, 10) : 10));\n n[i] = t(s) ? Sn(s) : s;\n }), n;\n }\n var wn = function () {\n function e(e, t) {\n this._base64ToBinary = t, this._decode = e;\n }\n return e.prototype.decodeToken = function (e) {\n var t = \"\";\n e.length % 4 == 3 ? t = \"=\" : e.length % 4 == 2 && (t = \"==\");\n var n = e.replace(/-/gi, \"+\").replace(/_/gi, \"/\") + t,\n r = this._decode(this._base64ToBinary(n));\n if (\"object\" == typeof r) return r;\n }, e;\n }(),\n On = {\n exports: {}\n },\n Pn = {\n exports: {}\n };\n !function (e) {\n function t(e) {\n if (e) return function (e) {\n for (var n in t.prototype) e[n] = t.prototype[n];\n return e;\n }(e);\n }\n e.exports = t, t.prototype.on = t.prototype.addEventListener = function (e, t) {\n return this._callbacks = this._callbacks || {}, (this._callbacks[\"$\" + e] = this._callbacks[\"$\" + e] || []).push(t), this;\n }, t.prototype.once = function (e, t) {\n function n() {\n this.off(e, n), t.apply(this, arguments);\n }\n return n.fn = t, this.on(e, n), this;\n }, t.prototype.off = t.prototype.removeListener = t.prototype.removeAllListeners = t.prototype.removeEventListener = function (e, t) {\n if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this._callbacks = {}, this;\n var n,\n r = this._callbacks[\"$\" + e];\n if (!r) return this;\n if (1 == arguments.length) return delete this._callbacks[\"$\" + e], this;\n for (var o = 0; o < r.length; o++) if ((n = r[o]) === t || n.fn === t) {\n r.splice(o, 1);\n break;\n }\n return 0 === r.length && delete this._callbacks[\"$\" + e], this;\n }, t.prototype.emit = function (e) {\n this._callbacks = this._callbacks || {};\n for (var t = new Array(arguments.length - 1), n = this._callbacks[\"$\" + e], r = 1; r < arguments.length; r++) t[r - 1] = arguments[r];\n if (n) {\n r = 0;\n for (var o = (n = n.slice(0)).length; r < o; ++r) n[r].apply(this, t);\n }\n return this;\n }, t.prototype.listeners = function (e) {\n return this._callbacks = this._callbacks || {}, this._callbacks[\"$\" + e] || [];\n }, t.prototype.hasListeners = function (e) {\n return !!this.listeners(e).length;\n };\n }(Pn);\n var En = Mn;\n Mn.default = Mn, Mn.stable = Un, Mn.stableStringify = Un;\n var An = \"[...]\",\n Tn = \"[Circular]\",\n Nn = [],\n Cn = [];\n function kn() {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n };\n }\n function Mn(e, t, n, r) {\n var o;\n void 0 === r && (r = kn()), Rn(e, \"\", 0, [], void 0, 0, r);\n try {\n o = 0 === Cn.length ? JSON.stringify(e, t, n) : JSON.stringify(e, Dn(t), n);\n } catch (e) {\n return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\");\n } finally {\n for (; 0 !== Nn.length;) {\n var i = Nn.pop();\n 4 === i.length ? Object.defineProperty(i[0], i[1], i[3]) : i[0][i[1]] = i[2];\n }\n }\n return o;\n }\n function jn(e, t, n, r) {\n var o = Object.getOwnPropertyDescriptor(r, n);\n void 0 !== o.get ? o.configurable ? (Object.defineProperty(r, n, {\n value: e\n }), Nn.push([r, n, t, o])) : Cn.push([t, n, e]) : (r[n] = e, Nn.push([r, n, t]));\n }\n function Rn(e, t, n, r, o, i, s) {\n var a;\n if (i += 1, \"object\" == typeof e && null !== e) {\n for (a = 0; a < r.length; a++) if (r[a] === e) return void jn(Tn, e, t, o);\n if (void 0 !== s.depthLimit && i > s.depthLimit) return void jn(An, e, t, o);\n if (void 0 !== s.edgesLimit && n + 1 > s.edgesLimit) return void jn(An, e, t, o);\n if (r.push(e), Array.isArray(e)) for (a = 0; a < e.length; a++) Rn(e[a], a, a, r, e, i, s);else {\n var u = Object.keys(e);\n for (a = 0; a < u.length; a++) {\n var c = u[a];\n Rn(e[c], c, a, r, e, i, s);\n }\n }\n r.pop();\n }\n }\n function xn(e, t) {\n return e < t ? -1 : e > t ? 1 : 0;\n }\n function Un(e, t, n, r) {\n void 0 === r && (r = kn());\n var o,\n i = In(e, \"\", 0, [], void 0, 0, r) || e;\n try {\n o = 0 === Cn.length ? JSON.stringify(i, t, n) : JSON.stringify(i, Dn(t), n);\n } catch (e) {\n return JSON.stringify(\"[unable to serialize, circular reference is too complex to analyze]\");\n } finally {\n for (; 0 !== Nn.length;) {\n var s = Nn.pop();\n 4 === s.length ? Object.defineProperty(s[0], s[1], s[3]) : s[0][s[1]] = s[2];\n }\n }\n return o;\n }\n function In(e, t, n, r, o, i, s) {\n var a;\n if (i += 1, \"object\" == typeof e && null !== e) {\n for (a = 0; a < r.length; a++) if (r[a] === e) return void jn(Tn, e, t, o);\n try {\n if (\"function\" == typeof e.toJSON) return;\n } catch (e) {\n return;\n }\n if (void 0 !== s.depthLimit && i > s.depthLimit) return void jn(An, e, t, o);\n if (void 0 !== s.edgesLimit && n + 1 > s.edgesLimit) return void jn(An, e, t, o);\n if (r.push(e), Array.isArray(e)) for (a = 0; a < e.length; a++) In(e[a], a, a, r, e, i, s);else {\n var u = {},\n c = Object.keys(e).sort(xn);\n for (a = 0; a < c.length; a++) {\n var l = c[a];\n In(e[l], l, a, r, e, i, s), u[l] = e[l];\n }\n if (void 0 === o) return u;\n Nn.push([o, t, e]), o[t] = u;\n }\n r.pop();\n }\n }\n function Dn(e) {\n return e = void 0 !== e ? e : function (e, t) {\n return t;\n }, function (t, n) {\n if (Cn.length > 0) for (var r = 0; r < Cn.length; r++) {\n var o = Cn[r];\n if (o[1] === t && o[0] === n) {\n n = o[2], Cn.splice(r, 1);\n break;\n }\n }\n return e.call(this, t, n);\n };\n }\n var Fn,\n Ln = \"undefined\" != typeof Symbol && Symbol,\n Gn = function () {\n if (\"function\" != typeof Symbol || \"function\" != typeof Object.getOwnPropertySymbols) return !1;\n if (\"symbol\" == typeof Symbol.iterator) return !0;\n var e = {},\n t = Symbol(\"test\"),\n n = Object(t);\n if (\"string\" == typeof t) return !1;\n if (\"[object Symbol]\" !== Object.prototype.toString.call(t)) return !1;\n if (\"[object Symbol]\" !== Object.prototype.toString.call(n)) return !1;\n for (t in e[t] = 42, e) return !1;\n if (\"function\" == typeof Object.keys && 0 !== Object.keys(e).length) return !1;\n if (\"function\" == typeof Object.getOwnPropertyNames && 0 !== Object.getOwnPropertyNames(e).length) return !1;\n var r = Object.getOwnPropertySymbols(e);\n if (1 !== r.length || r[0] !== t) return !1;\n if (!Object.prototype.propertyIsEnumerable.call(e, t)) return !1;\n if (\"function\" == typeof Object.getOwnPropertyDescriptor) {\n var o = Object.getOwnPropertyDescriptor(e, t);\n if (42 !== o.value || !0 !== o.enumerable) return !1;\n }\n return !0;\n },\n Kn = \"Function.prototype.bind called on incompatible \",\n Bn = Array.prototype.slice,\n Hn = Object.prototype.toString,\n qn = \"[object Function]\",\n zn = function (e) {\n var t = this;\n if (\"function\" != typeof t || Hn.call(t) !== qn) throw new TypeError(Kn + t);\n for (var n, r = Bn.call(arguments, 1), o = function () {\n if (this instanceof n) {\n var o = t.apply(this, r.concat(Bn.call(arguments)));\n return Object(o) === o ? o : this;\n }\n return t.apply(e, r.concat(Bn.call(arguments)));\n }, i = Math.max(0, t.length - r.length), s = [], a = 0; a < i; a++) s.push(\"$\" + a);\n if (n = Function(\"binder\", \"return function (\" + s.join(\",\") + \"){ return binder.apply(this,arguments); }\")(o), t.prototype) {\n var u = function () {};\n u.prototype = t.prototype, n.prototype = new u(), u.prototype = null;\n }\n return n;\n },\n Vn = Function.prototype.bind || zn,\n Wn = Vn.call(Function.call, Object.prototype.hasOwnProperty),\n Jn = SyntaxError,\n $n = Function,\n Qn = TypeError,\n Xn = function (e) {\n try {\n return $n('\"use strict\"; return (' + e + \").constructor;\")();\n } catch (e) {}\n },\n Yn = Object.getOwnPropertyDescriptor;\n if (Yn) try {\n Yn({}, \"\");\n } catch (e) {\n Yn = null;\n }\n var Zn = function () {\n throw new Qn();\n },\n er = Yn ? function () {\n try {\n return Zn;\n } catch (e) {\n try {\n return Yn(arguments, \"callee\").get;\n } catch (e) {\n return Zn;\n }\n }\n }() : Zn,\n tr = \"function\" == typeof Ln && \"function\" == typeof Symbol && \"symbol\" == typeof Ln(\"foo\") && \"symbol\" == typeof Symbol(\"bar\") && Gn(),\n nr = Object.getPrototypeOf || function (e) {\n return e.__proto__;\n },\n rr = {},\n or = \"undefined\" == typeof Uint8Array ? Fn : nr(Uint8Array),\n ir = {\n \"%AggregateError%\": \"undefined\" == typeof AggregateError ? Fn : AggregateError,\n \"%Array%\": Array,\n \"%ArrayBuffer%\": \"undefined\" == typeof ArrayBuffer ? Fn : ArrayBuffer,\n \"%ArrayIteratorPrototype%\": tr ? nr([][Symbol.iterator]()) : Fn,\n \"%AsyncFromSyncIteratorPrototype%\": Fn,\n \"%AsyncFunction%\": rr,\n \"%AsyncGenerator%\": rr,\n \"%AsyncGeneratorFunction%\": rr,\n \"%AsyncIteratorPrototype%\": rr,\n \"%Atomics%\": \"undefined\" == typeof Atomics ? Fn : Atomics,\n \"%BigInt%\": \"undefined\" == typeof BigInt ? Fn : BigInt,\n \"%Boolean%\": Boolean,\n \"%DataView%\": \"undefined\" == typeof DataView ? Fn : DataView,\n \"%Date%\": Date,\n \"%decodeURI%\": decodeURI,\n \"%decodeURIComponent%\": decodeURIComponent,\n \"%encodeURI%\": encodeURI,\n \"%encodeURIComponent%\": encodeURIComponent,\n \"%Error%\": Error,\n \"%eval%\": eval,\n \"%EvalError%\": EvalError,\n \"%Float32Array%\": \"undefined\" == typeof Float32Array ? Fn : Float32Array,\n \"%Float64Array%\": \"undefined\" == typeof Float64Array ? Fn : Float64Array,\n \"%FinalizationRegistry%\": \"undefined\" == typeof FinalizationRegistry ? Fn : FinalizationRegistry,\n \"%Function%\": $n,\n \"%GeneratorFunction%\": rr,\n \"%Int8Array%\": \"undefined\" == typeof Int8Array ? Fn : Int8Array,\n \"%Int16Array%\": \"undefined\" == typeof Int16Array ? Fn : Int16Array,\n \"%Int32Array%\": \"undefined\" == typeof Int32Array ? Fn : Int32Array,\n \"%isFinite%\": isFinite,\n \"%isNaN%\": isNaN,\n \"%IteratorPrototype%\": tr ? nr(nr([][Symbol.iterator]())) : Fn,\n \"%JSON%\": \"object\" == typeof JSON ? JSON : Fn,\n \"%Map%\": \"undefined\" == typeof Map ? Fn : Map,\n \"%MapIteratorPrototype%\": \"undefined\" != typeof Map && tr ? nr(new Map()[Symbol.iterator]()) : Fn,\n \"%Math%\": Math,\n \"%Number%\": Number,\n \"%Object%\": Object,\n \"%parseFloat%\": parseFloat,\n \"%parseInt%\": parseInt,\n \"%Promise%\": \"undefined\" == typeof Promise ? Fn : Promise,\n \"%Proxy%\": \"undefined\" == typeof Proxy ? Fn : Proxy,\n \"%RangeError%\": RangeError,\n \"%ReferenceError%\": ReferenceError,\n \"%Reflect%\": \"undefined\" == typeof Reflect ? Fn : Reflect,\n \"%RegExp%\": RegExp,\n \"%Set%\": \"undefined\" == typeof Set ? Fn : Set,\n \"%SetIteratorPrototype%\": \"undefined\" != typeof Set && tr ? nr(new Set()[Symbol.iterator]()) : Fn,\n \"%SharedArrayBuffer%\": \"undefined\" == typeof SharedArrayBuffer ? Fn : SharedArrayBuffer,\n \"%String%\": String,\n \"%StringIteratorPrototype%\": tr ? nr(\"\"[Symbol.iterator]()) : Fn,\n \"%Symbol%\": tr ? Symbol : Fn,\n \"%SyntaxError%\": Jn,\n \"%ThrowTypeError%\": er,\n \"%TypedArray%\": or,\n \"%TypeError%\": Qn,\n \"%Uint8Array%\": \"undefined\" == typeof Uint8Array ? Fn : Uint8Array,\n \"%Uint8ClampedArray%\": \"undefined\" == typeof Uint8ClampedArray ? Fn : Uint8ClampedArray,\n \"%Uint16Array%\": \"undefined\" == typeof Uint16Array ? Fn : Uint16Array,\n \"%Uint32Array%\": \"undefined\" == typeof Uint32Array ? Fn : Uint32Array,\n \"%URIError%\": URIError,\n \"%WeakMap%\": \"undefined\" == typeof WeakMap ? Fn : WeakMap,\n \"%WeakRef%\": \"undefined\" == typeof WeakRef ? Fn : WeakRef,\n \"%WeakSet%\": \"undefined\" == typeof WeakSet ? Fn : WeakSet\n },\n sr = function e(t) {\n var n;\n if (\"%AsyncFunction%\" === t) n = Xn(\"async function () {}\");else if (\"%GeneratorFunction%\" === t) n = Xn(\"function* () {}\");else if (\"%AsyncGeneratorFunction%\" === t) n = Xn(\"async function* () {}\");else if (\"%AsyncGenerator%\" === t) {\n var r = e(\"%AsyncGeneratorFunction%\");\n r && (n = r.prototype);\n } else if (\"%AsyncIteratorPrototype%\" === t) {\n var o = e(\"%AsyncGenerator%\");\n o && (n = nr(o.prototype));\n }\n return ir[t] = n, n;\n },\n ar = {\n \"%ArrayBufferPrototype%\": [\"ArrayBuffer\", \"prototype\"],\n \"%ArrayPrototype%\": [\"Array\", \"prototype\"],\n \"%ArrayProto_entries%\": [\"Array\", \"prototype\", \"entries\"],\n \"%ArrayProto_forEach%\": [\"Array\", \"prototype\", \"forEach\"],\n \"%ArrayProto_keys%\": [\"Array\", \"prototype\", \"keys\"],\n \"%ArrayProto_values%\": [\"Array\", \"prototype\", \"values\"],\n \"%AsyncFunctionPrototype%\": [\"AsyncFunction\", \"prototype\"],\n \"%AsyncGenerator%\": [\"AsyncGeneratorFunction\", \"prototype\"],\n \"%AsyncGeneratorPrototype%\": [\"AsyncGeneratorFunction\", \"prototype\", \"prototype\"],\n \"%BooleanPrototype%\": [\"Boolean\", \"prototype\"],\n \"%DataViewPrototype%\": [\"DataView\", \"prototype\"],\n \"%DatePrototype%\": [\"Date\", \"prototype\"],\n \"%ErrorPrototype%\": [\"Error\", \"prototype\"],\n \"%EvalErrorPrototype%\": [\"EvalError\", \"prototype\"],\n \"%Float32ArrayPrototype%\": [\"Float32Array\", \"prototype\"],\n \"%Float64ArrayPrototype%\": [\"Float64Array\", \"prototype\"],\n \"%FunctionPrototype%\": [\"Function\", \"prototype\"],\n \"%Generator%\": [\"GeneratorFunction\", \"prototype\"],\n \"%GeneratorPrototype%\": [\"GeneratorFunction\", \"prototype\", \"prototype\"],\n \"%Int8ArrayPrototype%\": [\"Int8Array\", \"prototype\"],\n \"%Int16ArrayPrototype%\": [\"Int16Array\", \"prototype\"],\n \"%Int32ArrayPrototype%\": [\"Int32Array\", \"prototype\"],\n \"%JSONParse%\": [\"JSON\", \"parse\"],\n \"%JSONStringify%\": [\"JSON\", \"stringify\"],\n \"%MapPrototype%\": [\"Map\", \"prototype\"],\n \"%NumberPrototype%\": [\"Number\", \"prototype\"],\n \"%ObjectPrototype%\": [\"Object\", \"prototype\"],\n \"%ObjProto_toString%\": [\"Object\", \"prototype\", \"toString\"],\n \"%ObjProto_valueOf%\": [\"Object\", \"prototype\", \"valueOf\"],\n \"%PromisePrototype%\": [\"Promise\", \"prototype\"],\n \"%PromiseProto_then%\": [\"Promise\", \"prototype\", \"then\"],\n \"%Promise_all%\": [\"Promise\", \"all\"],\n \"%Promise_reject%\": [\"Promise\", \"reject\"],\n \"%Promise_resolve%\": [\"Promise\", \"resolve\"],\n \"%RangeErrorPrototype%\": [\"RangeError\", \"prototype\"],\n \"%ReferenceErrorPrototype%\": [\"ReferenceError\", \"prototype\"],\n \"%RegExpPrototype%\": [\"RegExp\", \"prototype\"],\n \"%SetPrototype%\": [\"Set\", \"prototype\"],\n \"%SharedArrayBufferPrototype%\": [\"SharedArrayBuffer\", \"prototype\"],\n \"%StringPrototype%\": [\"String\", \"prototype\"],\n \"%SymbolPrototype%\": [\"Symbol\", \"prototype\"],\n \"%SyntaxErrorPrototype%\": [\"SyntaxError\", \"prototype\"],\n \"%TypedArrayPrototype%\": [\"TypedArray\", \"prototype\"],\n \"%TypeErrorPrototype%\": [\"TypeError\", \"prototype\"],\n \"%Uint8ArrayPrototype%\": [\"Uint8Array\", \"prototype\"],\n \"%Uint8ClampedArrayPrototype%\": [\"Uint8ClampedArray\", \"prototype\"],\n \"%Uint16ArrayPrototype%\": [\"Uint16Array\", \"prototype\"],\n \"%Uint32ArrayPrototype%\": [\"Uint32Array\", \"prototype\"],\n \"%URIErrorPrototype%\": [\"URIError\", \"prototype\"],\n \"%WeakMapPrototype%\": [\"WeakMap\", \"prototype\"],\n \"%WeakSetPrototype%\": [\"WeakSet\", \"prototype\"]\n },\n ur = Vn,\n cr = Wn,\n lr = ur.call(Function.call, Array.prototype.concat),\n pr = ur.call(Function.apply, Array.prototype.splice),\n hr = ur.call(Function.call, String.prototype.replace),\n fr = ur.call(Function.call, String.prototype.slice),\n dr = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,\n yr = /\\\\(\\\\)?/g,\n gr = function (e) {\n var t = fr(e, 0, 1),\n n = fr(e, -1);\n if (\"%\" === t && \"%\" !== n) throw new Jn(\"invalid intrinsic syntax, expected closing `%`\");\n if (\"%\" === n && \"%\" !== t) throw new Jn(\"invalid intrinsic syntax, expected opening `%`\");\n var r = [];\n return hr(e, dr, function (e, t, n, o) {\n r[r.length] = n ? hr(o, yr, \"$1\") : t || e;\n }), r;\n },\n mr = function (e, t) {\n var n,\n r = e;\n if (cr(ar, r) && (r = \"%\" + (n = ar[r])[0] + \"%\"), cr(ir, r)) {\n var o = ir[r];\n if (o === rr && (o = sr(r)), void 0 === o && !t) throw new Qn(\"intrinsic \" + e + \" exists, but is not available. Please file an issue!\");\n return {\n alias: n,\n name: r,\n value: o\n };\n }\n throw new Jn(\"intrinsic \" + e + \" does not exist!\");\n },\n br = function (e, t) {\n if (\"string\" != typeof e || 0 === e.length) throw new Qn(\"intrinsic name must be a non-empty string\");\n if (arguments.length > 1 && \"boolean\" != typeof t) throw new Qn('\"allowMissing\" argument must be a boolean');\n var n = gr(e),\n r = n.length > 0 ? n[0] : \"\",\n o = mr(\"%\" + r + \"%\", t),\n i = o.name,\n s = o.value,\n a = !1,\n u = o.alias;\n u && (r = u[0], pr(n, lr([0, 1], u)));\n for (var c = 1, l = !0; c < n.length; c += 1) {\n var p = n[c],\n h = fr(p, 0, 1),\n f = fr(p, -1);\n if (('\"' === h || \"'\" === h || \"`\" === h || '\"' === f || \"'\" === f || \"`\" === f) && h !== f) throw new Jn(\"property names with quotes must have matching quotes\");\n if (\"constructor\" !== p && l || (a = !0), cr(ir, i = \"%\" + (r += \".\" + p) + \"%\")) s = ir[i];else if (null != s) {\n if (!(p in s)) {\n if (!t) throw new Qn(\"base intrinsic for \" + e + \" exists, but the property is not available.\");\n return;\n }\n if (Yn && c + 1 >= n.length) {\n var d = Yn(s, p);\n s = (l = !!d) && \"get\" in d && !(\"originalValue\" in d.get) ? d.get : s[p];\n } else l = cr(s, p), s = s[p];\n l && !a && (ir[i] = s);\n }\n }\n return s;\n },\n vr = {\n exports: {}\n };\n !function (e) {\n var t = Vn,\n n = br,\n r = n(\"%Function.prototype.apply%\"),\n o = n(\"%Function.prototype.call%\"),\n i = n(\"%Reflect.apply%\", !0) || t.call(o, r),\n s = n(\"%Object.getOwnPropertyDescriptor%\", !0),\n a = n(\"%Object.defineProperty%\", !0),\n u = n(\"%Math.max%\");\n if (a) try {\n a({}, \"a\", {\n value: 1\n });\n } catch (e) {\n a = null;\n }\n e.exports = function (e) {\n var n = i(t, o, arguments);\n if (s && a) {\n var r = s(n, \"length\");\n r.configurable && a(n, \"length\", {\n value: 1 + u(0, e.length - (arguments.length - 1))\n });\n }\n return n;\n };\n var c = function () {\n return i(t, r, arguments);\n };\n a ? a(e.exports, \"apply\", {\n value: c\n }) : e.exports.apply = c;\n }(vr);\n var _r = br,\n Sr = vr.exports,\n wr = Sr(_r(\"String.prototype.indexOf\")),\n Or = l(Object.freeze({\n __proto__: null,\n default: {}\n })),\n Pr = \"function\" == typeof Map && Map.prototype,\n Er = Object.getOwnPropertyDescriptor && Pr ? Object.getOwnPropertyDescriptor(Map.prototype, \"size\") : null,\n Ar = Pr && Er && \"function\" == typeof Er.get ? Er.get : null,\n Tr = Pr && Map.prototype.forEach,\n Nr = \"function\" == typeof Set && Set.prototype,\n Cr = Object.getOwnPropertyDescriptor && Nr ? Object.getOwnPropertyDescriptor(Set.prototype, \"size\") : null,\n kr = Nr && Cr && \"function\" == typeof Cr.get ? Cr.get : null,\n Mr = Nr && Set.prototype.forEach,\n jr = \"function\" == typeof WeakMap && WeakMap.prototype ? WeakMap.prototype.has : null,\n Rr = \"function\" == typeof WeakSet && WeakSet.prototype ? WeakSet.prototype.has : null,\n xr = \"function\" == typeof WeakRef && WeakRef.prototype ? WeakRef.prototype.deref : null,\n Ur = Boolean.prototype.valueOf,\n Ir = Object.prototype.toString,\n Dr = Function.prototype.toString,\n Fr = String.prototype.match,\n Lr = String.prototype.slice,\n Gr = String.prototype.replace,\n Kr = String.prototype.toUpperCase,\n Br = String.prototype.toLowerCase,\n Hr = RegExp.prototype.test,\n qr = Array.prototype.concat,\n zr = Array.prototype.join,\n Vr = Array.prototype.slice,\n Wr = Math.floor,\n Jr = \"function\" == typeof BigInt ? BigInt.prototype.valueOf : null,\n $r = Object.getOwnPropertySymbols,\n Qr = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? Symbol.prototype.toString : null,\n Xr = \"function\" == typeof Symbol && \"object\" == typeof Symbol.iterator,\n Yr = \"function\" == typeof Symbol && Symbol.toStringTag && (typeof Symbol.toStringTag === Xr || \"symbol\") ? Symbol.toStringTag : null,\n Zr = Object.prototype.propertyIsEnumerable,\n eo = (\"function\" == typeof Reflect ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function (e) {\n return e.__proto__;\n } : null);\n function to(e, t) {\n if (e === 1 / 0 || e === -1 / 0 || e != e || e && e > -1e3 && e < 1e3 || Hr.call(/e/, t)) return t;\n var n = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (\"number\" == typeof e) {\n var r = e < 0 ? -Wr(-e) : Wr(e);\n if (r !== e) {\n var o = String(r),\n i = Lr.call(t, o.length + 1);\n return Gr.call(o, n, \"$&_\") + \".\" + Gr.call(Gr.call(i, /([0-9]{3})/g, \"$&_\"), /_$/, \"\");\n }\n }\n return Gr.call(t, n, \"$&_\");\n }\n var no = Or,\n ro = no.custom,\n oo = co(ro) ? ro : null;\n function io(e, t, n) {\n var r = \"double\" === (n.quoteStyle || t) ? '\"' : \"'\";\n return r + e + r;\n }\n function so(e) {\n return Gr.call(String(e), /\"/g, \""\");\n }\n function ao(e) {\n return !(\"[object Array]\" !== ho(e) || Yr && \"object\" == typeof e && Yr in e);\n }\n function uo(e) {\n return !(\"[object RegExp]\" !== ho(e) || Yr && \"object\" == typeof e && Yr in e);\n }\n function co(e) {\n if (Xr) return e && \"object\" == typeof e && e instanceof Symbol;\n if (\"symbol\" == typeof e) return !0;\n if (!e || \"object\" != typeof e || !Qr) return !1;\n try {\n return Qr.call(e), !0;\n } catch (e) {}\n return !1;\n }\n var lo = Object.prototype.hasOwnProperty || function (e) {\n return e in this;\n };\n function po(e, t) {\n return lo.call(e, t);\n }\n function ho(e) {\n return Ir.call(e);\n }\n function fo(e, t) {\n if (e.indexOf) return e.indexOf(t);\n for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n;\n return -1;\n }\n function yo(e, t) {\n if (e.length > t.maxStringLength) {\n var n = e.length - t.maxStringLength,\n r = \"... \" + n + \" more character\" + (n > 1 ? \"s\" : \"\");\n return yo(Lr.call(e, 0, t.maxStringLength), t) + r;\n }\n return io(Gr.call(Gr.call(e, /(['\\\\])/g, \"\\\\$1\"), /[\\x00-\\x1f]/g, go), \"single\", t);\n }\n function go(e) {\n var t = e.charCodeAt(0),\n n = {\n 8: \"b\",\n 9: \"t\",\n 10: \"n\",\n 12: \"f\",\n 13: \"r\"\n }[t];\n return n ? \"\\\\\" + n : \"\\\\x\" + (t < 16 ? \"0\" : \"\") + Kr.call(t.toString(16));\n }\n function mo(e) {\n return \"Object(\" + e + \")\";\n }\n function bo(e) {\n return e + \" { ? }\";\n }\n function vo(e, t, n, r) {\n return e + \" (\" + t + \") {\" + (r ? _o(n, r) : zr.call(n, \", \")) + \"}\";\n }\n function _o(e, t) {\n if (0 === e.length) return \"\";\n var n = \"\\n\" + t.prev + t.base;\n return n + zr.call(e, \",\" + n) + \"\\n\" + t.prev;\n }\n function So(e, t) {\n var n = ao(e),\n r = [];\n if (n) {\n r.length = e.length;\n for (var o = 0; o < e.length; o++) r[o] = po(e, o) ? t(e[o], e) : \"\";\n }\n var i,\n s = \"function\" == typeof $r ? $r(e) : [];\n if (Xr) {\n i = {};\n for (var a = 0; a < s.length; a++) i[\"$\" + s[a]] = s[a];\n }\n for (var u in e) po(e, u) && (n && String(Number(u)) === u && u < e.length || Xr && i[\"$\" + u] instanceof Symbol || (Hr.call(/[^\\w$]/, u) ? r.push(t(u, e) + \": \" + t(e[u], e)) : r.push(u + \": \" + t(e[u], e))));\n if (\"function\" == typeof $r) for (var c = 0; c < s.length; c++) Zr.call(e, s[c]) && r.push(\"[\" + t(s[c]) + \"]: \" + t(e[s[c]], e));\n return r;\n }\n var wo = br,\n Oo = function (e, t) {\n var n = _r(e, !!t);\n return \"function\" == typeof n && wr(e, \".prototype.\") > -1 ? Sr(n) : n;\n },\n Po = function e(t, n, r, o) {\n var i = n || {};\n if (po(i, \"quoteStyle\") && \"single\" !== i.quoteStyle && \"double\" !== i.quoteStyle) throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n if (po(i, \"maxStringLength\") && (\"number\" == typeof i.maxStringLength ? i.maxStringLength < 0 && i.maxStringLength !== 1 / 0 : null !== i.maxStringLength)) throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n var s = !po(i, \"customInspect\") || i.customInspect;\n if (\"boolean\" != typeof s && \"symbol\" !== s) throw new TypeError(\"option \\\"customInspect\\\", if provided, must be `true`, `false`, or `'symbol'`\");\n if (po(i, \"indent\") && null !== i.indent && \"\\t\" !== i.indent && !(parseInt(i.indent, 10) === i.indent && i.indent > 0)) throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n if (po(i, \"numericSeparator\") && \"boolean\" != typeof i.numericSeparator) throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n var a = i.numericSeparator;\n if (void 0 === t) return \"undefined\";\n if (null === t) return \"null\";\n if (\"boolean\" == typeof t) return t ? \"true\" : \"false\";\n if (\"string\" == typeof t) return yo(t, i);\n if (\"number\" == typeof t) {\n if (0 === t) return 1 / 0 / t > 0 ? \"0\" : \"-0\";\n var u = String(t);\n return a ? to(t, u) : u;\n }\n if (\"bigint\" == typeof t) {\n var l = String(t) + \"n\";\n return a ? to(t, l) : l;\n }\n var p = void 0 === i.depth ? 5 : i.depth;\n if (void 0 === r && (r = 0), r >= p && p > 0 && \"object\" == typeof t) return ao(t) ? \"[Array]\" : \"[Object]\";\n var h = function (e, t) {\n var n;\n if (\"\\t\" === e.indent) n = \"\\t\";else {\n if (!(\"number\" == typeof e.indent && e.indent > 0)) return null;\n n = zr.call(Array(e.indent + 1), \" \");\n }\n return {\n base: n,\n prev: zr.call(Array(t + 1), n)\n };\n }(i, r);\n if (void 0 === o) o = [];else if (fo(o, t) >= 0) return \"[Circular]\";\n function f(t, n, s) {\n if (n && (o = Vr.call(o)).push(n), s) {\n var a = {\n depth: i.depth\n };\n return po(i, \"quoteStyle\") && (a.quoteStyle = i.quoteStyle), e(t, a, r + 1, o);\n }\n return e(t, i, r + 1, o);\n }\n if (\"function\" == typeof t && !uo(t)) {\n var d = function (e) {\n if (e.name) return e.name;\n var t = Fr.call(Dr.call(e), /^function\\s*([\\w$]+)/);\n if (t) return t[1];\n return null;\n }(t),\n y = So(t, f);\n return \"[Function\" + (d ? \": \" + d : \" (anonymous)\") + \"]\" + (y.length > 0 ? \" { \" + zr.call(y, \", \") + \" }\" : \"\");\n }\n if (co(t)) {\n var g = Xr ? Gr.call(String(t), /^(Symbol\\(.*\\))_[^)]*$/, \"$1\") : Qr.call(t);\n return \"object\" != typeof t || Xr ? g : mo(g);\n }\n if (function (e) {\n if (!e || \"object\" != typeof e) return !1;\n if (\"undefined\" != typeof HTMLElement && e instanceof HTMLElement) return !0;\n return \"string\" == typeof e.nodeName && \"function\" == typeof e.getAttribute;\n }(t)) {\n for (var m = \"<\" + Br.call(String(t.nodeName)), b = t.attributes || [], v = 0; v < b.length; v++) m += \" \" + b[v].name + \"=\" + io(so(b[v].value), \"double\", i);\n return m += \">\", t.childNodes && t.childNodes.length && (m += \"...\"), m += \"\";\n }\n if (ao(t)) {\n if (0 === t.length) return \"[]\";\n var _ = So(t, f);\n return h && !function (e) {\n for (var t = 0; t < e.length; t++) if (fo(e[t], \"\\n\") >= 0) return !1;\n return !0;\n }(_) ? \"[\" + _o(_, h) + \"]\" : \"[ \" + zr.call(_, \", \") + \" ]\";\n }\n if (function (e) {\n return !(\"[object Error]\" !== ho(e) || Yr && \"object\" == typeof e && Yr in e);\n }(t)) {\n var S = So(t, f);\n return \"cause\" in Error.prototype || !(\"cause\" in t) || Zr.call(t, \"cause\") ? 0 === S.length ? \"[\" + String(t) + \"]\" : \"{ [\" + String(t) + \"] \" + zr.call(S, \", \") + \" }\" : \"{ [\" + String(t) + \"] \" + zr.call(qr.call(\"[cause]: \" + f(t.cause), S), \", \") + \" }\";\n }\n if (\"object\" == typeof t && s) {\n if (oo && \"function\" == typeof t[oo] && no) return no(t, {\n depth: p - r\n });\n if (\"symbol\" !== s && \"function\" == typeof t.inspect) return t.inspect();\n }\n if (function (e) {\n if (!Ar || !e || \"object\" != typeof e) return !1;\n try {\n Ar.call(e);\n try {\n kr.call(e);\n } catch (e) {\n return !0;\n }\n return e instanceof Map;\n } catch (e) {}\n return !1;\n }(t)) {\n var w = [];\n return Tr && Tr.call(t, function (e, n) {\n w.push(f(n, t, !0) + \" => \" + f(e, t));\n }), vo(\"Map\", Ar.call(t), w, h);\n }\n if (function (e) {\n if (!kr || !e || \"object\" != typeof e) return !1;\n try {\n kr.call(e);\n try {\n Ar.call(e);\n } catch (e) {\n return !0;\n }\n return e instanceof Set;\n } catch (e) {}\n return !1;\n }(t)) {\n var O = [];\n return Mr && Mr.call(t, function (e) {\n O.push(f(e, t));\n }), vo(\"Set\", kr.call(t), O, h);\n }\n if (function (e) {\n if (!jr || !e || \"object\" != typeof e) return !1;\n try {\n jr.call(e, jr);\n try {\n Rr.call(e, Rr);\n } catch (e) {\n return !0;\n }\n return e instanceof WeakMap;\n } catch (e) {}\n return !1;\n }(t)) return bo(\"WeakMap\");\n if (function (e) {\n if (!Rr || !e || \"object\" != typeof e) return !1;\n try {\n Rr.call(e, Rr);\n try {\n jr.call(e, jr);\n } catch (e) {\n return !0;\n }\n return e instanceof WeakSet;\n } catch (e) {}\n return !1;\n }(t)) return bo(\"WeakSet\");\n if (function (e) {\n if (!xr || !e || \"object\" != typeof e) return !1;\n try {\n return xr.call(e), !0;\n } catch (e) {}\n return !1;\n }(t)) return bo(\"WeakRef\");\n if (function (e) {\n return !(\"[object Number]\" !== ho(e) || Yr && \"object\" == typeof e && Yr in e);\n }(t)) return mo(f(Number(t)));\n if (function (e) {\n if (!e || \"object\" != typeof e || !Jr) return !1;\n try {\n return Jr.call(e), !0;\n } catch (e) {}\n return !1;\n }(t)) return mo(f(Jr.call(t)));\n if (function (e) {\n return !(\"[object Boolean]\" !== ho(e) || Yr && \"object\" == typeof e && Yr in e);\n }(t)) return mo(Ur.call(t));\n if (function (e) {\n return !(\"[object String]\" !== ho(e) || Yr && \"object\" == typeof e && Yr in e);\n }(t)) return mo(f(String(t)));\n if (\"undefined\" != typeof window && t === window) return \"{ [object Window] }\";\n if (t === c) return \"{ [object globalThis] }\";\n if (!function (e) {\n return !(\"[object Date]\" !== ho(e) || Yr && \"object\" == typeof e && Yr in e);\n }(t) && !uo(t)) {\n var P = So(t, f),\n E = eo ? eo(t) === Object.prototype : t instanceof Object || t.constructor === Object,\n A = t instanceof Object ? \"\" : \"null prototype\",\n T = !E && Yr && Object(t) === t && Yr in t ? Lr.call(ho(t), 8, -1) : A ? \"Object\" : \"\",\n N = (E || \"function\" != typeof t.constructor ? \"\" : t.constructor.name ? t.constructor.name + \" \" : \"\") + (T || A ? \"[\" + zr.call(qr.call([], T || [], A || []), \": \") + \"] \" : \"\");\n return 0 === P.length ? N + \"{}\" : h ? N + \"{\" + _o(P, h) + \"}\" : N + \"{ \" + zr.call(P, \", \") + \" }\";\n }\n return String(t);\n },\n Eo = wo(\"%TypeError%\"),\n Ao = wo(\"%WeakMap%\", !0),\n To = wo(\"%Map%\", !0),\n No = Oo(\"WeakMap.prototype.get\", !0),\n Co = Oo(\"WeakMap.prototype.set\", !0),\n ko = Oo(\"WeakMap.prototype.has\", !0),\n Mo = Oo(\"Map.prototype.get\", !0),\n jo = Oo(\"Map.prototype.set\", !0),\n Ro = Oo(\"Map.prototype.has\", !0),\n xo = function (e, t) {\n for (var n, r = e; null !== (n = r.next); r = n) if (n.key === t) return r.next = n.next, n.next = e.next, e.next = n, n;\n },\n Uo = String.prototype.replace,\n Io = /%20/g,\n Do = \"RFC3986\",\n Fo = {\n default: Do,\n formatters: {\n RFC1738: function (e) {\n return Uo.call(e, Io, \"+\");\n },\n RFC3986: function (e) {\n return String(e);\n }\n },\n RFC1738: \"RFC1738\",\n RFC3986: Do\n },\n Lo = Fo,\n Go = Object.prototype.hasOwnProperty,\n Ko = Array.isArray,\n Bo = function () {\n for (var e = [], t = 0; t < 256; ++t) e.push(\"%\" + ((t < 16 ? \"0\" : \"\") + t.toString(16)).toUpperCase());\n return e;\n }(),\n Ho = function (e, t) {\n for (var n = t && t.plainObjects ? Object.create(null) : {}, r = 0; r < e.length; ++r) void 0 !== e[r] && (n[r] = e[r]);\n return n;\n },\n qo = {\n arrayToObject: Ho,\n assign: function (e, t) {\n return Object.keys(t).reduce(function (e, n) {\n return e[n] = t[n], e;\n }, e);\n },\n combine: function (e, t) {\n return [].concat(e, t);\n },\n compact: function (e) {\n for (var t = [{\n obj: {\n o: e\n },\n prop: \"o\"\n }], n = [], r = 0; r < t.length; ++r) for (var o = t[r], i = o.obj[o.prop], s = Object.keys(i), a = 0; a < s.length; ++a) {\n var u = s[a],\n c = i[u];\n \"object\" == typeof c && null !== c && -1 === n.indexOf(c) && (t.push({\n obj: i,\n prop: u\n }), n.push(c));\n }\n return function (e) {\n for (; e.length > 1;) {\n var t = e.pop(),\n n = t.obj[t.prop];\n if (Ko(n)) {\n for (var r = [], o = 0; o < n.length; ++o) void 0 !== n[o] && r.push(n[o]);\n t.obj[t.prop] = r;\n }\n }\n }(t), e;\n },\n decode: function (e, t, n) {\n var r = e.replace(/\\+/g, \" \");\n if (\"iso-8859-1\" === n) return r.replace(/%[0-9a-f]{2}/gi, unescape);\n try {\n return decodeURIComponent(r);\n } catch (e) {\n return r;\n }\n },\n encode: function (e, t, n, r, o) {\n if (0 === e.length) return e;\n var i = e;\n if (\"symbol\" == typeof e ? i = Symbol.prototype.toString.call(e) : \"string\" != typeof e && (i = String(e)), \"iso-8859-1\" === n) return escape(i).replace(/%u[0-9a-f]{4}/gi, function (e) {\n return \"%26%23\" + parseInt(e.slice(2), 16) + \"%3B\";\n });\n for (var s = \"\", a = 0; a < i.length; ++a) {\n var u = i.charCodeAt(a);\n 45 === u || 46 === u || 95 === u || 126 === u || u >= 48 && u <= 57 || u >= 65 && u <= 90 || u >= 97 && u <= 122 || o === Lo.RFC1738 && (40 === u || 41 === u) ? s += i.charAt(a) : u < 128 ? s += Bo[u] : u < 2048 ? s += Bo[192 | u >> 6] + Bo[128 | 63 & u] : u < 55296 || u >= 57344 ? s += Bo[224 | u >> 12] + Bo[128 | u >> 6 & 63] + Bo[128 | 63 & u] : (a += 1, u = 65536 + ((1023 & u) << 10 | 1023 & i.charCodeAt(a)), s += Bo[240 | u >> 18] + Bo[128 | u >> 12 & 63] + Bo[128 | u >> 6 & 63] + Bo[128 | 63 & u]);\n }\n return s;\n },\n isBuffer: function (e) {\n return !(!e || \"object\" != typeof e) && !!(e.constructor && e.constructor.isBuffer && e.constructor.isBuffer(e));\n },\n isRegExp: function (e) {\n return \"[object RegExp]\" === Object.prototype.toString.call(e);\n },\n maybeMap: function (e, t) {\n if (Ko(e)) {\n for (var n = [], r = 0; r < e.length; r += 1) n.push(t(e[r]));\n return n;\n }\n return t(e);\n },\n merge: function e(t, n, r) {\n if (!n) return t;\n if (\"object\" != typeof n) {\n if (Ko(t)) t.push(n);else {\n if (!t || \"object\" != typeof t) return [t, n];\n (r && (r.plainObjects || r.allowPrototypes) || !Go.call(Object.prototype, n)) && (t[n] = !0);\n }\n return t;\n }\n if (!t || \"object\" != typeof t) return [t].concat(n);\n var o = t;\n return Ko(t) && !Ko(n) && (o = Ho(t, r)), Ko(t) && Ko(n) ? (n.forEach(function (n, o) {\n if (Go.call(t, o)) {\n var i = t[o];\n i && \"object\" == typeof i && n && \"object\" == typeof n ? t[o] = e(i, n, r) : t.push(n);\n } else t[o] = n;\n }), t) : Object.keys(n).reduce(function (t, o) {\n var i = n[o];\n return Go.call(t, o) ? t[o] = e(t[o], i, r) : t[o] = i, t;\n }, o);\n }\n },\n zo = function () {\n var e,\n t,\n n,\n r = {\n assert: function (e) {\n if (!r.has(e)) throw new Eo(\"Side channel does not contain \" + Po(e));\n },\n get: function (r) {\n if (Ao && r && (\"object\" == typeof r || \"function\" == typeof r)) {\n if (e) return No(e, r);\n } else if (To) {\n if (t) return Mo(t, r);\n } else if (n) return function (e, t) {\n var n = xo(e, t);\n return n && n.value;\n }(n, r);\n },\n has: function (r) {\n if (Ao && r && (\"object\" == typeof r || \"function\" == typeof r)) {\n if (e) return ko(e, r);\n } else if (To) {\n if (t) return Ro(t, r);\n } else if (n) return function (e, t) {\n return !!xo(e, t);\n }(n, r);\n return !1;\n },\n set: function (r, o) {\n Ao && r && (\"object\" == typeof r || \"function\" == typeof r) ? (e || (e = new Ao()), Co(e, r, o)) : To ? (t || (t = new To()), jo(t, r, o)) : (n || (n = {\n key: {},\n next: null\n }), function (e, t, n) {\n var r = xo(e, t);\n r ? r.value = n : e.next = {\n key: t,\n next: e.next,\n value: n\n };\n }(n, r, o));\n }\n };\n return r;\n },\n Vo = qo,\n Wo = Fo,\n Jo = Object.prototype.hasOwnProperty,\n $o = {\n brackets: function (e) {\n return e + \"[]\";\n },\n comma: \"comma\",\n indices: function (e, t) {\n return e + \"[\" + t + \"]\";\n },\n repeat: function (e) {\n return e;\n }\n },\n Qo = Array.isArray,\n Xo = Array.prototype.push,\n Yo = function (e, t) {\n Xo.apply(e, Qo(t) ? t : [t]);\n },\n Zo = Date.prototype.toISOString,\n ei = Wo.default,\n ti = {\n addQueryPrefix: !1,\n allowDots: !1,\n charset: \"utf-8\",\n charsetSentinel: !1,\n delimiter: \"&\",\n encode: !0,\n encoder: Vo.encode,\n encodeValuesOnly: !1,\n format: ei,\n formatter: Wo.formatters[ei],\n indices: !1,\n serializeDate: function (e) {\n return Zo.call(e);\n },\n skipNulls: !1,\n strictNullHandling: !1\n },\n ni = {},\n ri = function e(t, n, r, o, i, s, a, u, c, l, p, h, f, d, y, g) {\n for (var m, b = t, v = g, _ = 0, S = !1; void 0 !== (v = v.get(ni)) && !S;) {\n var w = v.get(t);\n if (_ += 1, void 0 !== w) {\n if (w === _) throw new RangeError(\"Cyclic object value\");\n S = !0;\n }\n void 0 === v.get(ni) && (_ = 0);\n }\n if (\"function\" == typeof u ? b = u(n, b) : b instanceof Date ? b = p(b) : \"comma\" === r && Qo(b) && (b = Vo.maybeMap(b, function (e) {\n return e instanceof Date ? p(e) : e;\n })), null === b) {\n if (i) return a && !d ? a(n, ti.encoder, y, \"key\", h) : n;\n b = \"\";\n }\n if (\"string\" == typeof (m = b) || \"number\" == typeof m || \"boolean\" == typeof m || \"symbol\" == typeof m || \"bigint\" == typeof m || Vo.isBuffer(b)) return a ? [f(d ? n : a(n, ti.encoder, y, \"key\", h)) + \"=\" + f(a(b, ti.encoder, y, \"value\", h))] : [f(n) + \"=\" + f(String(b))];\n var O,\n P = [];\n if (void 0 === b) return P;\n if (\"comma\" === r && Qo(b)) d && a && (b = Vo.maybeMap(b, a)), O = [{\n value: b.length > 0 ? b.join(\",\") || null : void 0\n }];else if (Qo(u)) O = u;else {\n var E = Object.keys(b);\n O = c ? E.sort(c) : E;\n }\n for (var A = o && Qo(b) && 1 === b.length ? n + \"[]\" : n, T = 0; T < O.length; ++T) {\n var N = O[T],\n C = \"object\" == typeof N && void 0 !== N.value ? N.value : b[N];\n if (!s || null !== C) {\n var k = Qo(b) ? \"function\" == typeof r ? r(A, N) : A : A + (l ? \".\" + N : \"[\" + N + \"]\");\n g.set(t, _);\n var M = zo();\n M.set(ni, g), Yo(P, e(C, k, r, o, i, s, \"comma\" === r && d && Qo(b) ? null : a, u, c, l, p, h, f, d, y, M));\n }\n }\n return P;\n },\n oi = qo,\n ii = Object.prototype.hasOwnProperty,\n si = Array.isArray,\n ai = {\n allowDots: !1,\n allowPrototypes: !1,\n allowSparse: !1,\n arrayLimit: 20,\n charset: \"utf-8\",\n charsetSentinel: !1,\n comma: !1,\n decoder: oi.decode,\n delimiter: \"&\",\n depth: 5,\n ignoreQueryPrefix: !1,\n interpretNumericEntities: !1,\n parameterLimit: 1e3,\n parseArrays: !0,\n plainObjects: !1,\n strictNullHandling: !1\n },\n ui = function (e) {\n return e.replace(/&#(\\d+);/g, function (e, t) {\n return String.fromCharCode(parseInt(t, 10));\n });\n },\n ci = function (e, t) {\n return e && \"string\" == typeof e && t.comma && e.indexOf(\",\") > -1 ? e.split(\",\") : e;\n },\n li = function (e, t, n, r) {\n if (e) {\n var o = n.allowDots ? e.replace(/\\.([^.[]+)/g, \"[$1]\") : e,\n i = /(\\[[^[\\]]*])/g,\n s = n.depth > 0 && /(\\[[^[\\]]*])/.exec(o),\n a = s ? o.slice(0, s.index) : o,\n u = [];\n if (a) {\n if (!n.plainObjects && ii.call(Object.prototype, a) && !n.allowPrototypes) return;\n u.push(a);\n }\n for (var c = 0; n.depth > 0 && null !== (s = i.exec(o)) && c < n.depth;) {\n if (c += 1, !n.plainObjects && ii.call(Object.prototype, s[1].slice(1, -1)) && !n.allowPrototypes) return;\n u.push(s[1]);\n }\n return s && u.push(\"[\" + o.slice(s.index) + \"]\"), function (e, t, n, r) {\n for (var o = r ? t : ci(t, n), i = e.length - 1; i >= 0; --i) {\n var s,\n a = e[i];\n if (\"[]\" === a && n.parseArrays) s = [].concat(o);else {\n s = n.plainObjects ? Object.create(null) : {};\n var u = \"[\" === a.charAt(0) && \"]\" === a.charAt(a.length - 1) ? a.slice(1, -1) : a,\n c = parseInt(u, 10);\n n.parseArrays || \"\" !== u ? !isNaN(c) && a !== u && String(c) === u && c >= 0 && n.parseArrays && c <= n.arrayLimit ? (s = [])[c] = o : \"__proto__\" !== u && (s[u] = o) : s = {\n 0: o\n };\n }\n o = s;\n }\n return o;\n }(u, t, n, r);\n }\n },\n pi = function (e, t) {\n var n,\n r = e,\n o = function (e) {\n if (!e) return ti;\n if (null !== e.encoder && void 0 !== e.encoder && \"function\" != typeof e.encoder) throw new TypeError(\"Encoder has to be a function.\");\n var t = e.charset || ti.charset;\n if (void 0 !== e.charset && \"utf-8\" !== e.charset && \"iso-8859-1\" !== e.charset) throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var n = Wo.default;\n if (void 0 !== e.format) {\n if (!Jo.call(Wo.formatters, e.format)) throw new TypeError(\"Unknown format option provided.\");\n n = e.format;\n }\n var r = Wo.formatters[n],\n o = ti.filter;\n return (\"function\" == typeof e.filter || Qo(e.filter)) && (o = e.filter), {\n addQueryPrefix: \"boolean\" == typeof e.addQueryPrefix ? e.addQueryPrefix : ti.addQueryPrefix,\n allowDots: void 0 === e.allowDots ? ti.allowDots : !!e.allowDots,\n charset: t,\n charsetSentinel: \"boolean\" == typeof e.charsetSentinel ? e.charsetSentinel : ti.charsetSentinel,\n delimiter: void 0 === e.delimiter ? ti.delimiter : e.delimiter,\n encode: \"boolean\" == typeof e.encode ? e.encode : ti.encode,\n encoder: \"function\" == typeof e.encoder ? e.encoder : ti.encoder,\n encodeValuesOnly: \"boolean\" == typeof e.encodeValuesOnly ? e.encodeValuesOnly : ti.encodeValuesOnly,\n filter: o,\n format: n,\n formatter: r,\n serializeDate: \"function\" == typeof e.serializeDate ? e.serializeDate : ti.serializeDate,\n skipNulls: \"boolean\" == typeof e.skipNulls ? e.skipNulls : ti.skipNulls,\n sort: \"function\" == typeof e.sort ? e.sort : null,\n strictNullHandling: \"boolean\" == typeof e.strictNullHandling ? e.strictNullHandling : ti.strictNullHandling\n };\n }(t);\n \"function\" == typeof o.filter ? r = (0, o.filter)(\"\", r) : Qo(o.filter) && (n = o.filter);\n var i,\n s = [];\n if (\"object\" != typeof r || null === r) return \"\";\n i = t && t.arrayFormat in $o ? t.arrayFormat : t && \"indices\" in t ? t.indices ? \"indices\" : \"repeat\" : \"indices\";\n var a = $o[i];\n if (t && \"commaRoundTrip\" in t && \"boolean\" != typeof t.commaRoundTrip) throw new TypeError(\"`commaRoundTrip` must be a boolean, or absent\");\n var u = \"comma\" === a && t && t.commaRoundTrip;\n n || (n = Object.keys(r)), o.sort && n.sort(o.sort);\n for (var c = zo(), l = 0; l < n.length; ++l) {\n var p = n[l];\n o.skipNulls && null === r[p] || Yo(s, ri(r[p], p, a, u, o.strictNullHandling, o.skipNulls, o.encode ? o.encoder : null, o.filter, o.sort, o.allowDots, o.serializeDate, o.format, o.formatter, o.encodeValuesOnly, o.charset, c));\n }\n var h = s.join(o.delimiter),\n f = !0 === o.addQueryPrefix ? \"?\" : \"\";\n return o.charsetSentinel && (\"iso-8859-1\" === o.charset ? f += \"utf8=%26%2310003%3B&\" : f += \"utf8=%E2%9C%93&\"), h.length > 0 ? f + h : \"\";\n },\n hi = {\n formats: Fo,\n parse: function (e, t) {\n var n = function (e) {\n if (!e) return ai;\n if (null !== e.decoder && void 0 !== e.decoder && \"function\" != typeof e.decoder) throw new TypeError(\"Decoder has to be a function.\");\n if (void 0 !== e.charset && \"utf-8\" !== e.charset && \"iso-8859-1\" !== e.charset) throw new TypeError(\"The charset option must be either utf-8, iso-8859-1, or undefined\");\n var t = void 0 === e.charset ? ai.charset : e.charset;\n return {\n allowDots: void 0 === e.allowDots ? ai.allowDots : !!e.allowDots,\n allowPrototypes: \"boolean\" == typeof e.allowPrototypes ? e.allowPrototypes : ai.allowPrototypes,\n allowSparse: \"boolean\" == typeof e.allowSparse ? e.allowSparse : ai.allowSparse,\n arrayLimit: \"number\" == typeof e.arrayLimit ? e.arrayLimit : ai.arrayLimit,\n charset: t,\n charsetSentinel: \"boolean\" == typeof e.charsetSentinel ? e.charsetSentinel : ai.charsetSentinel,\n comma: \"boolean\" == typeof e.comma ? e.comma : ai.comma,\n decoder: \"function\" == typeof e.decoder ? e.decoder : ai.decoder,\n delimiter: \"string\" == typeof e.delimiter || oi.isRegExp(e.delimiter) ? e.delimiter : ai.delimiter,\n depth: \"number\" == typeof e.depth || !1 === e.depth ? +e.depth : ai.depth,\n ignoreQueryPrefix: !0 === e.ignoreQueryPrefix,\n interpretNumericEntities: \"boolean\" == typeof e.interpretNumericEntities ? e.interpretNumericEntities : ai.interpretNumericEntities,\n parameterLimit: \"number\" == typeof e.parameterLimit ? e.parameterLimit : ai.parameterLimit,\n parseArrays: !1 !== e.parseArrays,\n plainObjects: \"boolean\" == typeof e.plainObjects ? e.plainObjects : ai.plainObjects,\n strictNullHandling: \"boolean\" == typeof e.strictNullHandling ? e.strictNullHandling : ai.strictNullHandling\n };\n }(t);\n if (\"\" === e || null == e) return n.plainObjects ? Object.create(null) : {};\n for (var r = \"string\" == typeof e ? function (e, t) {\n var n,\n r = {\n __proto__: null\n },\n o = t.ignoreQueryPrefix ? e.replace(/^\\?/, \"\") : e,\n i = t.parameterLimit === 1 / 0 ? void 0 : t.parameterLimit,\n s = o.split(t.delimiter, i),\n a = -1,\n u = t.charset;\n if (t.charsetSentinel) for (n = 0; n < s.length; ++n) 0 === s[n].indexOf(\"utf8=\") && (\"utf8=%E2%9C%93\" === s[n] ? u = \"utf-8\" : \"utf8=%26%2310003%3B\" === s[n] && (u = \"iso-8859-1\"), a = n, n = s.length);\n for (n = 0; n < s.length; ++n) if (n !== a) {\n var c,\n l,\n p = s[n],\n h = p.indexOf(\"]=\"),\n f = -1 === h ? p.indexOf(\"=\") : h + 1;\n -1 === f ? (c = t.decoder(p, ai.decoder, u, \"key\"), l = t.strictNullHandling ? null : \"\") : (c = t.decoder(p.slice(0, f), ai.decoder, u, \"key\"), l = oi.maybeMap(ci(p.slice(f + 1), t), function (e) {\n return t.decoder(e, ai.decoder, u, \"value\");\n })), l && t.interpretNumericEntities && \"iso-8859-1\" === u && (l = ui(l)), p.indexOf(\"[]=\") > -1 && (l = si(l) ? [l] : l), ii.call(r, c) ? r[c] = oi.combine(r[c], l) : r[c] = l;\n }\n return r;\n }(e, n) : e, o = n.plainObjects ? Object.create(null) : {}, i = Object.keys(r), s = 0; s < i.length; ++s) {\n var a = i[s],\n u = li(a, r[a], n, \"string\" == typeof e);\n o = oi.merge(o, u, n);\n }\n return !0 === n.allowSparse ? o : oi.compact(o);\n },\n stringify: pi\n },\n fi = {};\n !function (e) {\n function t(e, t) {\n var r = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (!r) {\n if (Array.isArray(e) || (r = function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return n(e, t);\n var r = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === r && e.constructor && (r = e.constructor.name);\n if (\"Map\" === r || \"Set\" === r) return Array.from(e);\n if (\"Arguments\" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return n(e, t);\n }(e)) || t && e && \"number\" == typeof e.length) {\n r && (e = r);\n var o = 0,\n i = function () {};\n return {\n s: i,\n n: function () {\n return o >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[o++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: i\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var s,\n a = !0,\n u = !1;\n return {\n s: function () {\n r = r.call(e);\n },\n n: function () {\n var e = r.next();\n return a = e.done, e;\n },\n e: function (e) {\n u = !0, s = e;\n },\n f: function () {\n try {\n a || null == r.return || r.return();\n } finally {\n if (u) throw s;\n }\n }\n };\n }\n function n(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];\n return r;\n }\n e.type = e => e.split(/ *; */).shift(), e.params = e => {\n const n = {};\n var r,\n o = t(e.split(/ *; */));\n try {\n for (o.s(); !(r = o.n()).done;) {\n const e = r.value.split(/ *= */),\n t = e.shift(),\n o = e.shift();\n t && o && (n[t] = o);\n }\n } catch (e) {\n o.e(e);\n } finally {\n o.f();\n }\n return n;\n }, e.parseLinks = e => {\n const n = {};\n var r,\n o = t(e.split(/ *, */));\n try {\n for (o.s(); !(r = o.n()).done;) {\n const e = r.value.split(/ *; */),\n t = e[0].slice(1, -1);\n n[e[1].split(/ *= */)[1].slice(1, -1)] = t;\n }\n } catch (e) {\n o.e(e);\n } finally {\n o.f();\n }\n return n;\n }, e.cleanHeader = (e, t) => (delete e[\"content-type\"], delete e[\"content-length\"], delete e[\"transfer-encoding\"], delete e.host, t && (delete e.authorization, delete e.cookie), e), e.isObject = e => null !== e && \"object\" == typeof e, e.hasOwn = Object.hasOwn || function (e, t) {\n if (null == e) throw new TypeError(\"Cannot convert undefined or null to object\");\n return Object.prototype.hasOwnProperty.call(new Object(e), t);\n }, e.mixin = (t, n) => {\n for (const r in n) e.hasOwn(n, r) && (t[r] = n[r]);\n };\n }(fi);\n const di = Or,\n yi = fi.isObject,\n gi = fi.hasOwn;\n var mi = bi;\n function bi() {}\n bi.prototype.clearTimeout = function () {\n return clearTimeout(this._timer), clearTimeout(this._responseTimeoutTimer), clearTimeout(this._uploadTimeoutTimer), delete this._timer, delete this._responseTimeoutTimer, delete this._uploadTimeoutTimer, this;\n }, bi.prototype.parse = function (e) {\n return this._parser = e, this;\n }, bi.prototype.responseType = function (e) {\n return this._responseType = e, this;\n }, bi.prototype.serialize = function (e) {\n return this._serializer = e, this;\n }, bi.prototype.timeout = function (e) {\n if (!e || \"object\" != typeof e) return this._timeout = e, this._responseTimeout = 0, this._uploadTimeout = 0, this;\n for (const t in e) if (gi(e, t)) switch (t) {\n case \"deadline\":\n this._timeout = e.deadline;\n break;\n case \"response\":\n this._responseTimeout = e.response;\n break;\n case \"upload\":\n this._uploadTimeout = e.upload;\n break;\n default:\n console.warn(\"Unknown timeout option\", t);\n }\n return this;\n }, bi.prototype.retry = function (e, t) {\n return 0 !== arguments.length && !0 !== e || (e = 1), e <= 0 && (e = 0), this._maxRetries = e, this._retries = 0, this._retryCallback = t, this;\n };\n const vi = new Set([\"ETIMEDOUT\", \"ECONNRESET\", \"EADDRINUSE\", \"ECONNREFUSED\", \"EPIPE\", \"ENOTFOUND\", \"ENETUNREACH\", \"EAI_AGAIN\"]),\n _i = new Set([408, 413, 429, 500, 502, 503, 504, 521, 522, 524]);\n bi.prototype._shouldRetry = function (e, t) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) return !1;\n if (this._retryCallback) try {\n const n = this._retryCallback(e, t);\n if (!0 === n) return !0;\n if (!1 === n) return !1;\n } catch (e) {\n console.error(e);\n }\n if (t && t.status && _i.has(t.status)) return !0;\n if (e) {\n if (e.code && vi.has(e.code)) return !0;\n if (e.timeout && \"ECONNABORTED\" === e.code) return !0;\n if (e.crossDomain) return !0;\n }\n return !1;\n }, bi.prototype._retry = function () {\n return this.clearTimeout(), this.req && (this.req = null, this.req = this.request()), this._aborted = !1, this.timedout = !1, this.timedoutError = null, this._end();\n }, bi.prototype.then = function (e, t) {\n if (!this._fullfilledPromise) {\n const e = this;\n this._endCalled && console.warn(\"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises\"), this._fullfilledPromise = new Promise((t, n) => {\n e.on(\"abort\", () => {\n if (this._maxRetries && this._maxRetries > this._retries) return;\n if (this.timedout && this.timedoutError) return void n(this.timedoutError);\n const e = new Error(\"Aborted\");\n e.code = \"ABORTED\", e.status = this.status, e.method = this.method, e.url = this.url, n(e);\n }), e.end((e, r) => {\n e ? n(e) : t(r);\n });\n });\n }\n return this._fullfilledPromise.then(e, t);\n }, bi.prototype.catch = function (e) {\n return this.then(void 0, e);\n }, bi.prototype.use = function (e) {\n return e(this), this;\n }, bi.prototype.ok = function (e) {\n if (\"function\" != typeof e) throw new Error(\"Callback required\");\n return this._okCallback = e, this;\n }, bi.prototype._isResponseOK = function (e) {\n return !!e && (this._okCallback ? this._okCallback(e) : e.status >= 200 && e.status < 300);\n }, bi.prototype.get = function (e) {\n return this._header[e.toLowerCase()];\n }, bi.prototype.getHeader = bi.prototype.get, bi.prototype.set = function (e, t) {\n if (yi(e)) {\n for (const t in e) gi(e, t) && this.set(t, e[t]);\n return this;\n }\n return this._header[e.toLowerCase()] = t, this.header[e] = t, this;\n }, bi.prototype.unset = function (e) {\n return delete this._header[e.toLowerCase()], delete this.header[e], this;\n }, bi.prototype.field = function (e, t, n) {\n if (null == e) throw new Error(\".field(name, val) name can not be empty\");\n if (this._data) throw new Error(\".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\");\n if (yi(e)) {\n for (const t in e) gi(e, t) && this.field(t, e[t]);\n return this;\n }\n if (Array.isArray(t)) {\n for (const n in t) gi(t, n) && this.field(e, t[n]);\n return this;\n }\n if (null == t) throw new Error(\".field(name, val) val can not be empty\");\n return \"boolean\" == typeof t && (t = String(t)), n ? this._getFormData().append(e, t, n) : this._getFormData().append(e, t), this;\n }, bi.prototype.abort = function () {\n if (this._aborted) return this;\n if (this._aborted = !0, this.xhr && this.xhr.abort(), this.req) {\n if (di.gte(process.version, \"v13.0.0\") && di.lt(process.version, \"v14.0.0\")) throw new Error(\"Superagent does not work in v13 properly with abort() due to Node.js core changes\");\n this.req.abort();\n }\n return this.clearTimeout(), this.emit(\"abort\"), this;\n }, bi.prototype._auth = function (e, t, n, r) {\n switch (n.type) {\n case \"basic\":\n this.set(\"Authorization\", `Basic ${r(`${e}:${t}`)}`);\n break;\n case \"auto\":\n this.username = e, this.password = t;\n break;\n case \"bearer\":\n this.set(\"Authorization\", `Bearer ${e}`);\n }\n return this;\n }, bi.prototype.withCredentials = function (e) {\n return void 0 === e && (e = !0), this._withCredentials = e, this;\n }, bi.prototype.redirects = function (e) {\n return this._maxRedirects = e, this;\n }, bi.prototype.maxResponseSize = function (e) {\n if (\"number\" != typeof e) throw new TypeError(\"Invalid argument\");\n return this._maxResponseSize = e, this;\n }, bi.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n }, bi.prototype.send = function (e) {\n const t = yi(e);\n let n = this._header[\"content-type\"];\n if (this._formData) throw new Error(\".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\");\n if (t && !this._data) Array.isArray(e) ? this._data = [] : this._isHost(e) || (this._data = {});else if (e && this._data && this._isHost(this._data)) throw new Error(\"Can't merge these send calls\");\n if (t && yi(this._data)) for (const t in e) {\n if (\"bigint\" == typeof e[t] && !e[t].toJSON) throw new Error(\"Cannot serialize BigInt value to json\");\n gi(e, t) && (this._data[t] = e[t]);\n } else {\n if (\"bigint\" == typeof e) throw new Error(\"Cannot send value of type BigInt\");\n \"string\" == typeof e ? (n || this.type(\"form\"), n = this._header[\"content-type\"], n && (n = n.toLowerCase().trim()), this._data = \"application/x-www-form-urlencoded\" === n ? this._data ? `${this._data}&${e}` : e : (this._data || \"\") + e) : this._data = e;\n }\n return !t || this._isHost(e) || n || this.type(\"json\"), this;\n }, bi.prototype.sortQuery = function (e) {\n return this._sort = void 0 === e || e, this;\n }, bi.prototype._finalizeQueryString = function () {\n const e = this._query.join(\"&\");\n if (e && (this.url += (this.url.includes(\"?\") ? \"&\" : \"?\") + e), this._query.length = 0, this._sort) {\n const e = this.url.indexOf(\"?\");\n if (e >= 0) {\n const t = this.url.slice(e + 1).split(\"&\");\n \"function\" == typeof this._sort ? t.sort(this._sort) : t.sort(), this.url = this.url.slice(0, e) + \"?\" + t.join(\"&\");\n }\n }\n }, bi.prototype._appendQueryString = () => {\n console.warn(\"Unsupported\");\n }, bi.prototype._timeoutError = function (e, t, n) {\n if (this._aborted) return;\n const r = new Error(`${e + t}ms exceeded`);\n r.timeout = t, r.code = \"ECONNABORTED\", r.errno = n, this.timedout = !0, this.timedoutError = r, this.abort(), this.callback(r);\n }, bi.prototype._setTimeouts = function () {\n const e = this;\n this._timeout && !this._timer && (this._timer = setTimeout(() => {\n e._timeoutError(\"Timeout of \", e._timeout, \"ETIME\");\n }, this._timeout)), this._responseTimeout && !this._responseTimeoutTimer && (this._responseTimeoutTimer = setTimeout(() => {\n e._timeoutError(\"Response timeout of \", e._responseTimeout, \"ETIMEDOUT\");\n }, this._responseTimeout));\n };\n const Si = fi;\n var wi = Oi;\n function Oi() {}\n function Pi(e, t) {\n var n = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (!n) {\n if (Array.isArray(e) || (n = function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return Ei(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Ei(e, t);\n }(e)) || t && e && \"number\" == typeof e.length) {\n n && (e = n);\n var r = 0,\n o = function () {};\n return {\n s: o,\n n: function () {\n return r >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[r++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: o\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var i,\n s = !0,\n a = !1;\n return {\n s: function () {\n n = n.call(e);\n },\n n: function () {\n var e = n.next();\n return s = e.done, e;\n },\n e: function (e) {\n a = !0, i = e;\n },\n f: function () {\n try {\n s || null == n.return || n.return();\n } finally {\n if (a) throw i;\n }\n }\n };\n }\n function Ei(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];\n return r;\n }\n function Ai() {\n this._defaults = [];\n }\n Oi.prototype.get = function (e) {\n return this.header[e.toLowerCase()];\n }, Oi.prototype._setHeaderProperties = function (e) {\n const t = e[\"content-type\"] || \"\";\n this.type = Si.type(t);\n const n = Si.params(t);\n for (const e in n) Object.prototype.hasOwnProperty.call(n, e) && (this[e] = n[e]);\n this.links = {};\n try {\n e.link && (this.links = Si.parseLinks(e.link));\n } catch (e) {}\n }, Oi.prototype._setStatusProperties = function (e) {\n const t = Math.trunc(e / 100);\n this.statusCode = e, this.status = this.statusCode, this.statusType = t, this.info = 1 === t, this.ok = 2 === t, this.redirect = 3 === t, this.clientError = 4 === t, this.serverError = 5 === t, this.error = (4 === t || 5 === t) && this.toError(), this.created = 201 === e, this.accepted = 202 === e, this.noContent = 204 === e, this.badRequest = 400 === e, this.unauthorized = 401 === e, this.notAcceptable = 406 === e, this.forbidden = 403 === e, this.notFound = 404 === e, this.unprocessableEntity = 422 === e;\n };\n for (var Ti = 0, Ni = [\"use\", \"on\", \"once\", \"set\", \"query\", \"type\", \"accept\", \"auth\", \"withCredentials\", \"sortQuery\", \"retry\", \"ok\", \"redirects\", \"timeout\", \"buffer\", \"serialize\", \"parse\", \"ca\", \"key\", \"pfx\", \"cert\", \"disableTLSCerts\"]; Ti < Ni.length; Ti++) {\n const e = Ni[Ti];\n Ai.prototype[e] = function () {\n for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++) n[r] = arguments[r];\n return this._defaults.push({\n fn: e,\n args: n\n }), this;\n };\n }\n Ai.prototype._setDefaults = function (e) {\n var t,\n n = Pi(this._defaults);\n try {\n for (n.s(); !(t = n.n()).done;) {\n const n = t.value;\n e[n.fn](...n.args);\n }\n } catch (e) {\n n.e(e);\n } finally {\n n.f();\n }\n };\n var Ci = Ai;\n !function (e, t) {\n function n(e, t) {\n var n = \"undefined\" != typeof Symbol && e[Symbol.iterator] || e[\"@@iterator\"];\n if (!n) {\n if (Array.isArray(e) || (n = function (e, t) {\n if (!e) return;\n if (\"string\" == typeof e) return r(e, t);\n var n = Object.prototype.toString.call(e).slice(8, -1);\n \"Object\" === n && e.constructor && (n = e.constructor.name);\n if (\"Map\" === n || \"Set\" === n) return Array.from(e);\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return r(e, t);\n }(e)) || t && e && \"number\" == typeof e.length) {\n n && (e = n);\n var o = 0,\n i = function () {};\n return {\n s: i,\n n: function () {\n return o >= e.length ? {\n done: !0\n } : {\n done: !1,\n value: e[o++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: i\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var s,\n a = !0,\n u = !1;\n return {\n s: function () {\n n = n.call(e);\n },\n n: function () {\n var e = n.next();\n return a = e.done, e;\n },\n e: function (e) {\n u = !0, s = e;\n },\n f: function () {\n try {\n a || null == n.return || n.return();\n } finally {\n if (u) throw s;\n }\n }\n };\n }\n function r(e, t) {\n (null == t || t > e.length) && (t = e.length);\n for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n];\n return r;\n }\n let o;\n \"undefined\" != typeof window ? o = window : \"undefined\" == typeof self ? (console.warn(\"Using browser-only version of superagent in non-browser environment\"), o = void 0) : o = self;\n const i = Pn.exports,\n s = En,\n a = hi,\n u = mi,\n c = fi.isObject,\n l = fi.mixin,\n p = fi.hasOwn,\n h = wi,\n f = Ci;\n function d() {}\n e.exports = function (e, n) {\n return \"function\" == typeof n ? new t.Request(\"GET\", e).end(n) : 1 === arguments.length ? new t.Request(\"GET\", e) : new t.Request(e, n);\n };\n const y = t = e.exports;\n t.Request = w, y.getXHR = () => {\n if (o.XMLHttpRequest) return new o.XMLHttpRequest();\n throw new Error(\"Browser-only version of superagent could not find XHR\");\n };\n const g = \"\".trim ? e => e.trim() : e => e.replace(/(^\\s*|\\s*$)/g, \"\");\n function m(e) {\n if (!c(e)) return e;\n const t = [];\n for (const n in e) p(e, n) && b(t, n, e[n]);\n return t.join(\"&\");\n }\n function b(e, t, r) {\n if (void 0 !== r) if (null !== r) {\n if (Array.isArray(r)) {\n var o,\n i = n(r);\n try {\n for (i.s(); !(o = i.n()).done;) {\n b(e, t, o.value);\n }\n } catch (e) {\n i.e(e);\n } finally {\n i.f();\n }\n } else if (c(r)) for (const n in r) p(r, n) && b(e, `${t}[${n}]`, r[n]);else e.push(encodeURI(t) + \"=\" + encodeURIComponent(r));\n } else e.push(encodeURI(t));\n }\n function v(e) {\n const t = {},\n n = e.split(\"&\");\n let r, o;\n for (let e = 0, i = n.length; e < i; ++e) r = n[e], o = r.indexOf(\"=\"), -1 === o ? t[decodeURIComponent(r)] = \"\" : t[decodeURIComponent(r.slice(0, o))] = decodeURIComponent(r.slice(o + 1));\n return t;\n }\n function _(e) {\n return /[/+]json($|[^-\\w])/i.test(e);\n }\n function S(e) {\n this.req = e, this.xhr = this.req.xhr, this.text = \"HEAD\" !== this.req.method && (\"\" === this.xhr.responseType || \"text\" === this.xhr.responseType) || void 0 === this.xhr.responseType ? this.xhr.responseText : null, this.statusText = this.req.xhr.statusText;\n let t = this.xhr.status;\n 1223 === t && (t = 204), this._setStatusProperties(t), this.headers = function (e) {\n const t = e.split(/\\r?\\n/),\n n = {};\n let r, o, i, s;\n for (let e = 0, a = t.length; e < a; ++e) o = t[e], r = o.indexOf(\":\"), -1 !== r && (i = o.slice(0, r).toLowerCase(), s = g(o.slice(r + 1)), n[i] = s);\n return n;\n }(this.xhr.getAllResponseHeaders()), this.header = this.headers, this.header[\"content-type\"] = this.xhr.getResponseHeader(\"content-type\"), this._setHeaderProperties(this.header), null === this.text && e._responseType ? this.body = this.xhr.response : this.body = \"HEAD\" === this.req.method ? null : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n function w(e, t) {\n const n = this;\n this._query = this._query || [], this.method = e, this.url = t, this.header = {}, this._header = {}, this.on(\"end\", () => {\n let e,\n t = null,\n r = null;\n try {\n r = new S(n);\n } catch (e) {\n return t = new Error(\"Parser is unable to parse the response\"), t.parse = !0, t.original = e, n.xhr ? (t.rawResponse = void 0 === n.xhr.responseType ? n.xhr.responseText : n.xhr.response, t.status = n.xhr.status ? n.xhr.status : null, t.statusCode = t.status) : (t.rawResponse = null, t.status = null), n.callback(t);\n }\n n.emit(\"response\", r);\n try {\n n._isResponseOK(r) || (e = new Error(r.statusText || r.text || \"Unsuccessful HTTP response\"));\n } catch (t) {\n e = t;\n }\n e ? (e.original = t, e.response = r, e.status = e.status || r.status, n.callback(e, r)) : n.callback(null, r);\n });\n }\n y.serializeObject = m, y.parseString = v, y.types = {\n html: \"text/html\",\n json: \"application/json\",\n xml: \"text/xml\",\n urlencoded: \"application/x-www-form-urlencoded\",\n form: \"application/x-www-form-urlencoded\",\n \"form-data\": \"application/x-www-form-urlencoded\"\n }, y.serialize = {\n \"application/x-www-form-urlencoded\": a.stringify,\n \"application/json\": s\n }, y.parse = {\n \"application/x-www-form-urlencoded\": v,\n \"application/json\": JSON.parse\n }, l(S.prototype, h.prototype), S.prototype._parseBody = function (e) {\n let t = y.parse[this.type];\n return this.req._parser ? this.req._parser(this, e) : (!t && _(this.type) && (t = y.parse[\"application/json\"]), t && e && (e.length > 0 || e instanceof Object) ? t(e) : null);\n }, S.prototype.toError = function () {\n const e = this.req,\n t = e.method,\n n = e.url,\n r = `cannot ${t} ${n} (${this.status})`,\n o = new Error(r);\n return o.status = this.status, o.method = t, o.url = n, o;\n }, y.Response = S, i(w.prototype), l(w.prototype, u.prototype), w.prototype.type = function (e) {\n return this.set(\"Content-Type\", y.types[e] || e), this;\n }, w.prototype.accept = function (e) {\n return this.set(\"Accept\", y.types[e] || e), this;\n }, w.prototype.auth = function (e, t, n) {\n 1 === arguments.length && (t = \"\"), \"object\" == typeof t && null !== t && (n = t, t = \"\"), n || (n = {\n type: \"function\" == typeof btoa ? \"basic\" : \"auto\"\n });\n const r = n.encoder ? n.encoder : e => {\n if (\"function\" == typeof btoa) return btoa(e);\n throw new Error(\"Cannot use basic auth, btoa is not a function\");\n };\n return this._auth(e, t, n, r);\n }, w.prototype.query = function (e) {\n return \"string\" != typeof e && (e = m(e)), e && this._query.push(e), this;\n }, w.prototype.attach = function (e, t, n) {\n if (t) {\n if (this._data) throw new Error(\"superagent can't mix .send() and .attach()\");\n this._getFormData().append(e, t, n || t.name);\n }\n return this;\n }, w.prototype._getFormData = function () {\n return this._formData || (this._formData = new o.FormData()), this._formData;\n }, w.prototype.callback = function (e, t) {\n if (this._shouldRetry(e, t)) return this._retry();\n const n = this._callback;\n this.clearTimeout(), e && (this._maxRetries && (e.retries = this._retries - 1), this.emit(\"error\", e)), n(e, t);\n }, w.prototype.crossDomainError = function () {\n const e = new Error(\"Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.\");\n e.crossDomain = !0, e.status = this.status, e.method = this.method, e.url = this.url, this.callback(e);\n }, w.prototype.agent = function () {\n return console.warn(\"This is not supported in browser version of superagent\"), this;\n }, w.prototype.ca = w.prototype.agent, w.prototype.buffer = w.prototype.ca, w.prototype.write = () => {\n throw new Error(\"Streaming is not supported in browser version of superagent\");\n }, w.prototype.pipe = w.prototype.write, w.prototype._isHost = function (e) {\n return e && \"object\" == typeof e && !Array.isArray(e) && \"[object Object]\" !== Object.prototype.toString.call(e);\n }, w.prototype.end = function (e) {\n this._endCalled && console.warn(\"Warning: .end() was called twice. This is not supported in superagent\"), this._endCalled = !0, this._callback = e || d, this._finalizeQueryString(), this._end();\n }, w.prototype._setUploadTimeout = function () {\n const e = this;\n this._uploadTimeout && !this._uploadTimeoutTimer && (this._uploadTimeoutTimer = setTimeout(() => {\n e._timeoutError(\"Upload timeout of \", e._uploadTimeout, \"ETIMEDOUT\");\n }, this._uploadTimeout));\n }, w.prototype._end = function () {\n if (this._aborted) return this.callback(new Error(\"The request has been aborted even before .end() was called\"));\n const e = this;\n this.xhr = y.getXHR();\n const t = this.xhr;\n let n = this._formData || this._data;\n this._setTimeouts(), t.addEventListener(\"readystatechange\", () => {\n const n = t.readyState;\n if (n >= 2 && e._responseTimeoutTimer && clearTimeout(e._responseTimeoutTimer), 4 !== n) return;\n let r;\n try {\n r = t.status;\n } catch (e) {\n r = 0;\n }\n if (!r) {\n if (e.timedout || e._aborted) return;\n return e.crossDomainError();\n }\n e.emit(\"end\");\n });\n const r = (t, n) => {\n n.total > 0 && (n.percent = n.loaded / n.total * 100, 100 === n.percent && clearTimeout(e._uploadTimeoutTimer)), n.direction = t, e.emit(\"progress\", n);\n };\n if (this.hasListeners(\"progress\")) try {\n t.addEventListener(\"progress\", r.bind(null, \"download\")), t.upload && t.upload.addEventListener(\"progress\", r.bind(null, \"upload\"));\n } catch (e) {}\n t.upload && this._setUploadTimeout();\n try {\n this.username && this.password ? t.open(this.method, this.url, !0, this.username, this.password) : t.open(this.method, this.url, !0);\n } catch (e) {\n return this.callback(e);\n }\n if (this._withCredentials && (t.withCredentials = !0), !this._formData && \"GET\" !== this.method && \"HEAD\" !== this.method && \"string\" != typeof n && !this._isHost(n)) {\n const e = this._header[\"content-type\"];\n let t = this._serializer || y.serialize[e ? e.split(\";\")[0] : \"\"];\n !t && _(e) && (t = y.serialize[\"application/json\"]), t && (n = t(n));\n }\n for (const e in this.header) null !== this.header[e] && p(this.header, e) && t.setRequestHeader(e, this.header[e]);\n this._responseType && (t.responseType = this._responseType), this.emit(\"request\", this), t.send(void 0 === n ? null : n);\n }, y.agent = () => new f();\n for (var O = 0, P = [\"GET\", \"POST\", \"OPTIONS\", \"PATCH\", \"PUT\", \"DELETE\"]; O < P.length; O++) {\n const e = P[O];\n f.prototype[e.toLowerCase()] = function (t, n) {\n const r = new y.Request(e, t);\n return this._setDefaults(r), n && r.end(n), r;\n };\n }\n function E(e, t, n) {\n const r = y(\"DELETE\", e);\n return \"function\" == typeof t && (n = t, t = null), t && r.send(t), n && r.end(n), r;\n }\n f.prototype.del = f.prototype.delete, y.get = (e, t, n) => {\n const r = y(\"GET\", e);\n return \"function\" == typeof t && (n = t, t = null), t && r.query(t), n && r.end(n), r;\n }, y.head = (e, t, n) => {\n const r = y(\"HEAD\", e);\n return \"function\" == typeof t && (n = t, t = null), t && r.query(t), n && r.end(n), r;\n }, y.options = (e, t, n) => {\n const r = y(\"OPTIONS\", e);\n return \"function\" == typeof t && (n = t, t = null), t && r.send(t), n && r.end(n), r;\n }, y.del = E, y.delete = E, y.patch = (e, t, n) => {\n const r = y(\"PATCH\", e);\n return \"function\" == typeof t && (n = t, t = null), t && r.send(t), n && r.end(n), r;\n }, y.post = (e, t, n) => {\n const r = y(\"POST\", e);\n return \"function\" == typeof t && (n = t, t = null), t && r.send(t), n && r.end(n), r;\n }, y.put = (e, t, n) => {\n const r = y(\"PUT\", e);\n return \"function\" == typeof t && (n = t, t = null), t && r.send(t), n && r.end(n), r;\n };\n }(On, On.exports);\n var ki = On.exports;\n function Mi(e) {\n var t = new Date().getTime(),\n n = new Date().toISOString(),\n r = console && console.log ? console : window && window.console && window.console.log ? window.console : console;\n r.log(\"<<<<<\"), r.log(\"[\".concat(n, \"]\"), \"\\n\", e.url, \"\\n\", e.qs), r.log(\"-----\"), e.on(\"response\", function (n) {\n var o = new Date().getTime() - t,\n i = new Date().toISOString();\n r.log(\">>>>>>\"), r.log(\"[\".concat(i, \" / \").concat(o, \"]\"), \"\\n\", e.url, \"\\n\", e.qs, \"\\n\", n.text), r.log(\"-----\");\n });\n }\n function ji(e, t, n) {\n var r = this;\n this._config.logVerbosity && (e = e.use(Mi)), this._config.proxy && this._modules.proxy && (e = this._modules.proxy.call(this, e)), this._config.keepAlive && this._modules.keepAlive && (e = this._modules.keepAlive(e));\n var o = e;\n if (t.abortSignal) var i = t.abortSignal.subscribe(function () {\n o.abort(), i();\n });\n return !0 === t.forceBuffered ? o = \"undefined\" == typeof Blob ? o.buffer().responseType(\"arraybuffer\") : o.responseType(\"arraybuffer\") : !1 === t.forceBuffered && (o = o.buffer(!1)), (o = o.timeout(t.timeout)).on(\"abort\", function () {\n return n({\n category: k.PNUnknownCategory,\n error: !0,\n operation: t.operation,\n errorData: new Error(\"Aborted\")\n }, null);\n }), o.end(function (e, o) {\n var i,\n s = {};\n if (s.error = null !== e, s.operation = t.operation, o && o.status && (s.statusCode = o.status), e) {\n if (e.response && e.response.text && !r._config.logVerbosity) try {\n s.errorData = JSON.parse(e.response.text);\n } catch (t) {\n s.errorData = e;\n } else s.errorData = e;\n return s.category = r._detectErrorCategory(e), n(s, null);\n }\n if (t.ignoreBody) i = {\n headers: o.headers,\n redirects: o.redirects,\n response: o\n };else try {\n i = JSON.parse(o.text);\n } catch (e) {\n return s.errorData = o, s.error = !0, n(s, null);\n }\n return i.error && 1 === i.error && i.status && i.message && i.service ? (s.errorData = i, s.statusCode = i.status, s.error = !0, s.category = r._detectErrorCategory(s), n(s, null)) : (i.error && i.error.message && (s.errorData = i.error), n(s, i));\n }), o;\n }\n function Ri(e, t, n) {\n return o(this, void 0, void 0, function () {\n var r;\n return i(this, function (o) {\n switch (o.label) {\n case 0:\n return r = ki.post(e), t.forEach(function (e) {\n var t = e.key,\n n = e.value;\n r = r.field(t, n);\n }), r.attach(\"file\", n, {\n contentType: \"application/octet-stream\"\n }), [4, r];\n case 1:\n return [2, o.sent()];\n }\n });\n });\n }\n function xi(e, t, n) {\n var r = ki.get(this.getStandardOrigin() + t.url).set(t.headers).query(e);\n return ji.call(this, r, t, n);\n }\n function Ui(e, t, n) {\n var r = ki.get(this.getStandardOrigin() + t.url).set(t.headers).query(e);\n return ji.call(this, r, t, n);\n }\n function Ii(e, t, n, r) {\n var o = ki.post(this.getStandardOrigin() + n.url).query(e).set(n.headers).send(t);\n return ji.call(this, o, n, r);\n }\n function Di(e, t, n, r) {\n var o = ki.patch(this.getStandardOrigin() + n.url).query(e).set(n.headers).send(t);\n return ji.call(this, o, n, r);\n }\n function Fi(e, t, n) {\n var r = ki.delete(this.getStandardOrigin() + t.url).set(t.headers).query(e);\n return ji.call(this, r, t, n);\n }\n function Li(e, t) {\n var n = new Uint8Array(e.byteLength + t.byteLength);\n return n.set(new Uint8Array(e), 0), n.set(new Uint8Array(t), e.byteLength), n.buffer;\n }\n var Gi,\n Ki = function () {\n function e() {}\n return Object.defineProperty(e.prototype, \"algo\", {\n get: function () {\n return \"aes-256-cbc\";\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.encrypt = function (e, t) {\n return o(this, void 0, void 0, function () {\n var n;\n return i(this, function (r) {\n switch (r.label) {\n case 0:\n return [4, this.getKey(e)];\n case 1:\n if (n = r.sent(), t instanceof ArrayBuffer) return [2, this.encryptArrayBuffer(n, t)];\n if (\"string\" == typeof t) return [2, this.encryptString(n, t)];\n throw new Error(\"Cannot encrypt this file. In browsers file encryption supports only string or ArrayBuffer\");\n }\n });\n });\n }, e.prototype.decrypt = function (e, t) {\n return o(this, void 0, void 0, function () {\n var n;\n return i(this, function (r) {\n switch (r.label) {\n case 0:\n return [4, this.getKey(e)];\n case 1:\n if (n = r.sent(), t instanceof ArrayBuffer) return [2, this.decryptArrayBuffer(n, t)];\n if (\"string\" == typeof t) return [2, this.decryptString(n, t)];\n throw new Error(\"Cannot decrypt this file. In browsers file decryption supports only string or ArrayBuffer\");\n }\n });\n });\n }, e.prototype.encryptFile = function (e, t, n) {\n return o(this, void 0, void 0, function () {\n var r, o, s;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n if (t.data.byteLength <= 0) throw new Error(\"encryption error. empty content\");\n return [4, this.getKey(e)];\n case 1:\n return r = i.sent(), [4, t.data.arrayBuffer()];\n case 2:\n return o = i.sent(), [4, this.encryptArrayBuffer(r, o)];\n case 3:\n return s = i.sent(), [2, n.create({\n name: t.name,\n mimeType: \"application/octet-stream\",\n data: s\n })];\n }\n });\n });\n }, e.prototype.decryptFile = function (e, t, n) {\n return o(this, void 0, void 0, function () {\n var r, o, s;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return [4, this.getKey(e)];\n case 1:\n return r = i.sent(), [4, t.data.arrayBuffer()];\n case 2:\n return o = i.sent(), [4, this.decryptArrayBuffer(r, o)];\n case 3:\n return s = i.sent(), [2, n.create({\n name: t.name,\n data: s\n })];\n }\n });\n });\n }, e.prototype.getKey = function (t) {\n return o(this, void 0, void 0, function () {\n var n, r, o;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return [4, crypto.subtle.digest(\"SHA-256\", e.encoder.encode(t))];\n case 1:\n return n = i.sent(), r = Array.from(new Uint8Array(n)).map(function (e) {\n return e.toString(16).padStart(2, \"0\");\n }).join(\"\"), o = e.encoder.encode(r.slice(0, 32)).buffer, [2, crypto.subtle.importKey(\"raw\", o, \"AES-CBC\", !0, [\"encrypt\", \"decrypt\"])];\n }\n });\n });\n }, e.prototype.encryptArrayBuffer = function (e, t) {\n return o(this, void 0, void 0, function () {\n var n, r, o;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return n = crypto.getRandomValues(new Uint8Array(16)), r = Li, o = [n.buffer], [4, crypto.subtle.encrypt({\n name: \"AES-CBC\",\n iv: n\n }, e, t)];\n case 1:\n return [2, r.apply(void 0, o.concat([i.sent()]))];\n }\n });\n });\n }, e.prototype.decryptArrayBuffer = function (t, n) {\n return o(this, void 0, void 0, function () {\n var r;\n return i(this, function (o) {\n switch (o.label) {\n case 0:\n if (r = n.slice(0, 16), n.slice(e.IV_LENGTH).byteLength <= 0) throw new Error(\"decryption error: empty content\");\n return [4, crypto.subtle.decrypt({\n name: \"AES-CBC\",\n iv: r\n }, t, n.slice(e.IV_LENGTH))];\n case 1:\n return [2, o.sent()];\n }\n });\n });\n }, e.prototype.encryptString = function (t, n) {\n return o(this, void 0, void 0, function () {\n var r, o, s, a;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return r = crypto.getRandomValues(new Uint8Array(16)), o = e.encoder.encode(n).buffer, [4, crypto.subtle.encrypt({\n name: \"AES-CBC\",\n iv: r\n }, t, o)];\n case 1:\n return s = i.sent(), a = Li(r.buffer, s), [2, e.decoder.decode(a)];\n }\n });\n });\n }, e.prototype.decryptString = function (t, n) {\n return o(this, void 0, void 0, function () {\n var r, o, s, a;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return r = e.encoder.encode(n).buffer, o = r.slice(0, 16), s = r.slice(16), [4, crypto.subtle.decrypt({\n name: \"AES-CBC\",\n iv: o\n }, t, s)];\n case 1:\n return a = i.sent(), [2, e.decoder.decode(a)];\n }\n });\n });\n }, e.IV_LENGTH = 16, e.encoder = new TextEncoder(), e.decoder = new TextDecoder(), e;\n }(),\n Bi = (Gi = function () {\n function e(e) {\n if (e instanceof File) this.data = e, this.name = this.data.name, this.mimeType = this.data.type;else if (e.data) {\n var t = e.data;\n this.data = new File([t], e.name, {\n type: e.mimeType\n }), this.name = e.name, e.mimeType && (this.mimeType = e.mimeType);\n }\n if (void 0 === this.data) throw new Error(\"Couldn't construct a file out of supplied options.\");\n if (void 0 === this.name) throw new Error(\"Couldn't guess filename out of the options. Please provide one.\");\n }\n return e.create = function (e) {\n return new this(e);\n }, e.prototype.toBuffer = function () {\n return o(this, void 0, void 0, function () {\n return i(this, function (e) {\n throw new Error(\"This feature is only supported in Node.js environments.\");\n });\n });\n }, e.prototype.toStream = function () {\n return o(this, void 0, void 0, function () {\n return i(this, function (e) {\n throw new Error(\"This feature is only supported in Node.js environments.\");\n });\n });\n }, e.prototype.toFileUri = function () {\n return o(this, void 0, void 0, function () {\n return i(this, function (e) {\n throw new Error(\"This feature is only supported in react native environments.\");\n });\n });\n }, e.prototype.toBlob = function () {\n return o(this, void 0, void 0, function () {\n return i(this, function (e) {\n return [2, this.data];\n });\n });\n }, e.prototype.toArrayBuffer = function () {\n return o(this, void 0, void 0, function () {\n var e = this;\n return i(this, function (t) {\n return [2, new Promise(function (t, n) {\n var r = new FileReader();\n r.addEventListener(\"load\", function () {\n if (r.result instanceof ArrayBuffer) return t(r.result);\n }), r.addEventListener(\"error\", function () {\n n(r.error);\n }), r.readAsArrayBuffer(e.data);\n })];\n });\n });\n }, e.prototype.toString = function () {\n return o(this, void 0, void 0, function () {\n var e = this;\n return i(this, function (t) {\n return [2, new Promise(function (t, n) {\n var r = new FileReader();\n r.addEventListener(\"load\", function () {\n if (\"string\" == typeof r.result) return t(r.result);\n }), r.addEventListener(\"error\", function () {\n n(r.error);\n }), r.readAsBinaryString(e.data);\n })];\n });\n });\n }, e.prototype.toFile = function () {\n return o(this, void 0, void 0, function () {\n return i(this, function (e) {\n return [2, this.data];\n });\n });\n }, e;\n }(), Gi.supportsFile = \"undefined\" != typeof File, Gi.supportsBlob = \"undefined\" != typeof Blob, Gi.supportsArrayBuffer = \"undefined\" != typeof ArrayBuffer, Gi.supportsBuffer = !1, Gi.supportsStream = !1, Gi.supportsString = !0, Gi.supportsEncryptFile = !0, Gi.supportsFileUri = !1, Gi),\n Hi = function () {\n function e(e) {\n this.config = e, this.cryptor = new T({\n config: e\n }), this.fileCryptor = new Ki();\n }\n return Object.defineProperty(e.prototype, \"identifier\", {\n get: function () {\n return \"\";\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.encrypt = function (e) {\n var t = \"string\" == typeof e ? e : new TextDecoder().decode(e);\n return {\n data: this.cryptor.encrypt(t),\n metadata: null\n };\n }, e.prototype.decrypt = function (e) {\n var t = \"string\" == typeof e.data ? e.data : b(e.data);\n return this.cryptor.decrypt(t);\n }, e.prototype.encryptFile = function (e, t) {\n var n;\n return o(this, void 0, void 0, function () {\n return i(this, function (r) {\n return [2, this.fileCryptor.encryptFile(null === (n = this.config) || void 0 === n ? void 0 : n.cipherKey, e, t)];\n });\n });\n }, e.prototype.decryptFile = function (e, t) {\n return o(this, void 0, void 0, function () {\n return i(this, function (n) {\n return [2, this.fileCryptor.decryptFile(this.config.cipherKey, e, t)];\n });\n });\n }, e;\n }(),\n qi = function () {\n function e(e) {\n this.cipherKey = e.cipherKey, this.CryptoJS = E, this.encryptedKey = this.CryptoJS.SHA256(this.cipherKey);\n }\n return Object.defineProperty(e.prototype, \"algo\", {\n get: function () {\n return \"AES-CBC\";\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"identifier\", {\n get: function () {\n return \"ACRH\";\n },\n enumerable: !1,\n configurable: !0\n }), e.prototype.getIv = function () {\n return crypto.getRandomValues(new Uint8Array(e.BLOCK_SIZE));\n }, e.prototype.getKey = function () {\n return o(this, void 0, void 0, function () {\n var t, n;\n return i(this, function (r) {\n switch (r.label) {\n case 0:\n return t = e.encoder.encode(this.cipherKey), [4, crypto.subtle.digest(\"SHA-256\", t.buffer)];\n case 1:\n return n = r.sent(), [2, crypto.subtle.importKey(\"raw\", n, this.algo, !0, [\"encrypt\", \"decrypt\"])];\n }\n });\n });\n }, e.prototype.encrypt = function (t) {\n if (0 === (\"string\" == typeof t ? t : e.decoder.decode(t)).length) throw new Error(\"encryption error. empty content\");\n var n = this.getIv();\n return {\n metadata: n,\n data: m(this.CryptoJS.AES.encrypt(t, this.encryptedKey, {\n iv: this.bufferToWordArray(n),\n mode: this.CryptoJS.mode.CBC\n }).ciphertext.toString(this.CryptoJS.enc.Base64))\n };\n }, e.prototype.decrypt = function (t) {\n var n = this.bufferToWordArray(new Uint8ClampedArray(t.metadata)),\n r = this.bufferToWordArray(new Uint8ClampedArray(t.data));\n return e.encoder.encode(this.CryptoJS.AES.decrypt({\n ciphertext: r\n }, this.encryptedKey, {\n iv: n,\n mode: this.CryptoJS.mode.CBC\n }).toString(this.CryptoJS.enc.Utf8)).buffer;\n }, e.prototype.encryptFileData = function (e) {\n return o(this, void 0, void 0, function () {\n var t, n, r;\n return i(this, function (o) {\n switch (o.label) {\n case 0:\n return [4, this.getKey()];\n case 1:\n return t = o.sent(), n = this.getIv(), r = {}, [4, crypto.subtle.encrypt({\n name: this.algo,\n iv: n\n }, t, e)];\n case 2:\n return [2, (r.data = o.sent(), r.metadata = n, r)];\n }\n });\n });\n }, e.prototype.decryptFileData = function (e) {\n return o(this, void 0, void 0, function () {\n var t;\n return i(this, function (n) {\n switch (n.label) {\n case 0:\n return [4, this.getKey()];\n case 1:\n return t = n.sent(), [2, crypto.subtle.decrypt({\n name: this.algo,\n iv: e.metadata\n }, t, e.data)];\n }\n });\n });\n }, e.prototype.bufferToWordArray = function (e) {\n var t,\n n = [];\n for (t = 0; t < e.length; t += 1) n[t / 4 | 0] |= e[t] << 24 - 8 * t;\n return this.CryptoJS.lib.WordArray.create(n, e.length);\n }, e.BLOCK_SIZE = 16, e.encoder = new TextEncoder(), e.decoder = new TextDecoder(), e;\n }(),\n zi = function () {\n function e(e) {\n var t;\n this.defaultCryptor = e.default, this.cryptors = null !== (t = e.cryptors) && void 0 !== t ? t : [];\n }\n return e.legacyCryptoModule = function (e) {\n var t;\n return new this({\n default: new Hi({\n cipherKey: e.cipherKey,\n useRandomIVs: null === (t = e.useRandomIVs) || void 0 === t || t\n }),\n cryptors: [new qi({\n cipherKey: e.cipherKey\n })]\n });\n }, e.aesCbcCryptoModule = function (e) {\n var t;\n return new this({\n default: new qi({\n cipherKey: e.cipherKey\n }),\n cryptors: [new Hi({\n cipherKey: e.cipherKey,\n useRandomIVs: null === (t = e.useRandomIVs) || void 0 === t || t\n })]\n });\n }, e.withDefaultCryptor = function (e) {\n return new this({\n default: e\n });\n }, e.prototype.getAllCryptors = function () {\n return u([this.defaultCryptor], a(this.cryptors), !1);\n }, e.prototype.encrypt = function (e) {\n var t = this.defaultCryptor.encrypt(e);\n if (!t.metadata) return t.data;\n var n = this.getHeaderData(t);\n return this.concatArrayBuffer(n, t.data);\n }, e.prototype.decrypt = function (e) {\n var t = \"string\" == typeof e ? m(e) : e,\n n = Vi.tryParse(t),\n r = this.getCryptor(n),\n o = n.length > 0 ? t.slice(n.length - n.metadataLength, n.length) : null;\n if (t.slice(n.length).byteLength <= 0) throw new Error(\"decryption error. empty content\");\n return r.decrypt({\n data: t.slice(n.length),\n metadata: o\n });\n }, e.prototype.encryptFile = function (e, t) {\n return o(this, void 0, void 0, function () {\n var n, r;\n return i(this, function (o) {\n switch (o.label) {\n case 0:\n return this.defaultCryptor.identifier === Vi.LEGACY_IDENTIFIER ? [2, this.defaultCryptor.encryptFile(e, t)] : [4, this.getFileData(e.data)];\n case 1:\n return n = o.sent(), [4, this.defaultCryptor.encryptFileData(n)];\n case 2:\n return r = o.sent(), [2, t.create({\n name: e.name,\n mimeType: \"application/octet-stream\",\n data: this.concatArrayBuffer(this.getHeaderData(r), r.data)\n })];\n }\n });\n });\n }, e.prototype.decryptFile = function (t, n) {\n return o(this, void 0, void 0, function () {\n var r, o, s, a, u, c, l, p;\n return i(this, function (i) {\n switch (i.label) {\n case 0:\n return [4, t.data.arrayBuffer()];\n case 1:\n return r = i.sent(), o = Vi.tryParse(r), (null == (s = this.getCryptor(o)) ? void 0 : s.identifier) === e.LEGACY_IDENTIFIER ? [2, s.decryptFile(t, n)] : [4, this.getFileData(r)];\n case 2:\n return a = i.sent(), u = a.slice(o.length - o.metadataLength, o.length), l = (c = n).create, p = {\n name: t.name\n }, [4, this.defaultCryptor.decryptFileData({\n data: r.slice(o.length),\n metadata: u\n })];\n case 3:\n return [2, l.apply(c, [(p.data = i.sent(), p)])];\n }\n });\n });\n }, e.prototype.getCryptor = function (e) {\n if (\"\" === e) {\n var t = this.getAllCryptors().find(function (e) {\n return \"\" === e.identifier;\n });\n if (t) return t;\n throw new Error(\"unknown cryptor error\");\n }\n if (e instanceof Wi) return this.getCryptorFromId(e.identifier);\n }, e.prototype.getCryptorFromId = function (e) {\n var t = this.getAllCryptors().find(function (t) {\n return e === t.identifier;\n });\n if (t) return t;\n throw Error(\"unknown cryptor error\");\n }, e.prototype.concatArrayBuffer = function (e, t) {\n var n = new Uint8Array(e.byteLength + t.byteLength);\n return n.set(new Uint8Array(e), 0), n.set(new Uint8Array(t), e.byteLength), n.buffer;\n }, e.prototype.getHeaderData = function (e) {\n if (e.metadata) {\n var t = Vi.from(this.defaultCryptor.identifier, e.metadata),\n n = new Uint8Array(t.length),\n r = 0;\n return n.set(t.data, r), r += t.length - e.metadata.byteLength, n.set(new Uint8Array(e.metadata), r), n.buffer;\n }\n }, e.prototype.getFileData = function (t) {\n return o(this, void 0, void 0, function () {\n return i(this, function (n) {\n switch (n.label) {\n case 0:\n return t instanceof Blob ? [4, t.arrayBuffer()] : [3, 2];\n case 1:\n return [2, n.sent()];\n case 2:\n if (t instanceof ArrayBuffer) return [2, t];\n if (\"string\" == typeof t) return [2, e.encoder.encode(t)];\n throw new Error(\"Cannot decrypt/encrypt file. In browsers file encrypt/decrypt supported for string, ArrayBuffer or Blob\");\n }\n });\n });\n }, e.LEGACY_IDENTIFIER = \"\", e.encoder = new TextEncoder(), e.decoder = new TextDecoder(), e;\n }(),\n Vi = function () {\n function e() {}\n return e.from = function (t, n) {\n if (t !== e.LEGACY_IDENTIFIER) return new Wi(t, n.byteLength);\n }, e.tryParse = function (t) {\n var n = new Uint8Array(t),\n r = \"\";\n if (n.byteLength >= 4 && (r = n.slice(0, 4), this.decoder.decode(r) !== e.SENTINEL)) return \"\";\n if (!(n.byteLength >= 5)) throw new Error(\"decryption error. invalid header version\");\n if (n[4] > e.MAX_VERSION) throw new Error(\"unknown cryptor error\");\n var o = \"\",\n i = 5 + e.IDENTIFIER_LENGTH;\n if (!(n.byteLength >= i)) throw new Error(\"decryption error. invalid crypto identifier\");\n o = n.slice(5, i);\n var s = null;\n if (!(n.byteLength >= i + 1)) throw new Error(\"decryption error. invalid metadata length\");\n return s = n[i], i += 1, 255 === s && n.byteLength >= i + 2 && (s = new Uint16Array(n.slice(i, i + 2)).reduce(function (e, t) {\n return (e << 8) + t;\n }, 0), i += 2), new Wi(this.decoder.decode(o), s);\n }, e.SENTINEL = \"PNED\", e.LEGACY_IDENTIFIER = \"\", e.IDENTIFIER_LENGTH = 4, e.VERSION = 1, e.MAX_VERSION = 1, e.decoder = new TextDecoder(), e;\n }(),\n Wi = function () {\n function e(e, t) {\n this._identifier = e, this._metadataLength = t;\n }\n return Object.defineProperty(e.prototype, \"identifier\", {\n get: function () {\n return this._identifier;\n },\n set: function (e) {\n this._identifier = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"metadataLength\", {\n get: function () {\n return this._metadataLength;\n },\n set: function (e) {\n this._metadataLength = e;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"version\", {\n get: function () {\n return Vi.VERSION;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"length\", {\n get: function () {\n return Vi.SENTINEL.length + 1 + Vi.IDENTIFIER_LENGTH + (this.metadataLength < 255 ? 1 : 3) + this.metadataLength;\n },\n enumerable: !1,\n configurable: !0\n }), Object.defineProperty(e.prototype, \"data\", {\n get: function () {\n var e = 0,\n t = new Uint8Array(this.length),\n n = new TextEncoder();\n t.set(n.encode(Vi.SENTINEL)), t[e += Vi.SENTINEL.length] = this.version, e++, this.identifier && t.set(n.encode(this.identifier), e), e += Vi.IDENTIFIER_LENGTH;\n var r = this.metadataLength;\n return r < 255 ? t[e] = r : t.set([255, r >> 8, 255 & r], e), t;\n },\n enumerable: !1,\n configurable: !0\n }), e.IDENTIFIER_LENGTH = 4, e.SENTINEL = \"PNED\", e;\n }();\n function Ji(e) {\n if (!navigator || !navigator.sendBeacon) return !1;\n navigator.sendBeacon(e);\n }\n var $i = function (e) {\n function n(t) {\n var n = this,\n r = t.listenToBrowserNetworkEvents,\n o = void 0 === r || r;\n return t.sdkFamily = \"Web\", t.networking = new _n({\n del: Fi,\n get: Ui,\n post: Ii,\n patch: Di,\n sendBeacon: Ji,\n getfile: xi,\n postfile: Ri\n }), t.cbor = new wn(function (e) {\n return Sn(h.decode(e));\n }, m), t.PubNubFile = Bi, t.cryptography = new Ki(), t.initCryptoModule = function (e) {\n return new zi({\n default: new Hi({\n cipherKey: e.cipherKey,\n useRandomIVs: e.useRandomIVs\n }),\n cryptors: [new qi({\n cipherKey: e.cipherKey\n })]\n });\n }, n = e.call(this, t) || this, o && (window.addEventListener(\"offline\", function () {\n n.networkDownDetected();\n }), window.addEventListener(\"online\", function () {\n n.networkUpDetected();\n })), n;\n }\n return t(n, e), n.CryptoModule = zi, n;\n }(vn);\n return $i;\n});","import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, ViewChild, Input, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\n// Boilerplate for applying mixins to MatProgressBar.\nconst _c0 = [\"determinateSpinner\"];\nfunction MatProgressSpinner_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 11);\n i0.ɵɵelement(1, \"circle\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"viewBox\", ctx_r0._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx_r0._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx_r0._strokeCircumference() / 2, \"px\")(\"stroke-width\", ctx_r0._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx_r0._circleRadius());\n }\n}\nconst _MatProgressSpinnerBase = /*#__PURE__*/mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\nconst MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-progress-spinner-default-options', {\n providedIn: 'root',\n factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {\n return {\n diameter: BASE_SIZE\n };\n}\n/**\n * Base reference size of the spinner.\n */\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n */\nconst BASE_STROKE_WIDTH = 10;\nlet MatProgressSpinner = /*#__PURE__*/(() => {\n class MatProgressSpinner extends _MatProgressSpinnerBase {\n constructor(elementRef, animationMode, defaults) {\n super(elementRef);\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n this.mode = this._elementRef.nativeElement.nodeName.toLowerCase() === 'mat-spinner' ? 'indeterminate' : 'determinate';\n this._value = 0;\n this._diameter = BASE_SIZE;\n this._noopAnimations = animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n if (defaults.diameter) {\n this.diameter = defaults.diameter;\n }\n if (defaults.strokeWidth) {\n this.strokeWidth = defaults.strokeWidth;\n }\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(v) {\n this._value = Math.max(0, Math.min(100, coerceNumberProperty(v)));\n }\n /** The diameter of the progress spinner (will set width and height of svg). */\n get diameter() {\n return this._diameter;\n }\n set diameter(size) {\n this._diameter = coerceNumberProperty(size);\n }\n /** Stroke width of the progress spinner. */\n get strokeWidth() {\n return this._strokeWidth ?? this.diameter / 10;\n }\n set strokeWidth(value) {\n this._strokeWidth = coerceNumberProperty(value);\n }\n /** The radius of the spinner, adjusted for stroke width. */\n _circleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n /** The view box of the spinner's svg element. */\n _viewBox() {\n const viewBox = this._circleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n /** The stroke circumference of the svg circle. */\n _strokeCircumference() {\n return 2 * Math.PI * this._circleRadius();\n }\n /** The dash offset of the svg circle. */\n _strokeDashOffset() {\n if (this.mode === 'determinate') {\n return this._strokeCircumference() * (100 - this._value) / 100;\n }\n return null;\n }\n /** Stroke width of the circle in percent. */\n _circleStrokeWidth() {\n return this.strokeWidth / this.diameter * 100;\n }\n static {\n this.ɵfac = function MatProgressSpinner_Factory(t) {\n return new (t || MatProgressSpinner)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatProgressSpinner,\n selectors: [[\"mat-progress-spinner\"], [\"mat-spinner\"]],\n viewQuery: function MatProgressSpinner_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._determinateCircle = _t.first);\n }\n },\n hostAttrs: [\"role\", \"progressbar\", \"tabindex\", \"-1\", 1, \"mat-mdc-progress-spinner\", \"mdc-circular-progress\"],\n hostVars: 16,\n hostBindings: function MatProgressSpinner_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuemin\", 0)(\"aria-valuemax\", 100)(\"aria-valuenow\", ctx.mode === \"determinate\" ? ctx.value : null)(\"mode\", ctx.mode);\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\")(\"--mdc-circular-progress-size\", ctx.diameter + \"px\")(\"--mdc-circular-progress-active-indicator-width\", ctx.diameter + \"px\");\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations)(\"mdc-circular-progress--indeterminate\", ctx.mode === \"indeterminate\");\n }\n },\n inputs: {\n color: \"color\",\n mode: \"mode\",\n value: \"value\",\n diameter: \"diameter\",\n strokeWidth: \"strokeWidth\"\n },\n exportAs: [\"matProgressSpinner\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 14,\n vars: 11,\n consts: [[\"circle\", \"\"], [\"determinateSpinner\", \"\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__determinate-container\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__determinate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\", 1, \"mdc-circular-progress__determinate-circle\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__indeterminate-container\"], [1, \"mdc-circular-progress__spinner-layer\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-left\"], [3, \"ngTemplateOutlet\"], [1, \"mdc-circular-progress__gap-patch\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-right\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__indeterminate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n template: function MatProgressSpinner_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatProgressSpinner_ng_template_0_Template, 2, 8, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 2, 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(4, \"svg\", 3);\n i0.ɵɵelement(5, \"circle\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(6, \"div\", 5)(7, \"div\", 6)(8, \"div\", 7);\n i0.ɵɵelementContainer(9, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"div\", 9);\n i0.ɵɵelementContainer(11, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"div\", 10);\n i0.ɵɵelementContainer(13, 8);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const circle_r2 = i0.ɵɵreference(1);\n i0.ɵɵadvance(4);\n i0.ɵɵattribute(\"viewBox\", ctx._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx._strokeDashOffset(), \"px\")(\"stroke-width\", ctx._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx._circleRadius());\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n }\n },\n dependencies: [i1.NgTemplateOutlet],\n styles: [\"@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatProgressSpinner;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @deprecated Import Progress Spinner instead. Note that the\n * `mat-spinner` selector isn't deprecated.\n * @breaking-change 16.0.0\n */\n// tslint:disable-next-line:variable-name\nconst MatSpinner = MatProgressSpinner;\nlet MatProgressSpinnerModule = /*#__PURE__*/(() => {\n class MatProgressSpinnerModule {\n static {\n this.ɵfac = function MatProgressSpinnerModule_Factory(t) {\n return new (t || MatProgressSpinnerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatProgressSpinnerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule]\n });\n }\n }\n return MatProgressSpinnerModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinner, MatProgressSpinnerModule, MatSpinner };\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/platform';\nimport { _getShadowRoot } from '@angular/cdk/platform';\nimport * as i2 from '@angular/cdk/scrolling';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { CSP_NONCE, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS } from '@angular/material/progress-spinner';\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS as MAT_LEGACY_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY as MAT_LEGACY_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY } from '@angular/material/progress-spinner';\nimport { Subscription } from 'rxjs';\n\n/**\n * Base reference size of the spinner.\n * @docs-private\n */\nfunction MatLegacyProgressSpinner__svg_circle_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"circle\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const svg_r2 = i0.ɵɵreference(1);\n i0.ɵɵstyleProp(\"animation-name\", \"mat-progress-spinner-stroke-rotate-\" + ctx_r0._spinnerAnimationLabel)(\"stroke-dashoffset\", ctx_r0._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r0._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r0._getCircleStrokeWidth(), \"%\")(\"transform-origin\", ctx_r0._getCircleTransformOrigin(svg_r2));\n i0.ɵɵattribute(\"r\", ctx_r0._getCircleRadius());\n }\n}\nfunction MatLegacyProgressSpinner__svg_circle_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelement(0, \"circle\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const svg_r2 = i0.ɵɵreference(1);\n i0.ɵɵstyleProp(\"stroke-dashoffset\", ctx_r0._getStrokeDashOffset(), \"px\")(\"stroke-dasharray\", ctx_r0._getStrokeCircumference(), \"px\")(\"stroke-width\", ctx_r0._getCircleStrokeWidth(), \"%\")(\"transform-origin\", ctx_r0._getCircleTransformOrigin(svg_r2));\n i0.ɵɵattribute(\"r\", ctx_r0._getCircleRadius());\n }\n}\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n * @docs-private\n */\nconst BASE_STROKE_WIDTH = 10;\n// Boilerplate for applying mixins to MatLegacyProgressSpinner.\n/** @docs-private */\nconst _MatProgressSpinnerBase = /*#__PURE__*/mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n// .0001 percentage difference is necessary in order to avoid unwanted animation frames\n// for example because the animation duration is 4 seconds, .1% accounts to 4ms\n// which are enough to see the flicker described in\n// https://github.com/angular/components/issues/8984\nconst INDETERMINATE_ANIMATION_TEMPLATE = `\n @keyframes mat-progress-spinner-stroke-rotate-DIAMETER {\n 0% { stroke-dashoffset: START_VALUE; transform: rotate(0); }\n 12.5% { stroke-dashoffset: END_VALUE; transform: rotate(0); }\n 12.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n 25% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(72.5deg); }\n\n 25.0001% { stroke-dashoffset: START_VALUE; transform: rotate(270deg); }\n 37.5% { stroke-dashoffset: END_VALUE; transform: rotate(270deg); }\n 37.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n 50% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(161.5deg); }\n\n 50.0001% { stroke-dashoffset: START_VALUE; transform: rotate(180deg); }\n 62.5% { stroke-dashoffset: END_VALUE; transform: rotate(180deg); }\n 62.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n 75% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(251.5deg); }\n\n 75.0001% { stroke-dashoffset: START_VALUE; transform: rotate(90deg); }\n 87.5% { stroke-dashoffset: END_VALUE; transform: rotate(90deg); }\n 87.5001% { stroke-dashoffset: END_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n 100% { stroke-dashoffset: START_VALUE; transform: rotateX(180deg) rotate(341.5deg); }\n }\n`;\n/**\n * `` component.\n * @deprecated Use `MatProgressSpinner` from `@angular/material/progress-spinner` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyProgressSpinner extends _MatProgressSpinnerBase {\n /**\n * Tracks diameters of existing instances to de-dupe generated styles (default d = 100).\n * We need to keep track of which elements the diameters were attached to, because for\n * elements in the Shadow DOM the style tags are attached to the shadow root, rather\n * than the document head.\n */\n static {\n this._diameters = /*#__PURE__*/new WeakMap();\n }\n /** The diameter of the progress spinner (will set width and height of svg). */\n get diameter() {\n return this._diameter;\n }\n set diameter(size) {\n this._diameter = coerceNumberProperty(size);\n this._spinnerAnimationLabel = this._getSpinnerAnimationLabel();\n // If this is set before `ngOnInit`, the style root may not have been resolved yet.\n if (this._styleRoot) {\n this._attachStyleNode();\n }\n }\n /** Stroke width of the progress spinner. */\n get strokeWidth() {\n return this._strokeWidth || this.diameter / 10;\n }\n set strokeWidth(value) {\n this._strokeWidth = coerceNumberProperty(value);\n }\n /** Value of the progress circle. */\n get value() {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(newValue) {\n this._value = Math.max(0, Math.min(100, coerceNumberProperty(newValue)));\n }\n constructor(elementRef, _platform, _document, animationMode, defaults,\n /**\n * @deprecated `changeDetectorRef`, `viewportRuler` and `ngZone`\n * parameters to become required.\n * @breaking-change 14.0.0\n */\n changeDetectorRef, viewportRuler, ngZone, _nonce) {\n super(elementRef);\n this._document = _document;\n this._nonce = _nonce;\n this._diameter = BASE_SIZE;\n this._value = 0;\n this._resizeSubscription = Subscription.EMPTY;\n /** Mode of the progress circle */\n this.mode = 'determinate';\n const trackedDiameters = MatLegacyProgressSpinner._diameters;\n this._spinnerAnimationLabel = this._getSpinnerAnimationLabel();\n // The base size is already inserted via the component's structural styles. We still\n // need to track it so we don't end up adding the same styles again.\n if (!trackedDiameters.has(_document.head)) {\n trackedDiameters.set(_document.head, new Set([BASE_SIZE]));\n }\n this._noopAnimations = animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n if (elementRef.nativeElement.nodeName.toLowerCase() === 'mat-spinner') {\n this.mode = 'indeterminate';\n }\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n if (defaults.diameter) {\n this.diameter = defaults.diameter;\n }\n if (defaults.strokeWidth) {\n this.strokeWidth = defaults.strokeWidth;\n }\n }\n // Safari has an issue where the circle isn't positioned correctly when the page has a\n // different zoom level from the default. This handler triggers a recalculation of the\n // `transform-origin` when the page zoom level changes.\n // See `_getCircleTransformOrigin` for more info.\n // @breaking-change 14.0.0 Remove null checks for `_changeDetectorRef`,\n // `viewportRuler` and `ngZone`.\n if (_platform.isBrowser && _platform.SAFARI && viewportRuler && changeDetectorRef && ngZone) {\n this._resizeSubscription = viewportRuler.change(150).subscribe(() => {\n // When the window is resize while the spinner is in `indeterminate` mode, we\n // have to mark for check so the transform origin of the circle can be recomputed.\n if (this.mode === 'indeterminate') {\n ngZone.run(() => changeDetectorRef.markForCheck());\n }\n });\n }\n }\n ngOnInit() {\n const element = this._elementRef.nativeElement;\n // Note that we need to look up the root node in ngOnInit, rather than the constructor, because\n // Angular seems to create the element outside the shadow root and then moves it inside, if the\n // node is inside an `ngIf` and a ShadowDom-encapsulated component.\n this._styleRoot = _getShadowRoot(element) || this._document.head;\n this._attachStyleNode();\n element.classList.add('mat-progress-spinner-indeterminate-animation');\n }\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n /** The radius of the spinner, adjusted for stroke width. */\n _getCircleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n /** The view box of the spinner's svg element. */\n _getViewBox() {\n const viewBox = this._getCircleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n /** The stroke circumference of the svg circle. */\n _getStrokeCircumference() {\n return 2 * Math.PI * this._getCircleRadius();\n }\n /** The dash offset of the svg circle. */\n _getStrokeDashOffset() {\n if (this.mode === 'determinate') {\n return this._getStrokeCircumference() * (100 - this._value) / 100;\n }\n return null;\n }\n /** Stroke width of the circle in percent. */\n _getCircleStrokeWidth() {\n return this.strokeWidth / this.diameter * 100;\n }\n /** Gets the `transform-origin` for the inner circle element. */\n _getCircleTransformOrigin(svg) {\n // Safari has an issue where the `transform-origin` doesn't work as expected when the page\n // has a different zoom level from the default. The problem appears to be that a zoom\n // is applied on the `svg` node itself. We can work around it by calculating the origin\n // based on the zoom level. On all other browsers the `currentScale` appears to always be 1.\n const scale = (svg.currentScale ?? 1) * 50;\n return `${scale}% ${scale}%`;\n }\n /** Dynamically generates a style tag containing the correct animation for this diameter. */\n _attachStyleNode() {\n const styleRoot = this._styleRoot;\n const currentDiameter = this._diameter;\n const diameters = MatLegacyProgressSpinner._diameters;\n let diametersForElement = diameters.get(styleRoot);\n if (!diametersForElement || !diametersForElement.has(currentDiameter)) {\n const styleTag = this._document.createElement('style');\n if (this._nonce) {\n styleTag.nonce = this._nonce;\n }\n styleTag.setAttribute('mat-spinner-animation', this._spinnerAnimationLabel);\n styleTag.textContent = this._getAnimationText();\n styleRoot.appendChild(styleTag);\n if (!diametersForElement) {\n diametersForElement = new Set();\n diameters.set(styleRoot, diametersForElement);\n }\n diametersForElement.add(currentDiameter);\n }\n }\n /** Generates animation styles adjusted for the spinner's diameter. */\n _getAnimationText() {\n const strokeCircumference = this._getStrokeCircumference();\n return INDETERMINATE_ANIMATION_TEMPLATE\n // Animation should begin at 5% and end at 80%\n .replace(/START_VALUE/g, `${0.95 * strokeCircumference}`).replace(/END_VALUE/g, `${0.2 * strokeCircumference}`).replace(/DIAMETER/g, `${this._spinnerAnimationLabel}`);\n }\n /** Returns the circle diameter formatted for use with the animation-name CSS property. */\n _getSpinnerAnimationLabel() {\n // The string of a float point number will include a period ‘.’ character,\n // which is not valid for a CSS animation-name.\n return this.diameter.toString().replace('.', '_');\n }\n static {\n this.ɵfac = function MatLegacyProgressSpinner_Factory(t) {\n return new (t || MatLegacyProgressSpinner)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.ViewportRuler), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CSP_NONCE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyProgressSpinner,\n selectors: [[\"mat-progress-spinner\"], [\"mat-spinner\"]],\n hostAttrs: [\"role\", \"progressbar\", \"tabindex\", \"-1\", 1, \"mat-progress-spinner\", \"mat-spinner\"],\n hostVars: 10,\n hostBindings: function MatLegacyProgressSpinner_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuemin\", ctx.mode === \"determinate\" ? 0 : null)(\"aria-valuemax\", ctx.mode === \"determinate\" ? 100 : null)(\"aria-valuenow\", ctx.mode === \"determinate\" ? ctx.value : null)(\"mode\", ctx.mode);\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n color: \"color\",\n diameter: \"diameter\",\n strokeWidth: \"strokeWidth\",\n mode: \"mode\",\n value: \"value\"\n },\n exportAs: [\"matProgressSpinner\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 4,\n vars: 8,\n consts: [[\"svg\", \"\"], [\"preserveAspectRatio\", \"xMidYMid meet\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 3, \"ngSwitch\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"animation-name\", \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", \"transform-origin\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\", 3, \"stroke-dashoffset\", \"stroke-dasharray\", \"stroke-width\", \"transform-origin\", 4, \"ngSwitchCase\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n template: function MatLegacyProgressSpinner_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 1, 0);\n i0.ɵɵtemplate(2, MatLegacyProgressSpinner__svg_circle_2_Template, 1, 11, \"circle\", 2)(3, MatLegacyProgressSpinner__svg_circle_3_Template, 1, 9, \"circle\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\");\n i0.ɵɵproperty(\"ngSwitch\", ctx.mode === \"indeterminate\");\n i0.ɵɵattribute(\"viewBox\", ctx._getViewBox());\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngSwitchCase\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngSwitchCase\", false);\n }\n },\n dependencies: [i3.NgSwitch, i3.NgSwitchCase],\n styles: [\".mat-progress-spinner{display:block;position:relative;overflow:hidden}.mat-progress-spinner svg{position:absolute;transform:rotate(-90deg);top:0;left:0;transform-origin:center;overflow:visible}.mat-progress-spinner circle{fill:rgba(0,0,0,0);transition:stroke-dashoffset 225ms linear}.cdk-high-contrast-active .mat-progress-spinner circle{stroke:CanvasText}.mat-progress-spinner[mode=indeterminate] svg{animation:mat-progress-spinner-linear-rotate 2000ms linear infinite}.mat-progress-spinner[mode=indeterminate] circle{transition-property:stroke;animation-duration:4000ms;animation-timing-function:cubic-bezier(0.35, 0, 0.25, 1);animation-iteration-count:infinite}.mat-progress-spinner._mat-animation-noopable svg,.mat-progress-spinner._mat-animation-noopable circle{animation:none;transition:none}@keyframes mat-progress-spinner-linear-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes mat-progress-spinner-stroke-rotate-100{0%{stroke-dashoffset:268.606171575px;transform:rotate(0)}12.5%{stroke-dashoffset:56.5486677px;transform:rotate(0)}12.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(72.5deg)}25%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(72.5deg)}25.0001%{stroke-dashoffset:268.606171575px;transform:rotate(270deg)}37.5%{stroke-dashoffset:56.5486677px;transform:rotate(270deg)}37.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(161.5deg)}50%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(161.5deg)}50.0001%{stroke-dashoffset:268.606171575px;transform:rotate(180deg)}62.5%{stroke-dashoffset:56.5486677px;transform:rotate(180deg)}62.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(251.5deg)}75%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(251.5deg)}75.0001%{stroke-dashoffset:268.606171575px;transform:rotate(90deg)}87.5%{stroke-dashoffset:56.5486677px;transform:rotate(90deg)}87.5001%{stroke-dashoffset:56.5486677px;transform:rotateX(180deg) rotate(341.5deg)}100%{stroke-dashoffset:268.606171575px;transform:rotateX(180deg) rotate(341.5deg)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @deprecated Use `MatProgressSpinnerModule` from `@angular/material/progress-spinner` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyProgressSpinnerModule = /*#__PURE__*/(() => {\n class MatLegacyProgressSpinnerModule {\n static {\n this.ɵfac = function MatLegacyProgressSpinnerModule_Factory(t) {\n return new (t || MatLegacyProgressSpinnerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyProgressSpinnerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CommonModule, MatCommonModule]\n });\n }\n }\n return MatLegacyProgressSpinnerModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @deprecated Import Progress Spinner instead. Note that the\n * `mat-spinner` selector isn't deprecated.\n * @breaking-change 8.0.0\n */\n// tslint:disable-next-line:variable-name\nconst MatLegacySpinner = MatLegacyProgressSpinner;\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyProgressSpinner, MatLegacyProgressSpinnerModule, MatLegacySpinner };\n","import * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Attribute, Inject, Input, Output, ViewChild, NgModule } from '@angular/core';\nimport { mixinTabIndex, mixinColor, mixinDisabled, MatCommonModule } from '@angular/material/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport * as i2 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { hasModifierKey, DOWN_ARROW, RIGHT_ARROW, UP_ARROW, LEFT_ARROW, HOME, END, PAGE_DOWN, PAGE_UP } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { Subscription } from 'rxjs';\nconst _c0 = [\"sliderWrapper\"];\nconst activeEventOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: false\n});\n/**\n * Visually, a 30px separation between tick marks looks best. This is very subjective but it is\n * the default separation we chose.\n */\nconst MIN_AUTO_TICK_SEPARATION = 30;\n/** The thumb gap size for a disabled slider. */\nconst DISABLED_THUMB_GAP = 7;\n/** The thumb gap size for a non-active slider at its minimum value. */\nconst MIN_VALUE_NONACTIVE_THUMB_GAP = 7;\n/** The thumb gap size for an active slider at its minimum value. */\nconst MIN_VALUE_ACTIVE_THUMB_GAP = 10;\n/**\n * Provider Expression that allows mat-slider to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)] and [formControl].\n * @docs-private\n * @deprecated Use `MAT_SLIDER_VALUE_ACCESSOR` from `@angular/material/slider` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nconst MAT_LEGACY_SLIDER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: /*#__PURE__*/forwardRef(() => MatLegacySlider),\n multi: true\n};\n/**\n * A simple change event emitted by the MatSlider component.\n * @deprecated Use `MatSliderChange` from `@angular/material/slider` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySliderChange {}\n// Boilerplate for applying mixins to MatSlider.\n/** @docs-private */\nconst _MatSliderBase = /*#__PURE__*/mixinTabIndex(/*#__PURE__*/mixinColor(/*#__PURE__*/mixinDisabled(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}), 'accent'));\n/**\n * Allows users to select from a range of values by moving the slider thumb. It is similar in\n * behavior to the native `` element.\n * @deprecated Use `MatSlider` from `@angular/material/slider` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacySlider = /*#__PURE__*/(() => {\n class MatLegacySlider extends _MatSliderBase {\n /** Whether the slider is inverted. */\n get invert() {\n return this._invert;\n }\n set invert(value) {\n this._invert = coerceBooleanProperty(value);\n }\n /** The maximum value that the slider can have. */\n get max() {\n return this._max;\n }\n set max(v) {\n this._max = coerceNumberProperty(v, this._max);\n this._percent = this._calculatePercentage(this._value);\n // Since this also modifies the percentage, we need to let the change detection know.\n this._changeDetectorRef.markForCheck();\n }\n /** The minimum value that the slider can have. */\n get min() {\n return this._min;\n }\n set min(v) {\n this._min = coerceNumberProperty(v, this._min);\n this._percent = this._calculatePercentage(this._value);\n // Since this also modifies the percentage, we need to let the change detection know.\n this._changeDetectorRef.markForCheck();\n }\n /** The values at which the thumb will snap. */\n get step() {\n return this._step;\n }\n set step(v) {\n this._step = coerceNumberProperty(v, this._step);\n if (this._step % 1 !== 0) {\n this._roundToDecimal = this._step.toString().split('.').pop().length;\n }\n // Since this could modify the label, we need to notify the change detection.\n this._changeDetectorRef.markForCheck();\n }\n /** Whether or not to show the thumb label. */\n get thumbLabel() {\n return this._thumbLabel;\n }\n set thumbLabel(value) {\n this._thumbLabel = coerceBooleanProperty(value);\n }\n /**\n * How often to show ticks. Relative to the step so that a tick always appears on a step.\n * Ex: Tick interval of 4 with a step of 3 will draw a tick every 4 steps (every 12 values).\n */\n get tickInterval() {\n return this._tickInterval;\n }\n set tickInterval(value) {\n if (value === 'auto') {\n this._tickInterval = 'auto';\n } else if (typeof value === 'number' || typeof value === 'string') {\n this._tickInterval = coerceNumberProperty(value, this._tickInterval);\n } else {\n this._tickInterval = 0;\n }\n }\n /** Value of the slider. */\n get value() {\n // If the value needs to be read and it is still uninitialized, initialize it to the min.\n if (this._value === null) {\n this.value = this._min;\n }\n return this._value;\n }\n set value(v) {\n if (v !== this._value) {\n let value = coerceNumberProperty(v, 0);\n // While incrementing by a decimal we can end up with values like 33.300000000000004.\n // Truncate it to ensure that it matches the label and to make it easier to work with.\n if (this._roundToDecimal && value !== this.min && value !== this.max) {\n value = parseFloat(value.toFixed(this._roundToDecimal));\n }\n this._value = value;\n this._percent = this._calculatePercentage(this._value);\n // Since this also modifies the percentage, we need to let the change detection know.\n this._changeDetectorRef.markForCheck();\n }\n }\n /** Whether the slider is vertical. */\n get vertical() {\n return this._vertical;\n }\n set vertical(value) {\n this._vertical = coerceBooleanProperty(value);\n }\n /** The value to be used for display purposes. */\n get displayValue() {\n if (this.displayWith) {\n // Value is never null but since setters and getters cannot have\n // different types, the value getter is also typed to return null.\n return this.displayWith(this.value);\n }\n // Note that this could be improved further by rounding something like 0.999 to 1 or\n // 0.899 to 0.9, however it is very performance sensitive, because it gets called on\n // every change detection cycle.\n if (this._roundToDecimal && this.value && this.value % 1 !== 0) {\n return this.value.toFixed(this._roundToDecimal);\n }\n return this.value || 0;\n }\n /** set focus to the host element */\n focus(options) {\n this._focusHostElement(options);\n }\n /** blur the host element */\n blur() {\n this._blurHostElement();\n }\n /** The percentage of the slider that coincides with the value. */\n get percent() {\n return this._clamp(this._percent);\n }\n /**\n * Whether the axis of the slider is inverted.\n * (i.e. whether moving the thumb in the positive x or y direction decreases the slider's value).\n */\n _shouldInvertAxis() {\n // Standard non-inverted mode for a vertical slider should be dragging the thumb from bottom to\n // top. However from a y-axis standpoint this is inverted.\n return this.vertical ? !this.invert : this.invert;\n }\n /** Whether the slider is at its minimum value. */\n _isMinValue() {\n return this.percent === 0;\n }\n /**\n * The amount of space to leave between the slider thumb and the track fill & track background\n * elements.\n */\n _getThumbGap() {\n if (this.disabled) {\n return DISABLED_THUMB_GAP;\n }\n if (this._isMinValue() && !this.thumbLabel) {\n return this._isActive ? MIN_VALUE_ACTIVE_THUMB_GAP : MIN_VALUE_NONACTIVE_THUMB_GAP;\n }\n return 0;\n }\n /** CSS styles for the track background element. */\n _getTrackBackgroundStyles() {\n const axis = this.vertical ? 'Y' : 'X';\n const scale = this.vertical ? `1, ${1 - this.percent}, 1` : `${1 - this.percent}, 1, 1`;\n const sign = this._shouldInvertMouseCoords() ? '-' : '';\n return {\n // scale3d avoids some rendering issues in Chrome. See #12071.\n transform: `translate${axis}(${sign}${this._getThumbGap()}px) scale3d(${scale})`\n };\n }\n /** CSS styles for the track fill element. */\n _getTrackFillStyles() {\n const percent = this.percent;\n const axis = this.vertical ? 'Y' : 'X';\n const scale = this.vertical ? `1, ${percent}, 1` : `${percent}, 1, 1`;\n const sign = this._shouldInvertMouseCoords() ? '' : '-';\n return {\n // scale3d avoids some rendering issues in Chrome. See #12071.\n transform: `translate${axis}(${sign}${this._getThumbGap()}px) scale3d(${scale})`,\n // iOS Safari has a bug where it won't re-render elements which start of as `scale(0)` until\n // something forces a style recalculation on it. Since we'll end up with `scale(0)` when\n // the value of the slider is 0, we can easily get into this situation. We force a\n // recalculation by changing the element's `display` when it goes from 0 to any other value.\n display: percent === 0 ? 'none' : ''\n };\n }\n /** CSS styles for the ticks container element. */\n _getTicksContainerStyles() {\n let axis = this.vertical ? 'Y' : 'X';\n // For a horizontal slider in RTL languages we push the ticks container off the left edge\n // instead of the right edge to avoid causing a horizontal scrollbar to appear.\n let sign = !this.vertical && this._getDirection() == 'rtl' ? '' : '-';\n let offset = this._tickIntervalPercent / 2 * 100;\n return {\n 'transform': `translate${axis}(${sign}${offset}%)`\n };\n }\n /** CSS styles for the ticks element. */\n _getTicksStyles() {\n let tickSize = this._tickIntervalPercent * 100;\n let backgroundSize = this.vertical ? `2px ${tickSize}%` : `${tickSize}% 2px`;\n let axis = this.vertical ? 'Y' : 'X';\n // Depending on the direction we pushed the ticks container, push the ticks the opposite\n // direction to re-center them but clip off the end edge. In RTL languages we need to flip the\n // ticks 180 degrees so we're really cutting off the end edge abd not the start.\n let sign = !this.vertical && this._getDirection() == 'rtl' ? '-' : '';\n let rotate = !this.vertical && this._getDirection() == 'rtl' ? ' rotate(180deg)' : '';\n let styles = {\n 'backgroundSize': backgroundSize,\n // Without translateZ ticks sometimes jitter as the slider moves on Chrome & Firefox.\n 'transform': `translateZ(0) translate${axis}(${sign}${tickSize / 2}%)${rotate}`\n };\n if (this._isMinValue() && this._getThumbGap()) {\n const shouldInvertAxis = this._shouldInvertAxis();\n let side;\n if (this.vertical) {\n side = shouldInvertAxis ? 'Bottom' : 'Top';\n } else {\n side = shouldInvertAxis ? 'Right' : 'Left';\n }\n styles[`padding${side}`] = `${this._getThumbGap()}px`;\n }\n return styles;\n }\n _getThumbContainerStyles() {\n const shouldInvertAxis = this._shouldInvertAxis();\n let axis = this.vertical ? 'Y' : 'X';\n // For a horizontal slider in RTL languages we push the thumb container off the left edge\n // instead of the right edge to avoid causing a horizontal scrollbar to appear.\n let invertOffset = this._getDirection() == 'rtl' && !this.vertical ? !shouldInvertAxis : shouldInvertAxis;\n let offset = (invertOffset ? this.percent : 1 - this.percent) * 100;\n return {\n 'transform': `translate${axis}(-${offset}%)`\n };\n }\n /**\n * Whether mouse events should be converted to a slider position by calculating their distance\n * from the right or bottom edge of the slider as opposed to the top or left.\n */\n _shouldInvertMouseCoords() {\n const shouldInvertAxis = this._shouldInvertAxis();\n return this._getDirection() == 'rtl' && !this.vertical ? !shouldInvertAxis : shouldInvertAxis;\n }\n /** The language direction for this slider element. */\n _getDirection() {\n return this._dir && this._dir.value == 'rtl' ? 'rtl' : 'ltr';\n }\n constructor(elementRef, _focusMonitor, _changeDetectorRef, _dir, tabIndex, _ngZone, _document, _animationMode) {\n super(elementRef);\n this._focusMonitor = _focusMonitor;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n this._ngZone = _ngZone;\n this._animationMode = _animationMode;\n this._invert = false;\n this._max = 100;\n this._min = 0;\n this._step = 1;\n this._thumbLabel = false;\n this._tickInterval = 0;\n this._value = null;\n this._vertical = false;\n /** Event emitted when the slider value has changed. */\n this.change = new EventEmitter();\n /** Event emitted when the slider thumb moves. */\n this.input = new EventEmitter();\n /**\n * Emits when the raw value of the slider changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n /** onTouch function registered via registerOnTouch (ControlValueAccessor). */\n this.onTouched = () => {};\n this._percent = 0;\n /**\n * Whether or not the thumb is sliding and what the user is using to slide it with.\n * Used to determine if there should be a transition for the thumb and fill track.\n */\n this._isSliding = null;\n /**\n * Whether or not the slider is active (clicked or sliding).\n * Used to shrink and grow the thumb as according to the Material Design spec.\n */\n this._isActive = false;\n /** The size of a tick interval as a percentage of the size of the track. */\n this._tickIntervalPercent = 0;\n /** The dimensions of the slider. */\n this._sliderDimensions = null;\n this._controlValueAccessorChangeFn = () => {};\n /** Subscription to the Directionality change EventEmitter. */\n this._dirChangeSubscription = Subscription.EMPTY;\n /** Called when the user has put their pointer down on the slider. */\n this._pointerDown = event => {\n // Don't do anything if the slider is disabled or the\n // user is using anything other than the main mouse button.\n if (this.disabled || this._isSliding || !isTouchEvent(event) && event.button !== 0) {\n return;\n }\n this._ngZone.run(() => {\n this._touchId = isTouchEvent(event) ? getTouchIdForSlider(event, this._elementRef.nativeElement) : undefined;\n const pointerPosition = getPointerPositionOnPage(event, this._touchId);\n if (pointerPosition) {\n const oldValue = this.value;\n this._isSliding = 'pointer';\n this._lastPointerEvent = event;\n this._focusHostElement();\n this._onMouseenter(); // Simulate mouseenter in case this is a mobile device.\n this._bindGlobalEvents(event);\n this._focusHostElement();\n this._updateValueFromPosition(pointerPosition);\n this._valueOnSlideStart = oldValue;\n // Despite the fact that we explicitly bind active events, in some cases the browser\n // still dispatches non-cancelable events which cause this call to throw an error.\n // There doesn't appear to be a good way of avoiding them. See #23820.\n if (event.cancelable) {\n event.preventDefault();\n }\n // Emit a change and input event if the value changed.\n if (oldValue != this.value) {\n this._emitInputEvent();\n }\n }\n });\n };\n /**\n * Called when the user has moved their pointer after\n * starting to drag. Bound on the document level.\n */\n this._pointerMove = event => {\n if (this._isSliding === 'pointer') {\n const pointerPosition = getPointerPositionOnPage(event, this._touchId);\n if (pointerPosition) {\n // Prevent the slide from selecting anything else.\n if (event.cancelable) {\n event.preventDefault();\n }\n const oldValue = this.value;\n this._lastPointerEvent = event;\n this._updateValueFromPosition(pointerPosition);\n // Native range elements always emit `input` events when the value changed while sliding.\n if (oldValue != this.value) {\n this._emitInputEvent();\n }\n }\n }\n };\n /** Called when the user has lifted their pointer. Bound on the document level. */\n this._pointerUp = event => {\n if (this._isSliding === 'pointer') {\n if (!isTouchEvent(event) || typeof this._touchId !== 'number' ||\n // Note that we use `changedTouches`, rather than `touches` because it\n // seems like in most cases `touches` is empty for `touchend` events.\n findMatchingTouch(event.changedTouches, this._touchId)) {\n if (event.cancelable) {\n event.preventDefault();\n }\n this._removeGlobalEvents();\n this._isSliding = null;\n this._touchId = undefined;\n if (this._valueOnSlideStart != this.value && !this.disabled) {\n this._emitChangeEvent();\n }\n this._valueOnSlideStart = this._lastPointerEvent = null;\n }\n }\n };\n /** Called when the window has lost focus. */\n this._windowBlur = () => {\n // If the window is blurred while dragging we need to stop dragging because the\n // browser won't dispatch the `mouseup` and `touchend` events anymore.\n if (this._lastPointerEvent) {\n this._pointerUp(this._lastPointerEvent);\n }\n };\n this._document = _document;\n this.tabIndex = parseInt(tabIndex) || 0;\n _ngZone.runOutsideAngular(() => {\n const element = elementRef.nativeElement;\n element.addEventListener('mousedown', this._pointerDown, activeEventOptions);\n element.addEventListener('touchstart', this._pointerDown, activeEventOptions);\n });\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe(origin => {\n this._isActive = !!origin && origin !== 'keyboard';\n this._changeDetectorRef.detectChanges();\n });\n if (this._dir) {\n this._dirChangeSubscription = this._dir.change.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n ngOnDestroy() {\n const element = this._elementRef.nativeElement;\n element.removeEventListener('mousedown', this._pointerDown, activeEventOptions);\n element.removeEventListener('touchstart', this._pointerDown, activeEventOptions);\n this._lastPointerEvent = null;\n this._removeGlobalEvents();\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._dirChangeSubscription.unsubscribe();\n }\n _onMouseenter() {\n if (this.disabled) {\n return;\n }\n // We save the dimensions of the slider here so we can use them to update the spacing of the\n // ticks and determine where on the slider click and slide events happen.\n this._sliderDimensions = this._getSliderDimensions();\n this._updateTickIntervalPercent();\n }\n _onFocus() {\n // We save the dimensions of the slider here so we can use them to update the spacing of the\n // ticks and determine where on the slider click and slide events happen.\n this._sliderDimensions = this._getSliderDimensions();\n this._updateTickIntervalPercent();\n }\n _onBlur() {\n this.onTouched();\n }\n _onKeydown(event) {\n if (this.disabled || hasModifierKey(event) || this._isSliding && this._isSliding !== 'keyboard') {\n return;\n }\n const oldValue = this.value;\n switch (event.keyCode) {\n case PAGE_UP:\n this._increment(10);\n break;\n case PAGE_DOWN:\n this._increment(-10);\n break;\n case END:\n this.value = this.max;\n break;\n case HOME:\n this.value = this.min;\n break;\n case LEFT_ARROW:\n // NOTE: For a sighted user it would make more sense that when they press an arrow key on an\n // inverted slider the thumb moves in that direction. However for a blind user, nothing\n // about the slider indicates that it is inverted. They will expect left to be decrement,\n // regardless of how it appears on the screen. For speakers ofRTL languages, they probably\n // expect left to mean increment. Therefore we flip the meaning of the side arrow keys for\n // RTL. For inverted sliders we prefer a good a11y experience to having it \"look right\" for\n // sighted users, therefore we do not swap the meaning.\n this._increment(this._getDirection() == 'rtl' ? 1 : -1);\n break;\n case UP_ARROW:\n this._increment(1);\n break;\n case RIGHT_ARROW:\n // See comment on LEFT_ARROW about the conditions under which we flip the meaning.\n this._increment(this._getDirection() == 'rtl' ? -1 : 1);\n break;\n case DOWN_ARROW:\n this._increment(-1);\n break;\n default:\n // Return if the key is not one that we explicitly handle to avoid calling preventDefault on\n // it.\n return;\n }\n if (oldValue != this.value) {\n this._emitInputEvent();\n this._emitChangeEvent();\n }\n this._isSliding = 'keyboard';\n event.preventDefault();\n }\n _onKeyup() {\n if (this._isSliding === 'keyboard') {\n this._isSliding = null;\n }\n }\n /** Use defaultView of injected document if available or fallback to global window reference */\n _getWindow() {\n return this._document.defaultView || window;\n }\n /**\n * Binds our global move and end events. They're bound at the document level and only while\n * dragging so that the user doesn't have to keep their pointer exactly over the slider\n * as they're swiping across the screen.\n */\n _bindGlobalEvents(triggerEvent) {\n // Note that we bind the events to the `document`, because it allows us to capture\n // drag cancel events where the user's pointer is outside the browser window.\n const document = this._document;\n const isTouch = isTouchEvent(triggerEvent);\n const moveEventName = isTouch ? 'touchmove' : 'mousemove';\n const endEventName = isTouch ? 'touchend' : 'mouseup';\n document.addEventListener(moveEventName, this._pointerMove, activeEventOptions);\n document.addEventListener(endEventName, this._pointerUp, activeEventOptions);\n if (isTouch) {\n document.addEventListener('touchcancel', this._pointerUp, activeEventOptions);\n }\n const window = this._getWindow();\n if (typeof window !== 'undefined' && window) {\n window.addEventListener('blur', this._windowBlur);\n }\n }\n /** Removes any global event listeners that we may have added. */\n _removeGlobalEvents() {\n const document = this._document;\n document.removeEventListener('mousemove', this._pointerMove, activeEventOptions);\n document.removeEventListener('mouseup', this._pointerUp, activeEventOptions);\n document.removeEventListener('touchmove', this._pointerMove, activeEventOptions);\n document.removeEventListener('touchend', this._pointerUp, activeEventOptions);\n document.removeEventListener('touchcancel', this._pointerUp, activeEventOptions);\n const window = this._getWindow();\n if (typeof window !== 'undefined' && window) {\n window.removeEventListener('blur', this._windowBlur);\n }\n }\n /** Increments the slider by the given number of steps (negative number decrements). */\n _increment(numSteps) {\n // Pre-clamp the current value since it's allowed to be\n // out of bounds when assigned programmatically.\n const clampedValue = this._clamp(this.value || 0, this.min, this.max);\n this.value = this._clamp(clampedValue + this.step * numSteps, this.min, this.max);\n }\n /** Calculate the new value from the new physical location. The value will always be snapped. */\n _updateValueFromPosition(pos) {\n if (!this._sliderDimensions) {\n return;\n }\n let offset = this.vertical ? this._sliderDimensions.top : this._sliderDimensions.left;\n let size = this.vertical ? this._sliderDimensions.height : this._sliderDimensions.width;\n let posComponent = this.vertical ? pos.y : pos.x;\n // The exact value is calculated from the event and used to find the closest snap value.\n let percent = this._clamp((posComponent - offset) / size);\n if (this._shouldInvertMouseCoords()) {\n percent = 1 - percent;\n }\n // Since the steps may not divide cleanly into the max value, if the user\n // slid to 0 or 100 percent, we jump to the min/max value. This approach\n // is slightly more intuitive than using `Math.ceil` below, because it\n // follows the user's pointer closer.\n if (percent === 0) {\n this.value = this.min;\n } else if (percent === 1) {\n this.value = this.max;\n } else {\n const exactValue = this._calculateValue(percent);\n // This calculation finds the closest step by finding the closest\n // whole number divisible by the step relative to the min.\n const closestValue = Math.round((exactValue - this.min) / this.step) * this.step + this.min;\n // The value needs to snap to the min and max.\n this.value = this._clamp(closestValue, this.min, this.max);\n }\n }\n /** Emits a change event if the current value is different from the last emitted value. */\n _emitChangeEvent() {\n this._controlValueAccessorChangeFn(this.value);\n this.valueChange.emit(this.value);\n this.change.emit(this._createChangeEvent());\n }\n /** Emits an input event when the current value is different from the last emitted value. */\n _emitInputEvent() {\n this.input.emit(this._createChangeEvent());\n }\n /** Updates the amount of space between ticks as a percentage of the width of the slider. */\n _updateTickIntervalPercent() {\n if (!this.tickInterval || !this._sliderDimensions) {\n return;\n }\n let tickIntervalPercent;\n if (this.tickInterval == 'auto') {\n let trackSize = this.vertical ? this._sliderDimensions.height : this._sliderDimensions.width;\n let pixelsPerStep = trackSize * this.step / (this.max - this.min);\n let stepsPerTick = Math.ceil(MIN_AUTO_TICK_SEPARATION / pixelsPerStep);\n let pixelsPerTick = stepsPerTick * this.step;\n tickIntervalPercent = pixelsPerTick / trackSize;\n } else {\n tickIntervalPercent = this.tickInterval * this.step / (this.max - this.min);\n }\n this._tickIntervalPercent = isSafeNumber(tickIntervalPercent) ? tickIntervalPercent : 0;\n }\n /** Creates a slider change object from the specified value. */\n _createChangeEvent(value = this.value) {\n let event = new MatLegacySliderChange();\n event.source = this;\n event.value = value;\n return event;\n }\n /** Calculates the percentage of the slider that a value is. */\n _calculatePercentage(value) {\n const percentage = ((value || 0) - this.min) / (this.max - this.min);\n return isSafeNumber(percentage) ? percentage : 0;\n }\n /** Calculates the value a percentage of the slider corresponds to. */\n _calculateValue(percentage) {\n return this.min + percentage * (this.max - this.min);\n }\n /** Return a number between two numbers. */\n _clamp(value, min = 0, max = 1) {\n return Math.max(min, Math.min(value, max));\n }\n /**\n * Get the bounding client rect of the slider track element.\n * The track is used rather than the native element to ignore the extra space that the thumb can\n * take up.\n */\n _getSliderDimensions() {\n return this._sliderWrapper ? this._sliderWrapper.nativeElement.getBoundingClientRect() : null;\n }\n /**\n * Focuses the native element.\n * Currently only used to allow a blur event to fire but will be used with keyboard input later.\n */\n _focusHostElement(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Blurs the native element. */\n _blurHostElement() {\n this._elementRef.nativeElement.blur();\n }\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value\n */\n writeValue(value) {\n this.value = value;\n }\n /**\n * Registers a callback to be triggered when the value has changed.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnChange(fn) {\n this._controlValueAccessorChangeFn = fn;\n }\n /**\n * Registers a callback to be triggered when the component is touched.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets whether the component should be disabled.\n * Implemented as part of ControlValueAccessor.\n * @param isDisabled\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n static {\n this.ɵfac = function MatLegacySlider_Factory(t) {\n return new (t || MatLegacySlider)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.Directionality, 8), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacySlider,\n selectors: [[\"mat-slider\"]],\n viewQuery: function MatLegacySlider_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._sliderWrapper = _t.first);\n }\n },\n hostAttrs: [\"role\", \"slider\", 1, \"mat-slider\", \"mat-focus-indicator\"],\n hostVars: 29,\n hostBindings: function MatLegacySlider_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"focus\", function MatLegacySlider_focus_HostBindingHandler() {\n return ctx._onFocus();\n })(\"blur\", function MatLegacySlider_blur_HostBindingHandler() {\n return ctx._onBlur();\n })(\"keydown\", function MatLegacySlider_keydown_HostBindingHandler($event) {\n return ctx._onKeydown($event);\n })(\"keyup\", function MatLegacySlider_keyup_HostBindingHandler() {\n return ctx._onKeyup();\n })(\"mouseenter\", function MatLegacySlider_mouseenter_HostBindingHandler() {\n return ctx._onMouseenter();\n })(\"selectstart\", function MatLegacySlider_selectstart_HostBindingHandler($event) {\n return $event.preventDefault();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"tabIndex\", ctx.tabIndex);\n i0.ɵɵattribute(\"aria-disabled\", ctx.disabled)(\"aria-valuemax\", ctx.max)(\"aria-valuemin\", ctx.min)(\"aria-valuenow\", ctx.value)(\"aria-valuetext\", ctx.valueText == null ? ctx.displayValue : ctx.valueText)(\"aria-orientation\", ctx.vertical ? \"vertical\" : \"horizontal\");\n i0.ɵɵclassProp(\"mat-slider-disabled\", ctx.disabled)(\"mat-slider-has-ticks\", ctx.tickInterval)(\"mat-slider-horizontal\", !ctx.vertical)(\"mat-slider-axis-inverted\", ctx._shouldInvertAxis())(\"mat-slider-invert-mouse-coords\", ctx._shouldInvertMouseCoords())(\"mat-slider-sliding\", ctx._isSliding)(\"mat-slider-thumb-label-showing\", ctx.thumbLabel)(\"mat-slider-vertical\", ctx.vertical)(\"mat-slider-min-value\", ctx._isMinValue())(\"mat-slider-hide-last-tick\", ctx.disabled || ctx._isMinValue() && ctx._getThumbGap() && ctx._shouldInvertAxis())(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\");\n }\n },\n inputs: {\n disabled: \"disabled\",\n color: \"color\",\n tabIndex: \"tabIndex\",\n invert: \"invert\",\n max: \"max\",\n min: \"min\",\n step: \"step\",\n thumbLabel: \"thumbLabel\",\n tickInterval: \"tickInterval\",\n value: \"value\",\n displayWith: \"displayWith\",\n valueText: \"valueText\",\n vertical: \"vertical\"\n },\n outputs: {\n change: \"change\",\n input: \"input\",\n valueChange: \"valueChange\"\n },\n exportAs: [\"matSlider\"],\n features: [i0.ɵɵProvidersFeature([MAT_LEGACY_SLIDER_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature],\n decls: 13,\n vars: 6,\n consts: [[\"sliderWrapper\", \"\"], [1, \"mat-slider-wrapper\"], [1, \"mat-slider-track-wrapper\"], [1, \"mat-slider-track-background\", 3, \"ngStyle\"], [1, \"mat-slider-track-fill\", 3, \"ngStyle\"], [1, \"mat-slider-ticks-container\", 3, \"ngStyle\"], [1, \"mat-slider-ticks\", 3, \"ngStyle\"], [1, \"mat-slider-thumb-container\", 3, \"ngStyle\"], [1, \"mat-slider-focus-ring\"], [1, \"mat-slider-thumb\"], [1, \"mat-slider-thumb-label\"], [1, \"mat-slider-thumb-label-text\"]],\n template: function MatLegacySlider_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1, 0)(2, \"div\", 2);\n i0.ɵɵelement(3, \"div\", 3)(4, \"div\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 5);\n i0.ɵɵelement(6, \"div\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\", 7);\n i0.ɵɵelement(8, \"div\", 8)(9, \"div\", 9);\n i0.ɵɵelementStart(10, \"div\", 10)(11, \"span\", 11);\n i0.ɵɵtext(12);\n i0.ɵɵelementEnd()()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngStyle\", ctx._getTrackBackgroundStyles());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._getTrackFillStyles());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._getTicksContainerStyles());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._getTicksStyles());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._getThumbContainerStyles());\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(ctx.displayValue);\n }\n },\n dependencies: [i3.NgStyle],\n styles: [\".mat-slider{display:inline-block;position:relative;box-sizing:border-box;padding:8px;outline:none;vertical-align:middle}.mat-slider:not(.mat-slider-disabled):active,.mat-slider.mat-slider-sliding:not(.mat-slider-disabled){cursor:grabbing}.mat-slider-wrapper{-webkit-print-color-adjust:exact;color-adjust:exact;position:absolute}.mat-slider-track-wrapper{position:absolute;top:0;left:0;overflow:hidden}.mat-slider-track-fill{position:absolute;transform-origin:0 0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-track-background{position:absolute;transform-origin:100% 100%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-ticks-container{position:absolute;left:0;top:0;overflow:hidden}.mat-slider-ticks{-webkit-background-clip:content-box;background-clip:content-box;background-repeat:repeat;box-sizing:border-box;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-container{position:absolute;z-index:1;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-focus-ring{position:absolute;width:30px;height:30px;border-radius:50%;transform:scale(0);opacity:0;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider.cdk-keyboard-focused .mat-slider-focus-ring,.mat-slider.cdk-program-focused .mat-slider-focus-ring{transform:scale(1);opacity:1}.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb-label,.mat-slider:not(.mat-slider-disabled):not(.mat-slider-sliding) .mat-slider-thumb{cursor:grab}.mat-slider-thumb{position:absolute;right:-10px;bottom:-10px;box-sizing:border-box;width:20px;height:20px;border:3px solid rgba(0,0,0,0);border-radius:50%;transform:scale(0.7);transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-thumb-label{display:none;align-items:center;justify-content:center;position:absolute;width:28px;height:28px;border-radius:50%;transition:transform 400ms cubic-bezier(0.25, 0.8, 0.25, 1),border-radius 400ms cubic-bezier(0.25, 0.8, 0.25, 1),background-color 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.cdk-high-contrast-active .mat-slider-thumb-label{outline:solid 1px}.mat-slider-thumb-label-text{z-index:1;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-sliding .mat-slider-track-fill,.mat-slider-sliding .mat-slider-track-background,.mat-slider-sliding .mat-slider-thumb-container{transition-duration:0ms}.mat-slider-has-ticks .mat-slider-wrapper::after{content:\\\"\\\";position:absolute;border-width:0;border-style:solid;opacity:0;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after,.mat-slider-has-ticks:hover:not(.mat-slider-hide-last-tick) .mat-slider-wrapper::after{opacity:1}.mat-slider-has-ticks.cdk-focused:not(.mat-slider-disabled) .mat-slider-ticks,.mat-slider-has-ticks:hover:not(.mat-slider-disabled) .mat-slider-ticks{opacity:1}.mat-slider-thumb-label-showing .mat-slider-focus-ring{display:none}.mat-slider-thumb-label-showing .mat-slider-thumb-label{display:flex}.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:100% 100%}.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:0 0}.mat-slider:not(.mat-slider-disabled).cdk-focused.mat-slider-thumb-label-showing .mat-slider-thumb{transform:scale(0)}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label{border-radius:50% 50% 0}.mat-slider:not(.mat-slider-disabled).cdk-focused .mat-slider-thumb-label-text{opacity:1}.mat-slider:not(.mat-slider-disabled).cdk-mouse-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-touch-focused .mat-slider-thumb,.mat-slider:not(.mat-slider-disabled).cdk-program-focused .mat-slider-thumb{border-width:2px;transform:scale(1)}.mat-slider-disabled .mat-slider-focus-ring{transform:scale(0);opacity:0}.mat-slider-disabled .mat-slider-thumb{border-width:4px;transform:scale(0.5)}.mat-slider-disabled .mat-slider-thumb-label{display:none}.mat-slider-horizontal{height:48px;min-width:128px}.mat-slider-horizontal .mat-slider-wrapper{height:2px;top:23px;left:8px;right:8px}.mat-slider-horizontal .mat-slider-wrapper::after{height:2px;border-left-width:2px;right:0;top:0}.mat-slider-horizontal .mat-slider-track-wrapper{height:2px;width:100%}.mat-slider-horizontal .mat-slider-track-fill{height:2px;width:100%;transform:scaleX(0)}.mat-slider-horizontal .mat-slider-track-background{height:2px;width:100%;transform:scaleX(1)}.mat-slider-horizontal .mat-slider-ticks-container{height:2px;width:100%}.cdk-high-contrast-active .mat-slider-horizontal .mat-slider-ticks-container{height:0;outline:solid 2px;top:1px}.mat-slider-horizontal .mat-slider-ticks{height:2px;width:100%}.mat-slider-horizontal .mat-slider-thumb-container{width:100%;height:0;top:50%}.mat-slider-horizontal .mat-slider-focus-ring{top:-15px;right:-15px}.mat-slider-horizontal .mat-slider-thumb-label{right:-14px;top:-40px;transform:translateY(26px) scale(0.01) rotate(45deg)}.mat-slider-horizontal .mat-slider-thumb-label-text{transform:rotate(-45deg)}.mat-slider-horizontal.cdk-focused .mat-slider-thumb-label{transform:rotate(45deg)}.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label,.cdk-high-contrast-active .mat-slider-horizontal.cdk-focused .mat-slider-thumb-label-text{transform:none}.mat-slider-vertical{width:48px;min-height:128px}.mat-slider-vertical .mat-slider-wrapper{width:2px;top:8px;bottom:8px;left:23px}.mat-slider-vertical .mat-slider-wrapper::after{width:2px;border-top-width:2px;bottom:0;left:0}.mat-slider-vertical .mat-slider-track-wrapper{height:100%;width:2px}.mat-slider-vertical .mat-slider-track-fill{height:100%;width:2px;transform:scaleY(0)}.mat-slider-vertical .mat-slider-track-background{height:100%;width:2px;transform:scaleY(1)}.mat-slider-vertical .mat-slider-ticks-container{width:2px;height:100%}.cdk-high-contrast-active .mat-slider-vertical .mat-slider-ticks-container{width:0;outline:solid 2px;left:1px}.mat-slider-vertical .mat-slider-focus-ring{bottom:-15px;left:-15px}.mat-slider-vertical .mat-slider-ticks{width:2px;height:100%}.mat-slider-vertical .mat-slider-thumb-container{height:100%;width:0;left:50%}.mat-slider-vertical .mat-slider-thumb{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mat-slider-vertical .mat-slider-thumb-label{bottom:-14px;left:-40px;transform:translateX(26px) scale(0.01) rotate(-45deg)}.mat-slider-vertical .mat-slider-thumb-label-text{transform:rotate(45deg)}.mat-slider-vertical.cdk-focused .mat-slider-thumb-label{transform:rotate(-45deg)}[dir=rtl] .mat-slider-wrapper::after{left:0;right:auto}[dir=rtl] .mat-slider-horizontal .mat-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .mat-slider-horizontal .mat-slider-track-background{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-fill{transform-origin:0 0}[dir=rtl] .mat-slider-horizontal.mat-slider-axis-inverted .mat-slider-track-background{transform-origin:100% 100%}.mat-slider._mat-animation-noopable .mat-slider-track-fill,.mat-slider._mat-animation-noopable .mat-slider-track-background,.mat-slider._mat-animation-noopable .mat-slider-ticks,.mat-slider._mat-animation-noopable .mat-slider-thumb-container,.mat-slider._mat-animation-noopable .mat-slider-focus-ring,.mat-slider._mat-animation-noopable .mat-slider-thumb,.mat-slider._mat-animation-noopable .mat-slider-thumb-label,.mat-slider._mat-animation-noopable .mat-slider-thumb-label-text,.mat-slider._mat-animation-noopable .mat-slider-has-ticks .mat-slider-wrapper::after{transition:none}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatLegacySlider;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Checks if number is safe for calculation */\nfunction isSafeNumber(value) {\n return !isNaN(value) && isFinite(value);\n}\n/** Returns whether an event is a touch event. */\nfunction isTouchEvent(event) {\n // This function is called for every pixel that the user has dragged so we need it to be\n // as fast as possible. Since we only bind mouse events and touch events, we can assume\n // that if the event's name starts with `t`, it's a touch event.\n return event.type[0] === 't';\n}\n/** Gets the coordinates of a touch or mouse event relative to the viewport. */\nfunction getPointerPositionOnPage(event, id) {\n let point;\n if (isTouchEvent(event)) {\n // The `identifier` could be undefined if the browser doesn't support `TouchEvent.identifier`.\n // If that's the case, attribute the first touch to all active sliders. This should still cover\n // the most common case while only breaking multi-touch.\n if (typeof id === 'number') {\n point = findMatchingTouch(event.touches, id) || findMatchingTouch(event.changedTouches, id);\n } else {\n // `touches` will be empty for start/end events so we have to fall back to `changedTouches`.\n point = event.touches[0] || event.changedTouches[0];\n }\n } else {\n point = event;\n }\n return point ? {\n x: point.clientX,\n y: point.clientY\n } : undefined;\n}\n/** Finds a `Touch` with a specific ID in a `TouchList`. */\nfunction findMatchingTouch(touches, id) {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i].identifier === id) {\n return touches[i];\n }\n }\n return undefined;\n}\n/** Gets the unique ID of a touch that matches a specific slider. */\nfunction getTouchIdForSlider(event, sliderHost) {\n for (let i = 0; i < event.touches.length; i++) {\n const target = event.touches[i].target;\n if (sliderHost === target || sliderHost.contains(target)) {\n return event.touches[i].identifier;\n }\n }\n return undefined;\n}\n\n/**\n * @deprecated Use `MatSliderModule` from `@angular/material/slider` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacySliderModule = /*#__PURE__*/(() => {\n class MatLegacySliderModule {\n static {\n this.ɵfac = function MatLegacySliderModule_Factory(t) {\n return new (t || MatLegacySliderModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacySliderModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule, MatCommonModule]\n });\n }\n }\n return MatLegacySliderModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_LEGACY_SLIDER_VALUE_ACCESSOR, MatLegacySlider, MatLegacySliderChange, MatLegacySliderModule };\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { humanize } from 'src/util/text';\r\n\r\n@Pipe({\r\n name: 'humanize',\r\n})\r\nexport class HumanizePipe implements PipeTransform {\r\n public transform(value: any, args?: any): any {\r\n return humanize(value);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { HumanizePipe } from 'src/app/shared/shared-base/amg-ui/humanize.pipe';\r\n\r\n@NgModule({\r\n declarations: [HumanizePipe],\r\n imports: [CommonModule],\r\n exports: [HumanizePipe],\r\n})\r\nexport class AmgHumanizeModule {}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { List, Record } from 'immutable';\r\nimport * as Pubnub from 'pubnub';\r\nimport { AppState } from 'src/store/appstate';\r\n\r\nexport class PubnubStoreState extends Record({\r\n presence: null as Pubnub.PresenceEvent | null,\r\n status: null as Pubnub.StatusEvent | null,\r\n message: null as Pubnub.MessageEvent | null,\r\n channels: List(),\r\n subscribedChannels: List(),\r\n}) {\r\n public presence: Pubnub.PresenceEvent | null;\r\n public status: Pubnub.StatusEvent | null;\r\n public message: Pubnub.MessageEvent | null;\r\n public subscribedChannels: List;\r\n}\r\n\r\nexport const selectPubnub = (state: AppState) => state.pubnub;\r\n\r\nexport function selectSubscribedChannels() {\r\n return createSelector(selectPubnub, (pubnub) => pubnub.subscribedChannels);\r\n}\r\n\r\nexport function selectPubnubStatus() {\r\n return createSelector(selectPubnub, (pubnub) => pubnub.status);\r\n}\r\n\r\nexport function selectPubnubMessage() {\r\n return createSelector(selectPubnub, (pubnub) => pubnub.message);\r\n}\r\nexport function selectPubnubPresence() {\r\n return createSelector(selectPubnub, (pubnub) => pubnub.presence);\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport * as Pubnub from 'pubnub';\r\nimport { Observable } from 'rxjs';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectPubnubStatus } from 'src/store/pubnub/pubnub-store.model';\r\n\r\n@Component({\r\n selector: 'tcs-pubnub-status',\r\n templateUrl: './pubnub-status.component.html',\r\n styleUrls: ['./pubnub-status.component.scss'],\r\n\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PubnubStatusComponent {\r\n public status$: Observable;\r\n\r\n constructor(store: Store) {\r\n this.status$ = store.select(selectPubnubStatus());\r\n }\r\n}\r\n","
Last Status Event
\r\n
{{ status | json }}\r\n
\r\n None \r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport * as Pubnub from 'pubnub';\r\nimport { Observable } from 'rxjs';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectPubnubMessage } from 'src/store/pubnub/pubnub-store.model';\r\n\r\n@Component({\r\n selector: 'tcs-pubnub-message',\r\n templateUrl: './pubnub-message.component.html',\r\n styleUrls: ['./pubnub-message.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PubnubMessageComponent {\r\n public message$: Observable;\r\n\r\n constructor(store: Store) {\r\n this.message$ = store.select(selectPubnubMessage());\r\n }\r\n}\r\n","
Last Message Event
\r\n
{{ message | json }}\r\n
\r\n None \r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport * as Pubnub from 'pubnub';\r\nimport { Observable } from 'rxjs';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectPubnubPresence } from 'src/store/pubnub/pubnub-store.model';\r\n\r\n@Component({\r\n selector: 'tcs-pubnub-presence',\r\n templateUrl: './pubnub-presence.component.html',\r\n styleUrls: ['./pubnub-presence.component.scss'],\r\n\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PubnubPresenceComponent {\r\n public presence$: Observable;\r\n\r\n constructor(store: Store) {\r\n this.presence$ = store.select(selectPubnubPresence());\r\n }\r\n}\r\n","
Last Presence Event
\r\n
{{ presence | json }}\r\n
\r\n None \r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectSubscribedChannels } from 'src/store/pubnub/pubnub-store.model';\r\n\r\n@Component({\r\n selector: 'tcs-pubnub-subscribed-channels',\r\n templateUrl: './pubnub-subscribed-channels.component.html',\r\n styleUrls: ['./pubnub-subscribed-channels.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PubnubSubscribedChannelsComponent {\r\n public subscribedChannels$: Observable;\r\n\r\n constructor(store: Store) {\r\n this.subscribedChannels$ = store\r\n .select(selectSubscribedChannels())\r\n .pipe(map((c) => c.toArray()));\r\n }\r\n}\r\n","
Pubnub Subscribed Channels
\r\n
    \r\n
  • {{ channel }}
  • \r\n
\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'tcs-pubnub-details',\r\n templateUrl: './pubnub-details.component.html',\r\n styleUrls: ['./pubnub-details.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PubnubDetailsComponent implements OnInit {\r\n constructor() {}\r\n\r\n public ngOnInit() {}\r\n}\r\n","

Pubnub

\r\n\r\n\r\n\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { PubnubDetailsComponent } from './components/pubnub-details/pubnub-details.component';\r\nimport { PubnubMessageComponent } from './components/pubnub-message/pubnub-message.component';\r\nimport { PubnubPresenceComponent } from './components/pubnub-presence/pubnub-presence.component';\r\nimport { PubnubStatusComponent } from './components/pubnub-status/pubnub-status.component';\r\nimport { PubnubSubscribedChannelsComponent } from './components/pubnub-subscribed-channels/pubnub-subscribed-channels.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n PubnubStatusComponent,\r\n PubnubMessageComponent,\r\n PubnubPresenceComponent,\r\n PubnubSubscribedChannelsComponent,\r\n PubnubDetailsComponent,\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n PubnubStatusComponent,\r\n PubnubMessageComponent,\r\n PubnubPresenceComponent,\r\n PubnubSubscribedChannelsComponent,\r\n PubnubDetailsComponent,\r\n ],\r\n})\r\nexport class AmgPubnubModule {}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\n\r\nconst defaultContext = {\r\n message: 'Please wait...',\r\n withBox: true,\r\n};\r\n\r\n@Component({\r\n selector: 'tcs-load-until',\r\n templateUrl: './load-until.component.html',\r\n styleUrls: ['./load-until.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoadUntilComponent implements OnInit {\r\n @Input() public context: { message: string; withBox: boolean } = defaultContext;\r\n\r\n constructor() {}\r\n\r\n public ngOnInit() {\r\n this.context = { ...defaultContext, ...this.context };\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ context.message }}\r\n
\r\n
\r\n
\r\n","import {\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n TemplateRef,\r\n Type,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { LoadUntilComponent } from './components/load-until/load-until.component';\r\n\r\n@Directive({\r\n selector: '[tcsLoadUntil]',\r\n})\r\nexport class LoadUntilDirective implements OnDestroy, OnChanges {\r\n @Input() public tcsLoadUntilContext: any;\r\n @Input() public tcsLoadUntilTemplate: TemplateRef | Type;\r\n @Input() public tcsLoadUntil: any;\r\n\r\n private _componentRef: ComponentRef;\r\n\r\n constructor(\r\n private host: ElementRef,\r\n private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n ) {}\r\n\r\n public ngOnDestroy() {\r\n if (this._componentRef != null) {\r\n this._componentRef.destroy();\r\n }\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n this._executeChange();\r\n }\r\n\r\n private _executeChange() {\r\n if ((this.tcsLoadUntil ?? false) === false) {\r\n const ref =\r\n this.tcsLoadUntilTemplate == null ? LoadUntilComponent : this.tcsLoadUntilTemplate;\r\n if (ref instanceof TemplateRef) {\r\n this._changeTemplate(ref, this.tcsLoadUntilContext);\r\n } else {\r\n this._changeComponent(ref, this.tcsLoadUntilContext);\r\n }\r\n } else {\r\n this._changeTemplate(this.templateRef, { $implicit: this.tcsLoadUntil });\r\n }\r\n }\r\n\r\n private _changeTemplate(templateRef: TemplateRef, context?: any) {\r\n this.viewContainer.clear();\r\n this.viewContainer.createEmbeddedView(templateRef, context);\r\n }\r\n\r\n private _changeComponent(component: Type, context?: any) {\r\n if (this._componentRef != null) {\r\n this._componentRef.destroy();\r\n }\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(component);\r\n this._componentRef = this.viewContainer.createComponent(factory);\r\n if (context != null) {\r\n this._componentRef.instance.context = context;\r\n }\r\n // WIP\r\n // if (context != null) {\r\n // // wire up @input(s) and @output(s) between context and component.\r\n // Object.getOwnPropertyNames(context).forEach(prop => {\r\n // const tmp = this._componentRef.instance[prop];\r\n // if (\r\n // tmp != null &&\r\n // tmp instanceof EventEmitter &&\r\n // this.tcsLoadUntilLoadingContext[prop] != null &&\r\n // typeof this.tcsLoadUntilLoadingContext[prop] === 'function'\r\n // ) {\r\n // tmp\r\n // .pipe(takeWhile(() => !this._componentRef.hostView.destroyed))\r\n // .subscribe(($event: any) => {\r\n // this.tcsLoadUntilLoadingContext[prop]($event);\r\n // });\r\n // } else if (this._componentRef.instance[prop] == null) {\r\n // this._componentRef.instance[prop] = this.tcsLoadUntilLoadingContext[\r\n // prop\r\n // ];\r\n // }\r\n // });\r\n // this._componentRef.changeDetectorRef.detectChanges();\r\n // }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { CardStatus } from 'src/graphql/generated/graphql.generated';\r\n\r\n@Component({\r\n selector: 'tcs-load-card',\r\n templateUrl: './load-card.component.html',\r\n styleUrls: ['./load-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoadCardComponent implements OnInit {\r\n @Input() public context: {\r\n type: CardStatus;\r\n isCondensed: boolean;\r\n } = { type: CardStatus.AwaitingAssignment, isCondensed: false };\r\n\r\n constructor() {}\r\n\r\n public ngOnInit() {}\r\n}\r\n","
\r\n ...\r\n \r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';\r\nimport { LoadCardComponent } from 'src/app/shared/components/load-until/components/load-card/load-card.component';\r\nimport { LoadUntilComponent } from 'src/app/shared/components/load-until/components/load-until/load-until.component';\r\nimport { LoadUntilDirective } from 'src/app/shared/components/load-until/load-until.directive';\r\n\r\n@NgModule({\r\n declarations: [LoadUntilDirective, LoadUntilComponent, LoadCardComponent],\r\n imports: [CommonModule, MatProgressSpinnerModule],\r\n exports: [LoadUntilDirective],\r\n})\r\nexport class TcsLoadUntilModule {}\r\n","import {\r\n animate,\r\n animateChild,\r\n AnimationTriggerMetadata,\r\n AUTO_STYLE,\r\n group,\r\n query,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\n\r\nexport interface AnimationOptions {\r\n anchor?: string;\r\n duration?: number;\r\n delay?: number;\r\n}\r\n\r\nexport interface FadeInOutAnimation extends AnimationOptions {\r\n easeOnIn?: string;\r\n easeOnOut?: string;\r\n}\r\n\r\n/**\r\n * tcsFadeInOutAnimation\r\n *\r\n * Parameter Options:\r\n * * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.\r\n * * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.\r\n * * easeOnIn: Animation accelerates and decelerates when fading in. Defaults to ease-in.\r\n * * easeOnOut: Animation accelerates and decelerates when fading out. Defaults to ease-out.\r\n *\r\n * Returns an [AnimationTriggerMetadata] object with boolean states for a fade animation.\r\n *\r\n * usage: [@tcsFadeInOut]=\"{ value: true | false, params: { duration: 200 }}\"\r\n */\r\nexport const tcsFadeInOutAnimation: AnimationTriggerMetadata = trigger('tcsFadeInOut', [\r\n state(\r\n '0',\r\n style({\r\n opacity: '0',\r\n visibility: 'hidden',\r\n }),\r\n ),\r\n state(\r\n '1',\r\n style({\r\n opacity: AUTO_STYLE,\r\n visibility: AUTO_STYLE,\r\n }),\r\n ),\r\n transition(\r\n '0 => 1',\r\n [\r\n group([\r\n query('@*', animateChild(), { optional: true }),\r\n animate('{{ duration }}ms {{ delay }}ms {{ easeOnIn }}'),\r\n ]),\r\n ],\r\n { params: { duration: 150, delay: '0', easeOnIn: 'ease-in' } },\r\n ),\r\n transition(\r\n '1 => 0',\r\n [\r\n group([\r\n query('@*', animateChild(), { optional: true }),\r\n animate('{{ duration }}ms {{ delay }}ms {{ easeOnOut }}'),\r\n ]),\r\n ],\r\n { params: { duration: 150, delay: '0', easeOnOut: 'ease-out' } },\r\n ),\r\n]);\r\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\n\n/** Injection token to be used to override the default options for `mat-progress-bar`. */\nconst MAT_PROGRESS_BAR_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_PROGRESS_BAR_DEFAULT_OPTIONS');\n/**\n * Injection token used to provide the current location to `MatProgressBar`.\n * Used to handle server-side rendering and to stub out during unit tests.\n * @docs-private\n */\nconst MAT_PROGRESS_BAR_LOCATION = /*#__PURE__*/new InjectionToken('mat-progress-bar-location', {\n providedIn: 'root',\n factory: MAT_PROGRESS_BAR_LOCATION_FACTORY\n});\n/** @docs-private */\nfunction MAT_PROGRESS_BAR_LOCATION_FACTORY() {\n const _document = inject(DOCUMENT);\n const _location = _document ? _document.location : null;\n return {\n // Note that this needs to be a function, rather than a property, because Angular\n // will only resolve it once, but we want the current path on each call.\n getPathname: () => _location ? _location.pathname + _location.search : ''\n };\n}\n// Boilerplate for applying mixins to MatProgressBar.\n/** @docs-private */\nconst _MatProgressBarBase = /*#__PURE__*/mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\nlet MatProgressBar = /*#__PURE__*/(() => {\n class MatProgressBar extends _MatProgressBarBase {\n constructor(elementRef, _ngZone, _changeDetectorRef, _animationMode, defaults) {\n super(elementRef);\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n /** Flag that indicates whether NoopAnimations mode is set to true. */\n this._isNoopAnimation = false;\n this._value = 0;\n this._bufferValue = 0;\n /**\n * Event emitted when animation of the primary progress bar completes. This event will not\n * be emitted when animations are disabled, nor will it be emitted for modes with continuous\n * animations (indeterminate and query).\n */\n this.animationEnd = new EventEmitter();\n this._mode = 'determinate';\n /** Event handler for `transitionend` events. */\n this._transitionendHandler = event => {\n if (this.animationEnd.observers.length === 0 || !event.target || !event.target.classList.contains('mdc-linear-progress__primary-bar')) {\n return;\n }\n if (this.mode === 'determinate' || this.mode === 'buffer') {\n this._ngZone.run(() => this.animationEnd.next({\n value: this.value\n }));\n }\n };\n this._isNoopAnimation = _animationMode === 'NoopAnimations';\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n this.mode = defaults.mode || this.mode;\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this._value;\n }\n set value(v) {\n this._value = clamp(coerceNumberProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n /** Buffer value of the progress bar. Defaults to zero. */\n get bufferValue() {\n return this._bufferValue || 0;\n }\n set bufferValue(v) {\n this._bufferValue = clamp(coerceNumberProperty(v));\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n get mode() {\n return this._mode;\n }\n set mode(value) {\n // Note that we don't technically need a getter and a setter here,\n // but we use it to match the behavior of the existing mat-progress-bar.\n this._mode = value;\n this._changeDetectorRef.markForCheck();\n }\n ngAfterViewInit() {\n // Run outside angular so change detection didn't get triggered on every transition end\n // instead only on the animation that we care about (primary value bar's transitionend)\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('transitionend', this._transitionendHandler);\n });\n }\n ngOnDestroy() {\n this._elementRef.nativeElement.removeEventListener('transitionend', this._transitionendHandler);\n }\n /** Gets the transform style that should be applied to the primary bar. */\n _getPrimaryBarTransform() {\n return `scaleX(${this._isIndeterminate() ? 1 : this.value / 100})`;\n }\n /** Gets the `flex-basis` value that should be applied to the buffer bar. */\n _getBufferBarFlexBasis() {\n return `${this.mode === 'buffer' ? this.bufferValue : 100}%`;\n }\n /** Returns whether the progress bar is indeterminate. */\n _isIndeterminate() {\n return this.mode === 'indeterminate' || this.mode === 'query';\n }\n static {\n this.ɵfac = function MatProgressBar_Factory(t) {\n return new (t || MatProgressBar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_BAR_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatProgressBar,\n selectors: [[\"mat-progress-bar\"]],\n hostAttrs: [\"role\", \"progressbar\", \"aria-valuemin\", \"0\", \"aria-valuemax\", \"100\", \"tabindex\", \"-1\", 1, \"mat-mdc-progress-bar\", \"mdc-linear-progress\"],\n hostVars: 8,\n hostBindings: function MatProgressBar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuenow\", ctx._isIndeterminate() ? null : ctx.value)(\"mode\", ctx.mode);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._isNoopAnimation)(\"mdc-linear-progress--animation-ready\", !ctx._isNoopAnimation)(\"mdc-linear-progress--indeterminate\", ctx._isIndeterminate());\n }\n },\n inputs: {\n color: \"color\",\n value: \"value\",\n bufferValue: \"bufferValue\",\n mode: \"mode\"\n },\n outputs: {\n animationEnd: \"animationEnd\"\n },\n exportAs: [\"matProgressBar\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 7,\n vars: 4,\n consts: [[\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__buffer\"], [1, \"mdc-linear-progress__buffer-bar\"], [1, \"mdc-linear-progress__buffer-dots\"], [\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__bar\", \"mdc-linear-progress__primary-bar\"], [1, \"mdc-linear-progress__bar-inner\"], [\"aria-hidden\", \"true\", 1, \"mdc-linear-progress__bar\", \"mdc-linear-progress__secondary-bar\"]],\n template: function MatProgressBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelement(1, \"div\", 1)(2, \"div\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵelement(4, \"span\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 5);\n i0.ɵɵelement(6, \"span\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"flex-basis\", ctx._getBufferBarFlexBasis());\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"transform\", ctx._getPrimaryBarTransform());\n }\n },\n styles: [\"@keyframes mdc-linear-progress-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half))}100%{transform:translateX(var(--mdc-linear-progress-primary-full))}}@keyframes mdc-linear-progress-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full))}}@keyframes mdc-linear-progress-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mdc-linear-progress-primary-indeterminate-translate-reverse{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(var(--mdc-linear-progress-primary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-primary-full-neg))}}@keyframes mdc-linear-progress-secondary-indeterminate-translate-reverse{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(var(--mdc-linear-progress-secondary-quarter-neg))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(var(--mdc-linear-progress-secondary-half-neg))}100%{transform:translateX(var(--mdc-linear-progress-secondary-full-neg))}}@keyframes mdc-linear-progress-buffering-reverse{from{transform:translateX(-10px)}}.mdc-linear-progress{position:relative;width:100%;transform:translateZ(0);outline:1px solid rgba(0,0,0,0);overflow-x:hidden;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}@media screen and (forced-colors: active){.mdc-linear-progress{outline-color:CanvasText}}.mdc-linear-progress__bar{position:absolute;top:0;bottom:0;margin:auto 0;width:100%;animation:none;transform-origin:top left;transition:transform 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__bar-inner{display:inline-block;position:absolute;width:100%;animation:none;border-top-style:solid}.mdc-linear-progress__buffer{display:flex;position:absolute;top:0;bottom:0;margin:auto 0;width:100%;overflow:hidden}.mdc-linear-progress__buffer-dots{background-repeat:repeat-x;flex:auto;transform:rotate(180deg);-webkit-mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");mask-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='xMinYMin slice'%3E%3Ccircle cx='1' cy='1' r='1'/%3E%3C/svg%3E\\\");animation:mdc-linear-progress-buffering 250ms infinite linear}.mdc-linear-progress__buffer-bar{flex:0 1 100%;transition:flex-basis 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-linear-progress__primary-bar{transform:scaleX(0)}.mdc-linear-progress__secondary-bar{display:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__bar{transition:none}.mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{left:-145.166611%}.mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{left:-54.888891%;display:block}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation:mdc-linear-progress-primary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-primary-indeterminate-scale 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation:mdc-linear-progress-secondary-indeterminate-translate 2s infinite linear}.mdc-linear-progress--indeterminate.mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar>.mdc-linear-progress__bar-inner{animation:mdc-linear-progress-secondary-indeterminate-scale 2s infinite linear}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__bar{right:0;-webkit-transform-origin:center right;transform-origin:center right}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__primary-bar{animation-name:mdc-linear-progress-primary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--animation-ready .mdc-linear-progress__secondary-bar{animation-name:mdc-linear-progress-secondary-indeterminate-translate-reverse}[dir=rtl] .mdc-linear-progress:not([dir=ltr]) .mdc-linear-progress__buffer-dots,.mdc-linear-progress[dir=rtl]:not([dir=ltr]) .mdc-linear-progress__buffer-dots{animation:mdc-linear-progress-buffering-reverse 250ms infinite linear;transform:rotate(0)}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__primary-bar{right:-145.166611%;left:auto}[dir=rtl] .mdc-linear-progress:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar,.mdc-linear-progress[dir=rtl]:not([dir=ltr]).mdc-linear-progress--indeterminate .mdc-linear-progress__secondary-bar{right:-54.888891%;left:auto}.mdc-linear-progress--closed{opacity:0}.mdc-linear-progress--closed-animation-off .mdc-linear-progress__buffer-dots{animation:none}.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar,.mdc-linear-progress--closed-animation-off.mdc-linear-progress--indeterminate .mdc-linear-progress__bar .mdc-linear-progress__bar-inner{animation:none}@keyframes mdc-linear-progress-buffering{from{transform:rotate(180deg) translateX(calc(var(--mdc-linear-progress-track-height) * -2.5))}}.mdc-linear-progress__bar-inner{border-color:var(--mdc-linear-progress-active-indicator-color)}@media(forced-colors: active){.mdc-linear-progress__buffer-dots{background-color:ButtonBorder}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-color:rgba(0,0,0,0);background-image:url(\\\"data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' enable-background='new 0 0 5 2' xml:space='preserve' viewBox='0 0 5 2' preserveAspectRatio='none slice'%3E%3Ccircle cx='1' cy='1' r='1' fill=''/%3E%3C/svg%3E\\\")}}.mdc-linear-progress{height:max(var(--mdc-linear-progress-track-height), var(--mdc-linear-progress-active-indicator-height))}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress{height:4px}}.mdc-linear-progress__bar{height:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__bar-inner{border-top-width:var(--mdc-linear-progress-active-indicator-height)}.mdc-linear-progress__buffer{height:var(--mdc-linear-progress-track-height)}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.mdc-linear-progress__buffer-dots{background-size:10px var(--mdc-linear-progress-track-height)}}.mdc-linear-progress__buffer{border-radius:var(--mdc-linear-progress-track-shape)}.mat-mdc-progress-bar{--mdc-linear-progress-active-indicator-height:4px;--mdc-linear-progress-track-height:4px;--mdc-linear-progress-track-shape:0}.mat-mdc-progress-bar{display:block;text-align:left;--mdc-linear-progress-primary-half: 83.67142%;--mdc-linear-progress-primary-full: 200.611057%;--mdc-linear-progress-secondary-quarter: 37.651913%;--mdc-linear-progress-secondary-half: 84.386165%;--mdc-linear-progress-secondary-full: 160.277782%;--mdc-linear-progress-primary-half-neg: -83.67142%;--mdc-linear-progress-primary-full-neg: -200.611057%;--mdc-linear-progress-secondary-quarter-neg: -37.651913%;--mdc-linear-progress-secondary-half-neg: -84.386165%;--mdc-linear-progress-secondary-full-neg: -160.277782%}[dir=rtl] .mat-mdc-progress-bar{text-align:right}.mat-mdc-progress-bar[mode=query]{transform:scaleX(-1)}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-dots,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__secondary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__bar-inner.mdc-linear-progress__bar-inner{animation:none}.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__primary-bar,.mat-mdc-progress-bar._mat-animation-noopable .mdc-linear-progress__buffer-bar{transition:transform 1ms}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatProgressBar;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Clamps a value to be between two numbers, by default 0 and 100. */\nfunction clamp(v, min = 0, max = 100) {\n return Math.max(min, Math.min(max, v));\n}\nlet MatProgressBarModule = /*#__PURE__*/(() => {\n class MatProgressBarModule {\n static {\n this.ɵfac = function MatProgressBarModule_Factory(t) {\n return new (t || MatProgressBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatProgressBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule]\n });\n }\n }\n return MatProgressBarModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_BAR_DEFAULT_OPTIONS, MAT_PROGRESS_BAR_LOCATION, MAT_PROGRESS_BAR_LOCATION_FACTORY, MatProgressBar, MatProgressBarModule };\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Input, ViewChild, Output, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { MAT_PROGRESS_BAR_LOCATION, MAT_PROGRESS_BAR_DEFAULT_OPTIONS } from '@angular/material/progress-bar';\nexport { MAT_PROGRESS_BAR_DEFAULT_OPTIONS as MAT_LEGACY_PROGRESS_BAR_DEFAULT_OPTIONS, MAT_PROGRESS_BAR_LOCATION as MAT_LEGACY_PROGRESS_BAR_LOCATION, MAT_PROGRESS_BAR_LOCATION_FACTORY as MAT_LEGACY_PROGRESS_BAR_LOCATION_FACTORY } from '@angular/material/progress-bar';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n// TODO(josephperrott): Add ARIA attributes for progress bar \"for\".\n// Boilerplate for applying mixins to MatProgressBar.\n/** @docs-private */\nconst _c0 = [\"primaryValueBar\"];\nconst _MatProgressBarBase = /*#__PURE__*/mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n/** Counter used to generate unique IDs for progress bars. */\nlet progressbarId = 0;\n/**\n * `` component.\n * @deprecated Use `MatProgressBar` from `@angular/material/progress-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyProgressBar = /*#__PURE__*/(() => {\n class MatLegacyProgressBar extends _MatProgressBarBase {\n constructor(elementRef, _ngZone, _animationMode,\n /**\n * @deprecated `location` parameter to be made required.\n * @breaking-change 8.0.0\n */\n location, defaults,\n /**\n * @deprecated `_changeDetectorRef` parameter to be made required.\n * @breaking-change 11.0.0\n */\n _changeDetectorRef) {\n super(elementRef);\n this._ngZone = _ngZone;\n this._animationMode = _animationMode;\n this._changeDetectorRef = _changeDetectorRef;\n /** Flag that indicates whether NoopAnimations mode is set to true. */\n this._isNoopAnimation = false;\n this._value = 0;\n this._bufferValue = 0;\n /**\n * Event emitted when animation of the primary progress bar completes. This event will not\n * be emitted when animations are disabled, nor will it be emitted for modes with continuous\n * animations (indeterminate and query).\n */\n this.animationEnd = new EventEmitter();\n /** Reference to animation end subscription to be unsubscribed on destroy. */\n this._animationEndSubscription = Subscription.EMPTY;\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n this.mode = 'determinate';\n /** ID of the progress bar. */\n this.progressbarId = `mat-progress-bar-${progressbarId++}`;\n // We need to prefix the SVG reference with the current path, otherwise they won't work\n // in Safari if the page has a `` tag. Note that we need quotes inside the `url()`,\n // because named route URLs can contain parentheses (see #12338). Also we don't use `Location`\n // since we can't tell the difference between whether the consumer is using the hash location\n // strategy or not, because `Location` normalizes both `/#/foo/bar` and `/foo/bar` to\n // the same thing.\n const path = location ? location.getPathname().split('#')[0] : '';\n this._rectangleFillValue = `url('${path}#${this.progressbarId}')`;\n this._isNoopAnimation = _animationMode === 'NoopAnimations';\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n this.mode = defaults.mode || this.mode;\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this._value;\n }\n set value(v) {\n this._value = clamp(coerceNumberProperty(v) || 0);\n // @breaking-change 11.0.0 Remove null check for _changeDetectorRef.\n this._changeDetectorRef?.markForCheck();\n }\n /** Buffer value of the progress bar. Defaults to zero. */\n get bufferValue() {\n return this._bufferValue;\n }\n set bufferValue(v) {\n this._bufferValue = clamp(v || 0);\n // @breaking-change 11.0.0 Remove null check for _changeDetectorRef.\n this._changeDetectorRef?.markForCheck();\n }\n /** Gets the current transform value for the progress bar's primary indicator. */\n _primaryTransform() {\n // We use a 3d transform to work around some rendering issues in iOS Safari. See #19328.\n const scale = this.value / 100;\n return {\n transform: `scale3d(${scale}, 1, 1)`\n };\n }\n /**\n * Gets the current transform value for the progress bar's buffer indicator. Only used if the\n * progress mode is set to buffer, otherwise returns an undefined, causing no transformation.\n */\n _bufferTransform() {\n if (this.mode === 'buffer') {\n // We use a 3d transform to work around some rendering issues in iOS Safari. See #19328.\n const scale = this.bufferValue / 100;\n return {\n transform: `scale3d(${scale}, 1, 1)`\n };\n }\n return null;\n }\n ngAfterViewInit() {\n // Run outside angular so change detection didn't get triggered on every transition end\n // instead only on the animation that we care about (primary value bar's transitionend)\n this._ngZone.runOutsideAngular(() => {\n const element = this._primaryValueBar.nativeElement;\n this._animationEndSubscription = fromEvent(element, 'transitionend').pipe(filter(e => e.target === element)).subscribe(() => {\n if (this.animationEnd.observers.length === 0) {\n return;\n }\n if (this.mode === 'determinate' || this.mode === 'buffer') {\n this._ngZone.run(() => this.animationEnd.next({\n value: this.value\n }));\n }\n });\n });\n }\n ngOnDestroy() {\n this._animationEndSubscription.unsubscribe();\n }\n static {\n this.ɵfac = function MatLegacyProgressBar_Factory(t) {\n return new (t || MatLegacyProgressBar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_BAR_LOCATION, 8), i0.ɵɵdirectiveInject(MAT_PROGRESS_BAR_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatLegacyProgressBar,\n selectors: [[\"mat-progress-bar\"]],\n viewQuery: function MatLegacyProgressBar_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._primaryValueBar = _t.first);\n }\n },\n hostAttrs: [\"role\", \"progressbar\", \"aria-valuemin\", \"0\", \"aria-valuemax\", \"100\", \"tabindex\", \"-1\", 1, \"mat-progress-bar\"],\n hostVars: 4,\n hostBindings: function MatLegacyProgressBar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuenow\", ctx.mode === \"indeterminate\" || ctx.mode === \"query\" ? null : ctx.value)(\"mode\", ctx.mode);\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._isNoopAnimation);\n }\n },\n inputs: {\n color: \"color\",\n value: \"value\",\n bufferValue: \"bufferValue\",\n mode: \"mode\"\n },\n outputs: {\n animationEnd: \"animationEnd\"\n },\n exportAs: [\"matProgressBar\"],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 10,\n vars: 4,\n consts: [[\"primaryValueBar\", \"\"], [\"aria-hidden\", \"true\"], [\"width\", \"100%\", \"height\", \"4\", \"focusable\", \"false\", 1, \"mat-progress-bar-background\", \"mat-progress-bar-element\"], [\"x\", \"4\", \"y\", \"0\", \"width\", \"8\", \"height\", \"4\", \"patternUnits\", \"userSpaceOnUse\", 3, \"id\"], [\"cx\", \"2\", \"cy\", \"2\", \"r\", \"2\"], [\"width\", \"100%\", \"height\", \"100%\"], [1, \"mat-progress-bar-buffer\", \"mat-progress-bar-element\", 3, \"ngStyle\"], [1, \"mat-progress-bar-primary\", \"mat-progress-bar-fill\", \"mat-progress-bar-element\", 3, \"ngStyle\"], [1, \"mat-progress-bar-secondary\", \"mat-progress-bar-fill\", \"mat-progress-bar-element\"]],\n template: function MatLegacyProgressBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 2)(2, \"defs\")(3, \"pattern\", 3);\n i0.ɵɵelement(4, \"circle\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(5, \"rect\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelement(6, \"div\", 6)(7, \"div\", 7, 0)(9, \"div\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"id\", ctx.progressbarId);\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"fill\", ctx._rectangleFillValue);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._bufferTransform());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngStyle\", ctx._primaryTransform());\n }\n },\n dependencies: [i1.NgStyle],\n styles: [\".mat-progress-bar{display:block;height:4px;overflow:hidden;position:relative;transition:opacity 250ms linear;width:100%}.mat-progress-bar._mat-animation-noopable{transition:none !important;animation:none !important}.mat-progress-bar .mat-progress-bar-element,.mat-progress-bar .mat-progress-bar-fill::after{height:100%;position:absolute;width:100%}.mat-progress-bar .mat-progress-bar-background{width:calc(100% + 10px)}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-background{display:none}.mat-progress-bar .mat-progress-bar-buffer{transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-buffer{border-top:solid 5px;opacity:.5}.mat-progress-bar .mat-progress-bar-secondary{display:none}.mat-progress-bar .mat-progress-bar-fill{animation:none;transform-origin:top left;transition:transform 250ms ease}.cdk-high-contrast-active .mat-progress-bar .mat-progress-bar-fill{border-top:solid 4px}.mat-progress-bar .mat-progress-bar-fill::after{animation:none;content:\\\"\\\";display:inline-block;left:0}.mat-progress-bar[dir=rtl],[dir=rtl] .mat-progress-bar{transform:rotateY(180deg)}.mat-progress-bar[mode=query]{transform:rotateZ(180deg)}.mat-progress-bar[mode=query][dir=rtl],[dir=rtl] .mat-progress-bar[mode=query]{transform:rotateZ(180deg) rotateY(180deg)}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-fill,.mat-progress-bar[mode=query] .mat-progress-bar-fill{transition:none}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary,.mat-progress-bar[mode=query] .mat-progress-bar-primary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-translate 2000ms infinite linear;left:-145.166611%}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-primary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-primary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary,.mat-progress-bar[mode=query] .mat-progress-bar-secondary{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-translate 2000ms infinite linear;left:-54.888891%;display:block}.mat-progress-bar[mode=indeterminate] .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar[mode=query] .mat-progress-bar-secondary.mat-progress-bar-fill::after{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-secondary-indeterminate-scale 2000ms infinite linear}.mat-progress-bar[mode=buffer] .mat-progress-bar-background{-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:mat-progress-bar-background-scroll 250ms infinite linear;display:block}.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-buffer,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-primary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-secondary.mat-progress-bar-fill::after,.mat-progress-bar._mat-animation-noopable .mat-progress-bar-background{animation:none;transition-duration:1ms}@keyframes mat-progress-bar-primary-indeterminate-translate{0%{transform:translateX(0)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(83.67142%)}100%{transform:translateX(200.611057%)}}@keyframes mat-progress-bar-primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(37.651913%)}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(84.386165%)}100%{transform:translateX(160.277782%)}}@keyframes mat-progress-bar-secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes mat-progress-bar-background-scroll{to{transform:translateX(-8px)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatLegacyProgressBar;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Clamps a value to be between two numbers, by default 0 and 100. */\nfunction clamp(v, min = 0, max = 100) {\n return Math.max(min, Math.min(max, v));\n}\n\n/**\n * @deprecated Use `MatProgressBarModule` from `@angular/material/progress-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nlet MatLegacyProgressBarModule = /*#__PURE__*/(() => {\n class MatLegacyProgressBarModule {\n static {\n this.ɵfac = function MatLegacyProgressBarModule_Factory(t) {\n return new (t || MatLegacyProgressBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatLegacyProgressBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, MatCommonModule, MatCommonModule]\n });\n }\n }\n return MatLegacyProgressBarModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyProgressBar, MatLegacyProgressBarModule };\n","import { ChangeDetectorRef, Component, DoCheck, ElementRef } from '@angular/core';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { tcsFadeInOutAnimation } from '../../fadeInOut.animation';\r\n\r\nexport enum LoadingType {\r\n Circular = 'circular',\r\n Linear = 'linear',\r\n}\r\n\r\nexport enum LoadingMode {\r\n Determinate = 'determinate',\r\n Indeterminate = 'indeterminate',\r\n}\r\n\r\nexport enum LoadingStrategy {\r\n Overlay = 'overlay',\r\n Replace = 'replace',\r\n}\r\n\r\nexport enum LoadingStyle {\r\n FullScreen = 'fullscreen',\r\n Overlay = 'overlay',\r\n None = 'none',\r\n}\r\n\r\nexport const CIRCLE_DIAMETER = 100;\r\n\r\n@Component({\r\n selector: 'tcs-loading',\r\n styleUrls: ['./loading.component.scss'],\r\n templateUrl: './loading.component.html',\r\n animations: [tcsFadeInOutAnimation],\r\n})\r\nexport class TcsLoadingComponent implements DoCheck {\r\n private _mode: LoadingMode = LoadingMode.Indeterminate;\r\n private _defaultMode: LoadingMode = LoadingMode.Indeterminate;\r\n private _value = 0;\r\n private _circleDiameter: number = CIRCLE_DIAMETER;\r\n\r\n /**\r\n * Flag for animation\r\n */\r\n animation = false;\r\n\r\n /**\r\n * Content injected into loading component.\r\n */\r\n content!: TemplatePortal;\r\n\r\n /**\r\n * Sets mode of [TcsLoadingComponent] to LoadingMode.Determinate or LoadingMode.Indeterminate\r\n */\r\n set mode(mode: LoadingMode) {\r\n this._defaultMode = mode;\r\n }\r\n get mode(): LoadingMode {\r\n return this._mode;\r\n }\r\n\r\n /**\r\n * Sets value of [TcsLoadingComponent] if mode is 'LoadingMode.Determinate'\r\n */\r\n set value(value: number) {\r\n this._value = value;\r\n // Check for changes for `OnPush` change detection\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n get value(): number {\r\n return this._value;\r\n }\r\n\r\n style: LoadingStyle = LoadingStyle.None;\r\n\r\n /**\r\n * height: number\r\n * Sets height of [TcsLoadingComponent].\r\n */\r\n height = 100;\r\n\r\n /**\r\n * type: LoadingType\r\n * Sets type of [TcsLoadingComponent] rendered.\r\n */\r\n type: LoadingType = LoadingType.Circular;\r\n\r\n /**\r\n * color: primary' | 'accent' | 'warn'\r\n * Sets theme color of [TcsLoadingComponent] rendered.\r\n */\r\n color: 'primary' | 'accent' | 'warn' = 'primary';\r\n\r\n constructor(private _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngDoCheck(): void {\r\n // When overlay is used and the host width has a value greater than 1px\r\n // set the circle diameter when possible incase the loading component was rendered in a hidden state\r\n if (this.isOverlay() && this._hostHeight() > 1 && this.animation) {\r\n this._setCircleDiameter();\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n getHeight(): string | undefined {\r\n // Ignore height if style is `overlay` or `fullscreen`.\r\n // Add height if child elements have a height and style is `none`, else return default height.\r\n if (this.isOverlay() || this.isFullScreen()) {\r\n return undefined;\r\n } else {\r\n return this.height ? `${this.height}px` : '150px';\r\n }\r\n }\r\n\r\n getCircleDiameter(): number {\r\n return this._circleDiameter;\r\n }\r\n\r\n getCircleStrokeWidth(): number {\r\n // we calculate the stroke width by setting it as 10% of its diameter\r\n const strokeWidth: number = this.getCircleDiameter() / 10;\r\n return Math.abs(strokeWidth);\r\n }\r\n\r\n isCircular(): boolean {\r\n return this.type === LoadingType.Circular;\r\n }\r\n\r\n isLinear(): boolean {\r\n return this.type === LoadingType.Linear;\r\n }\r\n\r\n isFullScreen(): boolean {\r\n return this.style === LoadingStyle.FullScreen;\r\n }\r\n\r\n isOverlay(): boolean {\r\n return this.style === LoadingStyle.Overlay;\r\n }\r\n\r\n /**\r\n * Starts in animation and returns an observable for completition event.\r\n */\r\n show(): void {\r\n /* need to switch back to the selected mode, so we have saved it in another variable\r\n * and then recover it. (issue with protractor)\r\n */\r\n this._mode = this._defaultMode;\r\n // Set values before the animations starts\r\n this._setCircleDiameter();\r\n // Check for changes for `OnPush` change detection\r\n this.animation = true;\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n /**\r\n * Starts out animation and returns an observable for completition event.\r\n */\r\n hide(): void {\r\n this.animation = false;\r\n /* need to switch back and forth from determinate/indeterminate so the setInterval()\r\n * inside mat-progress-spinner stops and protractor doesnt timeout waiting to sync.\r\n */\r\n this._mode = LoadingMode.Determinate;\r\n // Check for changes for `OnPush` change detection\r\n /* little hack to reset the loader value and animation before removing it from DOM\r\n * else, the loader will appear with prev value when its registered again\r\n * and will do an animation going prev value to 0.\r\n */\r\n this.value = 0;\r\n // Check for changes for `OnPush` change detection\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n /**\r\n * Calculate the proper diameter for the circle and set it\r\n */\r\n private _setCircleDiameter(): void {\r\n // we set a default diameter of 100 since this is the default in material\r\n let diameter: number = CIRCLE_DIAMETER;\r\n // if height is provided, then we take that as diameter\r\n if (this.height) {\r\n diameter = this.height;\r\n // else if its not provided, then we take the host height\r\n } else if (this.height === undefined) {\r\n diameter = this._hostHeight();\r\n }\r\n // if the diameter is over CIRCLE_DIAMETER, we set CIRCLE_DIAMETER\r\n if (diameter <= CIRCLE_DIAMETER) {\r\n this._circleDiameter = Math.floor(diameter);\r\n } else {\r\n this._circleDiameter = CIRCLE_DIAMETER;\r\n }\r\n }\r\n\r\n /**\r\n * Returns the host height of the loading component\r\n */\r\n private _hostHeight(): number {\r\n if ((this._elementRef.nativeElement as HTMLElement) != null) {\r\n return (this._elementRef.nativeElement as HTMLElement).getBoundingClientRect().height;\r\n }\r\n return 0;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n","import {\r\n ApplicationRef,\r\n createComponent,\r\n EmbeddedViewRef,\r\n Injectable,\r\n Optional,\r\n Provider,\r\n SkipSelf,\r\n} from '@angular/core';\r\nimport { ComponentRef, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';\r\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { ITcsLoadingConfig } from './loading.service';\r\nimport { LoadingStyle, TcsLoadingComponent } from './components/loading/loading.component';\r\nimport { TcsLoadingContext } from './loading.directive';\r\n\r\nexport interface IInternalLoadingOptions extends ITcsLoadingConfig {\r\n height?: number;\r\n style?: LoadingStyle;\r\n}\r\n\r\nexport interface ILoadingRef {\r\n observable: Observable;\r\n componentRef?: ComponentRef;\r\n subject: Subject;\r\n times: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TcsLoadingFactory {\r\n constructor(private _overlay: Overlay, private _applicationRef: ApplicationRef) {}\r\n\r\n /**\r\n * Uses material `Overlay` services to create a DOM element and attach the loading component\r\n * into it. Leveraging the state and configuration from it.\r\n *\r\n * Saves a reference in context to be called when registering/resolving the loading element.\r\n */\r\n public createFullScreenComponent(options: ITcsLoadingConfig): ILoadingRef {\r\n (options as IInternalLoadingOptions).height = undefined;\r\n (options as IInternalLoadingOptions).style = LoadingStyle.FullScreen;\r\n const loadingRef: ILoadingRef = this._initializeContext();\r\n let loading = false;\r\n let overlayRef: OverlayRef;\r\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\r\n if (registered > 0 && !loading) {\r\n loading = true;\r\n overlayRef = this._createOverlay();\r\n loadingRef.componentRef = overlayRef.attach(new ComponentPortal(TcsLoadingComponent));\r\n this._mapOptions(options, loadingRef.componentRef?.instance);\r\n loadingRef.componentRef?.instance.show();\r\n loadingRef.componentRef?.changeDetectorRef.detectChanges();\r\n } else if (registered <= 0 && loading) {\r\n loading = false;\r\n loadingRef.componentRef?.instance.hide();\r\n loadingRef.componentRef?.destroy();\r\n overlayRef.detach();\r\n overlayRef.dispose();\r\n }\r\n });\r\n return loadingRef;\r\n }\r\n\r\n /**\r\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\r\n * Leverages TemplatePortals from material to inject the template inside of it so it fits\r\n * perfectly when overlaying it.\r\n *\r\n * Saves a reference in context to be called when registering/resolving the loading element.\r\n */\r\n public createOverlayComponent(\r\n options: ITcsLoadingConfig,\r\n viewContainerRef: ViewContainerRef,\r\n templateRef: TemplateRef,\r\n ): ILoadingRef {\r\n (options as IInternalLoadingOptions).height = undefined;\r\n (options as IInternalLoadingOptions).style = LoadingStyle.Overlay;\r\n const loadingRef: ILoadingRef = this._createComponent(options);\r\n let loading = false;\r\n\r\n if (loadingRef.componentRef != null) {\r\n loadingRef.componentRef.instance.content = new TemplatePortal(templateRef, viewContainerRef);\r\n viewContainerRef.clear();\r\n viewContainerRef.insert(loadingRef.componentRef?.hostView, 0);\r\n }\r\n\r\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\r\n if (registered > 0 && !loading) {\r\n loading = true;\r\n loadingRef.componentRef?.instance.show();\r\n } else if (registered <= 0 && loading) {\r\n loading = false;\r\n loadingRef.componentRef?.instance.hide();\r\n }\r\n });\r\n return loadingRef;\r\n }\r\n\r\n /**\r\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\r\n * Replaces the template with the loading component depending if it was registered or resolved.\r\n *\r\n * Saves a reference in context to be called when registering/resolving the loading element.\r\n */\r\n public createReplaceComponent(\r\n options: ITcsLoadingConfig,\r\n viewContainerRef: ViewContainerRef,\r\n templateRef: TemplateRef,\r\n context: TcsLoadingContext,\r\n ): ILoadingRef {\r\n const nativeElement: HTMLElement = templateRef.elementRef.nativeElement as HTMLElement;\r\n (options as IInternalLoadingOptions).height =\r\n nativeElement.nextElementSibling != null\r\n ? nativeElement.nextElementSibling.scrollHeight\r\n : undefined;\r\n (options as IInternalLoadingOptions).style = LoadingStyle.None;\r\n const loadingRef: ILoadingRef = this._createComponent(options);\r\n let loading = false;\r\n // passing context so when the template is attached, we can keep the reference of the variables\r\n const contentRef: EmbeddedViewRef = viewContainerRef.createEmbeddedView(\r\n templateRef,\r\n context,\r\n );\r\n loadingRef.observable.pipe(distinctUntilChanged()).subscribe((registered: number) => {\r\n if (registered > 0 && !loading && loadingRef.componentRef != null) {\r\n loading = true;\r\n // detach the content and attach the loader if loader is there\r\n const index: number = viewContainerRef.indexOf(loadingRef.componentRef.hostView);\r\n if (index < 0) {\r\n viewContainerRef.detach(viewContainerRef.indexOf(contentRef));\r\n viewContainerRef.insert(loadingRef.componentRef.hostView, 0);\r\n }\r\n loadingRef.componentRef?.instance.show();\r\n } else if (registered <= 0 && loading && loadingRef.componentRef != null) {\r\n loading = false;\r\n loadingRef.componentRef?.instance.hide();\r\n // detach loader and attach the content if content is there\r\n const index: number = viewContainerRef.indexOf(contentRef);\r\n if (index < 0) {\r\n viewContainerRef.detach(viewContainerRef.indexOf(loadingRef.componentRef.hostView));\r\n viewContainerRef.insert(contentRef, 0);\r\n }\r\n /**\r\n * Need to call \"markForCheck\" and \"detectChanges\" on attached template, so its detected by parent component when attached\r\n * with \"OnPush\" change detection\r\n */\r\n contentRef.detectChanges();\r\n contentRef.markForCheck();\r\n }\r\n });\r\n return loadingRef;\r\n }\r\n\r\n /**\r\n * Creates a fullscreen overlay for the loading usage.\r\n */\r\n private _createOverlay(): OverlayRef {\r\n const state: OverlayConfig = new OverlayConfig();\r\n state.hasBackdrop = false;\r\n state.positionStrategy = this._overlay\r\n .position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n return this._overlay.create(state);\r\n }\r\n\r\n /**\r\n * Creates a generic component dynamically waiting to be attached to a viewContainerRef.\r\n */\r\n private _createComponent(options: IInternalLoadingOptions): ILoadingRef {\r\n const compRef: ILoadingRef = this._initializeContext();\r\n const environmentInjector = this._applicationRef.injector;\r\n compRef.componentRef = createComponent(TcsLoadingComponent, {\r\n environmentInjector,\r\n });\r\n this._mapOptions(options, compRef.componentRef.instance);\r\n return compRef;\r\n }\r\n\r\n /**\r\n * Initialize context for loading component.\r\n */\r\n private _initializeContext(): ILoadingRef {\r\n const subject: Subject = new Subject();\r\n return {\r\n observable: subject.asObservable(),\r\n subject,\r\n componentRef: undefined,\r\n times: 0,\r\n };\r\n }\r\n\r\n /**\r\n * Maps configuration to the loading component instance.\r\n */\r\n private _mapOptions(options: IInternalLoadingOptions, instance: TcsLoadingComponent): void {\r\n if (options.style != null) {\r\n instance.style = options.style;\r\n }\r\n\r\n if (options.type !== undefined) {\r\n instance.type = options.type;\r\n }\r\n if (options.height !== undefined) {\r\n instance.height = options.height;\r\n }\r\n if (options.mode !== undefined) {\r\n instance.mode = options.mode;\r\n }\r\n if (options.color !== undefined) {\r\n instance.color = options.color;\r\n }\r\n }\r\n}\r\n\r\nexport function loadingFactoryProviderFactory(\r\n parent: TcsLoadingFactory,\r\n overlay: Overlay,\r\n applicationRef: ApplicationRef,\r\n): TcsLoadingFactory {\r\n return parent ?? new TcsLoadingFactory(overlay, applicationRef);\r\n}\r\n\r\nexport const loadingFactoryProvider: Provider = {\r\n // If there is already a service available, use that. Otherwise, provide a new one.\r\n provide: TcsLoadingFactory,\r\n deps: [[new Optional(), new SkipSelf(), TcsLoadingFactory], Overlay, ApplicationRef],\r\n useFactory: loadingFactoryProviderFactory,\r\n};\r\n","import { Injectable, Optional, Provider, SkipSelf } from '@angular/core';\r\nimport { TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { ILoadingRef, TcsLoadingFactory } from './loading.factory';\r\nimport {\r\n LoadingMode,\r\n LoadingStrategy,\r\n LoadingType,\r\n TcsLoadingComponent,\r\n} from './components/loading/loading.component';\r\nimport { TcsLoadingContext } from './loading.directive';\r\n\r\nexport interface ITcsLoadingConfig {\r\n name: string;\r\n type?: LoadingType;\r\n mode?: LoadingMode;\r\n color?: 'primary' | 'accent' | 'warn';\r\n}\r\n\r\nexport class TcsLoadingConfig implements ITcsLoadingConfig {\r\n name: string;\r\n type?: LoadingType;\r\n mode?: LoadingMode;\r\n color?: 'primary' | 'accent' | 'warn';\r\n\r\n constructor(config: ITcsLoadingConfig) {\r\n this.name = config.name;\r\n if (!this.name) {\r\n throw Error('Name is required for [TcsLoading] configuration.');\r\n }\r\n this.mode = config.mode != null ? config.mode : LoadingMode.Indeterminate;\r\n this.type = config.type != null ? config.type : LoadingType.Circular;\r\n this.color = config.color ? config.color : 'primary';\r\n }\r\n}\r\n\r\nexport interface ITcsLoadingDirectiveConfig extends ITcsLoadingConfig {\r\n strategy?: LoadingStrategy;\r\n}\r\n\r\nexport class TcsLoadingDirectiveConfig\r\n extends TcsLoadingConfig\r\n implements ITcsLoadingDirectiveConfig\r\n{\r\n strategy: LoadingStrategy;\r\n\r\n constructor(config: ITcsLoadingDirectiveConfig) {\r\n super(config);\r\n this.strategy = config.strategy != null ? config.strategy : LoadingStrategy.Replace;\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TcsLoadingService {\r\n private _context: { [key: string]: ILoadingRef } = {};\r\n private _timeouts: { [key: string]: any } = {};\r\n\r\n constructor(private _loadingFactory: TcsLoadingFactory) {\r\n this.create({\r\n name: 'tcs-loading-main',\r\n });\r\n }\r\n\r\n /**\r\n * params:\r\n * - config: ILoadingDirectiveConfig\r\n * - viewContainerRef: ViewContainerRef\r\n * - templateRef: TemplateRef\r\n *\r\n * Creates an replace loading mask and attaches it to the viewContainerRef.\r\n * Replaces the templateRef with the mask when a request is registered on it.\r\n *\r\n * NOTE: @internal usage only.\r\n */\r\n createComponent(\r\n config: ITcsLoadingDirectiveConfig,\r\n viewContainerRef: ViewContainerRef,\r\n templateRef: TemplateRef,\r\n context: TcsLoadingContext,\r\n ): ILoadingRef {\r\n const directiveConfig: TcsLoadingDirectiveConfig = new TcsLoadingDirectiveConfig(config);\r\n if (this._context[directiveConfig.name] != null) {\r\n throw Error(\r\n `Name duplication: [TcsLoading] directive has a name conflict with ${directiveConfig.name}.`,\r\n );\r\n }\r\n if (directiveConfig.strategy === LoadingStrategy.Overlay) {\r\n this._context[directiveConfig.name] = this._loadingFactory.createOverlayComponent(\r\n directiveConfig,\r\n viewContainerRef,\r\n templateRef,\r\n );\r\n } else {\r\n this._context[directiveConfig.name] = this._loadingFactory.createReplaceComponent(\r\n directiveConfig,\r\n viewContainerRef,\r\n templateRef,\r\n context,\r\n );\r\n }\r\n return this._context[directiveConfig.name];\r\n }\r\n\r\n /**\r\n * params:\r\n * - config: ITcsLoadingConfig\r\n *\r\n * Creates a fullscreen loading mask and attaches it to the DOM with the given configuration.\r\n * Only displayed when the mask has a request registered on it.\r\n */\r\n public create(config: ITcsLoadingConfig): void {\r\n const fullscreenConfig: TcsLoadingConfig = new TcsLoadingConfig(config);\r\n this.removeComponent(fullscreenConfig.name);\r\n this._context[fullscreenConfig.name] =\r\n this._loadingFactory.createFullScreenComponent(fullscreenConfig);\r\n }\r\n\r\n /**\r\n * params:\r\n * - name: string\r\n *\r\n * Removes `loading` component from service context.\r\n */\r\n public removeComponent(name: string): void {\r\n if (this._context[name] != null) {\r\n this._context[name].subject.unsubscribe();\r\n if (this._context[name].componentRef != null) {\r\n this._context[name].componentRef?.destroy();\r\n }\r\n delete this._context[name];\r\n }\r\n }\r\n\r\n /**\r\n * params:\r\n * - name: string\r\n * - registers?: number\r\n * returns: true if successful\r\n *\r\n * Resolves a request for the loading mask referenced by the name parameter.\r\n * Can optionally pass registers argument to set a number of register calls.\r\n *\r\n * If no paramemeters are used, then default main mask will be used.\r\n *\r\n * e.g. loadingService.register()\r\n */\r\n public register(name: string = 'tcs-loading-main', registers: number = 1): boolean {\r\n // try registering into the service if the loading component has been instanciated or if it exists.\r\n if (this._context[name] != null) {\r\n registers = registers < 1 ? 1 : registers;\r\n this._context[name].times += registers;\r\n this._context[name].subject.next(this._context[name].times);\r\n return true;\r\n } else {\r\n // if it doesnt exist, set a timeout so its registered after change detection happens\r\n // this in case \"register\" occured on the `ngOnInit` lifehook cycle.\r\n if (this._timeouts[name] === false) {\r\n this._timeouts[name] = setTimeout(() => {\r\n this.register(name, registers);\r\n });\r\n } else {\r\n // if it timeout occured and still doesnt exist, it means the tiemout wasnt needed so we clear it.\r\n this._clearTimeout(name);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * params:\r\n * - name: string\r\n * - resolves?: number\r\n * returns: true if successful\r\n *\r\n * Resolves a request for the loading mask referenced by the name parameter.\r\n * Can optionally pass resolves argument to set a number of resolve calls.\r\n *\r\n * If no paramemeters are used, then default main mask will be used.\r\n *\r\n * e.g. loadingService.resolve()\r\n */\r\n public resolve(name: string = 'tcs-loading-main', resolves: number = 1): boolean {\r\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\r\n this._clearTimeout(name);\r\n if (this._context[name] != null) {\r\n resolves = resolves < 1 ? 1 : resolves;\r\n if (this._context[name].times) {\r\n let times: number = this._context[name].times;\r\n times -= resolves;\r\n this._context[name].times = times < 0 ? 0 : times;\r\n }\r\n this._context[name].subject?.next(this._context[name].times);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * params:\r\n * - name: string\r\n * returns: true if successful\r\n *\r\n * Resolves all request for the loading mask referenced by the name parameter.\r\n *\r\n * If no paramemeters are used, then default main mask will be used.\r\n *\r\n * e.g. loadingService.resolveAll()\r\n */\r\n public resolveAll(name: string = 'tcs-loading-main'): boolean {\r\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\r\n this._clearTimeout(name);\r\n if (this._context[name] != null) {\r\n this._context[name].times = 0;\r\n this._context[name].subject?.next(this._context[name].times);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * params:\r\n * - name: string\r\n * - value: number\r\n * returns: true if successful\r\n *\r\n * Set value on a loading mask referenced by the name parameter.\r\n * Usage only available if its mode is 'determinate' and if loading is showing.\r\n */\r\n public setValue(name: string, value: number): boolean {\r\n if (this._context[name] != null) {\r\n const instance: TcsLoadingComponent = this._context[name].componentRef?.instance;\r\n if (instance.mode === LoadingMode.Determinate && instance.animation) {\r\n instance.value = value;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Clears timeout linked to the name.\r\n * @param name Name of the loading component to be cleared\r\n */\r\n private _clearTimeout(name: string): void {\r\n clearTimeout(this._timeouts[name]);\r\n delete this._timeouts[name];\r\n }\r\n}\r\n\r\nexport function loadingProviderFactory(\r\n parent: TcsLoadingService,\r\n loadingFactory: TcsLoadingFactory,\r\n): TcsLoadingService {\r\n return parent ?? new TcsLoadingService(loadingFactory);\r\n}\r\n\r\nexport const loadingProvider: Provider = {\r\n // If there is already a service available, use that. Otherwise, provide a new one.\r\n provide: TcsLoadingService,\r\n deps: [[new Optional(), new SkipSelf(), TcsLoadingService], TcsLoadingFactory],\r\n useFactory: loadingProviderFactory,\r\n};\r\n","import { Directive, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { TcsLoadingService } from './loading.service';\r\nimport { ILoadingRef } from './loading.factory';\r\nimport { LoadingMode, LoadingStrategy, LoadingType } from './components/loading/loading.component';\r\n\r\n/**\r\n * Context class for variable reference\r\n */\r\nexport class TcsLoadingContext {\r\n public $implicit: any = undefined;\r\n public tcsLoading: any = undefined;\r\n}\r\n\r\n// Constant for generation of the id for the next component\r\nlet TCS_LOADING_NEXT_ID = 0;\r\n\r\n@Directive({\r\n selector: '[tcsLoading]',\r\n})\r\nexport class TcsLoadingDirective implements OnInit, OnDestroy {\r\n private _context: TcsLoadingContext = new TcsLoadingContext();\r\n private _loadingRef?: ILoadingRef;\r\n\r\n /**\r\n * tcsLoading: string\r\n * Name reference of the loading mask, used to register/resolve requests to the mask.\r\n */\r\n @Input('tcsLoading')\r\n name!: string;\r\n\r\n /**\r\n * tcsLoadingUntil?: any\r\n * If its null, undefined or false it will be used to register requests to the mask.\r\n * Else if its any value that can be resolved as true, it will resolve the mask.\r\n * [name] is optional when using [until], but can still be used to register/resolve it manually.\r\n */\r\n @Input('tcsLoadingUntil')\r\n set until(until: any) {\r\n if (!this.name) {\r\n this.name = 'tcs-loading-until-' + TCS_LOADING_NEXT_ID++;\r\n }\r\n this._context.$implicit = this._context.tcsLoading = until;\r\n if (until === false) {\r\n this._loadingService.register(this.name);\r\n } else {\r\n this._loadingService.resolveAll(this.name);\r\n }\r\n }\r\n\r\n /**\r\n * tcsLoadingType?: LoadingType or ['linear' | 'circular']\r\n * Sets the type of loading mask depending on value.\r\n * Defaults to [LoadingType.Circular | 'circular'].\r\n */\r\n @Input('tcsLoadingType')\r\n type: LoadingType = LoadingType.Circular;\r\n\r\n /**\r\n * tcsLoadingMode?: LoadingMode or ['determinate' | 'indeterminate']\r\n * Sets the mode of loading mask depending on value.\r\n * Defaults to [LoadingMode.Indeterminate | 'indeterminate'].\r\n */\r\n @Input('tcsLoadingMode') mode: LoadingMode = LoadingMode.Indeterminate;\r\n\r\n /**\r\n * tcsLoadingStrategy?: LoadingStrategy or ['replace' | 'overlay']\r\n * Sets the strategy of loading mask depending on value.\r\n * Defaults to [LoadingMode.Replace | 'replace'].\r\n */\r\n @Input('tcsLoadingStrategy')\r\n strategy: LoadingStrategy.Overlay | LoadingStrategy.Replace = LoadingStrategy.Replace;\r\n\r\n /**\r\n * tcsLoadingColor?: \"primary\" | \"accent\" | \"warn\"\r\n * Sets the theme color of the loading component. Defaults to \"primary\"\r\n */\r\n @Input('tcsLoadingColor') color: 'primary' | 'accent' | 'warn' = 'primary';\r\n\r\n constructor(\r\n private _viewContainerRef: ViewContainerRef,\r\n private _templateRef: TemplateRef,\r\n private _loadingService: TcsLoadingService,\r\n ) {}\r\n\r\n /**\r\n * Registers component in the DOM, so it will be available when calling resolve/register.\r\n */\r\n ngOnInit(): void {\r\n this._registerComponent();\r\n }\r\n\r\n /**\r\n * Remove component when directive is destroyed.\r\n */\r\n ngOnDestroy(): void {\r\n this._loadingService.removeComponent(this.name);\r\n this._loadingRef = undefined;\r\n }\r\n\r\n /**\r\n * Creates [TcsLoadingComponent] and attaches it to this directive's [ViewContainerRef].\r\n * Passes this directive's [TemplateRef] to modify DOM depending on loading `strategy`.\r\n */\r\n private _registerComponent(): void {\r\n if (!this.name) {\r\n throw new Error('Name is needed to register loading directive');\r\n }\r\n // Check if `TcsLoadingComponent` has been created before trying to add one again.\r\n // There is a weird edge case when using `[routerLinkActive]` that calls the `ngOnInit` twice in a row\r\n if (this._loadingRef == null) {\r\n this._loadingRef = this._loadingService.createComponent(\r\n {\r\n name: this.name,\r\n type: this.type,\r\n mode: this.mode,\r\n color: this.color,\r\n strategy: this.strategy,\r\n },\r\n this._viewContainerRef,\r\n this._templateRef,\r\n this._context,\r\n );\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { MatLegacyProgressBarModule as MatProgressBarModule } from '@angular/material/legacy-progress-bar';\r\nimport { MatLegacyProgressSpinnerModule as MatProgressSpinnerModule } from '@angular/material/legacy-progress-spinner';\r\nimport { TcsLoadingComponent } from 'src/app/shared/components/loading/components/loading/loading.component';\r\nimport { TcsLoadingDirective } from 'src/app/shared/components/loading/loading.directive';\r\nimport { loadingFactoryProvider } from 'src/app/shared/components/loading/loading.factory';\r\nimport { loadingProvider } from 'src/app/shared/components/loading/loading.service';\r\n\r\nconst tcsLoading = [TcsLoadingComponent, TcsLoadingDirective];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n OverlayModule,\r\n PortalModule,\r\n ],\r\n declarations: [tcsLoading],\r\n exports: [tcsLoading],\r\n providers: [loadingFactoryProvider, loadingProvider],\r\n})\r\nexport class TcsLoadingModule {}\r\n","export type ExecutorFunction = () => boolean;\r\ninterface ExecutorRetryArgs {\r\n strategyName: string;\r\n errorName: string | null;\r\n error: unknown;\r\n}\r\nexport interface ExecutorStrategy {\r\n readonly name: string;\r\n execute: (op: ExecutorFunction) => boolean;\r\n canRetry: (args: ExecutorRetryArgs) => boolean;\r\n success?: (strategyName: string) => void;\r\n failed?: (strategyName: string) => void;\r\n error?: (ex: unknown, strategyName: string) => void;\r\n}\r\nexport interface ExecutorOptions {\r\n strategies?: ExecutorStrategy[];\r\n failure?: () => void;\r\n}\r\nexport class Executor {\r\n private _strategies: ExecutorStrategy[] = [];\r\n\r\n get strategies(): ReadonlyArray {\r\n return this._strategies;\r\n }\r\n\r\n constructor(private options?: ExecutorOptions) {\r\n this.addStrategies(options?.strategies ?? []);\r\n }\r\n\r\n addStrategies(strategies: ExecutorStrategy[]): void {\r\n this._strategies.push(...strategies);\r\n }\r\n\r\n execute(operation: ExecutorFunction): void {\r\n let retryArgs: ExecutorRetryArgs | null = null;\r\n for (const strategy of this._strategies) {\r\n try {\r\n if (strategy.execute(operation)) {\r\n strategy.success?.(strategy.name);\r\n return;\r\n } else {\r\n strategy.failed?.(strategy.name);\r\n retryArgs = this._createRetryArgs(strategy.name);\r\n }\r\n } catch (ex) {\r\n strategy.error?.(ex, strategy.name);\r\n retryArgs = this._createRetryArgs(strategy.name, ex);\r\n }\r\n if (retryArgs != null && !strategy.canRetry(retryArgs)) {\r\n break;\r\n }\r\n }\r\n if (retryArgs != null) {\r\n this.options?.failure?.();\r\n }\r\n }\r\n\r\n private _createRetryArgs(strategyName: string, error: unknown = null): ExecutorRetryArgs {\r\n return { strategyName, error, errorName: error instanceof Error ? error.name : null };\r\n }\r\n}\r\n","import { Executor } from '../executor';\r\n\r\nexport interface StorageEntry {\r\n _: string;\r\n v: string;\r\n t: number;\r\n s: number;\r\n}\r\n\r\nexport interface KeyValueItem {\r\n key: string;\r\n value: string;\r\n}\r\n\r\nexport interface SessionStorageOptions {\r\n name?: string;\r\n setItemExecutor?: Executor;\r\n}\r\n\r\ntype SessionStorageItem = { key: string; value: StorageEntry };\r\n\r\nconst defaultSetItemExecutor = new Executor({\r\n strategies: [\r\n {\r\n name: 'operation',\r\n execute: (operation) => operation(),\r\n canRetry: () => false,\r\n error: (error) => {\r\n if (error instanceof Error) {\r\n throw error;\r\n } else {\r\n throw new Error(\r\n `SessionStorage.setItem: failed. ${\r\n typeof error === 'object' ? JSON.stringify(error) : error\r\n }`,\r\n );\r\n }\r\n },\r\n },\r\n ],\r\n});\r\n\r\nexport class SessionStorage {\r\n private _name: string;\r\n private _setItem: Executor;\r\n\r\n get name(): string {\r\n return this._name;\r\n }\r\n\r\n constructor(options: SessionStorageOptions = {}) {\r\n this._name = options.name ?? this.constructor.name;\r\n this._setItem = options.setItemExecutor ?? defaultSetItemExecutor;\r\n }\r\n\r\n setItem(key: string, value: string): void {\r\n this._setItem.execute(() => {\r\n const data: StorageEntry = { v: value, t: Date.now(), s: 0, _: this.name };\r\n const size = JSON.stringify(data).length;\r\n const item: StorageEntry = { ...data, s: size + size.toString().length - 1 };\r\n sessionStorage.setItem(key, JSON.stringify(item));\r\n return true;\r\n });\r\n }\r\n\r\n getItem(key: string): string | null {\r\n const item = this._getEntry(key);\r\n return item?.v ?? null;\r\n }\r\n\r\n getEntry(key: string): StorageEntry | null {\r\n return this._getEntry(key);\r\n }\r\n\r\n removeItem(key: string): void {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n clear(ageMs?: number): void {\r\n for (const { key, value } of this._entries()) {\r\n const diff = Date.now() - value.t;\r\n if (ageMs != null && diff <= ageMs) {\r\n continue;\r\n }\r\n this.removeItem(key);\r\n }\r\n }\r\n\r\n key(index: number): string | null {\r\n return sessionStorage.key(index);\r\n }\r\n\r\n size(): number {\r\n let total = 0;\r\n for (const { key, value } of this._entries()) {\r\n total += (value?.s ?? 0) + key.length;\r\n }\r\n return total;\r\n }\r\n\r\n length(): number {\r\n return Array.from(this).length;\r\n }\r\n\r\n *[Symbol.iterator]() {\r\n for (const { key } of this._entries()) {\r\n yield key;\r\n }\r\n }\r\n\r\n private *_entries(): Generator {\r\n for (const key of Object.keys(sessionStorage)) {\r\n const value = this._getStorageValue(key);\r\n if (this._isStorageEntry(value)) {\r\n if (value._ === this._name) {\r\n yield { key, value };\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _getEntry(key: string): StorageEntry | null {\r\n const value = this._getStorageValue(key);\r\n if (value == null) {\r\n return null;\r\n }\r\n\r\n if (this._isStorageEntry(value)) {\r\n return value;\r\n }\r\n\r\n // convert to StorageEntry\r\n const strValue = typeof value === 'string' ? value : JSON.stringify(value);\r\n this.setItem(key, strValue);\r\n return this._getEntry(key);\r\n }\r\n\r\n private _getStorageValue(key: string): any | null {\r\n const item = sessionStorage.getItem(key);\r\n try {\r\n return item == null ? null : JSON.parse(item);\r\n } catch {\r\n return item;\r\n }\r\n }\r\n\r\n private _isStorageEntry(value: any) {\r\n const _: keyof StorageEntry = '_';\r\n const v: keyof StorageEntry = 'v';\r\n return value != null && typeof value === 'object' && _ in value && v in value;\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject, fromEvent, Subject } from 'rxjs';\r\nimport { filter, map, take, takeUntil } from 'rxjs/operators';\r\nimport { Executor } from 'src/util/executor';\r\nimport { SessionStorage } from 'src/util/storage/session-storage';\r\n\r\nenum TabStatus {\r\n Pending = 'Pending',\r\n Active = 'Active',\r\n Inactive = 'Inactive',\r\n}\r\n\r\nclass Message {\r\n constructor(\r\n public type: 'check-tab' | 'dup-tab' | 'not-active',\r\n public payload: { randId: number; tab: number; forceUpdate?: boolean },\r\n ) {}\r\n}\r\n\r\ninterface TabSettings {\r\n tabId: string;\r\n tab: number;\r\n}\r\nclass TabStorageManager {\r\n private static STORAGE_KEY = 'tcs-tab';\r\n private _incrementBy = -1;\r\n\r\n public get settings() {\r\n return this._settings;\r\n }\r\n\r\n constructor(private _settings: TabSettings, private _storage: SessionStorage) {}\r\n\r\n public static createSettings(tab: number, tabId?: string): TabSettings {\r\n return { tab, tabId: tabId ?? `${tab}` };\r\n }\r\n public static fromSettings(tabSettings: TabSettings, storage: SessionStorage) {\r\n return new TabStorageManager(tabSettings, storage);\r\n }\r\n public static getSavedTab() {\r\n const storage = new SessionStorage({\r\n name: 'TcsTab',\r\n setItemExecutor: new Executor({\r\n strategies: [\r\n // continue silently without throwing error\r\n {\r\n name: 'operation',\r\n canRetry: () => false,\r\n execute: (operation) => operation(),\r\n },\r\n ],\r\n }),\r\n });\r\n const tabSettings = JSON.parse(\r\n storage.getItem(this.STORAGE_KEY) ?? JSON.stringify(this.createSettings(0)),\r\n );\r\n return this.fromSettings(tabSettings, storage);\r\n }\r\n\r\n public generateTabNumber(tabNumber: number) {\r\n this._incrementBy = this._incrementBy < 0 && tabNumber + this._incrementBy > 0 ? -1 : 1;\r\n return tabNumber + this._incrementBy;\r\n }\r\n\r\n public save(settings?: Partial) {\r\n this._settings = { ...this.settings, ...settings };\r\n this._storage.setItem(TabStorageManager.STORAGE_KEY, JSON.stringify(this.settings));\r\n }\r\n}\r\n\r\nfunction getBrowser(): string {\r\n const agent =\r\n 'navigator' in window && 'userAgent' in window.navigator\r\n ? window.navigator.userAgent.toLowerCase()\r\n : '';\r\n return agent.indexOf('edge') > -1\r\n ? 'ie-edge' // old\r\n : agent.indexOf('edg') > -1\r\n ? 'edge' // new\r\n : agent.indexOf('opr') > -1 && 'opr' in window\r\n ? 'opera'\r\n : agent.indexOf('chrome') > -1 && 'chrome' in window\r\n ? 'chrome'\r\n : agent.indexOf('trident') > -1\r\n ? 'ie'\r\n : agent.indexOf('firefox') > -1\r\n ? 'firefox'\r\n : agent.indexOf('safari') > -1\r\n ? 'safari'\r\n : 'other';\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TabsService implements OnDestroy {\r\n private _onDestroy$ = new Subject();\r\n private _channel = new BroadcastChannel('tabs-service');\r\n private _tabManager = TabStorageManager.getSavedTab();\r\n private _tabStatus$ = new BehaviorSubject(TabStatus.Pending);\r\n\r\n private get _isTabActive() {\r\n return this._tabStatus$.value === TabStatus.Active;\r\n }\r\n\r\n public get tabId() {\r\n return this._tabManager.settings.tabId;\r\n }\r\n\r\n public get tab() {\r\n return this._tabManager.settings.tab;\r\n }\r\n\r\n public get isTabActive$() {\r\n return this._tabStatus$.pipe(map((status) => status === TabStatus.Active));\r\n }\r\n\r\n public get isTabPending$() {\r\n return this._tabStatus$.pipe(map((status) => status === TabStatus.Pending));\r\n }\r\n\r\n public get isTabActiveOrPending$() {\r\n return this._tabStatus$.pipe(\r\n map((status) => status === TabStatus.Active || status === TabStatus.Pending),\r\n );\r\n }\r\n\r\n constructor(private _router: Router) {}\r\n\r\n public init() {\r\n const randId = this._random();\r\n let initializing = true;\r\n\r\n const save = (tab: number) => {\r\n const tabId = `${getBrowser()}-${tab}|${Date.now()}`;\r\n this._tabManager.save(TabStorageManager.createSettings(tab, tabId));\r\n };\r\n\r\n const setActive = () => {\r\n // set current tab to active\r\n this._tabStatus$.next(TabStatus.Active);\r\n // tell all other tabs they're not active\r\n this._channel.postMessage(new Message('not-active', { randId, tab: this.tab }));\r\n };\r\n\r\n const setInactive = () => {\r\n this._tabStatus$.next(TabStatus.Inactive);\r\n };\r\n\r\n if (this._tabManager.settings.tab === 0) {\r\n // new tab\r\n save(1);\r\n }\r\n\r\n // check to make sure the current tab number doesn't already exist, if it does, randId will\r\n // determine the update priority (smallest randId should update its tab number)\r\n this._channel.postMessage(new Message('check-tab', { randId, tab: this.tab }));\r\n\r\n // listen for 'check-id' and 'duplicate' messages\r\n this._channel.addEventListener('message', (msg: MessageEvent) => {\r\n const recv = msg.data.payload;\r\n\r\n switch (msg.data.type) {\r\n case 'check-tab':\r\n if (this.tab === recv.tab) {\r\n if (initializing && randId < recv.randId) {\r\n // in initializing state, so set next tab and 'check-tab' for duplicates\r\n save(this._tabManager.generateTabNumber(recv.tab));\r\n this._channel.postMessage(new Message('check-tab', { randId, tab: this.tab }));\r\n } else if (!initializing && randId < recv.randId) {\r\n // not initializing, so current tab has priority, instead force duplicate to update its tab\r\n this._channel.postMessage(\r\n new Message('dup-tab', { randId, tab: this.tab, forceUpdate: true }),\r\n );\r\n } else {\r\n // current tab has priority, so respond with duplicate message\r\n this._channel.postMessage(new Message('dup-tab', { randId, tab: this.tab }));\r\n }\r\n }\r\n break;\r\n case 'dup-tab':\r\n // only check for duplicates on tabs that are being initialized\r\n const canUpdate = initializing && (randId < recv.randId || (recv.forceUpdate ?? false));\r\n if (canUpdate && this.tab === recv.tab) {\r\n // tab was a duplicate so increment and check again\r\n save(this._tabManager.generateTabNumber(recv.tab));\r\n this._channel.postMessage(new Message('check-tab', { randId, tab: this.tab }));\r\n }\r\n break;\r\n case 'not-active':\r\n setInactive();\r\n break;\r\n }\r\n });\r\n\r\n fromEvent(document, 'visibilitychange')\r\n .pipe(takeUntil(this._onDestroy$))\r\n .subscribe(() => {\r\n if (document.hidden) {\r\n setInactive();\r\n } else {\r\n setActive();\r\n }\r\n });\r\n fromEvent(document, 'mouseenter')\r\n .pipe(\r\n filter(() => !this._isTabActive),\r\n takeUntil(this._onDestroy$),\r\n )\r\n .subscribe(() => setActive());\r\n\r\n this._router.events\r\n .pipe(\r\n filter((ev) => ev instanceof NavigationEnd),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n // reset after navigation completes\r\n initializing = false;\r\n });\r\n }\r\n\r\n public getStatus(): { tab: number; isTabActive: boolean } {\r\n return { tab: this.tab, isTabActive: this._isTabActive };\r\n }\r\n\r\n private _random() {\r\n // Math.random() can create duplicates when window loads multiple tabs at a time. For example restoring the browser\r\n // crypto lib doesn't suffer from this issue\r\n return crypto.getRandomValues(new Uint32Array(1))[0];\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TickService implements OnDestroy {\r\n private readonly _secondsIntervalId: any | undefined;\r\n private readonly _minutesIntervalId: any | undefined;\r\n private readonly _hoursIntervalId: any | undefined;\r\n private readonly _seconds$ = new Subject();\r\n private readonly _fiveSeconds$ = new Subject();\r\n private readonly _tenSeconds$ = new Subject();\r\n private readonly _fifteenSeconds$ = new Subject();\r\n private readonly _thirtySeconds$ = new Subject();\r\n private readonly _minutes$ = new Subject();\r\n private readonly _fiveMinutes$ = new Subject();\r\n private readonly _tenMinutes$ = new Subject();\r\n private readonly _hours$ = new Subject();\r\n\r\n constructor() {\r\n let seconds = 0;\r\n this._secondsIntervalId = setInterval(() => {\r\n seconds++;\r\n const now = new Date();\r\n this._seconds$.next(now);\r\n\r\n if (seconds % 5 === 0) {\r\n this._fiveSeconds$.next(now);\r\n }\r\n if (seconds % 10 === 0) {\r\n this._tenSeconds$.next(now);\r\n }\r\n if (seconds % 15 === 0) {\r\n this._fifteenSeconds$.next(now);\r\n }\r\n if (seconds % 30 === 0) {\r\n this._thirtySeconds$.next(now);\r\n }\r\n }, 1000);\r\n\r\n let minutes = 0;\r\n this._minutesIntervalId = setInterval(() => {\r\n minutes++;\r\n const now = new Date();\r\n this._minutes$.next(now);\r\n if (minutes % 5 === 0) {\r\n this._fiveMinutes$.next(now);\r\n }\r\n if (minutes % 10 === 0) {\r\n this._tenMinutes$.next(now);\r\n }\r\n }, 60 * 1000);\r\n\r\n let hours = 0;\r\n this._hoursIntervalId = setInterval(() => {\r\n hours++;\r\n const now = new Date();\r\n this._hours$.next(now);\r\n }, 60 * 60 * 1000);\r\n }\r\n\r\n get seconds$() {\r\n return this._seconds$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyFiveSeconds$() {\r\n return this._fiveSeconds$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyTenSeconds$() {\r\n return this._tenSeconds$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyFifteenSeconds$() {\r\n return this._fifteenSeconds$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyThirtySeconds$() {\r\n return this._thirtySeconds$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyMinute$() {\r\n return this._minutes$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyFiveMinutes$() {\r\n return this._fiveMinutes$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyTenMinutes$() {\r\n return this._tenMinutes$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n get everyHour$() {\r\n return this._hours$.asObservable().pipe(startWith(new Date()));\r\n }\r\n\r\n ngOnDestroy() {\r\n clearInterval(this._secondsIntervalId);\r\n clearInterval(this._minutesIntervalId);\r\n clearInterval(this._hoursIntervalId);\r\n }\r\n}\r\n","import {\r\n CommandResultStatus,\r\n TcsEntity,\r\n TcsEntityType,\r\n} from 'src/graphql/generated/graphql.generated';\r\n\r\nexport interface CommandResult {\r\n status: CommandResultStatus;\r\n command: TCommand;\r\n data: TData;\r\n errors: {\r\n message: string;\r\n code: number;\r\n }[];\r\n entities?: Record;\r\n emittedEvents: any[];\r\n}\r\n\r\nexport class CommandResultError extends Error {\r\n constructor(public readonly command: string, public readonly result: CommandResult) {\r\n super(\r\n `${command} command failed: ` +\r\n `${result.errors[0] != null ? result.errors[0].message : 'unknown error'}`,\r\n );\r\n // @ts-ignore\r\n Error.captureStackTrace(this, CommandResultError);\r\n\r\n // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n // May be possible to remove when we can downlevel to ES6 or higher instead of ES5\r\n Object.setPrototypeOf(this, CommandResultError.prototype);\r\n }\r\n\r\n get userErrors(): string[] {\r\n return this.result.errors.filter((e) => e.code >= 4000 && e.code < 5000).map((e) => e.message);\r\n }\r\n}\r\n","import { Action } from '@ngrx/store';\r\nimport { CommandResult } from './command-result';\r\n\r\nexport const MUTATION_REQUEST = '[GraphQL] MUTATION_REQUEST';\r\nexport const MUTATION_SUCCESS = '[GraphQL] MUTATION_SUCCESS';\r\nexport const MUTATION_ERROR = '[GraphQL] MUTATION_ERROR';\r\nexport const MUTATION_EFFECT = '[GraphQL] MUTATION_EFFECT';\r\n\r\nexport class MutationRequest implements Action {\r\n public readonly type = MUTATION_REQUEST;\r\n public readonly timestamp = performance.now();\r\n constructor(\r\n public readonly name: string,\r\n public readonly operationId: string,\r\n public readonly variables?: any,\r\n ) {}\r\n}\r\n\r\nexport class MutationSuccess implements Action {\r\n public readonly type = MUTATION_SUCCESS;\r\n public readonly timestamp = performance.now();\r\n constructor(\r\n public readonly name: string,\r\n public readonly operationId: string,\r\n public readonly result: CommandResult,\r\n ) {}\r\n}\r\n\r\nexport class MutationError implements Action {\r\n public readonly type = MUTATION_ERROR;\r\n public readonly timestamp = performance.now();\r\n constructor(\r\n public readonly name: string,\r\n public readonly operationId: string,\r\n public readonly result?: CommandResult,\r\n ) {}\r\n}\r\nexport class MutationEffect implements Action {\r\n public readonly type = MUTATION_EFFECT;\r\n public readonly timestamp = performance.now();\r\n constructor(public readonly operationId: string) {}\r\n}\r\n\r\nexport type All = MutationRequest | MutationSuccess | MutationError | MutationEffect;\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { ApolloError } from '@apollo/client/core';\r\nimport { TdDialogService } from '@covalent/core/dialogs';\r\nimport { Store } from '@ngrx/store';\r\nimport { Apollo } from 'apollo-angular';\r\nimport { DocumentNode } from 'graphql';\r\nimport { Observable, race, Subject } from 'rxjs';\r\nimport { filter, map, takeUntil, tap, timeout } from 'rxjs/operators';\r\nimport { CommandResultStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { CommandResult, CommandResultError } from 'src/util/graphql/command-result';\r\nimport { MutationError, MutationRequest, MutationSuccess } from 'src/util/graphql/mutation-actions';\r\nimport { stringify } from 'src/util/json';\r\nimport { lowerCaseFirstLetter } from 'src/util/string';\r\nimport { uuid } from 'src/util/uuid';\r\nimport {\r\n OperationAlertHandler,\r\n OperationAlertService,\r\n OperationAlertType,\r\n} from '../operation-alert.service';\r\n\r\n// request timeout for mutations\r\nconst MUTATION_REQUEST_TIMEOUT = 1000 * 30;\r\n\r\ninterface Command {\r\n mutation: DocumentNode;\r\n variables: any;\r\n}\r\ninterface Operation {\r\n id: string;\r\n alert: OperationAlertHandler;\r\n}\r\ninterface CacheItem {\r\n [operationId: string]: { alert: OperationAlertHandler };\r\n}\r\n\r\nexport interface MutationSpec {\r\n mutationFactory: () => DocumentNode;\r\n}\r\n\r\nexport interface GraphQLMutationExecutionOptions {\r\n alert:\r\n | {\r\n description: string;\r\n verbosity?: OperationAlertType;\r\n }\r\n | OperationAlertHandler;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GraphqlMutationExecutorService implements OnDestroy {\r\n private _cache: Map = new Map();\r\n private _onDestroy$ = new Subject();\r\n\r\n constructor(\r\n private readonly _store: Store,\r\n private readonly _alerts: OperationAlertService,\r\n private readonly _apollo: Apollo,\r\n private readonly _td: TdDialogService,\r\n ) {}\r\n\r\n private createOperation(\r\n name: string,\r\n command: Command,\r\n createAlertFn: (operationId: string) => OperationAlertHandler,\r\n ): Operation {\r\n const operationId = name + '-' + uuid();\r\n const json = stringify(command);\r\n const operations = this._cache.get(json) ?? {};\r\n\r\n operations[operationId] = { alert: createAlertFn(operationId) };\r\n this._cache.set(json, operations);\r\n return { id: operationId, alert: operations[operationId].alert };\r\n }\r\n\r\n private completeOperation(command: Command, completeFn: (operation: Operation) => void) {\r\n const json = stringify(command);\r\n const operations = this._cache.get(json);\r\n if (operations != null) {\r\n for (const operationId in operations) {\r\n if (operations[operationId] != null) {\r\n const alert = operations[operationId].alert;\r\n completeFn({ id: operationId, alert });\r\n }\r\n }\r\n this._cache.delete(json);\r\n }\r\n }\r\n\r\n public execute({\r\n name,\r\n variables,\r\n mutation,\r\n options,\r\n }: {\r\n name: TName;\r\n variables: TVariables;\r\n mutation: DocumentNode;\r\n options: GraphQLMutationExecutionOptions;\r\n }): Observable> {\r\n const command: Command = { mutation, variables };\r\n const operation = this.createOperation(name, command, (operationId) =>\r\n options.alert instanceof OperationAlertHandler\r\n ? options.alert\r\n : this._alerts.createAlert({\r\n operationId,\r\n description: options.alert.description,\r\n verbosity: options.alert.verbosity != null ? options.alert.verbosity : 'executing',\r\n }),\r\n );\r\n\r\n const operationCancelled$ = operation.alert.onAction$.pipe(\r\n filter((a) => a.type === 'cancelled'),\r\n );\r\n\r\n const requestAction = new MutationRequest(name, operation.id, variables);\r\n this._store.dispatch(requestAction);\r\n operation.alert.markAsExecuting();\r\n\r\n const destroy$ = race(operationCancelled$, this._onDestroy$);\r\n return this._apollo\r\n .mutate({\r\n mutation,\r\n variables,\r\n context: { operationId: operation.id },\r\n })\r\n .pipe(\r\n timeout(MUTATION_REQUEST_TIMEOUT),\r\n map((result) => {\r\n const dataKey = lowerCaseFirstLetter(name);\r\n const typedResult = (result.data as any)[dataKey] as CommandResult;\r\n if (typedResult.status !== CommandResultStatus.Succeeded) {\r\n throw new CommandResultError(name, typedResult);\r\n }\r\n return typedResult;\r\n }),\r\n tap(\r\n (success) => {\r\n this.completeOperation(command, ({ id, alert }) => {\r\n const successAction = new MutationSuccess(name, id, success);\r\n this._store.dispatch(successAction);\r\n alert.markAsSuccess();\r\n });\r\n },\r\n (error: CommandResultError | ApolloError) => {\r\n this.completeOperation(command, ({ id, alert }) => {\r\n const errorAction = new MutationError(\r\n name,\r\n id,\r\n error instanceof CommandResultError ? error.result : undefined,\r\n );\r\n this._store.dispatch(errorAction);\r\n\r\n if (\r\n error instanceof ApolloError ||\r\n error.result == null ||\r\n error.result.status === CommandResultStatus.Failed\r\n ) {\r\n let errorMessage = '';\r\n if (error.message != null) {\r\n error.message = error.message.replace('GraphQL error:', '');\r\n errorMessage =\r\n error.message.length > 200\r\n ? error.message.substring(0, 200) + '...'\r\n : error.message;\r\n }\r\n\r\n const isUserError =\r\n error instanceof CommandResultError && error.userErrors.length > 0;\r\n if (isUserError) {\r\n this._td.openAlert({\r\n title: 'Error: ' + alert.options.description,\r\n message: error.message,\r\n hasBackdrop: true,\r\n width: error.message.length > 200 ? '1000px' : '400px',\r\n });\r\n }\r\n alert.markAsError({\r\n message: errorMessage,\r\n details: error,\r\n });\r\n } else {\r\n alert.markAsWarning({\r\n message: error.message,\r\n details: error,\r\n });\r\n }\r\n });\r\n },\r\n ),\r\n takeUntil(destroy$),\r\n );\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { OperationsMutations } from './generated/operations-mutations.generated';\r\nimport { OrganizationMutations } from './generated/organization-mutations.generated';\r\nimport { GraphqlMutationExecutorService } from './graphql-mutation-executor.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GraphQLMutationsService {\r\n public readonly organization: OrganizationMutations;\r\n public readonly operations: OperationsMutations;\r\n\r\n constructor(executor: GraphqlMutationExecutorService) {\r\n this.organization = new OrganizationMutations(executor);\r\n this.operations = new OperationsMutations(executor);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { AppState } from 'src/store/appstate';\r\n\r\n@Component({\r\n selector: 'tcs-client-sync-status',\r\n templateUrl: './client-sync-status.component.html',\r\n styleUrls: ['./client-sync-status.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ClientSyncStatusComponent {\r\n public subscribedChannels$: Observable;\r\n\r\n constructor(private _store: Store) {\r\n this.subscribedChannels$ = this._store\r\n .select((x) => x.pubnub.channels)\r\n .pipe(\r\n distinctUntilChanged(),\r\n map((c) => c.toArray()),\r\n );\r\n }\r\n}\r\n","
\r\n Client Sync Status\r\n
\r\n \r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { ClientSyncStatusComponent } from 'src/app/shared/components/client-sync-status/client-sync-status.component';\r\nimport { AmgPubnubModule } from 'src/lib/amg-pubnub/amg-pubnub.module';\r\n\r\n@NgModule({\r\n declarations: [ClientSyncStatusComponent],\r\n imports: [CommonModule, MatIconModule, AmgPubnubModule],\r\n exports: [ClientSyncStatusComponent],\r\n})\r\nexport class TcsClientSyncModule {}\r\n","import { NavigationExtras, Router } from '@angular/router';\r\n\r\nexport interface LinkExtras {\r\n title?: string;\r\n icon?: string;\r\n description?: string;\r\n data?: any;\r\n navigationExtras?: NavigationExtras;\r\n}\r\n\r\nexport interface NavigationLink extends LinkExtras {\r\n commands: any[];\r\n navigate(extras?: NavigationExtras): Promise;\r\n serializeUrl(extras?: NavigationExtras): string;\r\n}\r\n\r\nclass NavigationLinkNode implements NavigationLink {\r\n public icon?: string;\r\n public title?: string;\r\n public description?: string;\r\n public data?: any;\r\n public navigationExtras?: NavigationExtras;\r\n constructor(protected readonly _router: Router, public commands: any[], extras: LinkExtras = {}) {\r\n this.icon = extras.icon;\r\n this.title = extras.title;\r\n this.description = extras.description;\r\n this.data = extras.data != null ? extras.data : {};\r\n this.navigationExtras = extras.navigationExtras;\r\n }\r\n\r\n public navigate(extras?: NavigationExtras) {\r\n extras = Object.assign({}, this.navigationExtras, extras);\r\n return this._router.navigate(this.commands, extras);\r\n }\r\n\r\n public serializeUrl(extras?: NavigationExtras) {\r\n extras = Object.assign({}, this.navigationExtras, extras);\r\n const tree = this._router.createUrlTree(this.commands, extras);\r\n return this._router.serializeUrl(tree);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n icon: this.icon,\r\n title: this.title,\r\n description: this.description,\r\n data: this.data,\r\n commands: this.commands,\r\n navigationExtras: this.navigationExtras,\r\n };\r\n }\r\n}\r\n\r\nexport class NavigationServiceBase {\r\n constructor(protected readonly _router: Router) {}\r\n protected navigable(commands: any[], extras?: LinkExtras) {\r\n return new NavigationLinkNode(this._router, commands, extras);\r\n }\r\n}\r\nexport class NavigableServiceBase extends NavigationLinkNode {\r\n constructor(commands: any[], protected readonly _router: Router, extras?: LinkExtras) {\r\n super(_router, commands, extras);\r\n }\r\n\r\n public navigate(extras?: NavigationExtras) {\r\n return this._router.navigate(this.commands, extras);\r\n }\r\n\r\n public serializeUrl(extras?: NavigationExtras) {\r\n const tree = this._router.createUrlTree(this.commands, extras);\r\n return this._router.serializeUrl(tree);\r\n }\r\n\r\n protected navigable(commands: any[], extras?: LinkExtras) {\r\n return new NavigationLinkNode(this._router, [...this.commands, ...commands], extras);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Params, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n CardSearchFilter,\r\n CardSearchFilterV2,\r\n LocationType,\r\n WaypointType,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { CompanyProps } from 'src/store/generated/company-record.generated';\r\nimport {\r\n NavigableServiceBase,\r\n NavigationLink,\r\n NavigationServiceBase,\r\n} from 'src/util/angular/ng-navigation-fx';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport { TcsConfigurationService } from '../core/configuration.service';\r\nimport { CompanyContextService } from './company-context.service';\r\n\r\nexport class DevKitComponentsNavigation extends NavigableServiceBase {\r\n constructor(nav: DevKitNavigation, router: Router) {\r\n super([...nav.commands, 'components'], router, { title: 'Components' });\r\n }\r\n\r\n get kitchenSink() {\r\n return this.navigable(['kitchen-sink'], {\r\n title: 'Kitchen Sink',\r\n });\r\n }\r\n}\r\n\r\nexport class DevKitPatternsNavigation extends NavigableServiceBase {\r\n constructor(nav: DevKitNavigation, router: Router) {\r\n super([...nav.commands, 'patterns'], router, { title: 'Patterns' });\r\n }\r\n\r\n get allPatternsLinks() {\r\n return [this.navigation, this.layouts];\r\n }\r\n\r\n get navigation() {\r\n return this.navigable(['navigation'], {\r\n title: 'Navigation',\r\n });\r\n }\r\n\r\n get layouts() {\r\n return this.navigable(['layouts'], {\r\n title: 'Layouts',\r\n });\r\n }\r\n}\r\n\r\nexport class DevKitStyleGuideNavigation extends NavigableServiceBase {\r\n constructor(nav: DevKitNavigation, router: Router) {\r\n super([...nav.commands, 'style-guide'], router, { title: 'Style Guide' });\r\n }\r\n\r\n get allStyleGuideLinks() {\r\n return [this.colors, this.logo, this.typography, this.utilityClasses];\r\n }\r\n\r\n get colors() {\r\n return this.navigable(['colors'], {\r\n title: 'Colors',\r\n });\r\n }\r\n\r\n get logo() {\r\n return this.navigable(['logo'], {\r\n title: 'Logo',\r\n });\r\n }\r\n\r\n get typography() {\r\n return this.navigable(['typography'], {\r\n title: 'Typography',\r\n });\r\n }\r\n\r\n get utilityClasses() {\r\n return this.navigable(['utility-classes'], {\r\n title: 'Utility Classes',\r\n });\r\n }\r\n}\r\n\r\nexport class DevKitGuidesNavigation extends NavigableServiceBase {\r\n constructor(nav: DevKitNavigation, router: Router) {\r\n super([...nav.commands, 'guides'], router, { title: 'Guides' });\r\n }\r\n\r\n get allGuides() {\r\n return [\r\n this.clientSyncGuide,\r\n this.customIconsGuide,\r\n this.pageTitlesGuide,\r\n this.viewModelsGuide,\r\n ];\r\n }\r\n\r\n get clientSyncGuide() {\r\n return this.navigable(['client-sync'], {\r\n title: 'Client Sync',\r\n });\r\n }\r\n\r\n get customIconsGuide() {\r\n return this.navigable(['custom-icons'], {\r\n title: 'Custom Icons',\r\n });\r\n }\r\n\r\n get pageTitlesGuide() {\r\n return this.navigable(['page-titles'], {\r\n title: 'Page Titles',\r\n });\r\n }\r\n\r\n get viewModelsGuide() {\r\n return this.navigable(['view-models']);\r\n }\r\n}\r\n\r\nexport class DevKitNavigation extends NavigableServiceBase {\r\n constructor(router: Router) {\r\n super(['/dev-kit'], router);\r\n }\r\n\r\n get devKitLinks() {\r\n return [\r\n this.components,\r\n this.patterns,\r\n this.icons,\r\n this.styleGuide,\r\n this.librariesAndFrameworks,\r\n this.guides,\r\n ];\r\n }\r\n\r\n get components() {\r\n return new DevKitComponentsNavigation(this, this._router);\r\n }\r\n\r\n get patterns() {\r\n return new DevKitPatternsNavigation(this, this._router);\r\n }\r\n\r\n get icons() {\r\n return this.navigable(['icons'], {\r\n title: 'Icons',\r\n });\r\n }\r\n\r\n get styleGuide() {\r\n return new DevKitStyleGuideNavigation(this, this._router);\r\n }\r\n\r\n get librariesAndFrameworks() {\r\n return this.navigable(['libs'], {\r\n title: 'Libraries and Frameworks',\r\n });\r\n }\r\n\r\n get guides() {\r\n return new DevKitGuidesNavigation(this, this._router);\r\n }\r\n}\r\n\r\nexport class FbosNavigation extends NavigableServiceBase {\r\n constructor(airportId: string, airportNav: AirportsNavigation, router: Router) {\r\n super([...airportNav.commands, airportId, 'fbos'], router);\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(fboId: string) {\r\n return this.navigable([fboId]);\r\n }\r\n\r\n public manage(fboId: string) {\r\n return this.navigable([fboId, 'edit']);\r\n }\r\n}\r\n\r\nexport class AirportsNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'airports'], router, {\r\n title: 'Airports & FBOs',\r\n icon: 'local_airport',\r\n description: 'Manage operational targets',\r\n data: {\r\n showInOverview: true,\r\n bgColorClass: 'bgc-amber-A700',\r\n },\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(agencyId: string) {\r\n return this.navigable([agencyId]);\r\n }\r\n\r\n public manage(agencyId: string) {\r\n return this.navigable([agencyId, 'manage']);\r\n }\r\n\r\n public fbo(airportId: string) {\r\n return new FbosNavigation(airportId, this, this._router);\r\n }\r\n}\r\n\r\nexport class AgencyLocationsNavigation extends NavigableServiceBase {\r\n constructor(agencyId: string, agencyNav: AgenciesNavigation, router: Router) {\r\n super([...agencyNav.commands, agencyId, 'manage', 'locations'], router);\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(locationId: string) {\r\n return this.navigable([locationId]);\r\n }\r\n\r\n public manage(locationId: string) {\r\n return this.navigable([locationId, 'edit']);\r\n }\r\n}\r\nexport class AgenciesNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'agencies'], router, {\r\n title: 'Agencies',\r\n icon: 'domain',\r\n description: 'Manage external agencies (including competitors)',\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(agencyId: string) {\r\n return this.navigable([agencyId]);\r\n }\r\n\r\n public manage(agencyId: string) {\r\n return this.navigable([agencyId, 'manage']);\r\n }\r\n\r\n public agencyLocation(agencyId: string) {\r\n return new AgencyLocationsNavigation(agencyId, this, this._router);\r\n }\r\n}\r\n\r\nexport class DeclineReasonsNavigation extends NavigableServiceBase {\r\n constructor(\r\n declineCategoryId: string,\r\n declineCategoryNav: DeclineReasonsNavigation,\r\n router: Router,\r\n ) {\r\n super([...declineCategoryNav.commands, declineCategoryId, 'decline-reasons'], router);\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(declineReasonId: string) {\r\n return this.navigable([declineReasonId]);\r\n }\r\n\r\n public manage(declineReasonId: string) {\r\n return this.navigable([declineReasonId, 'edit']);\r\n }\r\n}\r\nexport class DeclineCategoriesNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'decline-categories'], router, {\r\n title: 'Decline Reasons',\r\n icon: 'domain',\r\n description: 'Manage decline categories and reasons',\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n\r\n public declineReason(declineCategoryId: string) {\r\n return new DeclineReasonsNavigation(declineCategoryId, this, this._router);\r\n }\r\n}\r\nexport class CancellationReasonsNavigation extends NavigableServiceBase {\r\n constructor(\r\n cancellationCategoryId: string,\r\n cancellationCategoryNav: CancellationReasonsNavigation,\r\n router: Router,\r\n ) {\r\n super(\r\n [...cancellationCategoryNav.commands, cancellationCategoryId, 'cancellation-reasons'],\r\n router,\r\n );\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(cancellationReasonId: string) {\r\n return this.navigable([cancellationReasonId]);\r\n }\r\n\r\n public manage(cancellationReasonId: string) {\r\n return this.navigable([cancellationReasonId, 'edit']);\r\n }\r\n}\r\nexport class CancellationCategoriesNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'cancellation-categories'], router, {\r\n title: 'Cancellation Reasons',\r\n icon: 'domain',\r\n description: 'Manage cancellation categories and reasons',\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n\r\n public cancellationReason(cancellationReasonId: string) {\r\n return new CancellationReasonsNavigation(cancellationReasonId, this, this._router);\r\n }\r\n}\r\n\r\nexport class SpecialtyTeamMemberNavigation extends NavigableServiceBase {\r\n constructor(specialtyTeamId: string, specialtyTeamNav: SpecialtyTeamsNavigation, router: Router) {\r\n super(\r\n [...specialtyTeamNav.commands, specialtyTeamId, 'manage', 'specialty-team-members'],\r\n router,\r\n );\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(specialtyTeamMemberId: string) {\r\n return this.navigable([specialtyTeamMemberId]);\r\n }\r\n\r\n public manage(specialtyTeamMemberId: string) {\r\n return this.navigable([specialtyTeamMemberId, 'manage']);\r\n }\r\n}\r\nexport class SpecialtyTeamsNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'specialty-teams'], router, {\r\n title: 'Specialty Teams',\r\n icon: 'group',\r\n description: 'Manage specialty teams',\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n\r\n public specialtyTeamMember(specialtyTeamId: string) {\r\n return new SpecialtyTeamMemberNavigation(specialtyTeamId, this, this._router);\r\n }\r\n}\r\n\r\nexport class AlertsNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'alerts'], router, {\r\n title: 'Alerts',\r\n icon: 'warning',\r\n description: 'Manage alerts and Activation Rules',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n}\r\n\r\nexport class LandingZoneNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'landing-zones'], router, {\r\n title: 'Landing Zones',\r\n icon: 'flight_land',\r\n description: 'Manage landing zones',\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n}\r\n\r\nexport class FirewallRulesNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'access-rules'], router, {\r\n title: 'Access Control',\r\n icon: 'router',\r\n description: 'Manage Access Control',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n}\r\nexport class TrmUsersNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'trm-user'], router, {\r\n title: 'TRM Users',\r\n icon: 'recent_actors',\r\n description: 'Manage TRM User list, etc.',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n}\r\nexport class MedicalFacilitiesNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'medical-facilities'], router, {\r\n title: 'Medical Facilities',\r\n icon: 'local_hospital',\r\n description: 'Manage common data libraries such as facilities, agencies, etc.',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n}\r\n\r\nexport class CapabilitiesNavigation extends NavigableServiceBase {\r\n constructor(orgNav: OrganiztionNavigation, router: Router) {\r\n super([...orgNav.commands, 'capabilities'], router, {\r\n title: 'Capabilities',\r\n icon: 'playlist_add_check',\r\n description: 'Manage Capabilities',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get add() {\r\n return this.navigable(['add']);\r\n }\r\n\r\n public detail(id: string) {\r\n return this.navigable([id]);\r\n }\r\n\r\n public manage(id: string) {\r\n return this.navigable([id, 'manage']);\r\n }\r\n}\r\n\r\nexport type CardSearchQueryParams = Partial> & {\r\n page?: number;\r\n pageSize?: number;\r\n};\r\n\r\nexport type NewCardSearchQueryParams = Partial> & {\r\n page?: number;\r\n pageSize?: number;\r\n};\r\n\r\nexport interface LocationSearchQueryParams {\r\n name?: string | null;\r\n type?: LocationType | null;\r\n maxDistanceInMiles?: number | null;\r\n address?: string | null;\r\n page?: number;\r\n limit?: number;\r\n}\r\n\r\nexport interface LandingZoneQueryParams {\r\n name?: string;\r\n abbreviation?: string;\r\n city?: string;\r\n state?: string;\r\n county?: string;\r\n page?: number;\r\n limit?: number;\r\n}\r\n\r\nexport interface ProgramQueryParams {\r\n companyId?: string;\r\n name?: string;\r\n}\r\n\r\nexport interface BaseQueryParams {\r\n companyId?: string;\r\n name?: string;\r\n}\r\n\r\nexport interface VehicleQueryParams {\r\n companyId?: string;\r\n}\r\n\r\nexport interface RegionGroupQueryParams {\r\n companyId?: string;\r\n}\r\n\r\nexport interface RegionsParams {\r\n companyId?: string;\r\n}\r\n\r\nexport interface PersonnelQueryParams {\r\n companyId?: string;\r\n}\r\n\r\nexport interface NotificationGroupQueryParams {\r\n companyId?: string;\r\n}\r\n\r\nexport interface ComplianceQueryParams {\r\n companyId?: string;\r\n}\r\n\r\nexport interface CapabilityQueryParams {\r\n name: string | null;\r\n page?: number;\r\n limit?: number;\r\n}\r\n\r\nexport interface CommunicationCenterQueryParams {\r\n companyId?: string;\r\n}\r\n\r\nexport interface ControlZoneQueryParams {\r\n companyId?: string;\r\n}\r\nexport interface QuestionnaireQueryParams {\r\n companyId?: string;\r\n}\r\n\r\nexport class OrganiztionNavigation extends NavigableServiceBase {\r\n constructor(\r\n private companyCode: string,\r\n private router: Router,\r\n private tcsConfig: TcsConfigurationService,\r\n private companyId?: string,\r\n ) {\r\n super(['/', companyCode, 'org'], router, { title: 'Organization' });\r\n }\r\n\r\n get isCurrentContext() {\r\n const regex = new RegExp(`/${this.companyCode}/org`);\r\n return regex.test(this.router.url);\r\n }\r\n\r\n get orgCompanyLinks(): NavigationLink[] {\r\n return [\r\n this.bases(),\r\n this.vehicles(),\r\n this.personnel(),\r\n this.notificationGroups(),\r\n this.compliance(),\r\n this.alerts(),\r\n this.notificationTemplates,\r\n this.communicationCenters(),\r\n this.controlZones(),\r\n this.offerAlgorithms,\r\n this.firewallRules,\r\n this.specialtyTeams,\r\n this.questionnaires(),\r\n this.trmUsers,\r\n ];\r\n }\r\n\r\n get orgLinks(): NavigationLink[] {\r\n let links = [\r\n this.overview,\r\n // this.organization,\r\n\r\n this.medicalFacilities,\r\n this.physicians,\r\n this.airportsAndFbos,\r\n this.vehicleModels,\r\n this.globalSettings,\r\n this.timestampTypes,\r\n this.timelines,\r\n this.agencies(),\r\n this.landingZones(),\r\n this.applicationNotifications,\r\n this.cancellationCategories,\r\n this.cardReOpenReasons,\r\n this.declineCategories,\r\n this.outOfServiceReasons,\r\n this.nonReferralReasons,\r\n this.fuelTanks,\r\n this.capabilities(),\r\n this.questions,\r\n this.oktaDirectory,\r\n // this.events,\r\n // this.history,\r\n ];\r\n\r\n if (this.tcsConfig.value.features.transferCenterEnabled === true) {\r\n links = [\r\n ...links,\r\n this.transferReasons,\r\n this.diversionReasons,\r\n this.facilityNonAcceptanceReasons,\r\n ];\r\n }\r\n return links;\r\n }\r\n // Org Company Links\r\n public programs(queryParams?: ProgramQueryParams) {\r\n return this.navigable(['programs'], {\r\n title: 'Programs',\r\n icon: 'group',\r\n description: 'Programs List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public bases(queryParams?: BaseQueryParams) {\r\n return this.navigable(['bases'], {\r\n title: 'Bases',\r\n icon: 'home',\r\n description: 'Bases List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public vehicles(queryParams?: VehicleQueryParams) {\r\n return this.navigable(['vehicles'], {\r\n title: 'Vehicles',\r\n icon: 'flight',\r\n description: 'Vehicles List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public regionGroups(queryParams?: RegionGroupQueryParams) {\r\n return this.navigable(['region-groups'], {\r\n title: 'Region Groups',\r\n icon: 'view_list',\r\n description: 'Region Group List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public regions(queryParams?: RegionGroupQueryParams) {\r\n return this.navigable(['regions'], {\r\n title: 'Regions',\r\n icon: 'map',\r\n description: 'Regions List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public personnel(queryParams?: PersonnelQueryParams) {\r\n return this.navigable(['people'], {\r\n title: 'Personnel',\r\n icon: 'recent_actors',\r\n description: 'Personnel List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public notificationGroups(queryParams?: NotificationGroupQueryParams) {\r\n return this.navigable(['notification-groups'], {\r\n title: 'Notification Groups',\r\n icon: 'notifications',\r\n description: 'Notification Groups List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public compliance(queryParams?: ComplianceQueryParams) {\r\n return this.navigable(['compliances'], {\r\n title: 'Compliance',\r\n icon: 'playlist_add_check',\r\n description: 'Compliances List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public communicationCenters(queryParams?: CommunicationCenterQueryParams) {\r\n return this.navigable(['communication-centers'], {\r\n title: 'Communication Centers',\r\n icon: 'headset_mic',\r\n description: 'Communication Centers List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public controlZones(queryParams?: ControlZoneQueryParams) {\r\n return this.navigable(['control-zones'], {\r\n title: 'Control Zones',\r\n icon: 'account_box',\r\n description: 'Control Zones List',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n get specialtyTeams() {\r\n return new SpecialtyTeamsNavigation(this, this._router);\r\n }\r\n\r\n // Org Links\r\n get overview() {\r\n return this.navigable(['overview'], {\r\n title: 'Overview',\r\n icon: 'home',\r\n description: 'TCS overview',\r\n });\r\n }\r\n\r\n get organization() {\r\n return this.navigable(['organization'], {\r\n title: 'Organization',\r\n icon: 'account_balance',\r\n description: 'Manage your assets and organizational units',\r\n data: {\r\n showInOverview: true,\r\n bgColorClass: 'bgc-light-blue-A700',\r\n },\r\n });\r\n }\r\n get trmUsers() {\r\n return new TrmUsersNavigation(this, this._router);\r\n }\r\n get medicalFacilities() {\r\n return new MedicalFacilitiesNavigation(this, this._router);\r\n }\r\n\r\n get airportsAndFbos() {\r\n return new AirportsNavigation(this, this._router);\r\n }\r\n\r\n get timestampTypes() {\r\n return this.navigable(['timestamp-types'], {\r\n title: 'Timestamp Types',\r\n icon: 'timer',\r\n description: 'Manage timestamp types',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get timelines() {\r\n return this.navigable(['timelines'], {\r\n title: 'Timelines',\r\n icon: 'timeline',\r\n description: 'Manage timelines',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get questions() {\r\n return this.navigable(['questions'], {\r\n title: 'Questions',\r\n icon: 'help',\r\n description: 'Manage questions',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n public questionnaires(queryParams?: QuestionnaireQueryParams) {\r\n return this.navigable(['questionnaires'], {\r\n title: 'Questionnaires',\r\n icon: 'assignment',\r\n description: 'Manage questionnaires',\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n get vehicleModels() {\r\n return this.navigable(['vehicle-models'], {\r\n title: 'Vehicle Models',\r\n icon: 'view_list',\r\n description: 'Manage vehicle models',\r\n });\r\n }\r\n\r\n public agencies() {\r\n return new AgenciesNavigation(this, this._router);\r\n }\r\n\r\n get events() {\r\n return this.navigable(['events'], {\r\n title: 'Events',\r\n icon: 'event',\r\n description: 'Manage a timeline of significant business events',\r\n });\r\n }\r\n get history() {\r\n return this.navigable(['history'], {\r\n title: 'History',\r\n icon: 'history',\r\n description: 'See what’s changed recently',\r\n });\r\n }\r\n\r\n get globalSettings() {\r\n return this.navigable(['global-settings'], {\r\n title: 'Global Settings',\r\n icon: 'settings',\r\n description: 'Manage global settings',\r\n });\r\n }\r\n\r\n get applicationNotifications() {\r\n return this.navigable(['application-notification'], {\r\n title: 'Application Notifications',\r\n icon: 'notifications',\r\n description: 'Manage Application Notifications',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n public landingZones() {\r\n return new LandingZoneNavigation(this, this._router);\r\n }\r\n\r\n get cardReOpenReasons() {\r\n return this.navigable(['card-re-open-reasons'], {\r\n title: 'Card Re-Open Reasons',\r\n icon: 'cancel',\r\n description: 'Manage Card Re-Open reasons',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n get transferCenters() {\r\n return this.navigable(['transfer-centers'], {\r\n title: 'Transfer Centers',\r\n icon: 'location_city',\r\n description: 'Manage transfer centers',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get transferReasons() {\r\n return this.navigable(['transfer-reasons'], {\r\n title: 'Transfer Reasons',\r\n icon: 'swap_horiz',\r\n description: 'Manage transfer reasons',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get diversionReasons() {\r\n return this.navigable(['diversion-reasons'], {\r\n title: 'Diversion Reasons',\r\n icon: 'call_missed_outgoing',\r\n description: 'Manage diversion reasons',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get outOfServiceReasons() {\r\n return this.navigable(['out-of-service-reasons'], {\r\n title: 'Out of Service Reasons',\r\n icon: 'pause_circle_filled',\r\n description: 'Manage out of service reasons',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n public alerts() {\r\n return new AlertsNavigation(this, this._router);\r\n }\r\n\r\n get fuelTanks() {\r\n return this.navigable(['fuel-tanks'], {\r\n title: 'Fuel Locations',\r\n icon: 'local_gas_station',\r\n description: 'Manage fuel Locations',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get physicians() {\r\n return this.navigable(['physicians'], {\r\n title: 'Physicians',\r\n icon: 'recent_actors',\r\n description: 'Manage Physicians',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get notificationTemplates() {\r\n return this.navigable(['notification-templates'], {\r\n title: 'Notification Templates',\r\n icon: 'assignment',\r\n description: 'Manage notification templates',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get offerAlgorithms() {\r\n return this.navigable(['offer-algorithms'], {\r\n title: 'Transport Offer Algorithms',\r\n icon: 'list',\r\n description: 'Manage Transport Offer Algorithms',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get oktaDirectory() {\r\n return this.navigable(['okta'], {\r\n title: 'Okta Directory',\r\n icon: 'fingerprint',\r\n description: 'Search Okta Users',\r\n });\r\n }\r\n\r\n get firewallRules() {\r\n return new FirewallRulesNavigation(this, this._router);\r\n }\r\n\r\n get declineCategories() {\r\n return new DeclineCategoriesNavigation(this, this._router);\r\n }\r\n\r\n get cancellationCategories() {\r\n return new CancellationCategoriesNavigation(this, this._router);\r\n }\r\n\r\n public capabilities() {\r\n return new CapabilitiesNavigation(this, this._router);\r\n }\r\n\r\n get nonReferralReasons() {\r\n return this.navigable(['non-referral-reasons'], {\r\n title: 'Non-Referral Reasons',\r\n icon: 'label_off',\r\n description: 'Manage Non-Referral Reasons',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n\r\n get facilityNonAcceptanceReasons() {\r\n return this.navigable(['facility-non-acceptance-reasons'], {\r\n title: 'Facility Non-Acceptance Reasons',\r\n icon: 'domain_disabled',\r\n description: 'Manage Facility Non-Acceptance Reasons',\r\n data: {\r\n showInOverview: true,\r\n },\r\n });\r\n }\r\n}\r\nexport class TripNavigation extends NavigableServiceBase {\r\n constructor(cardNav: CardNavigation, router: Router) {\r\n super([...cardNav.commands, 'trip'], router);\r\n }\r\n\r\n public editWaypoint(waypointId: string) {\r\n return this.navigable([], {\r\n navigationExtras: {\r\n queryParams: {\r\n waypointId,\r\n mode: 'edit',\r\n },\r\n },\r\n });\r\n }\r\n\r\n public insertWaypoint(waypointId: string) {\r\n return this.navigable([], {\r\n navigationExtras: {\r\n queryParams: {\r\n waypointId,\r\n mode: 'insert',\r\n },\r\n },\r\n });\r\n }\r\n\r\n public requestLocation(waypointType: WaypointType) {\r\n return this.navigable(['request-location'], {\r\n navigationExtras: {\r\n queryParams: {\r\n type: waypointType,\r\n },\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport class CardNavigation extends NavigableServiceBase {\r\n constructor(cardNumber: string, opNav: OperationNavigation, router: Router) {\r\n super([...opNav.commands, 'cards', cardNumber], router);\r\n }\r\n\r\n get request() {\r\n return this.navigable(['request']);\r\n }\r\n\r\n get assignUnit() {\r\n return this.navigable(['request', 'assign-unit']);\r\n }\r\n\r\n get historyNotes() {\r\n return this.navigable(['history', 'notes']);\r\n }\r\n get historyTimes() {\r\n return this.navigable(['history', 'timeline']);\r\n }\r\n get historyTimestamps() {\r\n return this.navigable(['history', 'timestamps']);\r\n }\r\n get trip() {\r\n return new TripNavigation(this, this._router);\r\n }\r\n get questionnaireResponse() {\r\n return this.navigable(['questionnaire-response']);\r\n }\r\n get positionReportHistory() {\r\n return this.navigable(['position-report']);\r\n }\r\n}\r\n\r\nexport class UnitInstanceNavigation extends NavigableServiceBase {\r\n constructor(unitId: string, nav: UnitNavigation, router: Router) {\r\n super([...nav.commands, unitId], router);\r\n }\r\n\r\n get manage() {\r\n return this.navigable(['manage']);\r\n }\r\n}\r\n\r\nexport class UnitNavigation extends NavigableServiceBase {\r\n constructor(nav: OperationNavigation, router: Router) {\r\n super([...nav.commands, 'units'], router);\r\n }\r\n\r\n public add(regionId?: string | undefined) {\r\n if (regionId != null) {\r\n return this.navigable(['add'], {\r\n navigationExtras: { queryParams: { regionId } },\r\n });\r\n } else {\r\n return this.navigable(['add']);\r\n }\r\n }\r\n\r\n public detail(unitId: string) {\r\n return new UnitInstanceNavigation(unitId, this, this._router);\r\n }\r\n}\r\n\r\nexport class OperationNavigation extends NavigableServiceBase {\r\n constructor(private companyCode: string, private router: Router) {\r\n super(['/', companyCode, 'ops'], router, { title: 'Operations' });\r\n }\r\n\r\n get isCurrentContext() {\r\n const regex = new RegExp(`/${this.companyCode}/ops`);\r\n return regex.test(this.router.url);\r\n }\r\n\r\n public allRegions(commCenterId?: string | null | undefined) {\r\n const params: Params = { communicationCenterId: commCenterId };\r\n\r\n return this.navigable(['regions', 'all'], {\r\n navigationExtras: {\r\n queryParams: params,\r\n },\r\n });\r\n }\r\n\r\n public allControlZones() {\r\n return this.navigable(['control-zones']);\r\n }\r\n\r\n public controlZone(controlZoneId: string) {\r\n return this.navigable(['control-zones', controlZoneId]);\r\n }\r\n\r\n public sharedServices() {\r\n return this.navigable(['regions', 'shared-services']);\r\n }\r\n\r\n public region(regionId: string) {\r\n return this.navigable(['regions', regionId]);\r\n }\r\n\r\n public card(cardNumber: string) {\r\n return new CardNavigation(cardNumber, this, this._router);\r\n }\r\n\r\n public locationSearch(queryParams: LocationSearchQueryParams) {\r\n return this.navigable(['search'], {\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n get units() {\r\n return new UnitNavigation(this, this._router);\r\n }\r\n\r\n public unit(unitId: string) {\r\n return this.units.detail(unitId);\r\n }\r\n\r\n public currentCard() {}\r\n\r\n public vehicles(commCenterId?: string | null | undefined) {\r\n const params: Params = { communicationCenterId: commCenterId };\r\n\r\n return this.navigable(['regions', 'vehicles'], {\r\n navigationExtras: {\r\n queryParams: params,\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport class InsightsNavigation extends NavigableServiceBase {\r\n constructor(private companyCode: string, private router: Router) {\r\n super(['/', companyCode, 'insights'], router, { title: 'Insights' });\r\n }\r\n\r\n get isCurrentContext() {\r\n const regex = new RegExp(`/${this.companyCode}/insights`);\r\n return regex.test(this.router.url);\r\n }\r\n\r\n public cardSearch(queryParams: CardSearchQueryParams) {\r\n return this.navigable([], {\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n\r\n public oldCardSearch(queryParams: CardSearchQueryParams) {\r\n return this.navigable(['old'], {\r\n navigationExtras: {\r\n queryParams,\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport class AsbNavigation extends NavigableServiceBase {\r\n constructor(private companyCode: string, private router: Router) {\r\n super(['/', companyCode, 'asb'], router, { title: 'Aircraft Status Board' });\r\n }\r\n\r\n get isCurrentContext() {\r\n const regex = new RegExp(`/${this.companyCode}/asb`);\r\n return regex.test(this.router.url);\r\n }\r\n}\r\n\r\nexport class OosRumNavigation extends NavigableServiceBase {\r\n constructor(private companyCode: string, private router: Router) {\r\n super(['/', companyCode, 'oos-rum'], router, { title: 'OOS Rum' });\r\n }\r\n\r\n get isCurrentContext() {\r\n const regex = new RegExp(`/${this.companyCode}/oos-rum`);\r\n return regex.test(this.router.url);\r\n }\r\n\r\n public commCenter(commCenterId: string) {\r\n return this.navigable([commCenterId]);\r\n }\r\n}\r\n\r\nexport class RttNavigation extends NavigableServiceBase {\r\n constructor(private companyCode: string, private router: Router) {\r\n super(['/', companyCode, 'rtt'], router, { title: 'RTT' });\r\n }\r\n\r\n get isCurrentContext() {\r\n const regex = new RegExp(`/${this.companyCode}/rtt`);\r\n return regex.test(this.router.url);\r\n }\r\n}\r\n\r\nexport class RegionNavigation {}\r\n\r\nexport class CompanyNavigation {\r\n public org: OrganiztionNavigation;\r\n public ops: OperationNavigation;\r\n public insights: InsightsNavigation;\r\n public asb: AsbNavigation;\r\n public oosRum: OosRumNavigation;\r\n\r\n constructor(\r\n companyCode: string,\r\n router: Router,\r\n tcsConfig: TcsConfigurationService,\r\n companyId?: string,\r\n ) {\r\n this.ops = new OperationNavigation(companyCode, router);\r\n this.org = new OrganiztionNavigation(companyCode, router, tcsConfig, companyId);\r\n this.insights = new InsightsNavigation(companyCode, router);\r\n this.asb = new AsbNavigation(companyCode, router);\r\n this.oosRum = new OosRumNavigation(companyCode, router);\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TcsNavigationService extends NavigationServiceBase {\r\n public readonly devKit: DevKitNavigation;\r\n public currentCompanyNav$: Observable;\r\n public currentCompany$: Observable;\r\n constructor(\r\n router: Router,\r\n private companyContextService: CompanyContextService,\r\n private _tcsConfig: TcsConfigurationService,\r\n ) {\r\n super(router);\r\n this.devKit = new DevKitNavigation(router);\r\n this.currentCompanyNav$ = this.companyContextService.company$.pipe(\r\n filterNull(),\r\n map((c) => new CompanyNavigation(c.companyCode, this._router, _tcsConfig, c.id)),\r\n filterNull(),\r\n );\r\n this.currentCompany$ = this.companyContextService.company$.pipe(map((company) => company));\r\n }\r\n\r\n public company(companyCode: string, companyId?: string) {\r\n return new CompanyNavigation(companyCode, this._router, this._tcsConfig, companyId);\r\n }\r\n\r\n get currentCompany() {\r\n const companyCode =\r\n this.companyContextService.company != null\r\n ? this.companyContextService.company.companyCode\r\n : null;\r\n const companyId =\r\n this.companyContextService.company != null ? this.companyContextService.company.id : null;\r\n if (companyCode == null) {\r\n throw new Error(\r\n 'Attempting to get navigation tree for current company code, but none found in context',\r\n );\r\n }\r\n return companyId != null ? this.company(companyCode, companyId) : this.company(companyCode);\r\n }\r\n\r\n get login() {\r\n return this.navigable(['/login']);\r\n }\r\n\r\n get logout() {\r\n return this.navigable(['/logout']);\r\n }\r\n\r\n get notFound() {\r\n return this.navigable(['/not-found'], {\r\n navigationExtras: {\r\n skipLocationChange: true,\r\n replaceUrl: true,\r\n },\r\n });\r\n }\r\n\r\n get fleetstatus() {\r\n return this.navigable(['/fleet-status']);\r\n }\r\n\r\n get rtt() {\r\n return this.navigable(['/rtt']);\r\n }\r\n\r\n get authenticatedLandingPage() {\r\n return this.navigable(['/']);\r\n }\r\n}\r\n","import {\r\n differenceInDays,\r\n differenceInHours,\r\n differenceInMinutes,\r\n differenceInYears,\r\n format,\r\n} from 'date-fns';\r\n\r\nexport function timeElapsed(date: Date) {\r\n const now = Date.now();\r\n const minutes = differenceInMinutes(now, date);\r\n const hours = differenceInHours(now, date);\r\n const days = differenceInDays(now, date);\r\n const years = differenceInYears(now, date);\r\n const time = format(date, 'HH:mm:ss');\r\n const dateWithTime = format(date, 'MM/dd/yyyy HH:mm:ss');\r\n\r\n let result = `Now @ ${time}`;\r\n if (minutes > 0 && hours === 0) {\r\n result = `${minutes}m ago @ ${time}`;\r\n } else if (hours > 0 && days === 0) {\r\n result = `${hours}h ago @ ${time}`;\r\n } else if (days > 0 && years === 0) {\r\n result = `${days}d ago @ ${dateWithTime}`;\r\n } else if (years > 0) {\r\n result = `${years}y ago @ ${dateWithTime}`;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function minutesToSeconds(minutes: number): number {\r\n return minutes * 60;\r\n}\r\nexport function secondsToMinutes(seconds: number): number {\r\n return seconds / 60;\r\n}\r\n\r\nexport function minutesToTimeElapsed(totalMinutes: number, displayLevels?: number): string {\r\n return secondsToTimeElapsed(minutesToSeconds(totalMinutes), displayLevels, true);\r\n}\r\n\r\nexport function secondsToTimeElapsed(\r\n totalSeconds: number,\r\n displayLevels?: number,\r\n ignoreSeconds: boolean = false,\r\n): string {\r\n displayLevels = displayLevels == null || displayLevels <= 0 ? undefined : displayLevels;\r\n let seconds = Math.abs(totalSeconds);\r\n let minutes = Math.floor(seconds / 60);\r\n seconds -= minutes * 60;\r\n let hours = Math.floor(minutes / 60);\r\n minutes -= hours * 60;\r\n const days = Math.floor(hours / 24);\r\n hours -= days * 24;\r\n\r\n const parts = [\r\n days < 1 ? null : `${days}d`,\r\n days < 1 && hours < 1 ? null : `${hours}h`,\r\n !ignoreSeconds && hours < 1 && minutes < 1 ? null : `${minutes}m`,\r\n ignoreSeconds === true ? null : `${seconds}s`,\r\n ].filter((p) => p != null);\r\n\r\n const time = parts.slice(0, displayLevels).join(' ');\r\n return totalSeconds < 0 ? `-${time}` : time;\r\n}\r\n\r\nexport function minutesToTimeString(totalMinute: number): string {\r\n let minutes = Math.abs(totalMinute);\r\n const hours = Math.floor(minutes / 60);\r\n minutes -= hours * 60;\r\n return `${('00' + hours).slice(-2)}:${('00' + minutes).slice(-2)}`;\r\n}\r\n\r\nexport function getMinutesOfDay(date: Date) {\r\n return date.getHours() * 60 + date.getMinutes();\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { CardStatus, VehicleType } from 'src/graphql/generated/graphql.generated';\r\nimport { selectAllCardSummaryEntities } from 'src/store/generated/card-summary-record.generated';\r\nimport { selectUnitSummariesByCurrentCompany } from './unit-selectors';\r\n\r\nexport function selectCardSummaryEntityByRequestId(requestId: string) {\r\n return createSelector(selectAllCardSummaryEntities, (entities) => {\r\n const cardSummary = entities.find((e) => e.request != null && e.request.id === requestId);\r\n return cardSummary;\r\n });\r\n}\r\n\r\nexport function selectCardSummaryEntityByCardNumber(cardNumber: string) {\r\n return createSelector(selectAllCardSummaryEntities, (entities) =>\r\n entities.find((e) => e.cardNumber === cardNumber),\r\n );\r\n}\r\n\r\nexport function selectCardSummaryEntitiesByCurrentCompany(\r\n currentCompanyId: string,\r\n excludeDispatchByCurrentCompany: boolean,\r\n unitNameOrTailLike?: string,\r\n vehicleTypes: VehicleType[] = [],\r\n companyIds: string[] = [],\r\n ...status: CardStatus[]\r\n) {\r\n return createSelector(\r\n selectAllCardSummaryEntities,\r\n selectUnitSummariesByCurrentCompany(\r\n currentCompanyId,\r\n excludeDispatchByCurrentCompany,\r\n unitNameOrTailLike,\r\n companyIds,\r\n vehicleTypes,\r\n ),\r\n (cards, units) => {\r\n return cards\r\n .filter(\r\n (card) =>\r\n units.some((unit) => unit.id === card.unitId) &&\r\n (status.length === 0 || status.includes(card.status)),\r\n )\r\n .toOrderedSet()\r\n .sort((a, b) => (a.dateCreated < b.dateCreated ? -1 : 1));\r\n },\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllExternalActionEntities } from '../generated/external-action-record.generated';\r\nimport { selectAllExternalActionTypeEntities } from '../generated/external-action-type-record.generated';\r\n\r\nexport function selectNextExternalActionInQueueByCardId(cardId: string) {\r\n return createSelector(\r\n selectPendingExternalActionsByEntityId(cardId),\r\n selectAllExternalActionTypeEntities,\r\n (actions, types) => {\r\n return (\r\n actions\r\n .map((a) => {\r\n const type = types.get(a.actionTypeId);\r\n return { externalAction: a, externalActionType: type };\r\n })\r\n .filter((i) => i.externalActionType != null)\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n .sort((a, b) => a.externalActionType!.priority - b.externalActionType!.priority)\r\n .map((i) => i.externalAction)\r\n .first(undefined)\r\n );\r\n },\r\n );\r\n}\r\n\r\nexport function selectAllPendingExternalActions() {\r\n return createSelector(selectAllExternalActionEntities, (actions) =>\r\n actions.filter((a) => a.dateCompleted == null),\r\n );\r\n}\r\n\r\nexport function selectPendingExternalActionsByEntityId(entityId: string) {\r\n return createSelector(selectAllPendingExternalActions(), (actions) =>\r\n actions.filter((a) => a.entityId === entityId),\r\n );\r\n}\r\n\r\nexport function selectPendingExternalActionByEntityIdAndTypeId(entityId: string, typeId: string) {\r\n return createSelector(selectAllPendingExternalActions(), (actions) =>\r\n actions.find((a) => a.entityId === entityId && a.actionTypeId === typeId),\r\n );\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { createSelector, Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n CardStatus,\r\n MissionRoleType,\r\n OperationStatus,\r\n RequestStatus,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectCardSummaryByUnitId } from 'src/store/entityStores/card-selectors';\r\nimport { selectCardSummaryEntityByCardNumber } from 'src/store/entityStores/card-summary-selectors';\r\nimport {\r\n selectNextExternalActionInQueueByCardId,\r\n selectPendingExternalActionsByEntityId,\r\n} from 'src/store/entityStores/external-action-selectors';\r\nimport {\r\n CardSummaryProps,\r\n CardSummaryViewModelBase,\r\n selectAllCardSummaryEntities,\r\n} from 'src/store/generated/card-summary-record.generated';\r\nimport { CardSummaryEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport { ExternalActionRecord } from 'src/store/generated/external-action-record.generated';\r\nimport { RequestSummaryProps } from 'src/store/generated/request-summary-record.generated';\r\nimport { selectWebOrderLogEntitiesByEntityId } from 'src/store/generated/web-order-log-record.generated';\r\nimport { undefinedOrMap } from 'src/util/rxjs/operators';\r\nimport { humanize } from 'src/util/text';\r\n\r\nexport class CardSummaryViewModel extends CardSummaryViewModelBase {\r\n public pendingExternalActions$: Observable;\r\n public nextExternalActionInQueue$: Observable;\r\n public hasUnacknowledgedWebOrders$: Observable;\r\n constructor(props: CardSummaryProps, private _store: Store) {\r\n super(props);\r\n\r\n this.pendingExternalActions$ = this._store\r\n .select(selectPendingExternalActionsByEntityId(this.id))\r\n .pipe(map((a) => a.valueSeq().toArray()));\r\n\r\n this.nextExternalActionInQueue$ = this._store.select(\r\n selectNextExternalActionInQueueByCardId(this.id),\r\n );\r\n\r\n this.hasUnacknowledgedWebOrders$ = this._store\r\n .select(selectWebOrderLogEntitiesByEntityId(this.id))\r\n .pipe(\r\n map((logs) => {\r\n let hasNotAcknowledged = false;\r\n logs.forEach((log) => {\r\n if (log.acknowledgedById == null) {\r\n hasNotAcknowledged = true;\r\n }\r\n });\r\n return hasNotAcknowledged;\r\n }),\r\n );\r\n }\r\n\r\n get isReadOnly() {\r\n return this.isClosed;\r\n }\r\n\r\n get tripId() {\r\n return this.operation != null ? this.operation.tripId : undefined;\r\n }\r\n\r\n get cardNumberDisplay(): string {\r\n const operation = this.operation;\r\n let onStandby = false;\r\n\r\n if (operation != null) {\r\n onStandby = operation.status === OperationStatus.OnStandby;\r\n }\r\n\r\n return `${this.cardNumber} ${onStandby ? '*' : ''}`.trim();\r\n }\r\n\r\n get isWebOrder() {\r\n return this.apiWebhookSubscriptionId != null;\r\n }\r\n\r\n get hasCrewAccepted() {\r\n if (this.operation == null) {\r\n return false;\r\n }\r\n\r\n return this.operation.status === OperationStatus.CrewAccepted;\r\n }\r\n\r\n get isAbortedOrCancelled() {\r\n if (this.operation == null) {\r\n return false;\r\n }\r\n\r\n if (this.operation.status === OperationStatus.Aborted) {\r\n return true;\r\n }\r\n\r\n if (this.operation.status === OperationStatus.Cancelled) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n get isWebOrderWaiting() {\r\n if (this.isWebOrder !== true) {\r\n return false;\r\n }\r\n\r\n return this.webOrderAcknowledgedTime == null;\r\n }\r\n\r\n get isActionRequired$(): Observable {\r\n return this.pendingExternalActions$.pipe(map((e) => e.length > 0));\r\n }\r\n\r\n get isSisterCompanyReferralActive() {\r\n return (\r\n (this.request?.isSisterCompanyReferral ?? false) &&\r\n this.status === CardStatus.AwaitingAssignment\r\n );\r\n }\r\n\r\n private get _requestStatusHumanized() {\r\n return humanize(this.request?.status ?? 'Unknown');\r\n }\r\n\r\n public requestStatusDisplay() {\r\n const request: RequestSummaryProps | null = this.request;\r\n\r\n if (request == null) {\r\n return 'Unknown';\r\n }\r\n\r\n if (this.isWebOrderWaiting === true) {\r\n return this.request?.requester?.missionRole === MissionRoleType.TeamFlight\r\n ? 'Web Order - Team Flight'\r\n : this.request?.requester?.missionRole === MissionRoleType.MassCasualty\r\n ? 'Web Order - Mass Casualty'\r\n : 'Web Order';\r\n }\r\n\r\n if (this.isSisterCompanyReferralActive) {\r\n return `${this._requestStatusHumanized} - Referral`;\r\n }\r\n\r\n if (request.isStandbyRequest === true && this.isWebOrder === true) {\r\n return `${this._requestStatusHumanized} - STANDBY`;\r\n }\r\n\r\n if (\r\n request.status === RequestStatus.AssignmentDelayed &&\r\n request.assignmentDelayedReason != null\r\n ) {\r\n return `${request.assignmentDelayedReason} - DELAY`;\r\n }\r\n\r\n return this._requestStatusHumanized;\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CardSummaryViewModelService {\r\n constructor(\r\n private readonly _cardSummaryFetchService: CardSummaryEntityFetchService,\r\n private _store: Store,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._cardSummaryFetchService\r\n .getById(id)\r\n .pipe(undefinedOrMap((card) => new CardSummaryViewModel(card, this._store)));\r\n }\r\n\r\n public getByUnitId(unitId: string): Observable {\r\n return this._store\r\n .select(selectCardSummaryByUnitId(unitId))\r\n .pipe(undefinedOrMap((card) => new CardSummaryViewModel(card, this._store)));\r\n }\r\n\r\n public getByCardNumber(cardNumber: string): Observable {\r\n return this._store\r\n .select(selectCardSummaryEntityByCardNumber(cardNumber))\r\n .pipe(undefinedOrMap((card) => new CardSummaryViewModel(card, this._store)));\r\n }\r\n}\r\n\r\nexport function selectCardSummaryByTripId(tripId: string) {\r\n return createSelector(selectAllCardSummaryEntities, (cardSummaries) => {\r\n return cardSummaries.find((c) => c.operation != null && c.operation.tripId === tripId);\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { Seq } from 'immutable';\r\nimport { SystemTimestampType } from 'src/graphql/generated/graphql.generated';\r\nimport {\r\n selectAllTimestamps,\r\n selectAllTimestampTypes,\r\n} from 'src/store/entityStores/entity-store-selectors';\r\nimport { TimestampRecord } from 'src/store/generated/timestamp-record.generated';\r\n\r\nexport function selectTimestampById(id: string) {\r\n return createSelector(selectAllTimestamps, (timestamps) => {\r\n return timestamps.get(id);\r\n });\r\n}\r\n\r\nexport function selectTimestampsByCardId(cardId: string) {\r\n return createSelector(selectAllTimestamps, (timestamps) => {\r\n return cardId == null\r\n ? Seq.Indexed()\r\n : timestamps\r\n .filter((ts) => ts.cardId === cardId)\r\n .toIndexedSeq()\r\n .sortBy((ts) => ts.time);\r\n });\r\n}\r\n\r\nexport function selectTimestampsByTypeAndCardId(cardId: string, timestampTypeId: string) {\r\n return createSelector(\r\n selectTimestampsByCardId(cardId),\r\n selectAllTimestampTypes,\r\n (timestamps, timestampTypes) => {\r\n return timestamps.find((ts) => ts.typeId === timestampTypeId);\r\n },\r\n );\r\n}\r\n\r\nexport function selectTimestampByCardIdAndType(\r\n cardId: string,\r\n systemTimestampType: SystemTimestampType,\r\n) {\r\n return createSelector(\r\n selectTimestampsByCardId(cardId),\r\n selectAllTimestampTypes,\r\n (timestamps, timestampTypes) => {\r\n const type = timestampTypes.find((ts) => ts.systemTimestampType === systemTimestampType);\r\n return type == null ? undefined : timestamps.find((ts) => ts.typeId === type.id);\r\n },\r\n );\r\n}\r\n","import { Observable } from 'rxjs';\r\n\r\nexport type Lookup = { [key in keyof TLookup]: TValue };\r\n\r\nexport function createLookup(keys: TKey, valueFn: (key: keyof TKey) => TValue) {\r\n const result: any = {};\r\n // eslint-disable-next-line guard-for-in\r\n for (const key in keys) {\r\n result[key] = valueFn(key);\r\n }\r\n return result;\r\n}\r\n\r\nexport type ObservableLookup = Lookup }>;\r\n\r\nexport function createObservableLookup(\r\n keys: TLookup,\r\n valueFn: (key: keyof TLookup) => Observable,\r\n): ObservableLookup {\r\n const result: any = {};\r\n // eslint-disable-next-line guard-for-in\r\n for (const key in keys) {\r\n result[key] = { $: valueFn(key) };\r\n }\r\n return result;\r\n}\r\n\r\nexport function createPartialLookupFactory() {\r\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\r\n return function (factory: T) {\r\n return factory;\r\n };\r\n}\r\n\r\nexport function createExhaustiveLookupFactory() {\r\n // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\r\n return function (factory: T) {\r\n return factory;\r\n };\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { AppState } from 'src/store/appstate';\r\n\r\nexport const selectAllCommunicationCenters = (appState: AppState) =>\r\n appState.entityStores.communicationCenter.entities;\r\n\r\nexport function selectCommunicationCenterById(id: string) {\r\n return createSelector(selectAllCommunicationCenters, (commCenters) => commCenters.get(id));\r\n}\r\n\r\nexport function selectCommunicationCentersByCompany(companyId: string) {\r\n return createSelector(selectAllCommunicationCenters, (commCenters) =>\r\n commCenters.filter((cc) => cc.companyId === companyId),\r\n );\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { OrderedSet, Seq, Set } from 'immutable';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { CardStatus, UnitStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectCardSummariesByControlZoneId } from 'src/store/entityStores/card-selectors';\r\nimport { selectUnitSummariesByControlZoneId } from 'src/store/entityStores/unit-selectors';\r\n// import { selectCardSummaryEntitiesByControlZoneId } from 'src/store/generated/card-summary-record.generated';\r\nimport { ControlZoneEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n ControlZoneRecord,\r\n ControlZoneViewModelBase,\r\n} from 'src/store/generated/control-zone-record.generated';\r\n\r\nimport { createObservableLookup, ObservableLookup } from 'src/util/lookup';\r\nimport { undefinedOrMap } from 'src/util/rxjs/operators';\r\nimport { getOrElse } from 'src/util/values';\r\n\r\nexport class ControlZoneViewModel extends ControlZoneViewModelBase {\r\n public cardNumbers$: Observable>;\r\n public cardIdsByStatus: ObservableLookup>;\r\n public nonHiddenUnitIdsByStatus: ObservableLookup>;\r\n public allUnitIdsByStatus: ObservableLookup>;\r\n public allUnitIds$: Observable>;\r\n public nonHiddenUnitIds$: Observable>;\r\n public notificationIds$: Observable>;\r\n constructor(controlZone: ControlZoneRecord, store: Store) {\r\n super(controlZone);\r\n this.cardNumbers$ = store.select(selectCardSummariesByControlZoneId(this.id)).pipe(\r\n distinctUntilChanged(),\r\n map((cards) => cards.map((card) => card.cardNumber).toSet()),\r\n distinctUntilChanged(),\r\n );\r\n this.cardIdsByStatus = createObservableLookup(CardStatus, (cardStatus) =>\r\n store.select(selectCardSummariesByControlZoneId(this.id)).pipe(\r\n distinctUntilChanged(),\r\n map((cards) =>\r\n cards\r\n .filter((r) => r.status === cardStatus)\r\n .sort((a, b) => {\r\n return a.dateCreated < b.dateCreated ? -1 : 1;\r\n })\r\n .map((c) => c.id)\r\n .toSet(),\r\n ),\r\n distinctUntilChanged(),\r\n ),\r\n );\r\n\r\n this.allUnitIds$ = store.select(selectUnitSummariesByControlZoneId(controlZone.id)).pipe(\r\n distinctUntilChanged(),\r\n map((units) => units.map((u) => u.id).toSet()),\r\n distinctUntilChanged(),\r\n );\r\n this.nonHiddenUnitIds$ = store\r\n .select(selectUnitSummariesByControlZoneId(controlZone.id, false))\r\n .pipe(\r\n distinctUntilChanged(),\r\n\r\n map((units) =>\r\n units\r\n .filter((u) => getOrElse(u.isHidden, false) === false)\r\n .map((u) => u.id)\r\n .toSet(),\r\n ),\r\n distinctUntilChanged(),\r\n );\r\n\r\n this.nonHiddenUnitIdsByStatus = createObservableLookup(UnitStatus, (unitStatus) =>\r\n store.select(selectUnitSummariesByControlZoneId(controlZone.id, false)).pipe(\r\n distinctUntilChanged(),\r\n map((units) =>\r\n units\r\n .filter((u) => !getOrElse(u.isHidden, false))\r\n .sort((a, b) => a.abbreviation.localeCompare(b.abbreviation))\r\n .filter((u) => u.status === unitStatus)\r\n .map((u) => u.id),\r\n ),\r\n distinctUntilChanged(),\r\n ),\r\n );\r\n\r\n this.allUnitIdsByStatus = createObservableLookup(UnitStatus, (unitStatus) =>\r\n store.select(selectUnitSummariesByControlZoneId(controlZone.id)).pipe(\r\n distinctUntilChanged(),\r\n map((units) =>\r\n units\r\n .sort((a, b) => a.abbreviation.localeCompare(b.abbreviation))\r\n .filter((u) => u.status === unitStatus)\r\n .map((u) => u.id),\r\n ),\r\n distinctUntilChanged(),\r\n ),\r\n );\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ControlZoneViewModelService {\r\n constructor(\r\n private readonly _controlZoneFetchService: ControlZoneEntityFetchService,\r\n private _store: Store,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._controlZoneFetchService\r\n .getById(id)\r\n .pipe(undefinedOrMap((controlZone) => new ControlZoneViewModel(controlZone, this._store)));\r\n }\r\n}\r\n","import { OperationType, WaypointType } from 'src/graphql/generated/graphql.generated';\r\nimport { RequestLocationConfig } from '../card/card-shared/components/request-location-form/request-location-form.component';\r\nimport {\r\n PanelConfig,\r\n RequestFormPanels,\r\n} from '../card/request/components/request-page/request-page.component';\r\n\r\nexport interface OperationTypeConfigRequest {\r\n initialDestination: WaypointType;\r\n targetDestination?: WaypointType;\r\n locations: RequestLocationConfig[];\r\n formPanels: { [fe in RequestFormPanels]: PanelConfig };\r\n}\r\n\r\ninterface OperationTypeConfigBase {\r\n name: string;\r\n abbreviation: string;\r\n key: string;\r\n icon?: string;\r\n // If you can create a request for an operation, configure it here\r\n request?: OperationTypeConfigRequest;\r\n}\r\n\r\nexport enum NonOperationType {\r\n RequestorSpecialtyTeam = 'RequestorSpecialtyTeam',\r\n}\r\nexport type OperationTypeConfig = OperationTypeConfigBase & {\r\n type: OperationType | NonOperationType;\r\n};\r\n\r\nconst config: { [ot in OperationType | NonOperationType]: OperationTypeConfigBase } = {\r\n GroundRun: {\r\n name: 'Ground Run',\r\n abbreviation: 'Gnd Run',\r\n key: 'groundrun',\r\n },\r\n Maintenance: {\r\n name: 'Maintenance',\r\n abbreviation: 'Maint',\r\n key: 'maintenance',\r\n },\r\n RequestorSpecialtyTeam: {\r\n name: 'Patient Shuttle',\r\n abbreviation: 'Shuttle',\r\n key: 'patient-shuttle',\r\n icon: 'add_location',\r\n },\r\n PatientShuttle: {\r\n name: 'Patient Shuttle',\r\n abbreviation: 'Shuttle',\r\n key: 'patient-shuttle',\r\n icon: 'add_location',\r\n request: {\r\n initialDestination: WaypointType.PatientPickupRendezvous,\r\n targetDestination: WaypointType.PatientDropoffRendezvous,\r\n locations: [\r\n {\r\n waypointType: WaypointType.PatientPickupRendezvous,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n {\r\n waypointType: WaypointType.PatientDropoffRendezvous,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: {},\r\n PatientInformation: {},\r\n MissionInformation: { disabled: true },\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: {},\r\n },\r\n },\r\n },\r\n NonPatientShuttle: {\r\n name: 'Non Patient Shuttle',\r\n abbreviation: 'Shuttle',\r\n key: 'non-patient-shuttle',\r\n icon: 'commute',\r\n request: {\r\n initialDestination: WaypointType.RendezvousPoint,\r\n targetDestination: WaypointType.RendezvousPoint,\r\n locations: [\r\n {\r\n waypointType: WaypointType.RendezvousPoint,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n {\r\n waypointType: WaypointType.RendezvousPoint,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: { disabled: true },\r\n PatientInformation: { disabled: true },\r\n MissionInformation: { disabled: true },\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: { disabled: true },\r\n },\r\n },\r\n },\r\n PublicRelations: {\r\n name: 'PR / Demo',\r\n abbreviation: 'PR',\r\n key: 'public-relations',\r\n icon: 'voice_chat',\r\n request: {\r\n initialDestination: WaypointType.PublicRelationsSite,\r\n locations: [\r\n {\r\n waypointType: WaypointType.PublicRelationsSite,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: { disabled: true },\r\n PatientInformation: { disabled: true },\r\n MissionInformation: { disabled: true },\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: {},\r\n },\r\n },\r\n },\r\n Reposition: {\r\n name: 'Reposition',\r\n abbreviation: 'Repo',\r\n key: 'reposition',\r\n },\r\n SearchAndAssist: {\r\n name: 'Search and Assist',\r\n abbreviation: 'SAA',\r\n key: 'search-and-assist',\r\n icon: 'map',\r\n request: {\r\n initialDestination: WaypointType.SceneLocation,\r\n targetDestination: WaypointType.ReceivingFacility,\r\n locations: [\r\n {\r\n waypointType: WaypointType.SceneLocation,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n {\r\n waypointType: WaypointType.ReceivingFacility,\r\n formType: 'medical',\r\n panel: { collapsed: true },\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: {},\r\n PatientInformation: { collapsed: true },\r\n MissionInformation: { disabled: true },\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: {},\r\n },\r\n },\r\n },\r\n Training: { name: 'Training', abbreviation: 'Training', key: 'training' },\r\n Transfer: {\r\n name: 'Transfer',\r\n abbreviation: 'IFT',\r\n key: 'transfer',\r\n icon: 'domain',\r\n request: {\r\n initialDestination: WaypointType.SendingFacility,\r\n targetDestination: WaypointType.ReceivingFacility,\r\n locations: [\r\n {\r\n waypointType: WaypointType.SendingFacility,\r\n formType: 'medical',\r\n panel: {},\r\n },\r\n {\r\n waypointType: WaypointType.ReceivingFacility,\r\n formType: 'medical',\r\n panel: {},\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: {},\r\n PatientInformation: {},\r\n MissionInformation: { disabled: true },\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: {},\r\n },\r\n },\r\n },\r\n TransferCenter: {\r\n name: 'Transfer center',\r\n abbreviation: 'TXF',\r\n key: 'transfer-center',\r\n icon: 'location_city',\r\n request: {\r\n initialDestination: WaypointType.SendingFacility,\r\n targetDestination: WaypointType.ReceivingFacility,\r\n locations: [\r\n {\r\n waypointType: WaypointType.SendingFacility,\r\n formType: 'medical',\r\n panel: {},\r\n },\r\n {\r\n waypointType: WaypointType.ReceivingFacility,\r\n formType: 'medical',\r\n panel: {},\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: { disabled: true },\r\n ChiefComplaint: {},\r\n PatientInformation: {},\r\n PatientClinicalInformation: {},\r\n TransferCenterCallInformation: {},\r\n MissionInformation: { disabled: true },\r\n SafetyQuestions: { disabled: true },\r\n },\r\n },\r\n },\r\n SceneCall: {\r\n name: 'Scene Call',\r\n abbreviation: 'Scene',\r\n key: 'scene-call',\r\n icon: 'local_hospital',\r\n request: {\r\n initialDestination: WaypointType.SceneLocation,\r\n targetDestination: WaypointType.ReceivingFacility,\r\n locations: [\r\n {\r\n waypointType: WaypointType.SceneLocation,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n {\r\n waypointType: WaypointType.ReceivingFacility,\r\n formType: 'medical',\r\n panel: { collapsed: true },\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: {},\r\n PatientInformation: { collapsed: true },\r\n MissionInformation: { disabled: true },\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: {},\r\n },\r\n },\r\n },\r\n Residence: {\r\n name: 'Residence',\r\n abbreviation: 'RES',\r\n key: 'residence',\r\n icon: 'house',\r\n request: {\r\n initialDestination: WaypointType.SendingFacility,\r\n targetDestination: WaypointType.PatientDropoffRendezvous,\r\n locations: [\r\n {\r\n waypointType: WaypointType.SendingFacility,\r\n formType: 'medical',\r\n panel: {},\r\n },\r\n {\r\n waypointType: WaypointType.PatientDropoffRendezvous,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: { disabled: true },\r\n PatientInformation: { collapsed: true },\r\n MissionInformation: { disabled: true },\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: {},\r\n },\r\n },\r\n },\r\n PublicUtility: {\r\n name: 'Public Utility Operation',\r\n abbreviation: 'PUO',\r\n key: 'public-utility-operation',\r\n icon: 'public',\r\n request: {\r\n initialDestination: WaypointType.SceneLocation,\r\n locations: [\r\n {\r\n waypointType: WaypointType.SceneLocation,\r\n formType: 'allOrCustom',\r\n panel: {},\r\n },\r\n ],\r\n formPanels: {\r\n Requestor: {},\r\n RequestorSpecialtyTeam: {},\r\n ChiefComplaint: { disabled: true },\r\n PatientInformation: { disabled: true },\r\n MissionInformation: {},\r\n PatientClinicalInformation: { disabled: true },\r\n TransferCenterCallInformation: { disabled: true },\r\n SafetyQuestions: {},\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const operationTypeConfig: {\r\n [ot in OperationType | NonOperationType]: OperationTypeConfig;\r\n} = Object.entries(config).reduce((acc, typeConfig) => {\r\n const [type, cfg] = typeConfig;\r\n acc[type] = { type, ...cfg };\r\n return acc;\r\n}, {} as any);\r\n\r\nexport const requestOperationTypes = Object.values(operationTypeConfig)\r\n .filter((ot) => ot.request != null)\r\n .map((c) => {\r\n return {\r\n ...c,\r\n request: c.request,\r\n };\r\n });\r\n","import { RequestLocationRecord } from './generated/request-location-record.generated';\r\nimport { WaypointRecord } from './generated/waypoint-record.generated';\r\n\r\nexport function createWaypointFromRequestLocation(location: RequestLocationRecord): WaypointRecord {\r\n return new WaypointRecord({\r\n id: 'request-location-' + location.id,\r\n name: location.name,\r\n abbreviation: location.abbreviation,\r\n type: location.type,\r\n address: location.address,\r\n timezoneCd: location.timezoneCd,\r\n isRotorWingLz: location.isRotorWingLz,\r\n arrivalTime: null,\r\n departureTime: null,\r\n locationId: location.locationId,\r\n companyId: location.companyId,\r\n dateLastUpdated: new Date(),\r\n estimatedDurationId: null,\r\n currentEtaId: null,\r\n isPatientPickup: false,\r\n isPatientDropoff: false,\r\n arrivingType: null,\r\n dateCreated: new Date(),\r\n dateDeleted: null,\r\n lastUpdatedById: null,\r\n });\r\n}\r\n\r\ntype Coordinates =\r\n | { latitude: number | null; longitude: number | null }\r\n | {\r\n latitude?: number | null;\r\n longitude?: number | null;\r\n };\r\n\r\nexport function hasLatLng({ address }: { address: { coordinates: Coordinates | null } }) {\r\n return address != null && hasCoordinates(address.coordinates);\r\n}\r\n\r\nexport function hasCoordinates(coordinates: Coordinates | null | undefined) {\r\n return coordinates != null && coordinates.latitude != null && coordinates.longitude != null;\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllOperations } from './entity-store-selectors';\r\n\r\nexport function selectOperationById(operationId: string) {\r\n return createSelector(selectAllOperations, (operations) => {\r\n return operations.get(operationId);\r\n });\r\n}\r\n\r\nexport function selectActiveOperationByUnitId(unitId: string) {\r\n return createSelector(selectAllOperations, (operations) => {\r\n return operations.valueSeq().find((o) => o.unitId === unitId && o.dateOperationEnded == null);\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllTrips } from './entity-store-selectors';\r\nimport { selectOperationById } from './operation-selectors';\r\nimport { selectOperationByCardNumber } from './shared-selectors';\r\n\r\nexport function selectTripByTripId(tripId: string) {\r\n return createSelector(selectAllTrips, (trips) => {\r\n return trips.valueSeq().find((t) => t.id === tripId);\r\n });\r\n}\r\n\r\nexport function selectTripByOperationId(operationId: string) {\r\n return createSelector(selectAllTrips, (trips) => {\r\n return trips.valueSeq().find((t) => t.operationId === operationId);\r\n });\r\n}\r\n\r\nexport function selectPrimaryTripByOperationId(operationId: string) {\r\n return createSelector(selectOperationById(operationId), selectAllTrips, (operation, trips) => {\r\n return operation == null\r\n ? undefined\r\n : trips.find(\r\n (trip) => trip.operationId === operation.id && trip.vehicleId === operation.vehicleId,\r\n );\r\n });\r\n}\r\n\r\nexport function selectPrimaryTripByCardNumber(cardNumber: string) {\r\n return createSelector(\r\n selectOperationByCardNumber(cardNumber),\r\n selectAllTrips,\r\n (operation, trips) => {\r\n return operation == null\r\n ? undefined\r\n : trips.find(\r\n (trip) => trip.operationId === operation.id && trip.vehicleId === operation.vehicleId,\r\n );\r\n },\r\n );\r\n}\r\n","import { createSelector, Selector } from '@ngrx/store';\r\nimport { Map } from 'immutable';\r\nimport { VehicleType } from 'src/graphql/generated/graphql.generated';\r\nimport { selectAllVehicleSummaryEntities } from 'src/store/generated/vehicle-summary-record.generated';\r\nimport { AppState } from '../appstate';\r\nimport { selectControlZoneEntitiesByCompanyId } from '../generated/control-zone-record.generated';\r\nimport { selectAllVehicleControlZoneEntities } from '../generated/vehicle-control-zone-record.generated';\r\nimport { selectAllVehicleEntities, VehicleRecord } from '../generated/vehicle-record.generated';\r\nimport { selectAllVehicles } from './entity-store-selectors';\r\nimport { selectOperationById } from './operation-selectors';\r\nimport { selectOperationByCardNumber } from './shared-selectors';\r\nimport { selectTripByTripId } from './trip-selectors';\r\n\r\nexport function selectVehicleById(\r\n vehicleId: string,\r\n): Selector {\r\n return createSelector(selectAllVehicles, (v) => v.get(vehicleId));\r\n}\r\n\r\nexport function selectVehicleSummaryEntityById(vehicleId: string) {\r\n return createSelector(selectAllVehicleSummaryEntities, (vehicles) =>\r\n vehicles.find((v) => v.id === vehicleId),\r\n );\r\n}\r\n\r\nexport function selectVehiclesByControlZoneCompanyId(companyId: string) {\r\n return createSelector(\r\n selectControlZoneEntitiesByCompanyId(companyId),\r\n selectAllVehicleControlZoneEntities,\r\n selectAllVehicleEntities,\r\n (controlZones, vehicleControlZones, vehicles) => {\r\n const controlZoneIds = controlZones.map((c) => c.id);\r\n vehicleControlZones = vehicleControlZones.filter(\r\n (v) => v.controlZoneId != null && controlZoneIds.contains(v.controlZoneId),\r\n );\r\n const vehicleControlZoneVehicleIds = vehicleControlZones.map((c) => c.vehicleId);\r\n const cz = controlZones.first(undefined);\r\n return cz != null\r\n ? vehicles.filter((v) => vehicleControlZoneVehicleIds.contains(v.id))\r\n : Map();\r\n },\r\n );\r\n}\r\n\r\nexport function selectVehiclesByCompany(companyId: string) {\r\n return createSelector(selectAllVehicles, (vehicles) =>\r\n vehicles.valueSeq().filter((v) => v.companyId === companyId),\r\n );\r\n}\r\n\r\nexport function selectVehiclesByCompanyOrDispatchCompany(companyId: string) {\r\n return createSelector(selectAllVehicleSummaryEntities, (vehicles) =>\r\n vehicles\r\n .valueSeq()\r\n .filter((v) => v.companyId === companyId || v.dispatchCompanyId === companyId),\r\n );\r\n}\r\n\r\nexport function selectGroundVehiclesByCompany(companyId: string) {\r\n return createSelector(selectAllVehicles, (vehicles) =>\r\n vehicles\r\n .valueSeq()\r\n .filter((v) => v.companyId === companyId)\r\n .filter((v) => v.type === VehicleType.Ground),\r\n );\r\n}\r\n\r\nexport function selectPrimaryVehicleByOperation(operationId: string) {\r\n return createSelector(\r\n selectAllVehicles,\r\n selectOperationById(operationId),\r\n (vehicles, operation) => {\r\n return operation != null\r\n ? vehicles.valueSeq().find((v) => v.id === operation.vehicleId)\r\n : undefined;\r\n },\r\n );\r\n}\r\n\r\nexport function selectPrimaryVehicleByCardNumber(cardNumber: string) {\r\n return createSelector(\r\n selectOperationByCardNumber(cardNumber),\r\n selectAllVehicles,\r\n (operation, vehicles) =>\r\n operation == null\r\n ? undefined\r\n : vehicles.find((vehicle) => vehicle.id === operation.vehicleId),\r\n );\r\n}\r\n\r\nexport function selectPrimaryVehicleByCardId(id: string) {\r\n return createSelector(selectOperationByCardNumber(id), selectAllVehicles, (operation, vehicles) =>\r\n operation == null ? undefined : vehicles.find((vehicle) => vehicle.id === operation.vehicleId),\r\n );\r\n}\r\n\r\nexport function selectVehicleByTripId(tripId: string) {\r\n return createSelector(selectTripByTripId(tripId), selectAllVehicles, (trip, vehicles) => {\r\n return trip != null && trip.vehicleId != null ? vehicles.get(trip.vehicleId) : undefined;\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectUnitById } from 'src/store/generated/unit-record.generated';\r\nimport { selectAllVehicleDispositions } from './entity-store-selectors';\r\nimport { selectTripByTripId } from './trip-selectors';\r\nimport { selectPrimaryVehicleByCardNumber } from './vehicle-selectors';\r\n\r\nexport function selectVehicleDispositionByVehicleId(vehicleId: string) {\r\n return createSelector(selectAllVehicleDispositions, (vd) =>\r\n vd.find((v) => v.vehicleId === vehicleId),\r\n );\r\n}\r\n\r\nexport function selectVehicleDispositionByCurrentWaypointId(waypointId: string) {\r\n return createSelector(selectAllVehicleDispositions, (vd) =>\r\n vd.find((v) => v.currentWaypointId === waypointId && v.dateDeleted == null),\r\n );\r\n}\r\n\r\nexport function selectVehicleDispositionByTripId(tripId: string) {\r\n return createSelector(selectTripByTripId(tripId), selectAllVehicleDispositions, (trip, vd) => {\r\n return trip != null ? vd.find((v) => v.vehicleId === trip.vehicleId) : undefined;\r\n });\r\n}\r\n\r\nexport function selectVehicleDispositionByUnitId(unitId: string) {\r\n return createSelector(\r\n selectUnitById(unitId),\r\n selectAllVehicleDispositions,\r\n (unit, dispositions) => {\r\n const result =\r\n unit != null ? dispositions.find((d) => d.vehicleId === unit.vehicleId) : undefined;\r\n return result;\r\n },\r\n );\r\n}\r\n\r\nexport function selectVehicleDispositionByCardNumber(cardNumber: string) {\r\n return createSelector(\r\n selectPrimaryVehicleByCardNumber(cardNumber),\r\n selectAllVehicleDispositions,\r\n (vehicle, vehicleDispositions) => {\r\n return vehicle == null\r\n ? undefined\r\n : vehicleDispositions.find((vd) => vd.vehicleId === vehicle.id);\r\n },\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { Seq } from 'immutable';\r\nimport { TripLegStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { TripLegRecord } from '../generated/trip-leg-record.generated';\r\nimport { VehicleDispositionRecord } from '../generated/vehicle-disposition-record.generated';\r\nimport { WaypointRecord } from '../generated/waypoint-record.generated';\r\nimport { selectAllTripLegs, selectAllWaypoints } from './entity-store-selectors';\r\nimport {\r\n selectVehicleDispositionByCardNumber,\r\n selectVehicleDispositionByTripId,\r\n} from './vehicle-disposition-selector';\r\n\r\nexport function selectTripLegById(tripLegId: string) {\r\n return createSelector(selectAllTripLegs, (tripLegs) => {\r\n return tripLegs.valueSeq().find((tl) => tl.id === tripLegId);\r\n });\r\n}\r\n\r\nexport function selectNonCancelledTripLegsByTripId(tripId: string) {\r\n return createSelector(selectAllTripLegs, (tripLegs) => {\r\n return tripLegs\r\n .valueSeq()\r\n .filter((tl) => tl.tripId === tripId && tl.status !== TripLegStatus.Cancelled)\r\n .sortBy((tl) => tl.sequence);\r\n });\r\n}\r\n\r\nexport function selectCurrentOrNextTripLeg(tripId: string) {\r\n return createSelector(selectNonCancelledTripLegsByTripId(tripId), (tripLegs) => {\r\n const enRouteLeg = tripLegs.find((leg) => leg.status === TripLegStatus.EnRoute);\r\n return enRouteLeg != null\r\n ? enRouteLeg\r\n : tripLegs.find((tl) => tl.status === TripLegStatus.Planned);\r\n });\r\n}\r\n\r\nexport function selectTripLegByTripLegBySequence(tripId: string, sequence: number) {\r\n return createSelector(selectNonCancelledTripLegsByTripId(tripId), (tripLegs) => {\r\n const sequenceLeg = tripLegs.find((leg) => leg.sequence === sequence);\r\n return sequenceLeg != null ? sequenceLeg : null;\r\n });\r\n}\r\n\r\nexport function selectEnRouteTripLeg(tripId: string) {\r\n return createSelector(selectNonCancelledTripLegsByTripId(tripId), (tripLegs) => {\r\n return tripLegs.find((leg) => leg.status === TripLegStatus.EnRoute);\r\n });\r\n}\r\n\r\nexport function selectPlannedTripLeg(tripId: string) {\r\n return createSelector(selectNonCancelledTripLegsByTripId(tripId), (tripLegs) => {\r\n return tripLegs.find((tl) => tl.status === TripLegStatus.Planned);\r\n });\r\n}\r\n\r\nexport function selectTripLegsWithWaypointsByTripId(tripId: string) {\r\n return createSelector(\r\n selectAllWaypoints,\r\n selectNonCancelledTripLegsByTripId(tripId),\r\n (waypoints, tripLegs) => {\r\n return tripLegs.map((leg) => {\r\n // TODO: check if a leg with waypoints must be returned even if waypoint is undefined.\r\n const result: LegWithWaypoints = {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n startingWaypoint: waypoints.get(leg.startingWaypointId!)!,\r\n leg,\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n endingWaypoint: waypoints.get(leg.endingWaypointId!)!,\r\n };\r\n return result;\r\n });\r\n },\r\n );\r\n}\r\n\r\nexport function selectCurrentTripLegByTripId(tripId: string) {\r\n return createSelector(\r\n selectNonCancelledTripLegsByTripId(tripId),\r\n selectVehicleDispositionByTripId(tripId),\r\n (tripLegs, vehicleDisposition) => {\r\n return tripLegs.find(\r\n (tl) => vehicleDisposition != null && tl.id === vehicleDisposition.currentTripLegId,\r\n );\r\n },\r\n );\r\n}\r\n\r\nexport function selectTripLegAfterTripLegId(tripId: string, currentTripLegId: string) {\r\n return createSelector(selectNonCancelledTripLegsByTripId(tripId), (tripLegs) => {\r\n const nextSequence = (tripLegs.find((leg) => leg.id === currentTripLegId)?.sequence ?? NaN) + 1;\r\n return isNaN(nextSequence) ? undefined : tripLegs.find((tl) => tl.sequence === nextSequence);\r\n });\r\n}\r\n\r\n// Depending on vehicle disposition is not correct in all cases\r\nexport function selectCurrentTripLegByCardNumber_DEPRECATED(cardNumber: string) {\r\n return createSelector(\r\n selectVehicleDispositionByCardNumber(cardNumber),\r\n selectAllTripLegs,\r\n (vehicleDisposition, tripLegs) => {\r\n return tripLegs.find(\r\n (leg) => vehicleDisposition != null && leg.id === vehicleDisposition.currentTripLegId,\r\n );\r\n },\r\n );\r\n}\r\n\r\n// Depending on vehicle disposition is not correct in all cases\r\nexport function selectCurrentOrNextTripLegByCardNumber_DEPRECATED(cardNumber: string) {\r\n return createSelector(\r\n selectVehicleDispositionByCardNumber(cardNumber),\r\n selectAllTripLegs,\r\n (vehicleDisposition, tripLegs) => {\r\n if (vehicleDisposition != null) {\r\n return findTripLeg(tripLegs.valueSeq(), vehicleDisposition);\r\n }\r\n return null;\r\n },\r\n );\r\n}\r\n\r\n// Depending on vehicle disposition is not correct in all cases\r\nexport function selectCurrentOrNextTripLegByTripId_DEPRECATED(tripId: string) {\r\n return createSelector(\r\n selectVehicleDispositionByTripId(tripId),\r\n selectAllTripLegs,\r\n (vehicleDisposition, tripLegs) => {\r\n if (vehicleDisposition != null) {\r\n return findTripLeg(tripLegs.valueSeq(), vehicleDisposition);\r\n }\r\n return null;\r\n },\r\n );\r\n}\r\n\r\nfunction findTripLeg(\r\n tripLegs: Seq.Indexed,\r\n vehicleDisposition: VehicleDispositionRecord,\r\n) {\r\n return tripLegs.find(\r\n (leg) =>\r\n (vehicleDisposition.currentTripLegId != null &&\r\n leg.id === vehicleDisposition.currentTripLegId) ||\r\n (vehicleDisposition.currentWaypointId != null &&\r\n leg.startingWaypointId === vehicleDisposition.currentWaypointId),\r\n );\r\n}\r\n\r\nexport interface LegWithWaypoints {\r\n startingWaypoint: WaypointRecord;\r\n leg: TripLegRecord;\r\n endingWaypoint: WaypointRecord;\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { WaypointType } from 'src/graphql/generated/graphql.generated';\r\nimport { AddressRecord } from 'src/store/generated/address-record.generated';\r\nimport { WaypointRecord } from '../generated/waypoint-record.generated';\r\nimport { hasLatLng } from '../model-helpers';\r\nimport {\r\n selectAllPositionReports,\r\n selectAllTripLegs,\r\n selectAllWaypoints,\r\n} from './entity-store-selectors';\r\nimport { selectNonCancelledTripLegsByTripId } from './tripleg-selectors';\r\nimport {\r\n selectVehicleDispositionByCardNumber,\r\n selectVehicleDispositionByUnitId,\r\n} from './vehicle-disposition-selector';\r\n\r\nexport function selectWaypointById(waypointId: string) {\r\n return createSelector(selectAllWaypoints, (waypoints) => {\r\n return waypoints.find((w) => w.id === waypointId);\r\n });\r\n}\r\n\r\nexport function selectFirstWaypointByTripAndType(tripId: string, type: WaypointType) {\r\n return createSelector(selectAllTripLegs, selectAllWaypoints, (legs, waypoints) => {\r\n return legs\r\n .filter((l) => l.tripId === tripId)\r\n .flatMap((leg) =>\r\n waypoints\r\n .filter((w) => w.type === type)\r\n .filter((w) => leg.startingWaypointId === w.id || leg.endingWaypointId === w.id),\r\n )\r\n .first(undefined);\r\n });\r\n}\r\n\r\nexport function selectWaypointsTripId(tripId: string) {\r\n return createSelector(\r\n selectNonCancelledTripLegsByTripId(tripId),\r\n selectAllWaypoints,\r\n (legs, waypoints) => {\r\n return waypoints.filter((w) =>\r\n legs.find((l) => l.startingWaypointId === w.id || l.endingWaypointId === w.id),\r\n );\r\n },\r\n );\r\n}\r\nexport function selectWaypointsWithLatLngsByTripId(tripId: string) {\r\n return createSelector(\r\n selectNonCancelledTripLegsByTripId(tripId),\r\n selectAllWaypoints,\r\n (legs, waypoints) => {\r\n return waypoints\r\n .filter((w) =>\r\n legs.find((l) => l.startingWaypointId === w.id || l.endingWaypointId === w.id),\r\n )\r\n .filter((w) => hasLatLng(w));\r\n },\r\n );\r\n}\r\n\r\nexport function selectBestKnownLocationForVehicleByUnitId(unitId: string) {\r\n return createSelector(\r\n selectCurrentWaypointForVehicleByUnitId(unitId),\r\n selectLatestPositionReportForVehicleByUnitId(unitId),\r\n selectStartingWaypointOfCurrentTripLegByUnitId(unitId),\r\n (currentWaypoint, positionReport, startingWaypoint) => {\r\n if (currentWaypoint != null) {\r\n return {\r\n description: 'Current waypoint',\r\n waypoint: currentWaypoint,\r\n };\r\n }\r\n if (positionReport != null) {\r\n return {\r\n description: 'Last position report',\r\n waypoint: new WaypointRecord({\r\n id: 'latest-position-report',\r\n name: 'Latest position report',\r\n abbreviation: 'Latest position report',\r\n type: WaypointType.Other,\r\n arrivingType: null,\r\n address: new AddressRecord({\r\n streetAddress: null,\r\n city: null,\r\n country: null,\r\n county: null,\r\n postalCode: null,\r\n region: null,\r\n gpsId: null,\r\n coordinates: positionReport.coordinates,\r\n }),\r\n timezoneCd: positionReport.timezoneCd,\r\n companyId: positionReport.companyId,\r\n dateLastUpdated: positionReport.dateLastUpdated,\r\n dateCreated: positionReport.dateCreated,\r\n isRotorWingLz: null,\r\n arrivalTime: null,\r\n departureTime: null,\r\n locationId: null,\r\n isPatientDropoff: null,\r\n isPatientPickup: null,\r\n estimatedDurationId: null,\r\n currentEtaId: null,\r\n dateDeleted: null,\r\n lastUpdatedById: null,\r\n }),\r\n };\r\n }\r\n if (startingWaypoint != null) {\r\n return {\r\n description: 'Last waypoint',\r\n waypoint: startingWaypoint,\r\n };\r\n }\r\n return undefined;\r\n },\r\n );\r\n}\r\n\r\nexport function selectCurrentTripLegByUnitId(unitId: string) {\r\n return createSelector(selectVehicleDispositionByUnitId(unitId), selectAllTripLegs, (vd, legs) => {\r\n return vd != null && vd.currentTripLegId != null\r\n ? legs.find((l) => l.id === vd.currentTripLegId)\r\n : undefined;\r\n });\r\n}\r\n\r\nexport function selectStartingWaypointOfCurrentTripLegByUnitId(unitId: string) {\r\n return createSelector(\r\n selectCurrentTripLegByUnitId(unitId),\r\n selectAllWaypoints,\r\n (tripLeg, waypoints) => {\r\n return tripLeg != null && tripLeg.startingWaypointId != null\r\n ? waypoints.find((w) => w.id === tripLeg.startingWaypointId)\r\n : undefined;\r\n },\r\n );\r\n}\r\n\r\nexport function selectCurrentWaypointForVehicleByUnitId(unitId: string) {\r\n return createSelector(\r\n selectVehicleDispositionByUnitId(unitId),\r\n selectAllWaypoints,\r\n (disposition, waypoints) => {\r\n // NOTE: In the future we may need to look at the current trip leg\r\n // in addition to current waypoint (they should be mutally exclusive)\r\n const result =\r\n disposition != null && disposition.currentWaypointId != null\r\n ? waypoints.get(disposition.currentWaypointId)\r\n : undefined;\r\n return result;\r\n },\r\n );\r\n}\r\n\r\nexport function selectLatestPositionReportForVehicleByUnitId(unitId: string) {\r\n return createSelector(\r\n selectVehicleDispositionByUnitId(unitId),\r\n selectAllPositionReports,\r\n (disposition, positionReports) => {\r\n const result =\r\n disposition != null && disposition.latestPositionReportId != null\r\n ? positionReports.get(disposition.latestPositionReportId)\r\n : undefined;\r\n return result;\r\n },\r\n );\r\n}\r\n\r\nexport function selectCurrentWaypointForVehicleByCardNumber(cardNumber: string) {\r\n return createSelector(\r\n selectVehicleDispositionByCardNumber(cardNumber),\r\n selectAllWaypoints,\r\n (disposition, waypoints) => {\r\n const result =\r\n disposition != null && disposition.currentWaypointId != null\r\n ? waypoints.get(disposition.currentWaypointId)\r\n : undefined;\r\n return result;\r\n },\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport {\r\n convertDistance,\r\n getCompassDirection,\r\n getGreatCircleBearing,\r\n getPreciseDistance,\r\n} from 'geolib';\r\nimport { Record, Seq } from 'immutable';\r\nimport { round } from 'lodash-es';\r\nimport { TripLegStatus, WaypointType } from 'src/graphql/generated/graphql.generated';\r\nimport { selectEstimatedDurationsByTripId } from 'src/store/entityStores/estimated-duration-selectors';\r\nimport {\r\n selectCurrentTripLegByTripId,\r\n selectNonCancelledTripLegsByTripId,\r\n} from 'src/store/entityStores/tripleg-selectors';\r\nimport { selectVehicleDispositionByTripId } from 'src/store/entityStores/vehicle-disposition-selector';\r\nimport { selectWaypointsWithLatLngsByTripId } from 'src/store/entityStores/waypoint-selectors';\r\nimport { AddressRecord } from 'src/store/generated/address-record.generated';\r\nimport {\r\n CoordinatesProps,\r\n CoordinatesRecord,\r\n} from 'src/store/generated/coordinates-record.generated';\r\nimport { EstimatedDurationRecord } from 'src/store/generated/estimated-duration-record.generated';\r\nimport { TripLegRecord } from 'src/store/generated/trip-leg-record.generated';\r\nimport { VehicleDispositionRecord } from 'src/store/generated/vehicle-disposition-record.generated';\r\nimport { WaypointRecord } from 'src/store/generated/waypoint-record.generated';\r\nimport { hasLatLng } from 'src/store/model-helpers';\r\n\r\nexport type TripLegStyles = {\r\n [Status in TripLegStatus]: google.maps.PolylineOptions;\r\n};\r\nexport const emptyWaypoint = new WaypointRecord({\r\n id: 'fake',\r\n type: WaypointType.ReceivingFacility,\r\n name: '',\r\n abbreviation: '',\r\n address: new AddressRecord({\r\n streetAddress: null,\r\n city: null,\r\n country: null,\r\n county: null,\r\n postalCode: null,\r\n region: null,\r\n gpsId: null,\r\n coordinates: new CoordinatesRecord({ latitude: null, longitude: null }),\r\n }),\r\n companyId: 'fake',\r\n arrivalTime: new Date(),\r\n dateLastUpdated: new Date(),\r\n dateCreated: new Date(),\r\n dateDeleted: null,\r\n departureTime: new Date(),\r\n locationId: 'fake',\r\n timezoneCd: 'fake',\r\n isRotorWingLz: true,\r\n estimatedDurationId: null,\r\n currentEtaId: null,\r\n isPatientPickup: false,\r\n isPatientDropoff: false,\r\n arrivingType: null,\r\n lastUpdatedById: null,\r\n});\r\n\r\nexport function withCoordinates(\r\n waypoint: WaypointRecord,\r\n coordinates: { latitude: number; longitude: number },\r\n) {\r\n return waypoint.withMutations((w) => {\r\n w.setIn(['address', 'coordinates', 'latitude'], coordinates.latitude);\r\n w.setIn(['address', 'coordinates', 'longitude'], coordinates.longitude);\r\n });\r\n}\r\n\r\nexport function fakeWaypoint(lat: number, long: number, type: WaypointType) {\r\n return withCoordinates(\r\n emptyWaypoint.withMutations((w) => {\r\n w.set('type', type);\r\n }),\r\n { latitude: lat, longitude: long },\r\n );\r\n}\r\n\r\nconst lineIcon = (strokeColor: string) => {\r\n return {\r\n icon: {\r\n path: 'M 0,-1 0,1',\r\n strokeOpacity: 1,\r\n scale: 4,\r\n strokeColor,\r\n },\r\n offset: '0',\r\n repeat: '20px',\r\n };\r\n};\r\nexport const tripLegStyles: TripLegStyles = {\r\n Cancelled: {\r\n strokeOpacity: 0,\r\n strokeColor: 'crimson',\r\n icons: [lineIcon('crimson')],\r\n },\r\n Complete: { strokeColor: 'darkgreen' },\r\n EnRoute: { strokeColor: 'chartreuse' },\r\n Planned: {\r\n strokeOpacity: 0,\r\n icons: [lineIcon('cadetblue')],\r\n strokeColor: 'cadetblue',\r\n },\r\n};\r\n\r\nexport class TripLegViewModelRecord extends Record({\r\n startingWaypoint: null as any,\r\n tripLeg: null as any,\r\n endingWaypoint: null as any,\r\n isCurrent: null as any,\r\n isNext: null as any,\r\n isNextAtWaypoint: null as any,\r\n isLast: null as any,\r\n isFirst: null as any,\r\n officialDuration: null as any,\r\n calculatedDuration: null as any,\r\n}) {\r\n public startingWaypoint: WaypointRecord;\r\n public tripLeg: TripLegRecord;\r\n public endingWaypoint: WaypointRecord;\r\n public isCurrent: boolean;\r\n public isNext: boolean;\r\n public isNextAtWaypoint: boolean;\r\n public isLast: boolean;\r\n public isFirst: boolean;\r\n public officialDuration: EstimatedDurationRecord | undefined;\r\n public calculatedDuration: EstimatedDurationRecord | undefined;\r\n\r\n constructor(params: {\r\n startingWaypoint: WaypointRecord;\r\n tripLeg: TripLegRecord;\r\n endingWaypoint: WaypointRecord;\r\n isCurrent: boolean;\r\n isNext: boolean;\r\n isNextAtWaypoint: boolean;\r\n isLast: boolean;\r\n isFirst: boolean;\r\n officialDuration: EstimatedDurationRecord | undefined;\r\n calculatedDuration: EstimatedDurationRecord | undefined;\r\n }) {\r\n super(params);\r\n }\r\n\r\n // eslint-disable-next-line id-blacklist\r\n get number(): number {\r\n return this.tripLeg.sequence + 1;\r\n }\r\n\r\n get polylineOptions(): google.maps.PolylineOptions {\r\n return tripLegStyles[this.tripLeg.status];\r\n }\r\n\r\n get latLngs(): { lat: number; lng: number }[] {\r\n return [this.startingLatLng, this.endingLatLng];\r\n }\r\n\r\n get startingLatLng() {\r\n if (this.startingWaypoint.address == null) {\r\n throw new Error('address for starting waypoint is null');\r\n } else if (this.startingWaypoint.address.coordinates == null) {\r\n throw new Error('coordinates for starting waypoint is null');\r\n }\r\n return getLatLng(this.startingWaypoint.address.coordinates);\r\n }\r\n\r\n get endingLatLng() {\r\n if (this.endingWaypoint.address == null) {\r\n throw new Error('address for ending waypoint is null');\r\n } else if (this.endingWaypoint.address.coordinates == null) {\r\n throw new Error('coordinates for ending waypoint is null');\r\n }\r\n return getLatLng(this.endingWaypoint.address.coordinates);\r\n }\r\n\r\n get distance() {\r\n return getPreciseDistance(this.startingLatLng, this.endingLatLng);\r\n }\r\n\r\n get miles() {\r\n return round(convertDistance(this.distance, 'mi'), 0);\r\n }\r\n\r\n get nauticalMiles() {\r\n return round(convertDistance(this.distance, 'sm'), 0);\r\n }\r\n\r\n get direction() {\r\n return getCompassDirection(this.startingLatLng, this.endingLatLng);\r\n }\r\n\r\n get bearing() {\r\n return Math.floor(getGreatCircleBearing(this.startingLatLng, this.endingLatLng));\r\n }\r\n\r\n get isStarted() {\r\n return this.tripLeg.status === TripLegStatus.EnRoute;\r\n }\r\n\r\n get isComplete() {\r\n return this.tripLeg.status === TripLegStatus.Complete;\r\n }\r\n\r\n get duration(): number | null {\r\n return null;\r\n // TODO: uncomment when date differences are fixed.\r\n // const diff = this.isStarted\r\n // ? dateFns.differenceInMinutes(\r\n // Date.now() + 1000 * 60 * new Date().getTimezoneOffset(),\r\n // this.startingWaypoint.departureTime!\r\n // )\r\n // : this.isComplete\r\n // ? dateFns.differenceInMinutes(\r\n // this.endingWaypoint.arrivalTime!,\r\n // this.startingWaypoint.departureTime!\r\n // )\r\n // : null;\r\n // return diff;\r\n }\r\n\r\n get waypoints() {\r\n return [this.startingWaypoint, this.endingWaypoint];\r\n }\r\n}\r\n\r\nexport function getLatLng(\r\n coordinates:\r\n | CoordinatesProps\r\n | { coordinates: CoordinatesProps }\r\n | { address: { coordinates: CoordinatesProps | null } | null },\r\n defaults?: {\r\n latitude: number;\r\n longitude: number;\r\n },\r\n): {\r\n latitude: number;\r\n longitude: number;\r\n lat: number;\r\n lng: number;\r\n} {\r\n {\r\n const maybeCoord = coordinates as any;\r\n const { latitude, longitude } = maybeCoord;\r\n if (latitude != null && longitude != null) {\r\n return {\r\n latitude,\r\n longitude,\r\n lat: latitude,\r\n lng: longitude,\r\n };\r\n }\r\n if (maybeCoord.coordinates != null) {\r\n return getLatLng(maybeCoord.coordinates, defaults);\r\n }\r\n if (maybeCoord.address != null) {\r\n return getLatLng(maybeCoord.address.coordinates, defaults);\r\n }\r\n if (defaults != null) {\r\n return {\r\n ...defaults,\r\n lat: defaults.latitude,\r\n lng: defaults.longitude,\r\n };\r\n }\r\n throw new Error(`unable to get coordinates from object: ${JSON.stringify(coordinates)} `);\r\n }\r\n}\r\n\r\nexport function selectTripLegModelsForTripId(tripId: string) {\r\n return createSelector(\r\n selectWaypointsWithLatLngsByTripId(tripId),\r\n selectNonCancelledTripLegsByTripId(tripId),\r\n selectCurrentTripLegByTripId(tripId),\r\n selectVehicleDispositionByTripId(tripId),\r\n selectEstimatedDurationsByTripId(tripId),\r\n (waypoints, tripLegs, currentTripLeg, vehicleDisposition, durations) => {\r\n return tripLegs\r\n .sortBy((l) => l.sequence)\r\n .map((l) => ({\r\n tripLeg: l,\r\n startingWaypoint:\r\n l.startingWaypointId == null ? undefined : waypoints.get(l.startingWaypointId),\r\n endingWaypoint:\r\n l.endingWaypointId == null ? undefined : waypoints.get(l.endingWaypointId),\r\n }))\r\n .filter(\r\n (data) =>\r\n // a leg may have a waypoint id, but the waypoint may not exist in the waypoints list\r\n // because it does not have a lat/lng value.\r\n data.startingWaypoint != null && data.endingWaypoint != null,\r\n )\r\n .map((data) => {\r\n const isNextAtWaypoint = isAtWaypoint(\r\n getNextInSequence(tripLegs, data.tripLeg),\r\n vehicleDisposition,\r\n );\r\n const vm = new TripLegViewModelRecord({\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n startingWaypoint: data.startingWaypoint!,\r\n tripLeg: data.tripLeg,\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n endingWaypoint: data.endingWaypoint!,\r\n isCurrent: currentTripLeg != null && data.tripLeg.id === currentTripLeg.id,\r\n isNext:\r\n isAtWaypoint(data.tripLeg, vehicleDisposition) ||\r\n isNextInSequence(data.tripLeg, currentTripLeg),\r\n isNextAtWaypoint,\r\n isLast: data.tripLeg.sequence === tripLegs.count() - 1,\r\n isFirst: data.tripLeg.sequence === 0,\r\n officialDuration:\r\n data.tripLeg.officialEteId == null\r\n ? undefined\r\n : durations.get(data.tripLeg.officialEteId),\r\n calculatedDuration:\r\n data.tripLeg.calculatedEteId == null\r\n ? undefined\r\n : durations.get(data.tripLeg.calculatedEteId),\r\n });\r\n return vm;\r\n });\r\n },\r\n );\r\n}\r\n\r\nfunction isAtWaypoint(\r\n tripLeg: TripLegRecord | undefined,\r\n vehicleDisposition: VehicleDispositionRecord | undefined,\r\n) {\r\n return (\r\n tripLeg != null &&\r\n vehicleDisposition != null &&\r\n vehicleDisposition.currentWaypointId != null &&\r\n vehicleDisposition.currentWaypointId === tripLeg.startingWaypointId\r\n );\r\n}\r\n\r\nfunction isNextInSequence(tripLeg: TripLegRecord, currentTripLeg: TripLegRecord | undefined) {\r\n return currentTripLeg != null && tripLeg.sequence === 1 + currentTripLeg.sequence;\r\n}\r\n\r\nfunction getNextInSequence(\r\n tripLegs: Seq.Indexed,\r\n currentTripLeg: TripLegRecord | undefined,\r\n) {\r\n return currentTripLeg == null\r\n ? undefined\r\n : tripLegs.find((l) => l.sequence === currentTripLeg.sequence + 1);\r\n}\r\n\r\nexport const legViewModel = (\r\n startingWaypoint: WaypointRecord,\r\n endingWaypoint: WaypointRecord,\r\n status: TripLegStatus,\r\n) => {\r\n if (!hasLatLng(startingWaypoint) || !hasLatLng(endingWaypoint)) {\r\n return null;\r\n }\r\n return new TripLegViewModelRecord({\r\n startingWaypoint,\r\n endingWaypoint,\r\n tripLeg: new TripLegRecord({\r\n id: 'fake',\r\n sequence: 0,\r\n dateLastUpdated: new Date(),\r\n dateCreated: new Date(),\r\n dateDeleted: null,\r\n companyId: 'fake',\r\n status,\r\n tripId: 'fake',\r\n startingWaypointId: startingWaypoint.id,\r\n endingWaypointId: endingWaypoint.id,\r\n calculatedEteId: null,\r\n officialEteId: null,\r\n estimatedDistanceInMiles: null,\r\n arrivingOdometerReading: null,\r\n arrivingNote: null,\r\n departingOdometerReading: null,\r\n departingNote: null,\r\n lastUpdatedById: null,\r\n isEmergent: null,\r\n }),\r\n isCurrent: false,\r\n isNext: false,\r\n isNextAtWaypoint: false,\r\n isLast: false,\r\n isFirst: false,\r\n officialDuration: undefined,\r\n calculatedDuration: undefined,\r\n });\r\n};\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectOperationByCardNumber } from 'src/store/entityStores/shared-selectors';\r\nimport { selectAllEstimatedDurations } from './entity-store-selectors';\r\nimport { selectCurrentOrNextTripLegByCardNumber_DEPRECATED } from './tripleg-selectors';\r\nimport { selectCurrentWaypointForVehicleByCardNumber } from './waypoint-selectors';\r\n\r\nexport function selectEstimatedDurationsById(id: string) {\r\n return createSelector(selectAllEstimatedDurations, (durations) => {\r\n return durations.get(id);\r\n });\r\n}\r\n\r\nexport function selectEstimatedDurationsByTripId(tripId: string) {\r\n return createSelector(selectAllEstimatedDurations, (durations) => {\r\n return durations.filter((duration) => duration.tripId === tripId);\r\n });\r\n}\r\n\r\nexport function selectCurrentEstimatedDurationByCardNumber(cardNumber: string) {\r\n return createSelector(\r\n selectOperationByCardNumber(cardNumber),\r\n selectCurrentWaypointForVehicleByCardNumber(cardNumber),\r\n selectCurrentOrNextTripLegByCardNumber_DEPRECATED(cardNumber),\r\n selectAllEstimatedDurations,\r\n (operation, waypoint, tripLeg, durations) => {\r\n // when trip is complete, tripleg should be null\r\n const durationId =\r\n tripLeg == null || waypoint == null || waypoint.estimatedDurationId == null\r\n ? undefined\r\n : waypoint.estimatedDurationId.toLowerCase();\r\n const unitActivated = operation != null && operation.unitActivationTime != null;\r\n\r\n return durationId == null || !unitActivated\r\n ? undefined\r\n : durations.find((d) => d.id === durationId);\r\n },\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { Collection } from 'immutable';\r\nimport { operationTypeConfig } from 'src/app/ops/config/operation-type-config';\r\nimport { RequestStatus, WaypointType } from 'src/graphql/generated/graphql.generated';\r\nimport { selectRequestLocationById } from 'src/store/generated/request-location-record.generated';\r\nimport { minutesToTimeElapsed } from 'src/util/helpers/date-helper';\r\nimport { WaypointRecord } from '../generated/waypoint-record.generated';\r\nimport { createWaypointFromRequestLocation, hasLatLng } from '../model-helpers';\r\nimport { selectCardByCardNumber } from './card-selectors';\r\nimport {\r\n selectAllRequestLocations,\r\n selectAllRequestPatients,\r\n selectAllRequests,\r\n} from './entity-store-selectors';\r\n\r\nexport function selectRequestById(id: string) {\r\n return createSelector(selectAllRequests, (requests) => {\r\n return requests.find((r) => r.id === id);\r\n });\r\n}\r\n\r\nexport function selectRequestByCardNumber(cardNumber: string) {\r\n return createSelector(selectCardByCardNumber(cardNumber), selectAllRequests, (card, requests) => {\r\n return card != null ? requests.find((r) => r.id === card.requestId) : undefined;\r\n });\r\n}\r\n\r\nexport function selectAllPatientsByRequestId(requestId: string) {\r\n return createSelector(selectAllRequestPatients, (reqPatient) =>\r\n reqPatient.filter((rp) => rp.requestId === requestId).sortBy((a1) => a1.dateCreated),\r\n );\r\n}\r\n\r\nexport function selectRequestPatientByRequestId(requestId: string) {\r\n return createSelector(selectAllPatientsByRequestId(requestId), (reqPatients) =>\r\n reqPatients.first(undefined),\r\n );\r\n}\r\n\r\nexport function selectRequestPatientById(patientId: string) {\r\n return createSelector(selectAllRequestPatients, (reqPatient) =>\r\n reqPatient.find((rp) => rp.id === patientId),\r\n );\r\n}\r\n\r\nexport function selectRequestConfigurationByRequestId(requestId: string) {\r\n return createSelector(selectRequestById(requestId), (request) => {\r\n if (request != null) {\r\n const opType = request.requestedOperationType;\r\n return operationTypeConfig[opType].request;\r\n }\r\n return undefined;\r\n });\r\n}\r\n\r\nexport function selectInitialDestinationByRequestId(requestId: string) {\r\n return createSelector(\r\n selectRequestConfigurationByRequestId(requestId),\r\n selectRequestLocationsByRequestId(requestId),\r\n (requestConfig, locations) => {\r\n if (requestConfig != null) {\r\n return locations.find((l) => l.type === requestConfig.initialDestination);\r\n }\r\n return undefined;\r\n },\r\n );\r\n}\r\n\r\nexport function selectTargetDestinationByRequestId(requestId: string) {\r\n return createSelector(\r\n selectRequestConfigurationByRequestId(requestId),\r\n selectRequestLocationsByRequestId(requestId),\r\n (requestConfig, locations) => {\r\n if (requestConfig != null) {\r\n return locations.find((l) => l.type === requestConfig.targetDestination);\r\n }\r\n return undefined;\r\n },\r\n );\r\n}\r\n\r\nexport function selectRequestWaypointsByCardNumber(cardNumber: string) {\r\n return createSelector(\r\n selectRequestByCardNumber(cardNumber),\r\n selectAllRequestLocations,\r\n (request, locations) => {\r\n let waypoints: any[] = [];\r\n if (request != null) {\r\n const requestLocations = locations.filter((r) => r.requestId === request.id);\r\n switch (request.requestedOperationType) {\r\n default:\r\n waypoints = requestLocations\r\n .toIndexedSeq()\r\n .map((r) => createWaypointFromRequestLocation(r))\r\n .filter((r) => hasLatLng(r))\r\n .toArray();\r\n }\r\n }\r\n return Collection.Indexed(waypoints);\r\n },\r\n );\r\n}\r\n\r\nexport function selectRequestLocationsByRequestId(requestId: string) {\r\n return createSelector(selectAllRequestLocations, (loc) =>\r\n loc.filter((l) => l.requestId === requestId).valueSeq(),\r\n );\r\n}\r\n\r\nexport function selectRequestLocationByRequestAndLocationId(requestId: string, locationId: string) {\r\n return createSelector(selectAllRequestLocations, (loc) => {\r\n return loc.find((l) => l.requestId === requestId && l.locationId === locationId);\r\n });\r\n}\r\n\r\nexport function selectRequestByRequestLocationId(requestLocationId: string) {\r\n return createSelector(\r\n selectAllRequests,\r\n selectRequestLocationById(requestLocationId),\r\n (requests, loc) => {\r\n return loc == null ? undefined : requests.find((r) => r.id === loc.requestId);\r\n },\r\n );\r\n}\r\n\r\nexport function selectRequestLocationByType(requestId: string, type: WaypointType) {\r\n return createSelector(selectRequestLocationsByRequestId(requestId), (locations) => {\r\n const matches = locations.filter((l) => l.type === type);\r\n if (matches.count() === 0) {\r\n return undefined;\r\n }\r\n if (matches.count() === 1) {\r\n return matches.get(0);\r\n }\r\n throw new Error(`Request had more than 1 ${type} location. (Request ID: ${requestId})`);\r\n });\r\n}\r\n\r\nexport function selectPendingRequestsForRegion(regionId: string) {\r\n return createSelector(selectAllRequests, (requests) => {\r\n return requests.valueSeq().filter((r) => {\r\n return (\r\n (r.regionId === regionId || r.regionId == null) &&\r\n r.status !== RequestStatus.Assigned &&\r\n r.status !== RequestStatus.Cancelled\r\n );\r\n });\r\n });\r\n}\r\n\r\nexport function selectRequestsByRegion(regionId: string) {\r\n return createSelector(selectAllRequests, (requests) => {\r\n return requests.filter((r) => r.regionId === regionId);\r\n });\r\n}\r\n\r\nexport function selectRequestAtloDataByRequestId(requestId: string) {\r\n return createSelector(selectRequestById(requestId), (request) => {\r\n if (request != null && request.etloInMinutes != null && request.atloInMinutes != null) {\r\n return {\r\n atlo: minutesToTimeElapsed(request.atloInMinutes, 2),\r\n atloInMinutes: request.atloInMinutes,\r\n etlo: minutesToTimeElapsed(request.etloInMinutes, 2),\r\n etloInMinutes: request.etloInMinutes,\r\n };\r\n }\r\n });\r\n}\r\n","import {\r\n PassengerType,\r\n UnitPositionType,\r\n UnitStatus,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { UnitRecord } from 'src/store/generated/unit-record.generated';\r\n\r\nexport function unitNumber(unit: UnitRecord): number {\r\n const abbreviation = unit.abbreviation;\r\n const parts = abbreviation.split(' ');\r\n if (parts != null && parts.length > 1) {\r\n const num = Number(parts[1]);\r\n\r\n if (!isNaN(num)) {\r\n return num;\r\n }\r\n }\r\n\r\n return -1;\r\n}\r\n\r\n// Obsolete - use UnitViewModel.unitNumberStr instead\r\nexport function unitNumberStr(unit: { abbreviation: string; status: UnitStatus }): string {\r\n const abbreviation = unit.abbreviation;\r\n const parts = abbreviation.split(' ');\r\n if (parts != null && parts.length > 1) {\r\n return parts[1];\r\n }\r\n\r\n return abbreviation;\r\n}\r\n\r\nexport function toPassengerType(type: UnitPositionType) {\r\n if (type === UnitPositionType.Pilot) {\r\n return PassengerType.PilotInCommand;\r\n } else {\r\n return PassengerType.CrewMember;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { UnitPositionType } from 'src/graphql/generated/graphql.generated';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { UnitSummaryEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport { UnitShiftSummaryProps } from 'src/store/generated/unit-shift-summary-record.generated';\r\nimport {\r\n selectUnitSummaryEntitiesByVehicleId,\r\n UnitSummaryProps,\r\n UnitSummaryViewModelBase,\r\n} from 'src/store/generated/unit-summary-record.generated';\r\nimport { withTimezone } from 'src/util/date';\r\nimport { getMinutesOfDay } from 'src/util/helpers/date-helper';\r\nimport { unitNumberStr } from 'src/util/helpers/unit-helper';\r\nimport { undefinedOrMap } from 'src/util/rxjs/operators';\r\nimport { humanize } from 'src/util/text';\r\n\r\nfunction toBaseTime(dt: Date, tzCode: string | null) {\r\n return tzCode == null ? dt : withTimezone(dt, tzCode);\r\n}\r\n\r\nfunction isCurrentShift(todayMinutes: number, shift: UnitShiftSummaryProps) {\r\n return shift.startTimeInMinutes < shift.endTimeInMinutes\r\n ? todayMinutes >= shift.startTimeInMinutes && todayMinutes <= shift.endTimeInMinutes\r\n : todayMinutes >= shift.startTimeInMinutes || todayMinutes <= shift.endTimeInMinutes;\r\n}\r\n\r\ntype MissingPositionCount = number;\r\nexport type MissingResources =\r\n | false\r\n | ({ vehicle?: true; summary: string } & {\r\n [missingCrew in UnitPositionType]: MissingPositionCount;\r\n });\r\ntype UnitMissionProps = Pick;\r\nexport function getMissingResources(\r\n unitSummary: UnitMissionProps,\r\n isGroundUnit: boolean = false,\r\n): MissingResources {\r\n let missingVehicle = false;\r\n if (unitSummary.vehicleId == null) {\r\n missingVehicle = true;\r\n }\r\n\r\n const missingFlightCrew: [type: UnitPositionType, count: number][] = unitSummary.positions\r\n .filter((p) => p.isFlightCrew && !p.isNonEmployee && p.teamMemberId == null)\r\n .groupBy((v) => v.type)\r\n .mapEntries(([type, missing]) => [type, missing.count()])\r\n .toArray();\r\n\r\n if (\r\n !isGroundUnit &&\r\n unitSummary.positions.find(\r\n (p) => p.type === UnitPositionType.Pilot && p.teamMemberId != null && p.isFlightCrew === true,\r\n ) == null &&\r\n missingFlightCrew.find(([type]) => type === UnitPositionType.Pilot) == null\r\n ) {\r\n missingFlightCrew.push([UnitPositionType.Pilot, 1]);\r\n }\r\n if (!missingVehicle && missingFlightCrew.length === 0) {\r\n return false;\r\n }\r\n\r\n const missingResources = missingFlightCrew.map(([type, count], i) => {\r\n const endingAnd = i === missingFlightCrew.length - 1 && i !== 0 ? 'and ' : '';\r\n return `${endingAnd}${count} ${humanize(type).toLowerCase()}(s)`;\r\n });\r\n if (missingVehicle) {\r\n missingResources.unshift('a vehicle');\r\n }\r\n\r\n const summary = `Missing ${missingResources.join(', ')}.`;\r\n\r\n return {\r\n vehicle: missingVehicle ? true : undefined,\r\n summary,\r\n ...Object.fromEntries(missingFlightCrew),\r\n } as MissingResources;\r\n}\r\n\r\nexport class UnitSummaryViewModel extends UnitSummaryViewModelBase {\r\n constructor(props: UnitSummaryProps) {\r\n super(props);\r\n }\r\n\r\n public missingResources(isGround: boolean): MissingResources {\r\n return getMissingResources(this, isGround);\r\n }\r\n\r\n get unitNumberStr() {\r\n return unitNumberStr(this);\r\n }\r\n\r\n get isTeamMemberNonCompliant() {\r\n return this.positions.find((m) => m.isNonCompliant) != null;\r\n }\r\n\r\n get baseTimeInMinutes() {\r\n return getMinutesOfDay(toBaseTime(new Date(), this.baseTimezoneCd));\r\n }\r\n\r\n public getCurrentShift() {\r\n return this.shifts.find((shift) => isCurrentShift(this.baseTimeInMinutes, shift));\r\n }\r\n\r\n get oosReasons() {\r\n if (this.isOutOfService !== true) {\r\n return null;\r\n }\r\n\r\n const oosEvents = this.outOfServiceEvents;\r\n return oosEvents.map((o) => `${o.reasonName} (${o.type})`).join(', ');\r\n }\r\n\r\n get availableTime() {\r\n return this.plannedAvailableTime;\r\n }\r\n\r\n get availableNotes() {\r\n return this.plannedAvailableNotes;\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UnitSummaryViewModelService {\r\n constructor(\r\n private readonly _unitSummaryFetchService: UnitSummaryEntityFetchService,\r\n private _store: Store,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._unitSummaryFetchService\r\n .getById(id)\r\n .pipe(undefinedOrMap((unitSummary) => new UnitSummaryViewModel(unitSummary)));\r\n }\r\n\r\n public getByVehicleId(vehicleId: string): Observable {\r\n return this._store.select(selectUnitSummaryEntitiesByVehicleId(vehicleId)).pipe(\r\n map((units) => {\r\n const unit = units.first(undefined);\r\n return unit != null ? new UnitSummaryViewModel(unit) : undefined;\r\n }),\r\n );\r\n }\r\n}\r\n","import { createSelector, Selector } from '@ngrx/store';\r\nimport { Seq } from 'immutable';\r\nimport { AppState } from '../appstate';\r\nimport { UnitPositionRecord } from '../generated/unit-position-record.generated';\r\nimport { selectAllUnitPostions } from './entity-store-selectors';\r\n\r\nexport function selectUnitPositionById(unitPositionId: string) {\r\n return createSelector(selectAllUnitPostions, (trips) => {\r\n return trips.valueSeq().find((p) => p.id === unitPositionId);\r\n });\r\n}\r\n\r\nexport function selectUnitPositionsByUnitId(\r\n unitId: string,\r\n): Selector> {\r\n return createSelector(selectAllUnitPostions, (positions) =>\r\n positions.valueSeq().filter((p) => p.unitId === unitId),\r\n );\r\n}\r\n\r\nexport function selectUnitPositionsMapByUnitId(unitId: string) {\r\n return createSelector(selectAllUnitPostions, (positions) =>\r\n positions.filter((p) => p.unitId === unitId),\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllVehicles } from 'src/store/entityStores/entity-store-selectors';\r\nimport { selectUnitById } from 'src/store/generated/unit-record.generated';\r\nimport { selectUnitsByCompany } from './unit-selectors';\r\nimport { selectVehiclesByCompany } from './vehicle-selectors';\r\n\r\nexport function selectVehiclesUnassignedToUnitsByCompany(companyId: string, includeId?: string) {\r\n return createSelector(\r\n selectVehiclesByCompany(companyId),\r\n selectUnitsByCompany(companyId),\r\n (vehicles, units) => {\r\n return vehicles.filter((v) => {\r\n return units.find((u) => u.vehicleId === v.id) == null || v.id === includeId;\r\n });\r\n },\r\n );\r\n}\r\n\r\nexport function selectVehicleByUnitId(unitId: string) {\r\n return createSelector(selectUnitById(unitId), selectAllVehicles, (unit, vehicles) => {\r\n return unit != null && unit.vehicleId != null ? vehicles.get(unit.vehicleId) : undefined;\r\n });\r\n}\r\n","import { Set } from 'immutable';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { debounceTime, map, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { UnitStatus, WeatherStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { CardViewModel } from 'src/models/card-view-model';\r\nimport { OperationViewModel } from 'src/models/operation-view-model';\r\nimport { RegionViewModel } from 'src/models/region-view-model';\r\nimport { selectUnitPositionsByUnitId } from 'src/store/entityStores/unit-position-selectors';\r\nimport { selectVehicleByUnitId } from 'src/store/entityStores/vehicle-unit-selectors';\r\nimport { UnitActivationRuleRecord } from 'src/store/generated/unit-activation-rule-record.generated';\r\nimport { UnitProps, UnitViewModelBase } from 'src/store/generated/unit-record.generated';\r\nimport { VehicleRecord } from 'src/store/generated/vehicle-record.generated';\r\nimport { unitNumberStr } from 'src/util/helpers/unit-helper';\r\nimport { undefinedOrMap, undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { humanize } from 'src/util/text';\r\nimport { getOrElse } from 'src/util/values';\r\nimport { BaseViewModel } from './base-view-model';\r\nimport { TimezoneViewModel } from './timezone-view-model';\r\nimport { VehicleViewModel } from './vehicle-view-model';\r\n\r\nconst statusConfig: { [status in UnitStatus]: { displayStatus?: string } } = {\r\n Available: {},\r\n Committed: {},\r\n OnStandby: {},\r\n OutOfService: { displayStatus: 'OOS' },\r\n PartiallyAvailable: {},\r\n};\r\n\r\nexport const weatherStatusConfig: { [key in WeatherStatus]: { icon: string } } = {\r\n Green: {\r\n icon: 'cloud_done',\r\n },\r\n Red: {\r\n icon: 'cloud_off',\r\n },\r\n Yellow: {\r\n icon: 'cloud',\r\n },\r\n Unspecified: {\r\n icon: 'cloud_queue',\r\n },\r\n};\r\n\r\nexport class UnitViewModel extends UnitViewModelBase {\r\n public readonly activeCard$: Observable;\r\n public readonly vehicle$: Observable;\r\n public readonly base$: Observable;\r\n public readonly baseTimezone$: Observable;\r\n public readonly unitPositionIds$: Observable>;\r\n public readonly etlo$: Observable;\r\n public readonly activationRule$: Observable;\r\n\r\n get config() {\r\n return statusConfig[this.status];\r\n }\r\n\r\n get statusDisplay() {\r\n return getOrElse(this.config.displayStatus, humanize(this.status));\r\n }\r\n\r\n get activeOperation$(): Observable {\r\n return this.activeCard$.pipe(\r\n switchMap((card) => {\r\n if (card != null) {\r\n return card.operation$;\r\n }\r\n return of(undefined as OperationViewModel | undefined);\r\n }),\r\n );\r\n }\r\n\r\n get statusRollupDisplay$(): Observable {\r\n return combineLatest([\r\n this.activeOperation$,\r\n this.activeOperation$.pipe(\r\n switchMap((op) => (op == null ? of(undefined) : op.trip$)),\r\n switchMap((trip) => (trip == null ? of(undefined) : trip.currentOrNextTripLeg$)),\r\n ),\r\n ]).pipe(\r\n debounceTime(10),\r\n map(([operation, currentOrNextLeg]) => {\r\n const vehicleDisposition = this.vehicle?.vehicleDisposition;\r\n if (vehicleDisposition != null) {\r\n const waypoint = vehicleDisposition.currentWaypoint;\r\n if (waypoint != null) {\r\n const status = vehicleDisposition.isEnRoute\r\n ? vehicleDisposition.statusDisplay\r\n : operation != null && operation.isOnStandby\r\n ? operation.statusDisplay\r\n : this.statusDisplay;\r\n return `${status} at ${waypoint.displayType}`;\r\n } else {\r\n const status = vehicleDisposition.isEnRoute\r\n ? vehicleDisposition.statusDisplay\r\n : this.statusDisplay;\r\n const destination =\r\n operation == null\r\n ? ''\r\n : currentOrNextLeg == null || currentOrNextLeg.endingWaypoint == null\r\n ? ` ${operation.statusDisplay}`\r\n : ` ${currentOrNextLeg.endingWaypoint.displayType}`;\r\n return `${status}${destination}`;\r\n }\r\n }\r\n return this.statusDisplay;\r\n }),\r\n );\r\n }\r\n\r\n get unitNumberStr() {\r\n return unitNumberStr(this);\r\n }\r\n\r\n constructor(\r\n unit: UnitProps,\r\n public readonly region: RegionViewModel,\r\n public readonly vehicle: VehicleViewModel | undefined,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(unit);\r\n this.activeCard$ = _model.getActiveCardForUnit(this.id);\r\n this.vehicle$ = _model.store.select(selectVehicleByUnitId(this.id));\r\n this.base$ = _model.getBaseById(this.baseId);\r\n this.baseTimezone$ = this.base$.pipe(\r\n undefinedOrMap((b) => b.location),\r\n undefinedOrSwitchMap((l) => l.timezone$),\r\n );\r\n\r\n const baseEtlo$ = this.base$.pipe(\r\n map((base) =>\r\n base == null || base.estimatedLiftoffTime == null ? undefined : base.estimatedLiftoffTime,\r\n ),\r\n );\r\n this.etlo$ = unit.etloInMinutes == null ? baseEtlo$ : of(unit.etloInMinutes);\r\n\r\n this.unitPositionIds$ = _model.store\r\n .select(selectUnitPositionsByUnitId(this.id))\r\n .pipe(map((positions) => positions.map((ts) => ts.id).toSet()));\r\n }\r\n}\r\n","import { WaypointType } from 'src/graphql/generated/graphql.generated';\r\n\r\nexport interface WaypointTypeConfig {\r\n name: string;\r\n icon: string;\r\n}\r\n\r\nexport const waypointTypeConfig: {\r\n [ot in WaypointType]: WaypointTypeConfig;\r\n} = {\r\n PublicRelationsSite: {\r\n name: 'Public Relations Site',\r\n icon: 'voice_chat',\r\n },\r\n EnRouteDiversion: {\r\n name: 'En-Route Diversion',\r\n icon: 'directions',\r\n },\r\n FuelLocation: {\r\n name: 'Fuel Location',\r\n icon: 'local_gas_station',\r\n },\r\n Other: {\r\n name: 'Other',\r\n icon: 'place',\r\n },\r\n Post: {\r\n name: 'Post',\r\n icon: 'place',\r\n },\r\n ReceivingFacility: {\r\n name: 'Receiving Facility',\r\n icon: 'domain',\r\n },\r\n RendezvousPoint: {\r\n name: 'Rendezvous Point',\r\n icon: 'place',\r\n },\r\n SceneLocation: {\r\n name: 'Scene Location',\r\n icon: 'local_hospital',\r\n },\r\n SendingFacility: {\r\n name: 'Sending Facility',\r\n icon: 'domain',\r\n },\r\n PatientPickupRendezvous: {\r\n name: 'Patient Pickup',\r\n icon: 'domain',\r\n },\r\n PatientDropoffRendezvous: {\r\n name: 'Patient Dropoff',\r\n icon: 'domain',\r\n },\r\n PickupTeam: {\r\n name: 'Pickup Team',\r\n icon: 'place',\r\n },\r\n DropoffTeam: {\r\n name: 'Dropoff Team',\r\n icon: 'place',\r\n },\r\n};\r\n","import {\r\n LocationHazardProps,\r\n LocationHazardViewModelBase,\r\n} from 'src/store/generated/location-hazard-record.generated';\r\nimport { LocationViewModel } from './location-view-model';\r\n\r\nexport class LocationHazardViewModel extends LocationHazardViewModelBase {\r\n constructor(locationHazard: LocationHazardProps, public readonly location: LocationViewModel) {\r\n super(locationHazard);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { TimezoneEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n selectTimezoneEntitiesByCode,\r\n TimezoneProps,\r\n TimezoneRecord,\r\n TimezoneViewModelBase,\r\n} from 'src/store/generated/timezone-record.generated';\r\n\r\nexport class TimezoneViewModel extends TimezoneViewModelBase {\r\n constructor(props: TimezoneProps) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TimezoneViewModelService {\r\n constructor(\r\n private readonly _timezoneEntityFetchService: TimezoneEntityFetchService,\r\n private readonly store: Store,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._timezoneEntityFetchService.getById(id).pipe(\r\n map((timezone) => {\r\n if (timezone == null) {\r\n return undefined;\r\n }\r\n return new TimezoneViewModel(timezone);\r\n }),\r\n );\r\n }\r\n\r\n public getTimezoneByCode(timezoneCd: string): Observable {\r\n return this.store.select(selectTimezoneEntitiesByCode(timezoneCd)).pipe(\r\n map((zones) => {\r\n const tz = zones.first(undefined);\r\n return tz != null ? new TimezoneViewModel(tz) : tz;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Apollo, gql } from 'apollo-angular';\r\nimport { Seq } from 'immutable';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n LocationViewModel_GetLocationHazardIdsByLocationId,\r\n LocationViewModel_GetLocationHazardIdsByLocationIdVariables,\r\n} from 'src/app/shared/graphql/graphql-request-types';\r\nimport {\r\n LocationEntityFetchService,\r\n LocationHazardEntityFetchService,\r\n} from 'src/store/generated/client-sync.generated';\r\nimport { selectLocationHazardEntitiesByLocationId } from 'src/store/generated/location-hazard-record.generated';\r\nimport {\r\n LocationProps,\r\n LocationViewModelBase,\r\n} from 'src/store/generated/location-record.generated';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { LocationHazardViewModel } from './location-hazard-view-model';\r\nimport { TimezoneViewModel, TimezoneViewModelService } from './timezone-view-model';\r\n\r\nexport class LocationViewModel extends LocationViewModelBase {\r\n public hazards$: Observable>;\r\n public timezone$: Observable;\r\n\r\n constructor(\r\n location: LocationProps,\r\n timezoneService: TimezoneViewModelService,\r\n locationHazards: LocationHazardEntityFetchService,\r\n apollo: Apollo,\r\n ) {\r\n super(location);\r\n this.timezone$ =\r\n this.timezoneCd != null ? timezoneService.getTimezoneByCode(this.timezoneCd) : of(undefined);\r\n this.hazards$ = locationHazards\r\n .getMany({\r\n cacheSelector: selectLocationHazardEntitiesByLocationId(this.id),\r\n getIdsFallback: fetchLocationHazardIdsByLocationId(this.id, apollo),\r\n })\r\n .pipe(\r\n map((hazards) => {\r\n return hazards.map((h) => new LocationHazardViewModel(h, this));\r\n }),\r\n );\r\n }\r\n}\r\n\r\nfunction fetchLocationHazardIdsByLocationId(\r\n locationId: string,\r\n apollo: Apollo,\r\n): Observable {\r\n return apollo\r\n .query<\r\n LocationViewModel_GetLocationHazardIdsByLocationId,\r\n LocationViewModel_GetLocationHazardIdsByLocationIdVariables\r\n >({\r\n query: gql`\r\n query LocationViewModel_GetLocationHazardIdsByLocationId($locationId: ID!) {\r\n locations {\r\n byId(id: $locationId) {\r\n locationHazards {\r\n id\r\n }\r\n }\r\n }\r\n }\r\n `,\r\n variables: {\r\n locationId,\r\n },\r\n })\r\n .pipe(\r\n map((r) => {\r\n const loc = r.data.locations.byId;\r\n const hazardIds = loc != null ? loc.locationHazards.map((l) => l.id) : [];\r\n return hazardIds;\r\n }),\r\n );\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LocationViewModelService {\r\n constructor(\r\n private readonly _locationEntityFetchService: LocationEntityFetchService,\r\n private readonly _timezoneService: TimezoneViewModelService,\r\n private readonly _locationHazards: LocationHazardEntityFetchService,\r\n private readonly _apollo: Apollo,\r\n ) {}\r\n\r\n public getById(id: string, options?: QueryOptions): Observable {\r\n return this._locationEntityFetchService.getById(id, options).pipe(\r\n map((location) => {\r\n if (location == null) {\r\n return undefined;\r\n }\r\n\r\n return new LocationViewModel(\r\n location,\r\n this._timezoneService,\r\n this._locationHazards,\r\n this._apollo,\r\n );\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { waypointTypeConfig, WaypointTypeConfig } from 'src/app/ops/config/waypoint-type-config';\r\nimport { RuleMatchType, WaypointType } from 'src/graphql/generated/graphql.generated';\r\nimport { WaypointEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport { LocationProps } from 'src/store/generated/location-record.generated';\r\nimport {\r\n WaypointRecord,\r\n WaypointViewModelBase,\r\n} from 'src/store/generated/waypoint-record.generated';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { LocationViewModel, LocationViewModelService } from './location-view-model';\r\n\r\nexport class WaypointViewModel extends WaypointViewModelBase {\r\n get config(): WaypointTypeConfig {\r\n return waypointTypeConfig[this.type];\r\n }\r\n\r\n get locationProps(): Partial {\r\n if (this.location != null) {\r\n return this.location;\r\n }\r\n return {\r\n abbreviation: this.abbreviation,\r\n address: this.address,\r\n isRotorWingLz: this.isRotorWingLz,\r\n name: this.name,\r\n timezoneCd: this.timezoneCd,\r\n };\r\n }\r\n\r\n get locationDisplay() {\r\n return [this.name, this.abbreviation, this.address.streetAddress, 'Unknown'].find(\r\n (v) => v != null,\r\n );\r\n }\r\n\r\n get displayType() {\r\n return this.config.name;\r\n }\r\n\r\n get icon() {\r\n return this.config.icon;\r\n }\r\n\r\n get ruleMatchType(): RuleMatchType {\r\n return ruleMatchType(this.type);\r\n }\r\n constructor(waypoint: WaypointRecord, public readonly location: LocationViewModel | undefined) {\r\n super(waypoint);\r\n }\r\n\r\n get pickupOrDropoffDescription(): 'Pickup' | 'Dropoff' | undefined {\r\n return pickupOrDropoffDescription(this.type);\r\n }\r\n}\r\nexport function pickupOrDropoffDescription(\r\n waypointType: WaypointType,\r\n): 'Pickup' | 'Dropoff' | undefined {\r\n if ([WaypointType.SceneLocation, WaypointType.SendingFacility].includes(waypointType)) {\r\n return 'Pickup';\r\n } else if ([WaypointType.ReceivingFacility].includes(waypointType)) {\r\n return 'Dropoff';\r\n }\r\n return undefined;\r\n}\r\n\r\nexport function ruleMatchType(waypointType: WaypointType): RuleMatchType {\r\n if ([WaypointType.SceneLocation, WaypointType.SendingFacility].includes(waypointType)) {\r\n return RuleMatchType.PickupLocation;\r\n } else if ([WaypointType.ReceivingFacility].includes(waypointType)) {\r\n return RuleMatchType.DropoffLocation;\r\n }\r\n return RuleMatchType.Unspecified;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class WaypointViewModelService {\r\n constructor(\r\n private readonly _waypointEntityFetchService: WaypointEntityFetchService,\r\n private _locationViewModel: LocationViewModelService,\r\n ) {}\r\n\r\n public getById(id: string, options?: QueryOptions): Observable {\r\n return this._waypointEntityFetchService.getById(id, options).pipe(\r\n undefinedOrSwitchMap((waypoint) => {\r\n const location$ =\r\n waypoint.locationId != null\r\n ? this._locationViewModel.getById(waypoint.locationId, options)\r\n : of(undefined);\r\n\r\n return location$.pipe(map((location) => new WaypointViewModel(waypoint, location)));\r\n }),\r\n );\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it\r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { PositionReportEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n PositionReportProps,\r\n PositionReportViewModelBase,\r\n} from 'src/store/generated/position-report-record.generated';\r\n\r\nexport class PositionReportViewModel extends PositionReportViewModelBase {\r\n constructor(props: PositionReportProps) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PositionReportViewModelService {\r\n constructor(\r\n private readonly _positionReportEntityFetchService: PositionReportEntityFetchService,\r\n ) {}\r\n\r\n public getById(\r\n id: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this._positionReportEntityFetchService.getById(id, options).pipe(\r\n map((positionReport) => {\r\n if (positionReport == null) {\r\n return undefined;\r\n }\r\n return new PositionReportViewModel(positionReport);\r\n }),\r\n );\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it\r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { FlightFollowingReportEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n FlightFollowingReportProps,\r\n FlightFollowingReportViewModelBase,\r\n} from 'src/store/generated/flight-following-report-record.generated';\r\n\r\nexport class FlightFollowingReportViewModel extends FlightFollowingReportViewModelBase {\r\n constructor(props: FlightFollowingReportProps) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FlightFollowingReportViewModelService {\r\n constructor(\r\n private readonly _flightFollowingReportEntityFetchService: FlightFollowingReportEntityFetchService,\r\n ) {}\r\n\r\n public getById(\r\n id: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this._flightFollowingReportEntityFetchService.getById(id, options).pipe(\r\n map((flightFollowingReport) => {\r\n if (flightFollowingReport == null) {\r\n return undefined;\r\n }\r\n return new FlightFollowingReportViewModel(flightFollowingReport);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { VehicleStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectVehicleDispositionByVehicleId } from 'src/store/entityStores/vehicle-disposition-selector';\r\nimport { VehicleDispositionEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n VehicleDispositionProps,\r\n VehicleDispositionViewModelBase,\r\n} from 'src/store/generated/vehicle-disposition-record.generated';\r\nimport { VehicleRecord } from 'src/store/generated/vehicle-record.generated';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { humanize } from 'src/util/text';\r\nimport { getOrElse } from 'src/util/values';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport {\r\n FlightFollowingReportViewModel,\r\n FlightFollowingReportViewModelService,\r\n} from './flight-following-report-view-model';\r\nimport {\r\n PositionReportViewModel,\r\n PositionReportViewModelService,\r\n} from './position-report-view-model';\r\nimport { WaypointViewModel, WaypointViewModelService } from './waypoint-view-model';\r\n\r\nexport const statusConfig: {\r\n [status in VehicleStatus]: {\r\n statusDisplay?: string;\r\n };\r\n} = {\r\n AtWaypoint: {},\r\n EnRoute: {\r\n statusDisplay: 'En-Route',\r\n },\r\n};\r\n\r\nexport function vehicleStatusDisplay(status: VehicleStatus): string {\r\n return getOrElse(statusConfig[status].statusDisplay, humanize(status));\r\n}\r\n\r\nexport class VehicleDispositionViewModel extends VehicleDispositionViewModelBase {\r\n get hasTrip() {\r\n return this.currentTripId != null;\r\n }\r\n public waypoint$: Observable;\r\n public vehicle$: Observable;\r\n\r\n get config() {\r\n return statusConfig[this.status];\r\n }\r\n\r\n get statusDisplay() {\r\n return vehicleStatusDisplay(this.status);\r\n }\r\n\r\n constructor(\r\n vehicleDisposition: VehicleDispositionProps,\r\n public readonly latestPositionReport: PositionReportViewModel | undefined,\r\n public readonly latestFlightFollowingReport: FlightFollowingReportViewModel | undefined,\r\n public readonly currentWaypoint: WaypointViewModel | undefined,\r\n ) {\r\n super(vehicleDisposition);\r\n // TODO: remove this.waypoint$\r\n this.waypoint$ = of(currentWaypoint);\r\n }\r\n}\r\n@Injectable({ providedIn: 'root' })\r\nexport class VehicleDispositionViewModelService {\r\n constructor(\r\n private readonly _vehicleDispositionEntityFetchService: VehicleDispositionEntityFetchService,\r\n private readonly _waypointVm: WaypointViewModelService,\r\n private readonly _positionReportVm: PositionReportViewModelService,\r\n private readonly _flightFollowingVm: FlightFollowingReportViewModelService,\r\n private _store: Store,\r\n ) {}\r\n\r\n public getByVehicleId(vehicleId: string, options?: QueryOptions) {\r\n return this._store\r\n .select(selectVehicleDispositionByVehicleId(vehicleId))\r\n .pipe(undefinedOrSwitchMap((vd) => this._getVm(vd, options)));\r\n }\r\n\r\n public getById(\r\n id: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this._vehicleDispositionEntityFetchService\r\n .getById(id, options)\r\n .pipe(undefinedOrSwitchMap((vd) => this._getVm(vd, options)));\r\n }\r\n\r\n private _getVm(vd: VehicleDispositionProps, options?: QueryOptions) {\r\n const currentWaypoint$ =\r\n vd.currentWaypointId != null\r\n ? this._waypointVm.getById(vd.currentWaypointId, options)\r\n : of(undefined);\r\n const positionReport$ =\r\n vd.latestPositionReportId != null\r\n ? this._positionReportVm.getById(vd.latestPositionReportId, options)\r\n : of(undefined);\r\n const latestFlightFollowing$ =\r\n vd.latestFlightFollowingReportId != null\r\n ? this._flightFollowingVm.getById(vd.latestFlightFollowingReportId, options)\r\n : of(undefined);\r\n return combineLatest(\r\n currentWaypoint$,\r\n positionReport$.pipe(startWith(undefined)),\r\n latestFlightFollowing$,\r\n ).pipe(\r\n map(\r\n ([currentWaypoint, latestPositionReport, latestFlightFollowingReport]) =>\r\n new VehicleDispositionViewModel(\r\n vd,\r\n latestPositionReport,\r\n latestFlightFollowingReport,\r\n currentWaypoint,\r\n ),\r\n ),\r\n );\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it\r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { VehicleModelEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n VehicleModelProps,\r\n VehicleModelViewModelBase,\r\n} from 'src/store/generated/vehicle-model-record.generated';\r\n\r\nexport class VehicleModelViewModel extends VehicleModelViewModelBase {\r\n constructor(props: VehicleModelProps) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VehicleModelViewModelService {\r\n constructor(private readonly _vehicleModelEntityFetchService: VehicleModelEntityFetchService) {}\r\n\r\n public getById(\r\n id: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this._vehicleModelEntityFetchService.getById(id, options).pipe(\r\n map((vehicleModel) => {\r\n if (vehicleModel == null) {\r\n return undefined;\r\n }\r\n return new VehicleModelViewModel(vehicleModel);\r\n }),\r\n );\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it\r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { VehicleMakeEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n VehicleMakeProps,\r\n VehicleMakeViewModelBase,\r\n} from 'src/store/generated/vehicle-make-record.generated';\r\n\r\nexport class VehicleMakeViewModel extends VehicleMakeViewModelBase {\r\n constructor(props: VehicleMakeProps) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VehicleMakeViewModelService {\r\n constructor(private readonly _vehicleMakeEntityFetchService: VehicleMakeEntityFetchService) {}\r\n\r\n public getById(id: string, options?: QueryOptions): Observable {\r\n return this._vehicleMakeEntityFetchService.getById(id, options).pipe(\r\n map((vehicleMake) => {\r\n if (vehicleMake == null) {\r\n return undefined;\r\n }\r\n return new VehicleMakeViewModel(vehicleMake);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n VehicleDispositionViewModel,\r\n VehicleDispositionViewModelService,\r\n} from 'src/models/vehicle-disposition-view-model';\r\nimport { VehicleEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport { VehicleRecord, VehicleViewModelBase } from 'src/store/generated/vehicle-record.generated';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { VehicleMakeViewModel, VehicleMakeViewModelService } from './vehicle-make-view-model';\r\nimport { VehicleModelViewModel, VehicleModelViewModelService } from './vehicle-model-view-model';\r\n\r\nexport function vehicleDisplayName({\r\n makeName,\r\n modelName,\r\n registrationNumber,\r\n}: {\r\n makeName?: string | null;\r\n modelName?: string | null;\r\n registrationNumber: string;\r\n}) {\r\n if (makeName != null && modelName != null) {\r\n return `${registrationNumber} (${makeName} ${modelName})`;\r\n } else if (makeName != null) {\r\n return `${registrationNumber} (${makeName})`;\r\n } else if (modelName != null) {\r\n return `${registrationNumber} (${modelName})`;\r\n }\r\n return registrationNumber;\r\n}\r\n\r\nexport class VehicleViewModel extends VehicleViewModelBase {\r\n get displayName(): string {\r\n return vehicleDisplayName({\r\n makeName: this.make != null ? this.make.name : undefined,\r\n modelName: this.model != null ? this.model.name : undefined,\r\n registrationNumber: this.registrationNumber,\r\n });\r\n }\r\n constructor(\r\n vehicle: VehicleRecord,\r\n public readonly model: VehicleModelViewModel | undefined,\r\n public readonly make: VehicleMakeViewModel | undefined,\r\n public readonly vehicleDisposition: VehicleDispositionViewModel | undefined,\r\n ) {\r\n super(vehicle);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VehicleViewModelService {\r\n constructor(\r\n private readonly _vehicleEntityFetchService: VehicleEntityFetchService,\r\n private readonly _vehicleModelViewModel: VehicleModelViewModelService,\r\n private readonly _vehicleMakeViewModel: VehicleMakeViewModelService,\r\n private readonly _vdVm: VehicleDispositionViewModelService,\r\n ) {}\r\n\r\n public getById(id: string, options?: QueryOptions): Observable {\r\n return this._vehicleEntityFetchService.getById(id, options).pipe(\r\n undefinedOrSwitchMap((vehicle) => {\r\n const model$ =\r\n vehicle.modelId != null\r\n ? this._vehicleModelViewModel.getById(vehicle.modelId, options)\r\n : of(undefined);\r\n const make$ =\r\n vehicle.makeId != null\r\n ? this._vehicleMakeViewModel.getById(vehicle.makeId, options)\r\n : of(undefined);\r\n const vd$ = this._vdVm.getByVehicleId(vehicle.id, options);\r\n\r\n return combineLatest([model$, vd$, make$]).pipe(\r\n map(([model, disposition, make]) => {\r\n const vm = new VehicleViewModel(vehicle, model, make, disposition);\r\n\r\n return vm;\r\n }),\r\n );\r\n }),\r\n );\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it \r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { VehicleSummaryEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n VehicleSummaryProps,\r\n VehicleSummaryViewModelBase,\r\n} from 'src/store/generated/vehicle-summary-record.generated';\r\nimport { UnitSummaryViewModel } from './unit-summary-view-model';\r\nimport { vehicleStatusDisplay } from './vehicle-disposition-view-model';\r\nimport { vehicleDisplayName } from './vehicle-view-model';\r\n\r\nexport class VehicleSummaryViewModel extends VehicleSummaryViewModelBase {\r\n constructor(props: VehicleSummaryProps) {\r\n super(props);\r\n }\r\n\r\n public getLocationStatusDisplay(unit: UnitSummaryViewModel) {\r\n if (unit.isExternallyManaged) {\r\n return `Last Known: ${this.statusDescription}`;\r\n }\r\n if (this.isEnRoute) {\r\n const toName = this.to != null ? this.to.name : 'unknown';\r\n return `En-Route ${toName}`;\r\n }\r\n const fromName = this.from != null ? this.from.name : 'unknown';\r\n return `@ ${fromName}`;\r\n }\r\n\r\n get displayName(): string {\r\n return vehicleDisplayName({\r\n makeName: this.makeName,\r\n modelName: this.modelName,\r\n registrationNumber: this.registrationNumber,\r\n });\r\n }\r\n\r\n get statusDisplay() {\r\n return vehicleStatusDisplay(this.status);\r\n }\r\n\r\n get currentWaypoint() {\r\n if (this.isAtWaypoint && this.from != null) {\r\n return this.from;\r\n }\r\n return undefined;\r\n }\r\n\r\n get hasTrip() {\r\n return this._props.currentCardSummaryId != null && this._props.currentOrNextLegSequence != null;\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VehicleSummaryViewModelService {\r\n constructor(private readonly _vehicleSummaryFetchService: VehicleSummaryEntityFetchService) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._vehicleSummaryFetchService.getById(id).pipe(\r\n map((vehicleSummary) => {\r\n if (vehicleSummary == null) {\r\n return undefined;\r\n }\r\n return new VehicleSummaryViewModel(vehicleSummary);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { CardViewModel } from 'src/models/card-view-model';\r\nimport {\r\n ActiveAlertRecord,\r\n ActiveAlertViewModelBase,\r\n} from 'src/store/generated/active-alert-record.generated';\r\nimport { timeElapsed } from 'src/util/helpers/date-helper';\r\nimport { PersonViewModel } from './person-view-model';\r\n\r\nexport enum RequestStatusCd {\r\n CallReceived = 0,\r\n AssignmentDelayed = 5,\r\n Offering = 10,\r\n Offered = 20,\r\n Assigned = 30,\r\n Cancelled = 3000,\r\n}\r\n\r\nexport class ActiveAlertViewModel extends ActiveAlertViewModelBase {\r\n public readonly timeAcknowledgedString: string | undefined;\r\n public readonly personAcknowledged$: Observable;\r\n\r\n constructor(\r\n activeAlert: ActiveAlertRecord,\r\n private _model: ViewModelService,\r\n private readonly card?: CardViewModel,\r\n ) {\r\n super(activeAlert);\r\n\r\n this.personAcknowledged$ = _model.getPersonById(this.acknowledgedById);\r\n this.timeAcknowledgedString =\r\n this.dateAcknowledged == null ? undefined : timeElapsed(this.dateAcknowledged);\r\n }\r\n}\r\n","import { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { BaseProps, BaseViewModelBase } from 'src/store/generated/base-record.generated';\r\nimport { CompanyViewModel } from './company-view-model';\r\nimport { LocationViewModel } from './location-view-model';\r\n\r\nexport class BaseViewModel extends BaseViewModelBase {\r\n constructor(\r\n base: BaseProps,\r\n public readonly location: LocationViewModel,\r\n public readonly company: CompanyViewModel,\r\n public readonly aviationCompany: CompanyViewModel | undefined,\r\n public readonly dispatchBase: BaseViewModel | undefined,\r\n _model: ViewModelService,\r\n ) {\r\n super(base);\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it \r\nTemplate: ViewModel.cst\r\n */\r\nimport { Store } from '@ngrx/store';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectAllTimestampTypes } from 'src/store/entityStores/entity-store-selectors';\r\nimport { selectTimestampsByCardId } from 'src/store/entityStores/timestamp-selectors';\r\nimport { TimestampRecord } from 'src/store/generated/timestamp-record.generated';\r\nimport { CardViewModel } from './card-view-model';\r\nimport { TimelineItemViewModel } from './timeline-item-view-model';\r\nimport { TimestampTypeViewModel } from './timestamp-type-view-model';\r\nimport { TimestampViewModel } from './timestamp-view-model';\r\n\r\nexport class CardTimelineItemViewModel {\r\n public timelineItem$: Observable;\r\n public timestamp$: Observable;\r\n\r\n get timestampType$(): Observable {\r\n return combineLatest([this.timestamp$, this.timelineItem$]).pipe(\r\n map(([ts, tli]) => {\r\n if (ts != null) {\r\n return ts.type;\r\n }\r\n\r\n if (tli != null) {\r\n return tli.timestampType;\r\n }\r\n\r\n return undefined;\r\n }),\r\n );\r\n }\r\n get required$(): Observable {\r\n return this.timelineItem$.pipe(\r\n map((tl) => {\r\n if (tl == null) {\r\n return false;\r\n }\r\n\r\n return tl.required;\r\n }),\r\n );\r\n }\r\n\r\n get requiredAndCompleted$(): Observable {\r\n return combineLatest([this.required$, this.timestamp$]).pipe(\r\n map(([req, ts]) => {\r\n return req === true && ts != null;\r\n }),\r\n );\r\n }\r\n\r\n private get _requiredAndIncomplete$() {\r\n return combineLatest(this.required$, this.timestamp$).pipe(\r\n map(([req, ts]) => {\r\n return req === true && ts == null;\r\n }),\r\n );\r\n }\r\n\r\n private get _anyNextTimestamp$(): Observable {\r\n const timestamps$ = this._store.select(selectTimestampsByCardId(this.card.id));\r\n const timestampTypes$ = this._store.select(selectAllTimestampTypes);\r\n return combineLatest(this.timelineItem$, timestamps$, timestampTypes$).pipe(\r\n map(([currentTimelineItem, timestamps, timestampTypes]) => {\r\n if (currentTimelineItem == null || currentTimelineItem.timestampType == null) {\r\n return undefined;\r\n }\r\n\r\n // Get a list of timestamp types that have order greater than the timelineItem\r\n const nextTimestampTypes = timestampTypes\r\n .filter((tst) => tst.order > currentTimelineItem.timestampType.order)\r\n .map((tst) => tst.id)\r\n .toList();\r\n\r\n // Get the next timestamp\r\n const nextTimestamp = timestamps.find((ts) => nextTimestampTypes.includes(ts.typeId));\r\n return nextTimestamp;\r\n }),\r\n );\r\n }\r\n\r\n get requiredIncompleteAndSkipped$(): Observable {\r\n return combineLatest(this._anyNextTimestamp$, this._requiredAndIncomplete$).pipe(\r\n map(([anyNextTimestamp, incomplete]) => {\r\n if (incomplete === false) {\r\n return false;\r\n }\r\n\r\n // If there is a next timestamp, return true\r\n return anyNextTimestamp != null;\r\n }),\r\n );\r\n }\r\n\r\n get requiredIncompleteAndNoNext$(): Observable {\r\n return combineLatest([this._anyNextTimestamp$, this._requiredAndIncomplete$]).pipe(\r\n map(([anyNextTimestamp, incomplete]) => {\r\n if (incomplete === false) {\r\n return false;\r\n }\r\n\r\n return anyNextTimestamp == null;\r\n }),\r\n );\r\n }\r\n\r\n get statusDisplay$(): Observable {\r\n return combineLatest([\r\n this.required$,\r\n this.requiredAndCompleted$,\r\n this.requiredIncompleteAndSkipped$,\r\n this.requiredIncompleteAndNoNext$,\r\n ]).pipe(\r\n map(\r\n ([\r\n required,\r\n requiredAndCompleted,\r\n requiredIncompleteAndSkipped,\r\n requiredIncompleteAndNoNext,\r\n ]) => {\r\n if (required !== true) {\r\n return 'Not required';\r\n }\r\n if (requiredAndCompleted === true) {\r\n return 'Required and completed';\r\n }\r\n\r\n if (requiredIncompleteAndSkipped === true) {\r\n return 'Required and skipped';\r\n }\r\n\r\n if (requiredIncompleteAndNoNext === true) {\r\n return 'Required and no next timestamp';\r\n }\r\n\r\n return '';\r\n },\r\n ),\r\n );\r\n }\r\n\r\n constructor(\r\n public card: CardViewModel,\r\n public timelineItemId: string,\r\n public timestampId: string | undefined,\r\n private _model: ViewModelService,\r\n private _store: Store,\r\n ) {\r\n this.timestamp$ =\r\n this.timestampId == null ? of(undefined) : this.card.getTimestampById(this.timestampId);\r\n\r\n this.timelineItem$ = this._model.getTimelineItemViewModel(this.timelineItemId);\r\n }\r\n}\r\n","import { NotificationViewModel } from 'src/models/notification-view-model';\r\nimport {\r\n NotificationRecipientRecord,\r\n NotificationRecipientViewModelBase,\r\n} from 'src/store/generated/notification-recipient-record.generated';\r\n\r\nexport class NotificationRecipientViewModel extends NotificationRecipientViewModelBase {\r\n constructor(\r\n notificationRecipient: NotificationRecipientRecord,\r\n public readonly notification: NotificationViewModel,\r\n ) {\r\n super(notificationRecipient);\r\n }\r\n}\r\n","import { Store } from '@ngrx/store';\r\nimport { Collection, Seq } from 'immutable';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators';\r\nimport { AppState } from 'src/store/appstate';\r\n\r\nexport function selectViewModel(\r\n store: Store,\r\n mapFn: (state: AppState) => TIn | undefined,\r\n createViewModelFn: (v: TIn) => TOut,\r\n) {\r\n return store.select(mapFn).pipe(\r\n distinctUntilChanged(),\r\n map((v) => (v != null ? createViewModelFn(v) : undefined)),\r\n );\r\n}\r\n\r\nexport function selectManyViewModels(\r\n store: Store,\r\n mapFn: (state: AppState) => Collection,\r\n createViewModelFn: (v: TIn) => TOut,\r\n) {\r\n return store.select(mapFn).pipe(\r\n distinctUntilChanged(),\r\n map((v) => (v != null ? v.map(createViewModelFn).valueSeq() : Seq.Indexed())),\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { MessageStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { selectAllMessageStatusUpdates } from './entity-store-selectors';\r\n\r\nexport function selectMessageStatusUpdateById(messageStatusUpdateId: string) {\r\n return createSelector(selectAllMessageStatusUpdates, (recipients) =>\r\n recipients.get(messageStatusUpdateId),\r\n );\r\n}\r\n\r\nexport function selectMessageStatusUpdatesByMessageId(messageId: string) {\r\n return createSelector(selectAllMessageStatusUpdates, (messageUpdates) => {\r\n return messageUpdates\r\n .filter((r) => r.trackedMessageId === messageId)\r\n .toIndexedSeq()\r\n .sortBy((n) => n.dateCreated);\r\n });\r\n}\r\n\r\nexport function selectErrorMessageByMessageId(messageId: string) {\r\n return createSelector(selectMessageStatusUpdatesByMessageId(messageId), (messageUpdates) => {\r\n return messageUpdates.filter((r) => r.status === MessageStatus.Failed).first(undefined);\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllNotificationRecipients } from './entity-store-selectors';\r\n\r\nexport function selectNotificationRecipientById(notificationRecipientId: string) {\r\n return createSelector(selectAllNotificationRecipients, (recipients) =>\r\n recipients.get(notificationRecipientId),\r\n );\r\n}\r\n\r\nexport function selectNotificationRecipientsByNotificationId(notificationId: string) {\r\n return createSelector(selectAllNotificationRecipients, (recipients) => {\r\n return recipients\r\n .filter((r) => r.notificationId === notificationId)\r\n .toIndexedSeq()\r\n .sortBy((n) => n.dateCreated);\r\n });\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it\r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MessageStatusUpdateEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n MessageStatusUpdateProps,\r\n MessageStatusUpdateViewModelBase,\r\n} from 'src/store/generated/message-status-update-record.generated';\r\n\r\nexport class MessageStatusUpdateViewModel extends MessageStatusUpdateViewModelBase {\r\n constructor(props: MessageStatusUpdateProps) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MessageStatusUpdateViewModelService {\r\n constructor(\r\n private readonly _messageStatusUpdateEntityFetchService: MessageStatusUpdateEntityFetchService,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._messageStatusUpdateEntityFetchService.getById(id).pipe(\r\n map((messageStatusUpdate) => {\r\n if (messageStatusUpdate == null) {\r\n return undefined;\r\n }\r\n return new MessageStatusUpdateViewModel(messageStatusUpdate);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Set } from 'immutable';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { CardViewModel } from 'src/models/card-view-model';\r\nimport { NotificationRecipientViewModel } from 'src/models/notification-recipient-view-model';\r\nimport { selectViewModel } from 'src/models/view-model-helper';\r\nimport { selectErrorMessageByMessageId } from 'src/store/entityStores/message-status-update-selectors';\r\nimport {\r\n selectNotificationRecipientById,\r\n selectNotificationRecipientsByNotificationId,\r\n} from 'src/store/entityStores/notification-recipient-selectors';\r\nimport {\r\n NotificationRecord,\r\n NotificationViewModelBase,\r\n} from 'src/store/generated/notification-record.generated';\r\nimport { timeElapsed } from 'src/util/helpers/date-helper';\r\nimport { humanize } from '../util/text';\r\nimport { MessageStatusUpdateViewModel } from './message-status-update-view-model';\r\n\r\nexport class NotificationViewModel extends NotificationViewModelBase {\r\n public recipientIds$: Observable>;\r\n\r\n get hasRecipients$() {\r\n return this.recipientIds$.pipe(map((rIds) => rIds.count() > 0));\r\n }\r\n\r\n get timeElapsed() {\r\n return timeElapsed(this.dateCreated);\r\n }\r\n\r\n get statusString() {\r\n return humanize(this.status);\r\n }\r\n\r\n constructor(\r\n notification: NotificationRecord,\r\n public readonly card: CardViewModel | null,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(notification);\r\n\r\n this.recipientIds$ = _model.store\r\n .select(selectNotificationRecipientsByNotificationId(notification.id))\r\n .pipe(map((recipients) => recipients.map((r) => r.id).toSet()));\r\n }\r\n\r\n public getRecipientById(recipientId: string | null) {\r\n return recipientId == null\r\n ? of(undefined)\r\n : selectViewModel(\r\n this._model.store,\r\n selectNotificationRecipientById(recipientId),\r\n (recipient) => new NotificationRecipientViewModel(recipient, this),\r\n );\r\n }\r\n\r\n public getErrorMessageByMessageId(messageId: string | null) {\r\n return messageId == null\r\n ? of(undefined)\r\n : selectViewModel(\r\n this._model.store,\r\n selectErrorMessageByMessageId(messageId),\r\n (message) => new MessageStatusUpdateViewModel(message),\r\n );\r\n }\r\n}\r\n","import {\r\n TimestampTypeRecord,\r\n TimestampTypeViewModelBase,\r\n} from 'src/store/generated/timestamp-type-record.generated';\r\n\r\nexport class TimestampTypeViewModel extends TimestampTypeViewModelBase {\r\n constructor(timestampType: TimestampTypeRecord) {\r\n super(timestampType);\r\n }\r\n}\r\n","import { map } from 'rxjs/operators';\r\nimport { CardViewModel } from 'src/models/card-view-model';\r\nimport { PersonViewModel } from 'src/models/person-view-model';\r\nimport { TimestampTypeViewModel } from 'src/models/timestamp-type-view-model';\r\nimport {\r\n TimestampRecord,\r\n TimestampViewModelBase,\r\n} from 'src/store/generated/timestamp-record.generated';\r\nimport { TimestampTypeRecord } from 'src/store/generated/timestamp-type-record.generated';\r\nimport { formatDate } from 'src/util/date';\r\nimport { timeElapsed } from 'src/util/helpers/date-helper';\r\nimport { ViewModelService } from '../app/shared/view-model.service';\r\n\r\nexport class TimestampViewModel extends TimestampViewModelBase {\r\n public readonly card: CardViewModel;\r\n public readonly type: TimestampTypeViewModel;\r\n public readonly timeString: string;\r\n\r\n get person$() {\r\n return this._model\r\n .getPersonById(this.userId)\r\n .pipe(map((p) => (p == null ? PersonViewModel.systemUser : p)));\r\n }\r\n\r\n get timeElapsed() {\r\n return timeElapsed(this.time);\r\n }\r\n\r\n get description() {\r\n return this.note != null ? `${this.type.name} - ${this.note}` : this.type.name;\r\n }\r\n\r\n get personsInvolvedDetials() {\r\n return this.personsInvolved != null ? `Persons Involved - ${this.personsInvolved}` : null;\r\n }\r\n\r\n constructor(\r\n timestamp: TimestampRecord,\r\n timestampType: TimestampTypeRecord,\r\n card: CardViewModel,\r\n private _model: ViewModelService,\r\n ) {\r\n super(timestamp);\r\n this.card = card;\r\n this.type = new TimestampTypeViewModel(timestampType);\r\n this.timeString = formatDate(timestamp.time, 'MM/dd/yyyy HH:mm:ss');\r\n }\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport {\r\n AlertLifecycleStage,\r\n AlertUrgency,\r\n EntityType,\r\n RuleMatchType,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { AppState } from 'src/store/appstate';\r\nimport {\r\n ActiveAlertRecord,\r\n selectActiveAlertEntitiesByEntityType,\r\n} from 'src/store/generated/active-alert-record.generated';\r\n\r\nconst urgencySortOrder: AlertUrgency[] = [\r\n AlertUrgency.Critical,\r\n AlertUrgency.Warning,\r\n AlertUrgency.Information,\r\n];\r\n\r\nconst lifecycleStageSortOrder: AlertLifecycleStage[] = [\r\n AlertLifecycleStage.PreAssignment, // flash\r\n AlertLifecycleStage.Unspecified,\r\n];\r\n\r\nexport const selectAllActiveAlerts = (appState: AppState) =>\r\n appState.entityStores.activeAlert.entities;\r\n\r\nexport function selectActiveAlertById(id: string) {\r\n return createSelector(selectAllActiveAlerts, (reasons) => reasons.get(id));\r\n}\r\n\r\nexport function selectActiveAlertsByCardId(cardId: string) {\r\n return createSelector(selectActiveAlertEntitiesByEntityType(EntityType.Card), (alerts) =>\r\n alerts\r\n .valueSeq()\r\n .filter((a) => a.entityId === cardId)\r\n .sortBy((a) => a.urgency),\r\n );\r\n}\r\n\r\nexport function selectActiveAlertsByCardIdByMatchType(cardId: string, matchType: RuleMatchType) {\r\n return createSelector(selectActiveAlertsByCardId(cardId), (alerts) => {\r\n return alerts\r\n .valueSeq()\r\n .filter((aa) => aa.matchType === matchType)\r\n .sortBy((aa) => urgencySortOrder.findIndex((x) => x === aa.urgency));\r\n });\r\n}\r\n\r\nexport function selectUnacknowledgedActiveAlertsByCardId(cardId: string) {\r\n return createSelector(selectActiveAlertsByCardId(cardId), (alerts) => {\r\n return alerts\r\n .toIndexedSeq()\r\n .filter((aa) => aa.requiresAcknowledgement && aa.acknowledgedById == null)\r\n .sortBy(sortActiveAlerts);\r\n });\r\n}\r\n\r\nexport function selectAcknowledgedActiveAlertsByCardId(cardId: string) {\r\n return createSelector(selectActiveAlertsByCardId(cardId), (alerts) => {\r\n return alerts\r\n .toIndexedSeq()\r\n .filter((aa) => aa.requiresAcknowledgement && aa.acknowledgedById != null)\r\n .sortBy(sortActiveAlerts);\r\n });\r\n}\r\n\r\nexport function selectOtherActiveAlertsByCardId(cardId: string) {\r\n return createSelector(\r\n selectActiveAlertsByCardId(cardId),\r\n selectUnacknowledgedActiveAlertsByCardId(cardId),\r\n selectAcknowledgedActiveAlertsByCardId(cardId),\r\n (allAlerts, unacknowledgedAlerts, acknowledgedAlerts) => {\r\n const excludeAlerts = [...unacknowledgedAlerts.toArray(), ...acknowledgedAlerts.toArray()];\r\n return (\r\n allAlerts\r\n .toIndexedSeq()\r\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\r\n .filter((alert) => !excludeAlerts.includes(alert))\r\n .sortBy(sortActiveAlerts)\r\n );\r\n },\r\n );\r\n}\r\n\r\nexport function selectAllUnacknowledgedActiveAlertsByCompanyId(\r\n companyId: string,\r\n entityType?: EntityType,\r\n) {\r\n return createSelector(selectAllActiveAlerts, (alerts) => {\r\n return alerts\r\n .toIndexedSeq()\r\n .filter((aa) => aa.companyId === companyId)\r\n .filter((aa) => {\r\n const now = new Date();\r\n const isEntityType = entityType == null ? true : entityType === aa.entityType;\r\n const isUnacked = aa.requiresAcknowledgement && aa.acknowledgedById == null;\r\n const isActive = aa.activationTime == null ? true : aa.activationTime <= now;\r\n return isUnacked && isActive && isEntityType;\r\n })\r\n .sortBy(sortActiveAlerts);\r\n });\r\n}\r\n\r\nexport function sortActiveAlerts(aa: ActiveAlertRecord) {\r\n return (\r\n (aa.requiresAcknowledgement ? 1 : 0) +\r\n urgencySortOrder.findIndex((x) => x === aa.urgency) +\r\n lifecycleStageSortOrder.findIndex((x) => x === aa.lifecycleStage)\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { Seq } from 'immutable';\r\nimport { selectAllMedicalControlContactLogEntries } from 'src/store/entityStores/entity-store-selectors';\r\nimport { MedicalControlContactLogEntryRecord } from '../generated/medical-control-contact-log-entry-record.generated';\r\n\r\nexport function selectMedicalControlContactLogEntryById(id: string) {\r\n return createSelector(\r\n selectAllMedicalControlContactLogEntries,\r\n (medicalControlContactLogEntries) => {\r\n return medicalControlContactLogEntries.get(id);\r\n },\r\n );\r\n}\r\n\r\nexport function selectMedicalControlContactLogEntriesByCardId(cardId: string) {\r\n return createSelector(\r\n selectAllMedicalControlContactLogEntries,\r\n (medicalControlContactLogEntries) => {\r\n return cardId == null\r\n ? Seq.Indexed()\r\n : medicalControlContactLogEntries\r\n .filter((logEntry) => logEntry.cardId === cardId)\r\n .toIndexedSeq();\r\n },\r\n );\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { CardStatus, NotificationStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { NotificationViewModel } from 'src/models/notification-view-model';\r\nimport { selectCardSummariesByRegionId } from 'src/store/entityStores/card-selectors';\r\nimport { selectAllNotifications } from 'src/store/entityStores/entity-store-selectors';\r\n\r\nexport function selectNotificationById(notificationId: string) {\r\n return createSelector(selectAllNotifications, (notifications) =>\r\n notifications.get(notificationId),\r\n );\r\n}\r\n\r\nexport function selectNotificationsByCardId(cardId: string) {\r\n return createSelector(selectAllNotifications, (notifications) => {\r\n return notifications\r\n .filter((n) => n.entityId === cardId || n.cardId === cardId)\r\n .toIndexedSeq()\r\n .sortBy((n) => n.dateCreated);\r\n });\r\n}\r\n\r\nexport function selectUnsentNotificationsByCardId(cardId: string) {\r\n return createSelector(selectAllNotifications, (notifications) => {\r\n return notifications\r\n .filter((n) => n.cardId === cardId && n.status === NotificationStatus.AwaitingApproval)\r\n .toIndexedSeq()\r\n .sortBy((n) => n.dateCreated);\r\n });\r\n}\r\n\r\nexport function selectNotificationsByRegionId(regionId: string, ...status: NotificationStatus[]) {\r\n return createSelector(\r\n selectAllNotifications,\r\n selectCardSummariesByRegionId(regionId),\r\n (notifications, cards) => {\r\n return (\r\n notifications\r\n .filter((n) => status.length === 0 || status.includes(n.status))\r\n .filter((n) => n.cardId != null && cards.find((c) => c.id === n.cardId) != null)\r\n .map((n) => {\r\n return {\r\n notification: n,\r\n card: cards.find((c) => c.id === n.cardId),\r\n };\r\n })\r\n .filter((n) => n.card != null && n.card.status !== CardStatus.Closed)\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n .sortBy((n) => n.card!.cardNumber)\r\n .map((n) => n.notification)\r\n );\r\n },\r\n );\r\n}\r\n\r\nexport function selectNotificationViewModelsByEntityId(entityId: string, model: ViewModelService) {\r\n return createSelector(selectAllNotifications, (notifications) => {\r\n return notifications\r\n .filter((n) => n.entityId === entityId)\r\n .map((notification) => new NotificationViewModel(notification, null, model))\r\n .toIndexedSeq()\r\n .sortBy((n) => n.dateCreated);\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllTimestampTypes } from 'src/store/entityStores/entity-store-selectors';\r\n\r\nexport function selectTimestampTypeById(id: string) {\r\n return createSelector(selectAllTimestampTypes, (timestampTypes) => {\r\n return timestampTypes.get(id);\r\n });\r\n}\r\n\r\nexport function selectTimestampTypeByName(name: string) {\r\n return createSelector(selectAllTimestampTypes, (timestampTypes) => {\r\n return timestampTypes.find((t) => t.name === name);\r\n });\r\n}\r\n","import { Seq, Set } from 'immutable';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport {\r\n GetCardActiveAlertsByCardIdGQL,\r\n ReceivingFacilityRequestStatus,\r\n RuleMatchType,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { NotificationViewModel } from 'src/models/notification-view-model';\r\nimport { OperationViewModel } from 'src/models/operation-view-model';\r\nimport { RegionViewModel } from 'src/models/region-view-model';\r\nimport { RequestViewModel } from 'src/models/request-view-model';\r\nimport { TimestampViewModel } from 'src/models/timestamp-view-model';\r\nimport { TripLegViewModel } from 'src/models/trip-leg-view-model';\r\nimport { TripViewModel } from 'src/models/trip-view-model';\r\nimport { UnitViewModel } from 'src/models/unit-view-model';\r\nimport { VehicleDispositionViewModel } from 'src/models/vehicle-disposition-view-model';\r\nimport { selectViewModel } from 'src/models/view-model-helper';\r\nimport {\r\n selectAcknowledgedActiveAlertsByCardId,\r\n selectActiveAlertById,\r\n selectActiveAlertsByCardId,\r\n selectActiveAlertsByCardIdByMatchType,\r\n selectOtherActiveAlertsByCardId,\r\n selectUnacknowledgedActiveAlertsByCardId,\r\n} from 'src/store/entityStores/active-alert-selectors';\r\nimport { selectMedicalControlContactLogEntriesByCardId } from 'src/store/entityStores/medical-control-contact-log-entry-slector';\r\nimport {\r\n selectNotificationById,\r\n selectNotificationsByCardId,\r\n selectUnsentNotificationsByCardId,\r\n} from 'src/store/entityStores/notification-selectors';\r\nimport {\r\n selectTimestampById,\r\n selectTimestampsByCardId,\r\n} from 'src/store/entityStores/timestamp-selectors';\r\nimport { selectTimestampTypeById } from 'src/store/entityStores/timestamp-type-selectors';\r\nimport { ActiveAlertRecord } from 'src/store/generated/active-alert-record.generated';\r\nimport { CardRecord, CardViewModelBase } from 'src/store/generated/card-record.generated';\r\nimport { selectReceivingFacilityRequestEntitiesByCardId } from 'src/store/generated/receiving-facility-request-record.generated';\r\nimport { createObservableLookup, ObservableLookup } from 'src/util/lookup';\r\nimport { undefinedOrMap } from 'src/util/rxjs/operators';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport { selectTimestampsByTypeAndCardId } from '../store/entityStores/timestamp-selectors';\r\nimport { ActiveAlertViewModel } from './active-alert-view-model';\r\nimport { CardLinkViewModel } from './card-link-view-model';\r\n\r\nexport function getNotificationById(\r\n notificationId: string,\r\n model: ViewModelService,\r\n card: CardViewModel | null = null,\r\n) {\r\n return selectViewModel(\r\n model.store,\r\n selectNotificationById(notificationId),\r\n (notification) => new NotificationViewModel(notification, card, model),\r\n );\r\n}\r\nexport class CardViewModel extends CardViewModelBase {\r\n public region: RegionViewModel;\r\n public request$: Observable;\r\n public unit$: Observable;\r\n public operation$: Observable;\r\n public vehicleDisposition$: Observable;\r\n public timestampIds$: Observable>;\r\n public notificationIds$: Observable>;\r\n public unsentNotificationIds$: Observable>;\r\n public activeAlertIds$: Observable>;\r\n public unacknowledgedActiveAlertIds$: Observable>;\r\n public acknowledgedActiveAlertIds$: Observable>;\r\n public otherActiveAlertIds$: Observable>;\r\n public medicalControlContactLogEntryIds$: Observable>;\r\n public receivingFacilityRequestIdsByStatus$: ObservableLookup<\r\n typeof ReceivingFacilityRequestStatus,\r\n Set\r\n >;\r\n public nonPendingReceivingFacilityRequestIds$: Observable>;\r\n public cardNumberDisplay$: Observable;\r\n public cardLinks$: Observable>;\r\n\r\n get operationIfExists$(): Observable {\r\n return this.operation$.pipe(filterNull());\r\n }\r\n get tripIfExists$(): Observable {\r\n return this.operationIfExists$.pipe(switchMap((o) => o.tripIfExists$));\r\n }\r\n get trip$(): Observable {\r\n return this.operation$.pipe(\r\n switchMap((o) => {\r\n if (o == null) {\r\n return of(undefined);\r\n } else {\r\n return o.trip$;\r\n }\r\n }),\r\n );\r\n }\r\n get firstTripLeg$(): Observable {\r\n return this.trip$.pipe(\r\n switchMap((t) => {\r\n if (t == null) {\r\n return of(undefined);\r\n } else {\r\n return t.firstTripLeg$;\r\n }\r\n }),\r\n );\r\n }\r\n\r\n get requestIfExists$() {\r\n return this.request$.pipe(filterNull());\r\n }\r\n\r\n get regionId() {\r\n return this.region.id;\r\n }\r\n\r\n get nav() {\r\n return this._model.nav.currentCompany.ops.card(this.cardNumber);\r\n }\r\n\r\n get linkedCard$(): Observable {\r\n if (this.linkedCardId == null) {\r\n return of(undefined);\r\n }\r\n\r\n return this._model.getCardById(this.linkedCardId);\r\n }\r\n\r\n // NOTE: Ideally our UI should be referring to Commands.{CommandType}.isAvailable to determine\r\n // whether to hide or render an action as disabled\r\n get isReadOnly() {\r\n return this.isClosed || this._model.opsReadonly.hasReadonlyAccess;\r\n }\r\n\r\n get isClosedOrCancelled$(): Observable {\r\n if (this.isClosed) {\r\n return of(true);\r\n }\r\n\r\n return combineLatest([this.operation$, this.request$]).pipe(\r\n debounceTime(10),\r\n map(([oper, req]) => {\r\n if (oper?.isCancelled === true) {\r\n return true;\r\n }\r\n\r\n if (req?.isCancelled === true) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }),\r\n );\r\n }\r\n\r\n constructor(card: CardRecord, region: RegionViewModel, private _model: ViewModelService) {\r\n super(card);\r\n this.region = region;\r\n this.unit$ = _model.getUnitForCard(this.cardNumber);\r\n this.operation$ =\r\n this.operationId != null ? _model.getOperationById(this.operationId) : of(undefined);\r\n this.request$ = this.requestId != null ? _model.getRequestById(this.requestId) : of(undefined);\r\n this.vehicleDisposition$ = this.unit$.pipe(\r\n undefinedOrMap((u) => {\r\n if (u.vehicle == null) {\r\n return undefined;\r\n }\r\n return u.vehicle.vehicleDisposition;\r\n }),\r\n );\r\n this.timestampIds$ = _model.store\r\n .select(selectTimestampsByCardId(card.id))\r\n .pipe(map((timestamps) => timestamps.map((ts) => ts.id)));\r\n\r\n this.notificationIds$ = _model.store\r\n .select(selectNotificationsByCardId(card.id))\r\n .pipe(map((notifications) => notifications.map((n) => n.id)));\r\n\r\n this.unsentNotificationIds$ = _model.store\r\n .select(selectUnsentNotificationsByCardId(card.id))\r\n .pipe(map((notifications) => notifications.map((n) => n.id)));\r\n\r\n this.activeAlertIds$ = _model.store\r\n .select(selectActiveAlertsByCardId(card.id))\r\n .pipe(map((activeAlerts) => activeAlerts.map((aa) => aa.id)));\r\n\r\n this.unacknowledgedActiveAlertIds$ = _model.store\r\n .select(selectUnacknowledgedActiveAlertsByCardId(card.id))\r\n .pipe(map((unacknowledgedActiveAlertIds) => unacknowledgedActiveAlertIds.map((ua) => ua.id)));\r\n\r\n this.acknowledgedActiveAlertIds$ = _model.store\r\n .select(selectAcknowledgedActiveAlertsByCardId(card.id))\r\n .pipe(map((acknowledgedActiveAlertIds) => acknowledgedActiveAlertIds.map((aa) => aa.id)));\r\n\r\n this.otherActiveAlertIds$ = _model.store\r\n .select(selectOtherActiveAlertsByCardId(card.id))\r\n .pipe(map((otherActiveAlerts) => otherActiveAlerts.map((oa) => oa.id)));\r\n\r\n this.nonPendingReceivingFacilityRequestIds$ = _model.store\r\n .select(selectReceivingFacilityRequestEntitiesByCardId(this.id))\r\n .pipe(\r\n map((requests) =>\r\n requests\r\n .filter((r) => r.status !== ReceivingFacilityRequestStatus.Pending)\r\n .sort((a, b) => {\r\n return a.dateCreated > b.dateCreated ? -1 : 1;\r\n })\r\n .map((rfr) => rfr.id),\r\n ),\r\n );\r\n\r\n this.medicalControlContactLogEntryIds$ = _model.store\r\n .select(selectMedicalControlContactLogEntriesByCardId(card.id))\r\n .pipe(\r\n map((medicalControlContactLogEntries) =>\r\n medicalControlContactLogEntries.map((le) => le.id),\r\n ),\r\n );\r\n\r\n this.receivingFacilityRequestIdsByStatus$ = createObservableLookup(\r\n ReceivingFacilityRequestStatus,\r\n (status) =>\r\n this._model.store.select(selectReceivingFacilityRequestEntitiesByCardId(this.id)).pipe(\r\n distinctUntilChanged(),\r\n map((rfrs) =>\r\n rfrs\r\n .filter((r) => r.status === status)\r\n .sort((a, b) => {\r\n return a.dateCreated < b.dateCreated ? -1 : 1;\r\n })\r\n .map((c) => c.id)\r\n .toSet(),\r\n ),\r\n distinctUntilChanged(),\r\n ),\r\n );\r\n\r\n this.cardNumberDisplay$ = this.operation$.pipe(\r\n map((o) => this.cardNumber + (o != null && o.isOnStandby ? '*' : '')),\r\n );\r\n\r\n this.cardLinks$ =\r\n this.linkedCardId == null\r\n ? of(Seq.Indexed())\r\n : this._model.getCardLinksByFromCardId(this.linkedCardId);\r\n }\r\n\r\n public getTimestampById(timestampId: string): Observable {\r\n return this._model.store\r\n .select(selectTimestampById(timestampId))\r\n .pipe(\r\n switchMap((ts) =>\r\n ts == null\r\n ? of(undefined as TimestampViewModel | undefined)\r\n : this._model.store\r\n .select(selectTimestampTypeById(ts.typeId))\r\n .pipe(\r\n map((tt) =>\r\n tt == null ? undefined : new TimestampViewModel(ts, tt, this, this._model),\r\n ),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n public getTimestampByType(timestampTypeId: string): Observable {\r\n return this._model.store\r\n .select(selectTimestampTypeById(timestampTypeId))\r\n .pipe(\r\n switchMap((tt) =>\r\n tt == null\r\n ? of(undefined as TimestampViewModel | undefined)\r\n : this._model.store\r\n .select(selectTimestampsByTypeAndCardId(this.id, timestampTypeId))\r\n .pipe(\r\n map((ts) =>\r\n ts == null ? undefined : new TimestampViewModel(ts, tt, this, this._model),\r\n ),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n public getNotificationById(notificationId: string) {\r\n return getNotificationById(notificationId, this._model, this);\r\n }\r\n\r\n public getActiveAlertById(activeAlertId: string) {\r\n return selectViewModel(\r\n this._model.store,\r\n selectActiveAlertById(activeAlertId),\r\n (activeAlert) => new ActiveAlertViewModel(activeAlert, this._model, this),\r\n );\r\n }\r\n\r\n public getAllActiveAlerts(ruleMatchType?: RuleMatchType) {\r\n if (ruleMatchType == null) {\r\n return of(Seq.Indexed());\r\n } else {\r\n if (ruleMatchType === RuleMatchType.Unspecified) {\r\n return this._model.activeAlerts.getMany({\r\n cacheSelector: selectActiveAlertsByCardId(this.id),\r\n getIdsFallback: fetchCardActiveAlertIdsByCardId(\r\n this.id,\r\n this._model.activeAlertsByCardId,\r\n ),\r\n });\r\n } else {\r\n return this._model.activeAlerts.getMany({\r\n cacheSelector: selectActiveAlertsByCardIdByMatchType(this.id, ruleMatchType),\r\n getIdsFallback: fetchCardActiveAlertIdsByCardId(\r\n this.id,\r\n this._model.activeAlertsByCardId,\r\n ruleMatchType,\r\n ),\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction fetchCardActiveAlertIdsByCardId(\r\n cardId: string,\r\n activeAlertsByCardId: GetCardActiveAlertsByCardIdGQL,\r\n ruleMatchType?: RuleMatchType,\r\n) {\r\n return activeAlertsByCardId.fetch({ cardId }).pipe(\r\n map((res) => res.data.cards.byId),\r\n map((card) => (card == null ? [] : card.activeAlerts)),\r\n map((activeAlerts) =>\r\n activeAlerts\r\n .filter((aa) => ruleMatchType == null || aa.matchType === ruleMatchType)\r\n .map((aa) => aa.id),\r\n ),\r\n );\r\n}\r\n","import { OrderedSet, Set } from 'immutable';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, map, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { CardStatus, UnitStatus } from 'src/graphql/generated/graphql.generated';\r\nimport { selectCardSummariesByRegions } from 'src/store/entityStores/card-selectors';\r\nimport { selectCommunicationCentersByCompany } from 'src/store/entityStores/communication-center-selectors';\r\nimport {\r\n selectOperationsRegionsByCompanyId,\r\n selectRegionsByCompanyId,\r\n} from 'src/store/entityStores/region-selectors';\r\nimport {\r\n selectUnitSummariesByRegions,\r\n selectUnitSummariesByRegionsAndUnits,\r\n} from 'src/store/entityStores/unit-selectors';\r\nimport { CompanyRecord, CompanyViewModelBase } from 'src/store/generated/company-record.generated';\r\nimport { createObservableLookup } from 'src/util/lookup';\r\nimport { isNullOrEmpty } from 'src/util/string';\r\n\r\nexport class CompanyViewModel extends CompanyViewModelBase {\r\n public regionIds$: Observable>;\r\n public regionsIdsWithoutAssignedCommCenters$: Observable>;\r\n public regionsIdsWithoutAssignedCommCentersCount$: Observable;\r\n public communicationCenterIds$: Observable>;\r\n\r\n constructor(company: CompanyRecord, private _model: ViewModelService) {\r\n super(company);\r\n const operationRegions$ = _model.store.select(selectOperationsRegionsByCompanyId(this.id));\r\n this.regionIds$ = operationRegions$.pipe(\r\n map((regions) => regions.map((r) => r.id).toSet()),\r\n distinctUntilChanged(),\r\n );\r\n this.regionsIdsWithoutAssignedCommCenters$ = operationRegions$.pipe(\r\n map((regions) =>\r\n regions\r\n .filter((r) => r.communicationCenterId == null)\r\n .sort((a, b) => a.abbreviation.localeCompare(b.abbreviation))\r\n .map((r) => r.id)\r\n .toOrderedSet(),\r\n ),\r\n distinctUntilChanged(),\r\n );\r\n\r\n this.regionsIdsWithoutAssignedCommCentersCount$ =\r\n this.regionsIdsWithoutAssignedCommCenters$.pipe(\r\n map((c) => c.count()),\r\n distinctUntilChanged(),\r\n );\r\n\r\n this.communicationCenterIds$ = _model.store\r\n .select(selectCommunicationCentersByCompany(this.id))\r\n .pipe(\r\n map((ccs) => ccs.map((cc) => cc.id).toSet()),\r\n distinctUntilChanged(),\r\n );\r\n }\r\n\r\n public get companyBadgeClass(): string {\r\n const companyCodeClass = this.companyCode == null ? '' : ` company--${this.companyCode}`;\r\n return `company-badge${companyCodeClass}`;\r\n }\r\n\r\n public allUnitIdsByStatus$(\r\n regionIds: string[] | null,\r\n nameOrTailLike?: string,\r\n includeHidden = false,\r\n includeSpareUnits = false,\r\n ) {\r\n return createObservableLookup(UnitStatus, (unitStatus) => {\r\n let regionIds$: Observable;\r\n if (regionIds != null && regionIds.length > 0) {\r\n regionIds$ = of(regionIds);\r\n } else {\r\n regionIds$ = this._getAllRegionIds();\r\n }\r\n\r\n const units$ = regionIds$.pipe(\r\n switchMap((ids) =>\r\n this._model.store.select(\r\n selectUnitSummariesByRegions(\r\n ids,\r\n true,\r\n nameOrTailLike,\r\n false,\r\n unitStatus as UnitStatus,\r\n ),\r\n ),\r\n ),\r\n );\r\n\r\n return units$.pipe(\r\n map((units) =>\r\n units\r\n .filter((u) =>\r\n includeHidden\r\n ? true\r\n : u.status === UnitStatus.OutOfService\r\n ? true\r\n : !(u.isHidden ?? false),\r\n )\r\n .filter((u) => (includeSpareUnits ? true : !(u.isSpare ?? false)))\r\n .sort((a, b) => a.abbreviation.localeCompare(b.abbreviation))\r\n .map((u) => u.id)\r\n .toOrderedSet(),\r\n ),\r\n );\r\n });\r\n }\r\n\r\n public allUnitIds$(regionIds: string[], nameOrTailLike?: string, includeHidden = false) {\r\n return this._model.store.select(\r\n selectUnitSummariesByRegions(regionIds, includeHidden, nameOrTailLike, false),\r\n );\r\n }\r\n\r\n public cardIdsByStatus$(\r\n regionIds: string[] | null,\r\n unitNameOrTailLike?: string,\r\n filterCardIds: string[] = [],\r\n ) {\r\n return createObservableLookup(CardStatus, (cardStatus) => {\r\n let regionIds$: Observable;\r\n if (regionIds != null && regionIds.length > 0) {\r\n regionIds$ = of(regionIds);\r\n } else {\r\n regionIds$ = this._getAllRegionIds();\r\n }\r\n\r\n const cards$ = regionIds$.pipe(\r\n switchMap((ids) =>\r\n this._model.store.select(selectCardSummariesByRegions(ids, cardStatus as CardStatus)),\r\n ),\r\n );\r\n\r\n const units$ = combineLatest([\r\n regionIds$,\r\n cards$.pipe(map((cards) => cards.filter((c) => filterCardIds.includes(c.id)))),\r\n ]).pipe(\r\n switchMap(([rIds, cIds]) => {\r\n const unitIds = cIds\r\n .map((c) => c.unitId)\r\n .filter((id) => id != null)\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n .map((id) => id!)\r\n .toJSON();\r\n return this._model.store.select(\r\n selectUnitSummariesByRegionsAndUnits(rIds, unitIds, true, unitNameOrTailLike, true),\r\n );\r\n }),\r\n );\r\n\r\n const result$ = combineLatest([cards$, units$]).pipe(\r\n map(([cards, units]) => {\r\n if (isNullOrEmpty(unitNameOrTailLike)) {\r\n return cards;\r\n }\r\n\r\n const opsCards = units.map((u) => cards.find((c) => u != null && c.unitId === u.id));\r\n\r\n return (\r\n opsCards\r\n .filter((c) => c != null)\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n .map((c) => c!)\r\n .sortBy((c) => c.cardNumber)\r\n );\r\n }),\r\n );\r\n\r\n return result$.pipe(\r\n distinctUntilChanged(),\r\n map((cards) =>\r\n cards\r\n .sort((a, b) => {\r\n return a.dateCreated < b.dateCreated ? -1 : 1;\r\n })\r\n .map((c) => c.id)\r\n .toOrderedSet(),\r\n ),\r\n distinctUntilChanged(),\r\n );\r\n });\r\n }\r\n\r\n private _getAllRegionIds() {\r\n return this._getAllRegions().pipe(\r\n map((regions) =>\r\n regions\r\n .valueSeq()\r\n .map((r) => r.id)\r\n .toArray(),\r\n ),\r\n );\r\n }\r\n\r\n private _getAllRegions() {\r\n return this._model.store.select(selectRegionsByCompanyId(this.id));\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it\r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { emptyAddress } from 'src/app/shared/components/address-form/address-form.component';\r\nimport { FboEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport { FboProps, FboViewModelBase } from 'src/store/generated/fbo-record.generated';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { LocationViewModel, LocationViewModelService } from './location-view-model';\r\n\r\nexport class FboViewModel extends FboViewModelBase {\r\n get address() {\r\n return this.location != null ? this.location.address : emptyAddress;\r\n }\r\n constructor(props: FboProps, public readonly location: LocationViewModel | undefined) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FboViewModelService {\r\n constructor(\r\n private readonly _fboEntityFetchService: FboEntityFetchService,\r\n private readonly _locationViewModel: LocationViewModelService,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._fboEntityFetchService.getById(id).pipe(\r\n undefinedOrSwitchMap((fbo) => {\r\n const location$ =\r\n fbo.locationId != null ? this._locationViewModel.getById(fbo.locationId) : of(undefined);\r\n\r\n return location$.pipe(map((location) => new FboViewModel(fbo, location)));\r\n }),\r\n );\r\n }\r\n}\r\n","import {\r\n MedicalFacilityContactProps,\r\n MedicalFacilityContactViewModelBase,\r\n} from 'src/store/generated/medical-facility-contact-record.generated';\r\nimport { MedicalFacilityViewModel } from './medical-facility-view-model';\r\n\r\nexport class MedicalFacilityContactViewModel extends MedicalFacilityContactViewModelBase {\r\n constructor(\r\n props: MedicalFacilityContactProps,\r\n public readonly medicalFacility: MedicalFacilityViewModel,\r\n ) {\r\n super(props);\r\n }\r\n}\r\n","import { Apollo, gql } from 'apollo-angular';\r\nimport { Seq } from 'immutable';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport {\r\n MedicalFacilityViewModel_GetMedicalFacilityContactIds,\r\n MedicalFacilityViewModel_GetMedicalFacilityContactIdsVariables,\r\n} from 'src/app/shared/graphql/graphql-request-types';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { selectMedicalFacilityContactEntitiesByMedicalFacilityId } from 'src/store/generated/medical-facility-contact-record.generated';\r\nimport {\r\n MedicalFacilityProps,\r\n MedicalFacilityViewModelBase,\r\n} from 'src/store/generated/medical-facility-record.generated';\r\nimport { LocationViewModel } from './location-view-model';\r\nimport { MedicalFacilityContactViewModel } from './medical-facility-contact-view-model';\r\n\r\nexport class MedicalFacilityViewModel extends MedicalFacilityViewModelBase {\r\n public contacts$: Observable>;\r\n constructor(\r\n props: MedicalFacilityProps,\r\n public readonly location: LocationViewModel | undefined,\r\n model: ViewModelService,\r\n ) {\r\n super(props);\r\n this.contacts$ = model.medicalFacilityContacts\r\n .getMany({\r\n cacheSelector: selectMedicalFacilityContactEntitiesByMedicalFacilityId(this.id),\r\n getIdsFallback: getMedicalFacilityContactIds(this.id, model.apollo),\r\n })\r\n .pipe(map((contacts) => contacts.map((c) => new MedicalFacilityContactViewModel(c, this))));\r\n }\r\n}\r\n\r\nfunction getMedicalFacilityContactIds(facilityId: string, apollo: Apollo): Observable {\r\n return apollo\r\n .query<\r\n MedicalFacilityViewModel_GetMedicalFacilityContactIds,\r\n MedicalFacilityViewModel_GetMedicalFacilityContactIdsVariables\r\n >({\r\n query: gql`\r\n query MedicalFacilityViewModel_GetMedicalFacilityContactIds($facilityId: ID!) {\r\n medicalFacilities {\r\n byId(id: $facilityId) {\r\n contacts {\r\n id\r\n }\r\n }\r\n }\r\n }\r\n `,\r\n variables: {\r\n facilityId,\r\n },\r\n })\r\n .pipe(\r\n filter((r) => r == null || !r.loading),\r\n map((r) => {\r\n const facility = r.data.medicalFacilities.byId;\r\n if (facility != null) {\r\n return facility.contacts.map((c) => c.id);\r\n }\r\n return [];\r\n }),\r\n );\r\n}\r\n","import {\r\n convertDistance,\r\n getCompassDirection,\r\n getGreatCircleBearing,\r\n getPreciseDistance,\r\n} from 'geolib';\r\nimport { Set } from 'immutable';\r\nimport { round } from 'lodash-es';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map, mergeMap, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { PassengerType } from 'src/graphql/generated/graphql.generated';\r\nimport { ManifestEntryViewModel } from 'src/models/manifest-entry-view-model';\r\nimport { TripViewModel } from 'src/models/trip-view-model';\r\nimport { WaypointViewModel } from 'src/models/waypoint-view-model';\r\nimport { selectEstimatedDurationsById } from 'src/store/entityStores/estimated-duration-selectors';\r\nimport { selectFlightFollowingReportsByTripLegId } from 'src/store/entityStores/flight-following-report-selectors';\r\nimport {\r\n selectManifestEntriesByTripLegId,\r\n selectManifestEntryById,\r\n selectManifestEntryByLegAndPassengerId,\r\n} from 'src/store/entityStores/manifest-selectors';\r\nimport { TripLegRecord, TripLegViewModelBase } from 'src/store/generated/trip-leg-record.generated';\r\nimport { hasLatLng } from 'src/store/model-helpers';\r\nimport { getLatLng } from 'src/util/mapping/trip-leg-model-record';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class TripLegViewModel_DEPRECATED extends TripLegViewModelBase {\r\n get flightPlan$() {\r\n return this._model.store\r\n .select(selectFlightFollowingReportsByTripLegId(this.id))\r\n .pipe(filterNull());\r\n }\r\n\r\n constructor(tripLeg: TripLegRecord, private readonly _model: ViewModelService) {\r\n super(tripLeg);\r\n }\r\n}\r\n\r\nexport class TripLegViewModel extends TripLegViewModelBase {\r\n public readonly trip: TripViewModel;\r\n public readonly manifestEntryIds$: Observable>;\r\n public readonly manifestEntries$: Observable;\r\n\r\n get startingLatLng() {\r\n return this.startingWaypoint != null && hasLatLng(this.startingWaypoint)\r\n ? getLatLng(this.startingWaypoint)\r\n : undefined;\r\n }\r\n\r\n get endingLatLng() {\r\n return this.endingWaypoint != null && hasLatLng(this.endingWaypoint)\r\n ? getLatLng(this.endingWaypoint)\r\n : undefined;\r\n }\r\n\r\n get distance() {\r\n return this.startingLatLng != null && this.endingLatLng != null\r\n ? getPreciseDistance(this.startingLatLng, this.endingLatLng)\r\n : undefined;\r\n }\r\n\r\n get miles() {\r\n return this.distance != null ? round(convertDistance(this.distance, 'mi'), 0) : undefined;\r\n }\r\n\r\n get nauticalMiles() {\r\n return this.distance != null ? round(convertDistance(this.distance, 'sm'), 0) : undefined;\r\n }\r\n\r\n get direction() {\r\n return this.distance != null && this.startingLatLng != null && this.endingLatLng != null\r\n ? getCompassDirection(this.startingLatLng, this.endingLatLng)\r\n : undefined;\r\n }\r\n\r\n get bearing() {\r\n return this.startingLatLng != null && this.endingLatLng != null\r\n ? Math.floor(getGreatCircleBearing(this.startingLatLng, this.endingLatLng))\r\n : undefined;\r\n }\r\n\r\n get hasGeo() {\r\n return this.startingLatLng != null && this.endingLatLng != null;\r\n }\r\n\r\n get officialDuration$() {\r\n return this.officialEteId == null\r\n ? of(undefined)\r\n : this._model.store.select(selectEstimatedDurationsById(this.officialEteId));\r\n }\r\n\r\n get calculatedDuration$() {\r\n return this.calculatedEteId == null\r\n ? of(undefined)\r\n : this._model.store.select(selectEstimatedDurationsById(this.calculatedEteId));\r\n }\r\n\r\n get isLoaded$() {\r\n return this.manifestEntries$.pipe(\r\n filterNull(),\r\n map((entries) => entries.find((e) => e.passenger.type === PassengerType.Patient)),\r\n map((patientEntry) => patientEntry != null),\r\n );\r\n }\r\n\r\n get isConfirmed$() {\r\n return this.manifestEntries$.pipe(\r\n map((entries) => {\r\n if (entries == null) {\r\n return false;\r\n }\r\n\r\n // if there is at least one record not confirmed, return false\r\n const nonConfirmedExists =\r\n entries.find((m) => !m.isConfirmed && !m.passenger.isPilot) != null;\r\n if (nonConfirmedExists) {\r\n return false;\r\n }\r\n return true;\r\n }),\r\n );\r\n }\r\n\r\n constructor(\r\n tripLeg: TripLegRecord,\r\n trip: TripViewModel,\r\n public readonly startingWaypoint: WaypointViewModel | undefined,\r\n public readonly endingWaypoint: WaypointViewModel | undefined,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(tripLeg);\r\n this.trip = trip;\r\n this.manifestEntryIds$ = _model.store\r\n .select(selectManifestEntriesByTripLegId(this.id, this.tripId))\r\n .pipe(map((entries) => entries.map((e) => e.id).toSet()));\r\n\r\n this.manifestEntries$ = this.manifestEntryIds$.pipe(\r\n mergeMap((entryIds) =>\r\n combineLatest(...entryIds.toArray().map((entryId) => this.getManifestEntry(entryId))),\r\n ),\r\n );\r\n }\r\n\r\n public getManifestEntry(id: string) {\r\n return this._model.store.select(selectManifestEntryById(id)).pipe(\r\n filterNull(),\r\n switchMap((e) => {\r\n return this.trip.getPassenger(e.passengerId).pipe(\r\n filterNull(),\r\n map((passenger) => new ManifestEntryViewModel(e, this, passenger, this._model)),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getManifestEntryByPassenger(passengerId: string) {\r\n return this._model.store\r\n .select(selectManifestEntryByLegAndPassengerId(this.id, passengerId))\r\n .pipe(\r\n switchMap((manifest) =>\r\n manifest == null ? of(undefined) : this.getManifestEntry(manifest.id),\r\n ),\r\n );\r\n }\r\n}\r\n","import { format } from 'date-fns';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { TripLegViewModel } from 'src/models/trip-leg-view-model';\r\nimport { TripPassengerViewModel } from 'src/models/trip-passenger-view-model';\r\nimport {\r\n ManifestEntryRecord,\r\n ManifestEntryViewModelBase,\r\n} from 'src/store/generated/manifest-entry-record.generated';\r\n\r\nexport class ManifestEntryViewModel extends ManifestEntryViewModelBase {\r\n public readonly tripLeg: TripLegViewModel;\r\n public readonly passenger: TripPassengerViewModel;\r\n\r\n get isConfirmed() {\r\n return this.confirmedAt != null;\r\n }\r\n\r\n get confirmedAtDisplay() {\r\n return this.confirmedAt != null ? format(this.confirmedAt, 'MM/dd/yyyy HH:mm:ss') : null;\r\n }\r\n constructor(\r\n entry: ManifestEntryRecord,\r\n tripLeg: TripLegViewModel,\r\n passenger: TripPassengerViewModel,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(entry);\r\n this.tripLeg = tripLeg;\r\n this.passenger = passenger;\r\n }\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllFlightFollowingReports } from './entity-store-selectors';\r\n\r\nexport function selectFlightFollowingReportById(id: string) {\r\n return createSelector(selectAllFlightFollowingReports, (reports) => {\r\n return reports.valueSeq().find((r) => r.id === id);\r\n });\r\n}\r\n\r\nexport function selectFlightFollowingReportsByTripId(tripId: string) {\r\n return createSelector(selectAllFlightFollowingReports, (reports) => {\r\n return reports.filter((r) => r.tripId === tripId);\r\n });\r\n}\r\n\r\nexport function selectFlightFollowingReportsByTripLegId(tripLegId: string) {\r\n return createSelector(selectAllFlightFollowingReports, (reports) => {\r\n return reports.find((r) => r.tripLegId === tripLegId);\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllTripPassengers } from './entity-store-selectors';\r\n\r\nexport function selectTripPassengersByTripId(tripId: string) {\r\n return createSelector(selectAllTripPassengers, (tripPassengers) => {\r\n return tripPassengers.valueSeq().filter((t) => t.tripId === tripId);\r\n });\r\n}\r\n\r\nexport function selectTripPassengersById(passengerId: string) {\r\n return createSelector(selectAllTripPassengers, (tripPassengers) => {\r\n return tripPassengers.get(passengerId);\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllManifestEntries } from './entity-store-selectors';\r\nimport { selectTripPassengersByTripId } from './trip-passenger-selectors';\r\nimport { selectNonCancelledTripLegsByTripId } from './tripleg-selectors';\r\n\r\nexport function selectManifestEntriesByTripId(tripId: string) {\r\n return createSelector(\r\n selectAllManifestEntries,\r\n selectNonCancelledTripLegsByTripId(tripId),\r\n (manifestEntries, tripLegs) => {\r\n return manifestEntries\r\n .valueSeq()\r\n .filter((m) => tripLegs.find((t) => t.id === m.tripLegId) != null && m.dateDeleted == null);\r\n },\r\n );\r\n}\r\n\r\nexport function selectManifestEntriesByTripLegId(tripLegId: string, tripId: string) {\r\n return createSelector(\r\n selectAllManifestEntries,\r\n selectTripPassengersByTripId(tripId),\r\n (manifestEntries, passengers) => {\r\n const entries = manifestEntries.filter((e) => e.tripLegId === tripLegId);\r\n return (\r\n passengers\r\n .sortBy((p) => p.abbreviation)\r\n .map((p) => entries.find((e) => e.passengerId === p.id))\r\n .filter((e) => e != null)\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n .map((e) => e!)\r\n );\r\n },\r\n );\r\n}\r\n\r\nexport function selectManifestEntryById(id: string) {\r\n return createSelector(selectAllManifestEntries, (manifestEntries) => manifestEntries.get(id));\r\n}\r\n\r\nexport function selectManifestEntryByLegAndPassengerId(tripLegId: string, passengerId: string) {\r\n return createSelector(selectAllManifestEntries, (manifests) => {\r\n return manifests\r\n .filter((manifest) => manifest.tripLegId === tripLegId)\r\n .find((manifest) => manifest.passengerId === passengerId && manifest.dateDeleted == null);\r\n });\r\n}\r\n","import { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { PassengerType } from 'src/graphql/generated/graphql.generated';\r\nimport { PersonViewModel } from 'src/models/person-view-model';\r\nimport { TripViewModel } from 'src/models/trip-view-model';\r\nimport {\r\n TripPassengerRecord,\r\n TripPassengerViewModelBase,\r\n} from 'src/store/generated/trip-passenger-record.generated';\r\nimport { humanize } from 'src/util/text';\r\n\r\ninterface PassengerTypeConfig {\r\n icon: string;\r\n}\r\n\r\nconst passengerTypeConfig: { [key in PassengerType]: PassengerTypeConfig } = {\r\n CrewMember: {\r\n icon: 'fc_medic_bag',\r\n },\r\n Escort: {\r\n icon: 'person',\r\n },\r\n Guard: {\r\n icon: 'person',\r\n },\r\n Other: {\r\n icon: 'person',\r\n },\r\n Patient: {\r\n icon: 'fc_patient',\r\n },\r\n PilotInCommand: {\r\n icon: 'fc_pilot',\r\n },\r\n CoPilot: {\r\n icon: 'fc_pilot',\r\n },\r\n SpecialyTeamMember: {\r\n icon: 'person_outline',\r\n },\r\n Driver: {\r\n icon: 'fc_pilot',\r\n },\r\n RideAlong: {\r\n icon: 'supervisor_account',\r\n },\r\n};\r\n\r\nexport class TripPassengerViewModel extends TripPassengerViewModelBase {\r\n public readonly trip: TripViewModel;\r\n public readonly person?: PersonViewModel;\r\n get config(): PassengerTypeConfig {\r\n return passengerTypeConfig[this.type];\r\n }\r\n get typeDisplay() {\r\n return this.type === 'CoPilot' ? 'Co-Pilot' : humanize(this.type);\r\n }\r\n get icon() {\r\n return this.config.icon;\r\n }\r\n constructor(\r\n passenger: TripPassengerRecord,\r\n trip: TripViewModel,\r\n person: PersonViewModel | undefined,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(passenger);\r\n this.trip = trip;\r\n this.person = person;\r\n }\r\n}\r\n","import { OrderedSet, Set } from 'immutable';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { WaypointType } from 'src/graphql/generated/graphql.generated';\r\nimport { OperationViewModel } from 'src/models/operation-view-model';\r\nimport { TripLegViewModel } from 'src/models/trip-leg-view-model';\r\nimport { TripPassengerViewModel } from 'src/models/trip-passenger-view-model';\r\nimport { selectManifestEntriesByTripId } from 'src/store/entityStores/manifest-selectors';\r\nimport {\r\n selectTripPassengersById,\r\n selectTripPassengersByTripId,\r\n} from 'src/store/entityStores/trip-passenger-selectors';\r\nimport {\r\n selectCurrentOrNextTripLeg,\r\n selectEnRouteTripLeg,\r\n selectNonCancelledTripLegsByTripId,\r\n selectTripLegAfterTripLegId,\r\n selectTripLegById,\r\n} from 'src/store/entityStores/tripleg-selectors';\r\nimport { selectFirstWaypointByTripAndType } from 'src/store/entityStores/waypoint-selectors';\r\nimport { TripLegRecord } from 'src/store/generated/trip-leg-record.generated';\r\nimport { TripRecord, TripViewModelBase } from 'src/store/generated/trip-record.generated';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { selectPlannedTripLeg } from '../store/entityStores/tripleg-selectors';\r\n\r\nexport class TripViewModel extends TripViewModelBase {\r\n public readonly operation: OperationViewModel;\r\n\r\n get firstTripLeg$(): Observable {\r\n return this._model.store.select(selectNonCancelledTripLegsByTripId(this.id)).pipe(\r\n map((legs) => {\r\n if (legs == null || legs.isEmpty()) {\r\n return undefined;\r\n }\r\n return legs.first() as TripLegRecord;\r\n }),\r\n switchMap((leg) =>\r\n leg == null ? of(undefined as TripLegViewModel | undefined) : this.getLegViewModel(leg),\r\n ),\r\n );\r\n }\r\n\r\n get legIds$(): Observable> {\r\n return this._model.store.select(selectNonCancelledTripLegsByTripId(this.id)).pipe(\r\n map((legs) => {\r\n return legs;\r\n }),\r\n map((legs) =>\r\n legs\r\n .sort((l) => l.sequence)\r\n .map((l) => l.id)\r\n .toOrderedSet(),\r\n ),\r\n );\r\n }\r\n\r\n get passengerIds$(): Observable> {\r\n return combineLatest([\r\n this._model.store.select(selectTripPassengersByTripId(this.id)),\r\n this._model.store.select(selectManifestEntriesByTripId(this.id)),\r\n ]).pipe(\r\n map(([passengers, manifests]) =>\r\n passengers\r\n .filter((p) => manifests.find((m) => m.passengerId === p.id) != null)\r\n .map((p) => p.id)\r\n .toSet(),\r\n ),\r\n );\r\n }\r\n get allPassengerIds$(): Observable> {\r\n return this._model.store\r\n .select(selectTripPassengersByTripId(this.id))\r\n .pipe(map((passengers) => passengers.map((p) => p.id).toSet()));\r\n }\r\n get currentOrNextTripLeg$() {\r\n return this._model.store\r\n .select(selectCurrentOrNextTripLeg(this.id))\r\n .pipe(switchMap((tripLeg) => (tripLeg != null ? this.getLeg(tripLeg.id) : of(undefined))));\r\n }\r\n\r\n public getWaypointByType(type: WaypointType) {\r\n return this._model.store\r\n .select(selectFirstWaypointByTripAndType(this.id, type))\r\n .pipe(switchMap((wp) => (wp != null ? this._model.getWaypointById(wp.id) : of(undefined))));\r\n }\r\n\r\n constructor(trip: TripRecord, operation: OperationViewModel, private _model: ViewModelService) {\r\n super(trip);\r\n this.operation = operation;\r\n }\r\n\r\n public getCurrentTripLeg() {\r\n return this._model.store\r\n .select(selectEnRouteTripLeg(this.id))\r\n .pipe(switchMap((leg) => (leg == null ? of(undefined) : this.getLegViewModel(leg))));\r\n }\r\n\r\n public getNextTripLeg() {\r\n return this._model.store\r\n .select(selectPlannedTripLeg(this.id))\r\n .pipe(switchMap((leg) => (leg == null ? of(undefined) : this.getLegViewModel(leg))));\r\n }\r\n\r\n public getTripLegAfterTripLegId(tripLegId: string) {\r\n return this._model.store\r\n .select(selectTripLegAfterTripLegId(this.id, tripLegId))\r\n .pipe(undefinedOrSwitchMap((leg) => this.getLegViewModel(leg)));\r\n }\r\n\r\n public getPassenger(id: string): Observable {\r\n return this._model.store.select(selectTripPassengersById(id)).pipe(\r\n switchMap((passenger) => {\r\n if (passenger == null) {\r\n return of(null as TripPassengerViewModel | null);\r\n }\r\n return this._model.getPersonById(passenger.personId).pipe(\r\n map((maybePerson) => {\r\n return new TripPassengerViewModel(passenger, this, maybePerson, this._model);\r\n }),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getLeg(id: string) {\r\n return this._model.store.select(selectTripLegById(id)).pipe(\r\n map((leg) => {\r\n if (leg == null || leg.tripId !== this.id) {\r\n return undefined;\r\n }\r\n return leg;\r\n }),\r\n switchMap((leg) =>\r\n leg == null ? of(undefined as TripLegViewModel | undefined) : this.getLegViewModel(leg),\r\n ),\r\n // tap(() => console.log('getting trip leg'))\r\n );\r\n }\r\n\r\n public getLegViewModel(leg: TripLegRecord): Observable {\r\n const startingWaypoint$ =\r\n leg.startingWaypointId != null\r\n ? this._model.getWaypointById(leg.startingWaypointId)\r\n : of(undefined);\r\n const endingWaypoint$ =\r\n leg.endingWaypointId != null\r\n ? this._model.getWaypointById(leg.endingWaypointId)\r\n : of(undefined);\r\n\r\n return combineLatest([startingWaypoint$, endingWaypoint$]).pipe(\r\n map(([startingWaypoint, endingWaypoint]) => {\r\n return new TripLegViewModel(leg, this, startingWaypoint, endingWaypoint, this._model);\r\n }),\r\n );\r\n }\r\n}\r\n","import { format } from 'date-fns';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { operationTypeConfig } from 'src/app/ops/config/operation-type-config';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { CardViewModel } from 'src/models/card-view-model';\r\nimport { TripLegViewModel_DEPRECATED } from 'src/models/trip-leg-view-model';\r\nimport { TripViewModel } from 'src/models/trip-view-model';\r\nimport { selectViewModel } from 'src/models/view-model-helper';\r\nimport { selectPrimaryTripByCardNumber } from 'src/store/entityStores/trip-selectors';\r\nimport { selectCurrentOrNextTripLegByCardNumber_DEPRECATED } from 'src/store/entityStores/tripleg-selectors';\r\nimport {\r\n OperationRecord,\r\n OperationViewModelBase,\r\n} from 'src/store/generated/operation-record.generated';\r\nimport { selectVehicleById, VehicleRecord } from 'src/store/generated/vehicle-record.generated';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport { humanize } from 'src/util/text';\r\nimport { UnitViewModel } from './unit-view-model';\r\n\r\nexport class OperationViewModel extends OperationViewModelBase {\r\n public readonly trip$: Observable;\r\n public readonly vehicle$: Observable;\r\n\r\n get tripIfExists$(): Observable {\r\n return this.trip$.pipe(filterNull());\r\n }\r\n\r\n get options() {\r\n return operationTypeConfig[this.type];\r\n }\r\n\r\n get statusDisplay(): string {\r\n return humanize(this.status);\r\n }\r\n\r\n /**\r\n * Use TripViewModel.currentOrNextTripLeg$ instead\r\n */\r\n get currentOrNextTripLeg_DEPRECATED$() {\r\n return selectViewModel(\r\n this._model.store,\r\n selectCurrentOrNextTripLegByCardNumber_DEPRECATED(this.card.cardNumber),\r\n (tripLeg) =>\r\n tripLeg == null ? undefined : new TripLegViewModel_DEPRECATED(tripLeg, this._model),\r\n );\r\n }\r\n\r\n get dateOperationStartedDisplay() {\r\n return format(this.dateOperationStarted, 'MM/dd/yyyy HH:mm');\r\n }\r\n\r\n constructor(\r\n operation: OperationRecord,\r\n public readonly card: CardViewModel,\r\n public readonly unit: UnitViewModel | undefined,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(operation);\r\n this.trip$ = _model.store\r\n .select(selectPrimaryTripByCardNumber(this.card.cardNumber))\r\n .pipe(map((trip) => (trip != null ? new TripViewModel(trip, this, _model) : undefined)));\r\n\r\n this.vehicle$ = _model.store.select(selectVehicleById(this.vehicleId));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { OrderedSet, Seq, Set } from 'immutable';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map } from 'rxjs/operators';\r\nimport {\r\n CardStatus,\r\n NotificationStatus,\r\n UnitStatus,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectNotificationsByRegionId } from 'src/store/entityStores/notification-selectors';\r\nimport { selectUnitSummariesByRegionId } from 'src/store/entityStores/unit-selectors';\r\nimport { selectCardSummaryEntitiesByRegionId } from 'src/store/generated/card-summary-record.generated';\r\nimport { RegionEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport { RegionRecord, RegionViewModelBase } from 'src/store/generated/region-record.generated';\r\nimport { createObservableLookup, ObservableLookup } from 'src/util/lookup';\r\nimport { undefinedOrMap } from 'src/util/rxjs/operators';\r\nimport { getOrElse } from 'src/util/values';\r\n\r\nexport class RegionViewModel extends RegionViewModelBase {\r\n public cardNumbers$: Observable>;\r\n public cardIdsByStatus: ObservableLookup>;\r\n public nonHiddenUnitIdsByStatus: ObservableLookup>;\r\n public allUnitIdsByStatus: ObservableLookup>;\r\n public allUnitIds$: Observable>;\r\n public nonHiddenUnitIds$: Observable>;\r\n public notificationIds$: Observable>;\r\n constructor(region: RegionRecord, store: Store) {\r\n super(region);\r\n this.cardNumbers$ = store.select(selectCardSummaryEntitiesByRegionId(this.id)).pipe(\r\n distinctUntilChanged(),\r\n map((cards) => cards.map((card) => card.cardNumber).toSet()),\r\n distinctUntilChanged(),\r\n );\r\n this.cardIdsByStatus = createObservableLookup(CardStatus, (cardStatus) =>\r\n store.select(selectCardSummaryEntitiesByRegionId(this.id)).pipe(\r\n distinctUntilChanged(),\r\n map((cards) =>\r\n cards\r\n .filter((r) => r.status === cardStatus)\r\n .sort((a, b) => {\r\n return a.dateCreated < b.dateCreated ? -1 : 1;\r\n })\r\n .map((c) => c.id)\r\n .toSet(),\r\n ),\r\n distinctUntilChanged(),\r\n ),\r\n );\r\n\r\n this.allUnitIds$ = store.select(selectUnitSummariesByRegionId(region.id)).pipe(\r\n distinctUntilChanged(),\r\n map((units) => units.map((u) => u.id).toSet()),\r\n distinctUntilChanged(),\r\n );\r\n this.nonHiddenUnitIds$ = store.select(selectUnitSummariesByRegionId(region.id, false)).pipe(\r\n distinctUntilChanged(),\r\n\r\n map((units) =>\r\n units\r\n .filter((u) => getOrElse(u.isHidden, false) === false)\r\n .map((u) => u.id)\r\n .toSet(),\r\n ),\r\n distinctUntilChanged(),\r\n );\r\n\r\n this.nonHiddenUnitIdsByStatus = createObservableLookup(UnitStatus, (unitStatus) =>\r\n store.select(selectUnitSummariesByRegionId(region.id, false)).pipe(\r\n distinctUntilChanged(),\r\n map((units) =>\r\n units\r\n .filter((u) => !getOrElse(u.isHidden, false))\r\n .sort((a, b) => a.abbreviation.localeCompare(b.abbreviation))\r\n .filter((u) => u.status === unitStatus)\r\n .map((u) => u.id),\r\n ),\r\n distinctUntilChanged(),\r\n ),\r\n );\r\n\r\n this.allUnitIdsByStatus = createObservableLookup(UnitStatus, (unitStatus) =>\r\n store.select(selectUnitSummariesByRegionId(region.id)).pipe(\r\n distinctUntilChanged(),\r\n map((units) =>\r\n units\r\n .sort((a, b) => a.abbreviation.localeCompare(b.abbreviation))\r\n .filter((u) => u.status === unitStatus)\r\n .map((u) => u.id),\r\n ),\r\n distinctUntilChanged(),\r\n ),\r\n );\r\n\r\n this.notificationIds$ = store\r\n .select(\r\n selectNotificationsByRegionId(\r\n region.id,\r\n NotificationStatus.AwaitingApproval,\r\n NotificationStatus.Failed,\r\n ),\r\n )\r\n .pipe(\r\n distinctUntilChanged(),\r\n map((notifications) => notifications.map((u) => u.id).toOrderedSet()),\r\n distinctUntilChanged(),\r\n );\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RegionViewModelService {\r\n constructor(\r\n private readonly _regionFetchService: RegionEntityFetchService,\r\n private _store: Store,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._regionFetchService\r\n .getById(id)\r\n .pipe(undefinedOrMap((region) => new RegionViewModel(region, this._store)));\r\n }\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllRendezvousRequests } from './entity-store-selectors';\r\n\r\nexport function selectRendezvousRequestById(id: string) {\r\n return createSelector(selectAllRendezvousRequests, (rr) => {\r\n return rr.find((r) => r.id === id && r.cancelledAt == null);\r\n });\r\n}\r\n\r\nexport function selectRendezvousRequestByRequestLocationId(requestLocationId: string) {\r\n return createSelector(selectAllRendezvousRequests, (rr) => {\r\n return rr.find((r) => r.requestLocationId === requestLocationId && r.cancelledAt == null);\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { AppState } from 'src/store/appstate';\r\n\r\nexport const selectAllCardLinks = (state: AppState) => state.entityStores.cardLink.entities;\r\n\r\nexport function selectCardLinkById(id: string) {\r\n return createSelector(selectAllCardLinks, (cardLink) => cardLink.get(id));\r\n}\r\n\r\nexport function selectCardLinksByRendezvousRequestId(rendezvousRequestId: string) {\r\n return createSelector(selectAllCardLinks, (cardLinks) =>\r\n cardLinks\r\n .valueSeq()\r\n .filter((c) => c.rendezvousRequestId === rendezvousRequestId)\r\n .sortBy((c) => c.toCardNumber),\r\n );\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Seq } from 'immutable';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectCardLinksByRendezvousRequestId } from 'src/store/entityStores/card-link-selectors';\r\nimport { RendezvousRequestEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n RendezvousRequestRecord,\r\n RendezvousRequestViewModelBase,\r\n} from 'src/store/generated/rendezvous-request-record.generated';\r\nimport { undefinedOrMap } from 'src/util/rxjs/operators';\r\n\r\nexport class RendezvousRequestViewModel extends RendezvousRequestViewModelBase {\r\n public cardLinkIds$: Observable>;\r\n public cardLinkCardNumbers$: Observable>;\r\n\r\n get canConfirm() {\r\n return this.confirmedAt == null;\r\n }\r\n\r\n get canDepartLz() {\r\n return this.confirmedAt != null && this.departedLzAt == null;\r\n }\r\n\r\n get canArriveDest() {\r\n return this.departedLzAt != null && this.arrivedDestAt == null;\r\n }\r\n\r\n get canDepartDest() {\r\n return this.arrivedDestAt != null && this.departedDestAt == null;\r\n }\r\n\r\n get canArriveLz() {\r\n return this.departedDestAt != null && this.arrivedLzAt == null;\r\n }\r\n\r\n get isConfirmed() {\r\n return this.confirmedAt != null;\r\n }\r\n\r\n get hasDepartedLz() {\r\n return this.departedLzAt != null;\r\n }\r\n\r\n get hasArrivedAtDest() {\r\n return this.arrivedDestAt != null;\r\n }\r\n\r\n get hasDepartedDest() {\r\n return this.departedDestAt != null;\r\n }\r\n\r\n get hasArrivedAtLz() {\r\n return this.arrivedLzAt != null;\r\n }\r\n\r\n constructor(rendezvousRequestRecord: RendezvousRequestRecord, private _store: Store) {\r\n super(rendezvousRequestRecord);\r\n\r\n this.cardLinkIds$ = _store\r\n .select(selectCardLinksByRendezvousRequestId(rendezvousRequestRecord.id))\r\n .pipe(map((cardLinks) => cardLinks.map((cl) => cl.id)));\r\n\r\n this.cardLinkCardNumbers$ = _store\r\n .select(selectCardLinksByRendezvousRequestId(rendezvousRequestRecord.id))\r\n .pipe(map((cardLinks) => cardLinks.map((cardLink) => cardLink.toCardNumber)));\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RendezvousRequestViewModelService {\r\n constructor(\r\n private _entity: RendezvousRequestEntityFetchService,\r\n private _store: Store,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._entity\r\n .getById(id)\r\n .pipe(undefinedOrMap((rr) => new RendezvousRequestViewModel(rr, this._store)));\r\n }\r\n}\r\n","import { Seq } from 'immutable';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { RuleMatchType, WaypointType } from 'src/graphql/generated/graphql.generated';\r\nimport { RequestViewModel } from 'src/models/request-view-model';\r\nimport { selectRendezvousRequestByRequestLocationId } from 'src/store/entityStores/rendezvous-request-selectors';\r\nimport { ActiveAlertRecord } from 'src/store/generated/active-alert-record.generated';\r\nimport { DiversionReasonRecord } from 'src/store/generated/diversion-reason-record.generated';\r\nimport { MedicalFacilityUnitRecord } from 'src/store/generated/medical-facility-unit-record.generated';\r\nimport { PhysicianRecord } from 'src/store/generated/physician-record.generated';\r\nimport { hasLatLng } from 'src/store/model-helpers';\r\nimport { NavigationLink } from 'src/util/angular/ng-navigation-fx';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport {\r\n RequestLocationRecord,\r\n RequestLocationViewModelBase,\r\n} from '../store/generated/request-location-record.generated';\r\nimport { FboViewModel } from './fbo-view-model';\r\nimport { LocationHazardViewModel } from './location-hazard-view-model';\r\nimport { LocationViewModel } from './location-view-model';\r\nimport { MedicalFacilityViewModel } from './medical-facility-view-model';\r\nimport { RendezvousRequestViewModel } from './rendezvous-request-view-model';\r\nimport { pickupOrDropoffDescription, ruleMatchType } from './waypoint-view-model';\r\n\r\nexport class RequestLocationViewModel extends RequestLocationViewModelBase {\r\n public rendezvousRequest$: Observable;\r\n public readonly fbo$: Observable;\r\n public readonly displayName$: Observable;\r\n public readonly medicalFacility$: Observable;\r\n public readonly hazards$: Observable>;\r\n public readonly alerts$: Observable>;\r\n public readonly medicalFacilityUnit$: Observable;\r\n public readonly diversionReason$: Observable;\r\n public readonly physician$: Observable;\r\n\r\n get patientLocation() {\r\n const location = this.roomNumber != null ? 'Room ' + this.roomNumber : '';\r\n return this.type !== WaypointType.ReceivingFacility ? this.abbreviation : location;\r\n }\r\n\r\n get hasLatLng() {\r\n return hasLatLng(this);\r\n }\r\n\r\n get pickupDropoffDescription(): 'Pickup' | 'Dropoff' | undefined {\r\n return pickupOrDropoffDescription(this.type);\r\n }\r\n\r\n get ruleMatchType(): RuleMatchType {\r\n return ruleMatchType(this.type);\r\n }\r\n\r\n constructor(\r\n requestLocationRecord: RequestLocationRecord,\r\n public readonly request: RequestViewModel,\r\n public readonly location: LocationViewModel | undefined,\r\n private _model: ViewModelService,\r\n ) {\r\n super(requestLocationRecord);\r\n this.alerts$ = request.card.request$.pipe(\r\n switchMap(() => request.card.getAllActiveAlerts(this.ruleMatchType)),\r\n );\r\n this.editNavigationLink$ = this.request.card.trip$.pipe(\r\n undefinedOrSwitchMap((trip) => trip.getWaypointByType(this.type)),\r\n map((wp) =>\r\n wp == null\r\n ? undefined\r\n : this._model.nav.currentCompany.ops\r\n .card(this.request.card.cardNumber)\r\n .trip.editWaypoint(wp.id),\r\n ),\r\n );\r\n\r\n this.rendezvousRequest$ = this._getRendezvousRequest();\r\n this.medicalFacility$ =\r\n this.medicalFacilityId != null\r\n ? this._model.getMedicalFacilityById(this.medicalFacilityId)\r\n : of(undefined);\r\n\r\n this.medicalFacilityUnit$ =\r\n this.medicalFacilityUnitId != null\r\n ? this._model.getMedicalFacilityUnitById(this.medicalFacilityUnitId)\r\n : of(undefined);\r\n\r\n this.physician$ =\r\n this.physicianId != null ? this._model.getPhysicianById(this.physicianId) : of(undefined);\r\n\r\n const locationHazards$ =\r\n location != null ? location.hazards$ : of(Seq.Indexed());\r\n const medicalFacilityHazards$ = this.medicalFacility$.pipe(\r\n switchMap((mf) =>\r\n mf != null && mf.location != null\r\n ? mf.location.hazards$\r\n : of(Seq.Indexed()),\r\n ),\r\n );\r\n\r\n this.hazards$ = combineLatest([locationHazards$, medicalFacilityHazards$]).pipe(\r\n map(([locHazards, medFacilityHazards]) => {\r\n return locHazards\r\n .concat(medFacilityHazards)\r\n .groupBy((h) => h.id)\r\n .map((v) => v.first())\r\n .valueSeq();\r\n }),\r\n );\r\n\r\n this.fbo$ = this.fboId == null ? of(undefined) : this._model.getFboById(this.fboId);\r\n\r\n this.displayName$ =\r\n this.medicalFacilityId != null\r\n ? this.medicalFacility$.pipe(\r\n filterNull(),\r\n map((r) => {\r\n return r.name !== this.name\r\n ? `${r.abbreviation} (LZ-${this.abbreviation})`\r\n : r.abbreviation;\r\n }),\r\n )\r\n : of(this.abbreviation);\r\n\r\n this.diversionReason$ =\r\n this.diversionReasonId == null\r\n ? of(undefined)\r\n : this._model.diversionReasons.getById(this.diversionReasonId);\r\n }\r\n\r\n get canArrangeTransport() {\r\n return !this.request.card.isReadOnly;\r\n }\r\n\r\n public editNavigationLink$: Observable;\r\n\r\n private _getRendezvousRequest() {\r\n return this._model.store.select(selectRendezvousRequestByRequestLocationId(this.id)).pipe(\r\n filterNull(),\r\n map((rr) => new RendezvousRequestViewModel(rr, this._model.store)),\r\n );\r\n }\r\n}\r\n","import { differenceInYears } from 'date-fns';\r\nimport { Observable, of } from 'rxjs';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { Gender } from 'src/graphql/generated/graphql.generated';\r\nimport { RequestViewModel } from 'src/models/request-view-model';\r\nimport {\r\n RequestPatientRecord,\r\n RequestPatientViewModelBase,\r\n} from 'src/store/generated/request-patient-record.generated';\r\nimport { TransferReasonRecord } from 'src/store/generated/transfer-reason-record.generated';\r\nimport { formatDate } from 'src/util/date';\r\nimport { kilogramsToPounds, roundWeight } from 'src/util/units';\r\n\r\nexport class RequestPatientViewModel extends RequestPatientViewModelBase {\r\n public readonly name: string;\r\n public readonly transferReason$: Observable;\r\n\r\n get weightString() {\r\n return this.weightInKg == null\r\n ? ''\r\n : `${kilogramsToPounds(this.weightInKg, 2)} lbs / ${roundWeight(this.weightInKg, 2)} kg`;\r\n }\r\n\r\n get ageGenderString() {\r\n const born =\r\n this.dateOfBirth == null ? null : `born ${formatDate(this.dateOfBirth, 'MM/dd/yyyy')}`;\r\n const age =\r\n this.dateOfBirth == null ? null : differenceInYears(new Date(Date.now()), this.dateOfBirth);\r\n const lifeStage =\r\n age == null ? null : age < 13 ? 'child' : age < 18 ? 'teen' : age < 65 ? 'adult' : 'elderly';\r\n const gender =\r\n this.gender === Gender.Unspecified ? null : `Gender: ${this.gender.toLocaleLowerCase()}`;\r\n const ageGender = [age == null ? null : `${age} y/o`, lifeStage, gender].join(' ').trim();\r\n return born == null ? ageGender : ageGender === '' ? '' : `${ageGender}, ${born}`;\r\n }\r\n\r\n get rideAlongAgeString() {\r\n const born =\r\n this.rideAlongDateOfBirth == null\r\n ? null\r\n : `born ${formatDate(this.rideAlongDateOfBirth, 'MM/dd/yyyy')}`;\r\n const age =\r\n this.rideAlongDateOfBirth == null\r\n ? null\r\n : differenceInYears(new Date(Date.now()), this.rideAlongDateOfBirth);\r\n return this.rideAlongDateOfBirth == null ? 'Unknown' : `${age}, ${born}`;\r\n }\r\n\r\n constructor(\r\n requestPatient: RequestPatientRecord,\r\n public readonly request: RequestViewModel,\r\n private _model: ViewModelService,\r\n ) {\r\n super(requestPatient);\r\n this.name = [this.firstName, this.lastName].join(' ').trim();\r\n\r\n this.transferReason$ =\r\n this.transferReasonId == null\r\n ? of(undefined)\r\n : this._model.transferReasons.getById(this.transferReasonId);\r\n }\r\n\r\n get rideAlongWeightString() {\r\n return this.rideAlongWeightInKg == null\r\n ? ''\r\n : `${kilogramsToPounds(this.rideAlongWeightInKg, 2)} lbs / ${roundWeight(\r\n this.rideAlongWeightInKg,\r\n 2,\r\n )} kg`;\r\n }\r\n}\r\n","import { convertDistance, getPreciseDistance } from 'geolib';\r\nimport { Set } from 'immutable';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { filter, map, switchMap } from 'rxjs/operators';\r\nimport { operationTypeConfig } from 'src/app/ops/config/operation-type-config';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { SystemTimestampType } from 'src/graphql/generated/graphql.generated';\r\nimport { CardViewModel } from 'src/models/card-view-model';\r\nimport { RequestLocationViewModel } from 'src/models/request-location-view-model';\r\nimport { RequestPatientViewModel } from 'src/models/request-patient-view-model';\r\nimport { RequesterViewModel } from 'src/models/requester-view-model';\r\nimport { TransportOfferViewModel } from 'src/models/transport-offer-view-model';\r\nimport { selectViewModel } from 'src/models/view-model-helper';\r\nimport { selectRequesterByRequestId } from 'src/store/entityStores/requester-selectors';\r\nimport { selectTimestampByCardIdAndType } from 'src/store/entityStores/timestamp-selectors';\r\nimport {\r\n selectActiveTransportOfferByRequestId,\r\n selectAutoDeclineTransportOffersByRequestId,\r\n selectAvailableOrRespondedTransportOffersByRequestId,\r\n selectCancelledOrDeclinedTransportOffersByRequestId,\r\n selectFirstCandidateTransportOfferByRequestId,\r\n selectSkippedOrDeclinedTransportOffersByRequestId,\r\n selectTransportOffersByRequestId,\r\n} from 'src/store/entityStores/transport-offer-selectors';\r\nimport { RequestRecord, RequestViewModelBase } from 'src/store/generated/request-record.generated';\r\nimport { hasCoordinates } from 'src/store/model-helpers';\r\nimport { getLatLng } from 'src/util/mapping/trip-leg-model-record';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport { round } from 'lodash-es';\r\nimport {\r\n selectAllPatientsByRequestId,\r\n selectInitialDestinationByRequestId,\r\n selectRequestPatientByRequestId,\r\n selectTargetDestinationByRequestId,\r\n} from '../store/entityStores/request-selectors';\r\nimport { selectOfferedOrAcceptedTransportByRequestId } from '../store/entityStores/transport-offer-selectors';\r\n\r\nexport class RequestViewModel extends RequestViewModelBase {\r\n public readonly card: CardViewModel;\r\n public readonly transportOfferIds$: Observable>;\r\n public readonly availableOrRespondedOfferIds$: Observable>;\r\n public readonly skippedOrDeclinedOfferIds$: Observable>;\r\n public readonly autoDeclineOfferIds$: Observable>;\r\n public readonly cancelledOrDeclinedOfferIds$: Observable>;\r\n public readonly offeredOrAcceptedTransportId$: Observable;\r\n public readonly requestPatientIds$: Observable>;\r\n public readonly initialDestination$: Observable;\r\n public readonly targetDestination$: Observable;\r\n public readonly requestPatient$: Observable;\r\n\r\n public readonly activeOffer$: Observable;\r\n public readonly requestPatientIfExists$: Observable;\r\n public readonly requesterIfExists$: Observable;\r\n public readonly estimatedLoadedMileageInMeters$: Observable;\r\n public readonly estimatedLoadedMileageInMiles$: Observable;\r\n public readonly estimatedLoadedMileageInNauticalMiles$: Observable;\r\n\r\n public readonly requester$: Observable;\r\n public readonly isWebOrderAndWaiting$: Observable;\r\n public readonly firstCandidate$: Observable;\r\n\r\n get requestedOperationTypeConfig() {\r\n return operationTypeConfig[this.requestedOperationType];\r\n }\r\n\r\n get isWebOrder() {\r\n return this.card.apiWebhookSubscriptionId != null;\r\n }\r\n\r\n constructor(\r\n request: RequestRecord,\r\n card: CardViewModel,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(request);\r\n this.card = card;\r\n\r\n this.transportOfferIds$ = _model.store\r\n .select(selectTransportOffersByRequestId(this.id))\r\n .pipe(map((offers) => offers.map((o) => o.id).toOrderedSet()));\r\n\r\n this.offeredOrAcceptedTransportId$ = _model.store\r\n .select(selectOfferedOrAcceptedTransportByRequestId(this.id))\r\n .pipe(map((offer) => (offer == null ? undefined : offer.id)));\r\n\r\n this.availableOrRespondedOfferIds$ = _model.store\r\n .select(selectAvailableOrRespondedTransportOffersByRequestId(this.id))\r\n .pipe(map((offers) => offers.map((o) => o.id).toOrderedSet()));\r\n\r\n this.skippedOrDeclinedOfferIds$ = _model.store\r\n .select(selectSkippedOrDeclinedTransportOffersByRequestId(this.id))\r\n .pipe(map((offers) => offers.map((o) => o.id).toOrderedSet()));\r\n\r\n this.autoDeclineOfferIds$ = _model.store\r\n .select(selectAutoDeclineTransportOffersByRequestId(this.id))\r\n .pipe(map((offers) => offers.map((o) => o.id).toOrderedSet()));\r\n\r\n this.cancelledOrDeclinedOfferIds$ = _model.store\r\n .select(selectCancelledOrDeclinedTransportOffersByRequestId(this.id))\r\n .pipe(map((offers) => offers.map((o) => o.id).toOrderedSet()));\r\n\r\n this.activeOffer$ = _model.store.select(selectActiveTransportOfferByRequestId(this.id)).pipe(\r\n filterNull(),\r\n switchMap((offer) => this.getTransportOffer(offer.id)),\r\n );\r\n\r\n this.firstCandidate$ = _model.store\r\n .select(selectFirstCandidateTransportOfferByRequestId(this.id))\r\n .pipe(\r\n switchMap((to) => {\r\n if (to == null) {\r\n return of(undefined);\r\n }\r\n\r\n return this.getTransportOffer(to.id);\r\n }),\r\n );\r\n\r\n this.requestPatientIds$ = this._model.store\r\n .select(selectAllPatientsByRequestId(this.id))\r\n .pipe(map((patients) => patients.map((p) => p.id).toOrderedSet()));\r\n\r\n this.requestPatient$ = selectViewModel(\r\n _model.store,\r\n selectRequestPatientByRequestId(this.id),\r\n (requestPatient) => {\r\n return requestPatient == null\r\n ? undefined\r\n : new RequestPatientViewModel(requestPatient, this, this._model);\r\n },\r\n );\r\n\r\n this.requestPatientIfExists$ = this.requestPatient$.pipe(filterNull());\r\n\r\n this.requester$ = selectViewModel(\r\n _model.store,\r\n selectRequesterByRequestId(this.id),\r\n (requester) => {\r\n return requester == null ? undefined : new RequesterViewModel(requester, this, _model);\r\n },\r\n );\r\n\r\n this.requesterIfExists$ = this.requester$.pipe(filterNull());\r\n\r\n this.initialDestination$ = this._model.store\r\n .select(selectInitialDestinationByRequestId(this.id))\r\n .pipe(\r\n switchMap((rl) => (rl != null ? this._model.getRequestLocationById(rl.id) : of(undefined))),\r\n );\r\n this.targetDestination$ = this._model.store\r\n .select(selectTargetDestinationByRequestId(this.id))\r\n .pipe(\r\n switchMap((rl) => (rl != null ? this._model.getRequestLocationById(rl.id) : of(undefined))),\r\n );\r\n\r\n const isWebOrderAcknowledged$ = this._model.store\r\n .select(\r\n selectTimestampByCardIdAndType(this.card.id, SystemTimestampType.WebOrderAcknowledged),\r\n )\r\n .pipe(map((ts) => (ts == null ? false : true)));\r\n\r\n this.isWebOrderAndWaiting$ = combineLatest(of(this.isWebOrder), isWebOrderAcknowledged$).pipe(\r\n map(([isWebOrder, acknowledged]) => isWebOrder && !acknowledged),\r\n );\r\n\r\n this.estimatedLoadedMileageInMeters$ = combineLatest(\r\n this.initialDestination$.pipe(filterNull()),\r\n this.targetDestination$.pipe(filterNull()),\r\n ).pipe(\r\n filter(([initialDest, targetDest]) => {\r\n return (\r\n initialDest.address != null &&\r\n hasCoordinates(initialDest.address.coordinates) &&\r\n targetDest.address != null &&\r\n hasCoordinates(targetDest.address.coordinates)\r\n );\r\n }),\r\n map(([initialDest, targetDest]) => {\r\n const distanceInMeters = getPreciseDistance(getLatLng(initialDest), getLatLng(targetDest));\r\n return distanceInMeters;\r\n }),\r\n );\r\n\r\n this.estimatedLoadedMileageInMiles$ = this.estimatedLoadedMileageInMeters$.pipe(\r\n map((distanceInMeters) => round(convertDistance(distanceInMeters, 'mi'), 0)),\r\n );\r\n\r\n this.estimatedLoadedMileageInNauticalMiles$ = this.estimatedLoadedMileageInMeters$.pipe(\r\n map((distanceInMeters) => round(convertDistance(distanceInMeters, 'sm'), 0)),\r\n );\r\n }\r\n\r\n public getTransportOffer(id: string): Observable {\r\n return this._model.getTransportOfferById(id);\r\n }\r\n}\r\n","import { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport {\r\n RequesterRecord,\r\n RequesterViewModelBase,\r\n} from 'src/store/generated/requester-record.generated';\r\nimport { RequestViewModel } from './request-view-model';\r\n\r\nexport class RequesterViewModel extends RequesterViewModelBase {\r\n constructor(\r\n requester: RequesterRecord,\r\n public readonly request: RequestViewModel,\r\n private readonly _model: ViewModelService,\r\n ) {\r\n super(requester);\r\n }\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { selectAllRequesters } from './entity-store-selectors';\r\n\r\nexport function selectRequesterByRequestId(requestId: string) {\r\n return createSelector(selectAllRequesters, (requesters) => {\r\n return requesters.find((r) => r.requestId === requestId);\r\n });\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it \r\nTemplate: ViewModel.cst\r\n */\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport {\r\n TimelineItemRecord,\r\n TimelineItemViewModelBase,\r\n} from 'src/store/generated/timeline-item-record.generated';\r\nimport { TimestampTypeRecord } from 'src/store/generated/timestamp-type-record.generated';\r\nimport { TimestampTypeViewModel } from './timestamp-type-view-model';\r\n\r\nexport class TimelineItemViewModel extends TimelineItemViewModelBase {\r\n public readonly timestampType: TimestampTypeViewModel;\r\n\r\n constructor(\r\n timeline: TimelineItemRecord,\r\n timestampType: TimestampTypeRecord,\r\n private _model: ViewModelService,\r\n ) {\r\n super(timeline);\r\n this.timestampType = new TimestampTypeViewModel(timestampType);\r\n }\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\nimport { addMinutes } from 'date-fns';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport {\r\n CardLinkType,\r\n TransportOfferResponse,\r\n TransportOfferStatus,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { RequestViewModel } from 'src/models/request-view-model';\r\nimport {\r\n CardSummaryRecord,\r\n selectAllCardSummaryEntities,\r\n} from 'src/store/generated/card-summary-record.generated';\r\nimport {\r\n TransportOfferRecord,\r\n TransportOfferViewModelBase,\r\n} from 'src/store/generated/transport-offer-record.generated';\r\nimport { formatDate } from 'src/util/date';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { humanize } from 'src/util/text';\r\nimport { getOrElse } from 'src/util/values';\r\nimport { shareReplaySafe } from 'src/util/rxjs/operators/share-replay-safe';\r\nimport { CompanyViewModel } from './company-view-model';\r\nimport { UnitSummaryViewModel } from './unit-summary-view-model';\r\nimport { VehicleSummaryViewModel } from './vehicle-summary-view-model';\r\n\r\nexport interface OfferAttributeViewModel {\r\n label: string;\r\n value: string | number | null;\r\n valueClass?: string;\r\n tooltip?: string;\r\n}\r\nexport interface OfferSummaryViewModel {\r\n description: string;\r\n descriptionClass?: string;\r\n status?: string;\r\n statusClass?: string;\r\n attributes: OfferAttributeViewModel[];\r\n}\r\nexport interface TransportOfferEstimatedValues {\r\n etloInMinutes: number;\r\n eteInMinutes: number;\r\n etaInMinutes: number;\r\n onBaseEtaInMinutes: number;\r\n specialityTeamEtlo: number;\r\n specialityTeamEte: number;\r\n times: { [zone: string]: Date };\r\n displayTime: (date: Date | number | string) => string;\r\n}\r\nexport function isPriorOffer({\r\n status,\r\n response,\r\n}: {\r\n status: TransportOfferStatus;\r\n response: TransportOfferResponse;\r\n}): boolean {\r\n return (\r\n status === TransportOfferStatus.Skipped ||\r\n status === TransportOfferStatus.Cancelled ||\r\n response === TransportOfferResponse.Declined ||\r\n response === TransportOfferResponse.Aborted\r\n );\r\n}\r\nfunction offerAttributes(offer: TransportOfferViewModel): OfferAttributeViewModel[] {\r\n return [\r\n {\r\n label: 'Distance',\r\n value: `${offer.distanceInNauticalMiles}nm`,\r\n tooltip: `${offer.distanceInMiles}mi`,\r\n },\r\n { label: 'Heading', value: offer.heading },\r\n { label: 'Ground Leg', value: 'N/A' },\r\n ];\r\n}\r\nfunction createViewModelFromUnitSummary(\r\n offer: TransportOfferViewModel,\r\n unitSummary: UnitSummaryViewModel,\r\n vehicleSummary?: VehicleSummaryViewModel,\r\n) {\r\n let statusRollup = `${humanize(unitSummary.status)}`;\r\n if (vehicleSummary != null) {\r\n if (vehicleSummary.isEnRoute) {\r\n const destination = vehicleSummary.to != null ? ` ${humanize(vehicleSummary.to.type)}` : '';\r\n statusRollup = `${humanize(vehicleSummary.status)}${destination}`;\r\n } else {\r\n const currentWaypointDisplay =\r\n vehicleSummary.from != null ? humanize(vehicleSummary.from.type) : '';\r\n statusRollup = `${humanize(\r\n vehicleSummary.statusDescription.includes('Standby') ? 'Standby' : unitSummary.status,\r\n )} at ${currentWaypointDisplay}`;\r\n }\r\n }\r\n return {\r\n description: unitSummary.abbreviation,\r\n descriptionClass: `unit__abbreviation--${unitSummary.status}`,\r\n status: statusRollup,\r\n statusClass: `unit__header--${unitSummary.status}`,\r\n attributes: [\r\n ...offerAttributes(offer),\r\n {\r\n label: 'Wx at Base',\r\n value: unitSummary.weatherStatus,\r\n valueClass: `unit__weather--${unitSummary.weatherStatus}`,\r\n },\r\n ],\r\n };\r\n}\r\nfunction createViewModelForInternalReferral(offer: TransportOfferViewModel): OfferSummaryViewModel {\r\n return {\r\n description: offer.unitDescription,\r\n status: 'Unknown',\r\n attributes: offerAttributes(offer),\r\n };\r\n}\r\nfunction createViewModelForExternalReferral(offer: TransportOfferViewModel): OfferSummaryViewModel {\r\n return {\r\n description: offer.unitDescription,\r\n status: 'Unknown',\r\n attributes: offerAttributes(offer),\r\n };\r\n}\r\nexport function selectCardSummaryByRequestId(vm: ViewModelService, requestId: string) {\r\n return vm.store\r\n .select(\r\n createSelector(selectAllCardSummaryEntities, (entities) =>\r\n entities\r\n .filter((e) => (e.request == null ? false : e.request.id === requestId))\r\n .valueSeq()\r\n .first(undefined),\r\n ),\r\n )\r\n .pipe(undefinedOrSwitchMap((cardSummaryRecord) => vm.getCardSummaryById(cardSummaryRecord.id)));\r\n}\r\nexport class TransportOfferViewModel extends TransportOfferViewModelBase {\r\n public readonly request: RequestViewModel;\r\n public readonly summary$: Observable;\r\n public readonly unitSummary$: Observable;\r\n public readonly estimatedValues$: Observable;\r\n public readonly canOffer$: Observable<\r\n { canOffer: true } | { canOffer: false; reasons: string[] }\r\n >;\r\n public readonly isSpecialityTeamSelected$: Observable;\r\n\r\n get isReferral(): boolean {\r\n return this._props.isReferral === true;\r\n }\r\n\r\n get isExternal(): boolean {\r\n return this.isReferral && this.unitId == null;\r\n }\r\n\r\n get isSisterCompany(): boolean {\r\n return this.isReferral && this.unitId != null;\r\n }\r\n\r\n get isPriorOffer(): boolean {\r\n return isPriorOffer(this);\r\n }\r\n\r\n get isAutoDeclinable$() {\r\n return combineLatest([this._hasAutoDeclineOfferId$, this.unitSummary$]).pipe(\r\n map(\r\n ([hasId, unit]) =>\r\n hasId &&\r\n (this.request.isOffering || this.request.isAssignmentDelayed) &&\r\n (unit == null || !unit.isAvailable),\r\n ),\r\n );\r\n }\r\n\r\n get canOfferAutoDeclinable$() {\r\n return combineLatest([this._hasAutoDeclineOfferId$, this.unitSummary$]).pipe(\r\n map(([hasId, unit]) => hasId && this.request.isOffering && unit != null && unit.isAvailable),\r\n );\r\n }\r\n\r\n get allowStandby() {\r\n return (\r\n !this.isReferral && this.isOffered && (this.request.isSceneCall || this.request.isTransfer)\r\n );\r\n }\r\n\r\n get canPatientOriginateAtUnit() {\r\n return (\r\n !this.isReferral && this.isOffered && (this.request.isSceneCall || this.request.isTransfer)\r\n );\r\n }\r\n\r\n get referralTypeDisplay(): 'External' | null {\r\n if (this.isReferral) {\r\n return this.isSisterCompany ? null : 'External';\r\n }\r\n return null;\r\n }\r\n\r\n get heading() {\r\n if (this.bearingInDegrees != null) {\r\n return this.bearingInDegrees.toFixed(0);\r\n }\r\n return this.bearingInDegrees;\r\n }\r\n\r\n get distanceInNauticalMiles() {\r\n return this.distanceInMiles != null ? (this.distanceInMiles * 0.868976).toFixed(0) : undefined;\r\n }\r\n\r\n get unitDescription(): string {\r\n return getOrElse(this._props.unitDescription, 'Unknown');\r\n }\r\n\r\n get estimatedDepartureTimeInMinutes(): number {\r\n return getOrElse(this._props.estimatedDepartureTimeInMinutes, 0);\r\n }\r\n\r\n get estimatedTimeEnRouteInMinutes(): number {\r\n return getOrElse(this._props.estimatedTimeEnRouteInMinutes, 0);\r\n }\r\n\r\n get estimatedTimeToArrivalInMinutes(): number {\r\n return (\r\n this.estimatedDepartureTimeInMinutes +\r\n this.estimatedTimeEnRouteInMinutes +\r\n this.specialtyTeamETLO +\r\n this.specialtyTeamETE\r\n );\r\n }\r\n\r\n get onBaseETAInMinutes(): number {\r\n return getOrElse(this._props.onBaseETAInMinutes, 0);\r\n }\r\n\r\n get specialtyTeamETE(): number {\r\n return getOrElse(this._props.specialtyTeamETEInMinutes, 0);\r\n }\r\n\r\n get specialtyTeamETLO(): number {\r\n return getOrElse(this._props.specialtyTeamETLOInMinutes, 0);\r\n }\r\n\r\n get offerReponseHeader(): string {\r\n if (this.isAborted || this.isDeclined) {\r\n return this.response;\r\n } else if (this.isSkipped) {\r\n return this.statusDisplay;\r\n } else if (this.isAccepted && this.isCancelled) {\r\n return 'Cancelled';\r\n } else {\r\n return 'NA';\r\n }\r\n }\r\n\r\n get statusDisplay(): string {\r\n if (this.status !== TransportOfferStatus.Skipped) {\r\n return this.status;\r\n }\r\n return this.wasBulkSkip ? `${this.status} (Bulk)` : this.status;\r\n }\r\n\r\n constructor(\r\n transportOffer: TransportOfferRecord,\r\n request: RequestViewModel,\r\n public readonly company: CompanyViewModel | undefined,\r\n private _model: ViewModelService,\r\n ) {\r\n super(transportOffer);\r\n this.request = request;\r\n\r\n this.unitSummary$ =\r\n this.unitId != null\r\n ? this._model.getUnitSummaryById(this.unitId).pipe(shareReplaySafe(1))\r\n : of(undefined);\r\n const vehicleSummary$ = this.unitSummary$.pipe(\r\n undefinedOrSwitchMap((unitSummary) => {\r\n if (unitSummary.vehicleSummaryId == null) {\r\n return of(undefined);\r\n }\r\n return this._model.getVehicleSummaryById(unitSummary.vehicleSummaryId);\r\n }),\r\n );\r\n this.summary$ = combineLatest([this.unitSummary$, vehicleSummary$]).pipe(\r\n switchMap(([unitSummary, vehicleSummary]) => {\r\n return unitSummary != null\r\n ? of(createViewModelFromUnitSummary(this, unitSummary, vehicleSummary))\r\n : this.unitId == null\r\n ? of(createViewModelForExternalReferral(this))\r\n : of(createViewModelForInternalReferral(this));\r\n }),\r\n shareReplaySafe(1),\r\n );\r\n\r\n this.isSpecialityTeamSelected$ = this.request.requester$.pipe(\r\n map((value) => value?.specialtyTeamId != null),\r\n );\r\n\r\n this.canOffer$ = combineLatest([this.unitSummary$, this.request.card.cardLinks$]).pipe(\r\n map(([unit, cardLinks]) => {\r\n const reasons: string[] = [];\r\n // Card state conditions\r\n if (this.request.card.isClosed) {\r\n reasons.push('Card is closed.');\r\n }\r\n if (!this.request.card.isAwaitingAssignment) {\r\n reasons.push('Card is not awaiting assignment.');\r\n }\r\n // Request conditions\r\n if (this.request.isCancelled) {\r\n reasons.push('Request is cancelled.');\r\n }\r\n if (this.request.isAssigned) {\r\n reasons.push('Request has already been assigned.');\r\n }\r\n if (!this.request.isOffering && !this.request.isAssignmentDelayed) {\r\n reasons.push('This request is currently not available for offering.');\r\n }\r\n // Transport offer conditions\r\n if (this.isOffered && this.isPending) {\r\n reasons.push(\r\n 'This transport offer is currently being offered and waiting for a response.',\r\n );\r\n } else if (this.request.isOffered) {\r\n reasons.push(\r\n 'This request is currently being offered to another transport offer and waiting for a response.',\r\n );\r\n } else if (\r\n this.isSisterCompany &&\r\n this.request.card.linkedCardId != null &&\r\n cardLinks.find((cl) => cl.type === CardLinkType.Referral) != null\r\n ) {\r\n reasons.push('Referral requests cannot be offered to another company.');\r\n }\r\n // Unit conditions\r\n if (unit != null) {\r\n if (unit.isCommitted) {\r\n reasons.push('Unit is committed.');\r\n }\r\n if (unit.isOutOfService) {\r\n reasons.push('Unit is out of service.');\r\n }\r\n const missingResources = unit.missingResources(this.isGround);\r\n if (missingResources !== false) {\r\n reasons.push(`Unit is missing resources (${missingResources.summary}).`);\r\n }\r\n }\r\n if (reasons.length > 0) {\r\n return { canOffer: false, reasons };\r\n }\r\n return { canOffer: true };\r\n }),\r\n shareReplaySafe(1),\r\n );\r\n\r\n const patientOriginatesAtUnit = this.patientOriginatesAtUnit ?? false;\r\n const etaInMinutes$ = of(\r\n patientOriginatesAtUnit ? this.onBaseETAInMinutes ?? 0 : this.estimatedTimeToArrivalInMinutes,\r\n );\r\n this.estimatedValues$ = combineLatest([etaInMinutes$, this.isSpecialityTeamSelected$]).pipe(\r\n map(([etaInMinutes, isSpecialityTeamSelected]) => {\r\n if (isSpecialityTeamSelected && patientOriginatesAtUnit) {\r\n etaInMinutes =\r\n this.estimatedTimeToArrivalInMinutes +\r\n this.onBaseETAInMinutes -\r\n this.estimatedDepartureTimeInMinutes;\r\n }\r\n return etaInMinutes;\r\n }),\r\n map((etaInMinutes) => {\r\n return {\r\n etloInMinutes: this.estimatedDepartureTimeInMinutes,\r\n eteInMinutes: this.estimatedTimeEnRouteInMinutes,\r\n etaInMinutes,\r\n onBaseEtaInMinutes: this.onBaseETAInMinutes,\r\n specialityTeamEte: this.specialtyTeamETE,\r\n specialityTeamEtlo: this.specialtyTeamETLO,\r\n times: {\r\n local: addMinutes(Date.now(), etaInMinutes),\r\n },\r\n displayTime: (date: Date | number | string): string => {\r\n return formatDate(date, 'HH:mm');\r\n },\r\n };\r\n }),\r\n );\r\n }\r\n\r\n private get _hasAutoDeclineOfferId$() {\r\n return this.request.autoDeclineOfferIds$.pipe(\r\n map((autoDeclineOfferIds) => {\r\n return this.declineReasonId == null\r\n ? false\r\n : autoDeclineOfferIds.find((id) => id === this.id) != null;\r\n }),\r\n );\r\n }\r\n}\r\n","/* \r\nScaffolded code: this code was scaffolded by the code generator, feel free to change it\r\nTemplate: ViewModel.cst\r\n */\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n CardLinkProps,\r\n CardLinkViewModelBase,\r\n} from 'src/store/generated/card-link-record.generated';\r\nimport { CardLinkEntityFetchService } from 'src/store/generated/client-sync.generated';\r\n\r\nexport class CardLinkViewModel extends CardLinkViewModelBase {\r\n constructor(props: CardLinkProps) {\r\n super(props);\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CardLinkViewModelService {\r\n constructor(private readonly _cardLinkEntityFetchService: CardLinkEntityFetchService) {}\r\n\r\n getById(id: string): Observable {\r\n return this._cardLinkEntityFetchService.getById(id).pipe(\r\n map((cardLink) => {\r\n if (cardLink == null) {\r\n return undefined;\r\n }\r\n return new CardLinkViewModel(cardLink);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { QueryOptionsAlone } from 'apollo-angular/types';\r\nimport { map } from 'rxjs/operators';\r\nimport { FetchCardLinksGQL } from 'src/graphql/generated/graphql.generated';\r\nimport { StoreService } from 'src/store/store.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CardLinkFetchService {\r\n constructor(private _gql: FetchCardLinksGQL, private _store: StoreService) {}\r\n\r\n public fetchAllByFromCardId(fromCardId: string, options?: QueryOptionsAlone) {\r\n return this._store\r\n .upsertEntitiesFromGraphQL(this._gql, { filter: { fromCardId } }, options)\r\n .pipe(map((res) => res.data?.cardLinks?.all?.items));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Apollo } from 'apollo-angular';\r\nimport { combineLatest, Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, map, switchMap, take } from 'rxjs/operators';\r\nimport { TcsNavigationService } from 'src/app/shared/tcs-navigation.service';\r\nimport { GetCardActiveAlertsByCardIdGQL } from 'src/graphql/generated/graphql.generated';\r\nimport { ActiveAlertViewModel } from 'src/models/active-alert-view-model';\r\nimport { BaseViewModel } from 'src/models/base-view-model';\r\nimport {\r\n CardSummaryViewModel,\r\n selectCardSummaryByTripId,\r\n} from 'src/models/card-summary-view-model';\r\nimport { CardTimelineItemViewModel } from 'src/models/card-timeline-item-view-model';\r\nimport { CardViewModel } from 'src/models/card-view-model';\r\nimport { CommunicationCenterViewModel } from 'src/models/communication-center-view-model';\r\nimport { CompanyViewModel } from 'src/models/company-view-model';\r\nimport { ControlZoneViewModel } from 'src/models/control-zone-view-model';\r\nimport { FboViewModel } from 'src/models/fbo-view-model';\r\nimport { LocationViewModel, LocationViewModelService } from 'src/models/location-view-model';\r\nimport { MedicalFacilityViewModel } from 'src/models/medical-facility-view-model';\r\nimport { OperationViewModel } from 'src/models/operation-view-model';\r\nimport { PersonViewModel } from 'src/models/person-view-model';\r\nimport { RegionViewModel } from 'src/models/region-view-model';\r\nimport { RequestLocationViewModel } from 'src/models/request-location-view-model';\r\nimport { RequestPatientViewModel } from 'src/models/request-patient-view-model';\r\nimport { RequestViewModel } from 'src/models/request-view-model';\r\nimport { TimelineItemViewModel } from 'src/models/timeline-item-view-model';\r\nimport { TimezoneViewModelService } from 'src/models/timezone-view-model';\r\nimport { TransportOfferViewModel } from 'src/models/transport-offer-view-model';\r\nimport { UnitSummaryViewModel } from 'src/models/unit-summary-view-model';\r\nimport { UnitViewModel } from 'src/models/unit-view-model';\r\nimport { VehicleSummaryViewModel } from 'src/models/vehicle-summary-view-model';\r\nimport { VehicleViewModelService } from 'src/models/vehicle-view-model';\r\nimport { selectViewModel } from 'src/models/view-model-helper';\r\nimport { WaypointViewModelService } from 'src/models/waypoint-view-model';\r\nimport { AppState } from 'src/store/appstate';\r\nimport {\r\n selectCardByCardNumber,\r\n selectCardById,\r\n selectCardByOperationId,\r\n selectCardByRequestId,\r\n} from 'src/store/entityStores/card-selectors';\r\nimport { selectCommunicationCenterById } from 'src/store/entityStores/communication-center-selectors';\r\nimport { selectCompanyByCompanyCode } from 'src/store/entityStores/company-selectors';\r\nimport { selectActiveOperationByUnitId } from 'src/store/entityStores/operation-selectors';\r\nimport {\r\n selectRegionByCardId,\r\n selectRegionByCardNumber,\r\n selectRegionById,\r\n} from 'src/store/entityStores/region-selectors';\r\nimport {\r\n selectFirstTransportOfferByUnitId,\r\n selectTransportOfferById,\r\n} from 'src/store/entityStores/transport-offer-selectors';\r\nimport {\r\n selectNonThirdPartyUnitByBaseId,\r\n selectUnitByCardNumber,\r\n} from 'src/store/entityStores/unit-selectors';\r\nimport { QueryOptions } from 'src/store/fetch-services';\r\nimport { selectAccessibleItemEntitiesByPersonId } from 'src/store/generated/accessible-item-record.generated';\r\nimport { selectActiveAlertById } from 'src/store/generated/active-alert-record.generated';\r\nimport {\r\n CardRecord,\r\n selectCardEntitiesByRequestId,\r\n} from 'src/store/generated/card-record.generated';\r\nimport {\r\n selectCardSummaryById,\r\n selectCardSummaryEntitiesByCardNumber,\r\n selectCardSummaryEntitiesByUnitId,\r\n} from 'src/store/generated/card-summary-record.generated';\r\nimport {\r\n ActiveAlertEntityFetchService,\r\n BaseEntityFetchService,\r\n CardEntityFetchService,\r\n CompanyEntityFetchService,\r\n DiversionReasonEntityFetchService,\r\n FboEntityFetchService,\r\n LocationEntityFetchService,\r\n LocationHazardEntityFetchService,\r\n MedicalFacilityContactEntityFetchService,\r\n MedicalFacilityEntityFetchService,\r\n MedicalFacilityPhysicianEntityFetchService,\r\n MedicalFacilityUnitEntityFetchService,\r\n OperationEntityFetchService,\r\n OutOfServiceEventEntityFetchService,\r\n PersonEntityFetchService,\r\n PhysicianEntityFetchService,\r\n RequestEntityFetchService,\r\n TransferReasonEntityFetchService,\r\n UnitEntityFetchService,\r\n} from 'src/store/generated/client-sync.generated';\r\nimport { selectAllCompanyEntities } from 'src/store/generated/company-record.generated';\r\nimport { ControlZoneRecord } from 'src/store/generated/control-zone-record.generated';\r\nimport { MedicalFacilityPhysicianRecord } from 'src/store/generated/medical-facility-physician-record.generated';\r\nimport { MedicalFacilityUnitRecord } from 'src/store/generated/medical-facility-unit-record.generated';\r\nimport { PhysicianRecord } from 'src/store/generated/physician-record.generated';\r\nimport { RegionProps, RegionRecord } from 'src/store/generated/region-record.generated';\r\nimport { selectRequestLocationById } from 'src/store/generated/request-location-record.generated';\r\nimport { selectRequestPatientById } from 'src/store/generated/request-patient-record.generated';\r\nimport { selectTimelineItemById } from 'src/store/generated/timeline-item-record.generated';\r\nimport { selectTimestampTypeById } from 'src/store/generated/timestamp-type-record.generated';\r\nimport { selectUnitSummaryById } from 'src/store/generated/unit-summary-record.generated';\r\nimport { selectVehicleSummaryById } from 'src/store/generated/vehicle-summary-record.generated';\r\nimport { selectQueryParam, selectRouteParam } from 'src/store/router/router-selectors';\r\nimport { undefinedOrMap, undefinedOrSwitchMap, valueOrSwitchMap } from 'src/util/rxjs/operators';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport { isNullOrEmpty } from 'src/util/string';\r\nimport { selectCardLinkEntitiesByFromCardId } from 'src/store/generated/card-link-record.generated';\r\nimport { CardLinkViewModel } from 'src/models/card-link-view-model';\r\nimport { CardLinkFetchService } from 'src/lib/tcs-card-link/card-link-fetch.service';\r\nimport { Seq } from 'immutable';\r\nimport { shareReplaySafe } from 'src/util/rxjs/operators/share-replay-safe';\r\nimport { OpsReadonlyService } from 'src/lib/tcs-ops-readonly/ops-readonly.service';\r\nimport { TickService } from './tick.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ViewModelService {\r\n private _companies$: Observable;\r\n\r\n constructor(\r\n public store: Store,\r\n public readonly locations: LocationEntityFetchService,\r\n private readonly _waypoint: WaypointViewModelService,\r\n private readonly _vehicle: VehicleViewModelService,\r\n private readonly _locationViewModel: LocationViewModelService,\r\n public readonly opsReadonly: OpsReadonlyService,\r\n public readonly locationHazards: LocationHazardEntityFetchService,\r\n public readonly medicalFacilities: MedicalFacilityEntityFetchService,\r\n public readonly medicalFacilityContacts: MedicalFacilityContactEntityFetchService,\r\n public readonly medicalFacilityUnits: MedicalFacilityUnitEntityFetchService,\r\n public readonly medicalFacilityPhysicians: MedicalFacilityPhysicianEntityFetchService,\r\n public readonly physicians: PhysicianEntityFetchService,\r\n public readonly units: UnitEntityFetchService,\r\n public readonly companies: CompanyEntityFetchService,\r\n public readonly operations: OperationEntityFetchService,\r\n public readonly cards: CardEntityFetchService,\r\n public readonly requests: RequestEntityFetchService,\r\n public readonly people: PersonEntityFetchService,\r\n public readonly bases: BaseEntityFetchService,\r\n public readonly fbos: FboEntityFetchService,\r\n public readonly nav: TcsNavigationService,\r\n public readonly apollo: Apollo,\r\n public readonly ticker: TickService,\r\n public readonly timezoneService: TimezoneViewModelService,\r\n public readonly activeAlerts: ActiveAlertEntityFetchService,\r\n public readonly activeAlertsByCardId: GetCardActiveAlertsByCardIdGQL,\r\n public readonly oosEvents: OutOfServiceEventEntityFetchService,\r\n public readonly diversionReasons: DiversionReasonEntityFetchService,\r\n public readonly transferReasons: TransferReasonEntityFetchService,\r\n public readonly cardLinks: CardLinkFetchService,\r\n ) {\r\n this._companies$ = this._getAllCompanies().pipe(shareReplaySafe(1));\r\n }\r\n\r\n public getCardSummaryByCardNumber(\r\n cardNumber: string,\r\n ): Observable {\r\n return this.store.select(selectCardSummaryEntitiesByCardNumber(cardNumber)).pipe(\r\n map((cards) => {\r\n const card = cards.first(undefined);\r\n return card != null ? new CardSummaryViewModel(card, this.store) : undefined;\r\n }),\r\n );\r\n }\r\n\r\n public getCardSummaryByTripId(tripId: string): Observable {\r\n return this.store\r\n .select(selectCardSummaryByTripId(tripId))\r\n .pipe(\r\n map((cardSummary) =>\r\n cardSummary != null ? new CardSummaryViewModel(cardSummary, this.store) : undefined,\r\n ),\r\n );\r\n }\r\n\r\n public getCardSummaryById(id: string): Observable {\r\n return this.store.select(selectCardSummaryById(id)).pipe(\r\n map((card) => {\r\n return card != null ? new CardSummaryViewModel(card, this.store) : undefined;\r\n }),\r\n );\r\n }\r\n\r\n public getCardSummaryByUnitId(unitId: string): Observable {\r\n return this.store.select(selectCardSummaryEntitiesByUnitId(unitId)).pipe(\r\n map((cards) => {\r\n const card = cards.first(undefined);\r\n return card != null ? new CardSummaryViewModel(card, this.store) : undefined;\r\n }),\r\n );\r\n }\r\n\r\n public getUnitSummaryById(unitId: string): Observable {\r\n return this.store\r\n .select(selectUnitSummaryById(unitId))\r\n .pipe(map((unit) => (unit != null ? new UnitSummaryViewModel(unit) : undefined)));\r\n }\r\n\r\n public getVehicleSummaryById(unitId: string): Observable {\r\n return this.store\r\n .select(selectVehicleSummaryById(unitId))\r\n .pipe(map((unit) => (unit != null ? new VehicleSummaryViewModel(unit) : undefined)));\r\n }\r\n public getCardByCardNumber(cardNumber: string): Observable {\r\n return this.selectViewModel(\r\n selectRegionByCardNumber(cardNumber),\r\n (r) => new RegionViewModel(r, this.store),\r\n ).pipe(\r\n switchMap((region) => {\r\n if (region == null) {\r\n return of(undefined);\r\n }\r\n return this.selectViewModel(\r\n selectCardByCardNumber(cardNumber),\r\n (c) => new CardViewModel(c, region, this),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getCardLinksByFromCardId(cardId: string) {\r\n return this.selectViewModel(selectCardLinkEntitiesByFromCardId(cardId), (cardLinks) => {\r\n return cardLinks.map((cl) => new CardLinkViewModel(cl));\r\n }).pipe(map((cardLinks) => (cardLinks == null ? Seq.Indexed() : cardLinks)));\r\n }\r\n\r\n public getBaseById(\r\n baseId: string,\r\n options: QueryOptions = {},\r\n ): Observable {\r\n return this.bases.getById(baseId, options).pipe(\r\n undefinedOrSwitchMap((base) => {\r\n const company$ = this.getCompanyById(base.companyId, options).pipe(filterNull());\r\n const aviationCompany$ =\r\n base.aviationCompanyId != null\r\n ? this.getCompanyById(base.aviationCompanyId, options)\r\n : of(undefined);\r\n const dispatchBase$ =\r\n base.dispatchBaseId != null && base.dispatchBaseId !== base.id\r\n ? this.getBaseById(base.dispatchBaseId, options)\r\n : of(undefined);\r\n const location$ = this.getLocationById_deprecated(base.locationId, options).pipe(\r\n filterNull(),\r\n );\r\n return combineLatest([company$, aviationCompany$, dispatchBase$, location$]).pipe(\r\n map(([company, aviationCompany, dispatchBase, location]) => {\r\n return new BaseViewModel(base, location, company, aviationCompany, dispatchBase, this);\r\n }),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getCardById(cardId: string): Observable {\r\n return this.selectViewModel(\r\n selectRegionByCardId(cardId),\r\n (r) => new RegionViewModel(r, this.store),\r\n ).pipe(\r\n switchMap((region) =>\r\n region == null\r\n ? of(undefined)\r\n : this.selectViewModel(selectCardById(cardId), (c) => new CardViewModel(c, region, this)),\r\n ),\r\n );\r\n }\r\n\r\n public getCardByRequestId(requestId: string): Observable {\r\n return this.store.select(selectCardByRequestId(requestId)).pipe(\r\n filterNull(),\r\n switchMap((c) => {\r\n return this.selectViewModel(\r\n selectRegionByCardId(c.id),\r\n (r) => new RegionViewModel(r, this.store),\r\n ).pipe(\r\n switchMap((region) =>\r\n region == null\r\n ? of(undefined)\r\n : this.selectViewModel(\r\n selectCardById(c.id),\r\n (card) => new CardViewModel(card, region, this),\r\n ),\r\n ),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getCurrentCard() {\r\n return this.getRouteParam('cardNumber').pipe(\r\n distinctUntilChanged(),\r\n switchMap((cardNumber) =>\r\n cardNumber == null ? of(undefined) : this.getCardByCardNumber(cardNumber),\r\n ),\r\n );\r\n }\r\n\r\n public getCurrentRegion() {\r\n return this.getRouteParam('regionId').pipe(\r\n valueOrSwitchMap(() =>\r\n this.getRouteParam('cardNumber').pipe(\r\n undefinedOrSwitchMap((cardNumber) =>\r\n this.store.select(selectRegionByCardNumber(cardNumber)),\r\n ),\r\n undefinedOrMap((region) => region.id),\r\n ),\r\n ),\r\n distinctUntilChanged(),\r\n undefinedOrSwitchMap((regionId) => this.getRegionById(regionId)),\r\n );\r\n }\r\n\r\n public getRegionById(regionId: string): Observable {\r\n return this.selectViewModel(selectRegionById(regionId), (r) => this._region(r));\r\n }\r\n\r\n public getQueryParam(queryParamName: string): Observable {\r\n return this.store.select(selectQueryParam(queryParamName));\r\n }\r\n\r\n public getRouteParam(paramName: string): Observable {\r\n return this.store.select(selectRouteParam(paramName));\r\n }\r\n\r\n private _region(region: RegionRecord) {\r\n return new RegionViewModel(region, this.store);\r\n }\r\n\r\n private _controlZone(controlZone: ControlZoneRecord) {\r\n return new ControlZoneViewModel(controlZone, this.store);\r\n }\r\n\r\n public getUnitForCard(\r\n cardNumber: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.store.select(selectUnitByCardNumber(cardNumber)).pipe(\r\n distinctUntilChanged(),\r\n undefinedOrSwitchMap((u) => this.getUnitById(u.id, options)),\r\n );\r\n }\r\n\r\n public getUnitFromRouteParamIfExists(\r\n idParamName: string = 'id',\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.store.select(selectRouteParam(idParamName)).pipe(\r\n switchMap((param) => {\r\n return param != null\r\n ? this.getUnitById(param, options)\r\n : of(undefined as UnitViewModel | undefined);\r\n }),\r\n filterNull(),\r\n );\r\n }\r\n\r\n public getUnitById(\r\n unitId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.units.getById(unitId, options).pipe(\r\n undefinedOrSwitchMap((u) => {\r\n const region$ = this.getRegionById(u.regionId);\r\n const vehicle$ =\r\n u.vehicleId == null ? of(undefined) : this.getVehicle(u.vehicleId, options);\r\n return combineLatest([region$, vehicle$]).pipe(\r\n map(([region, vehicle]) => {\r\n return region == null ? undefined : new UnitViewModel(u, region, vehicle, this);\r\n }),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getVehicle(vehicleId: string, options?: QueryOptions) {\r\n return this._vehicle.getById(vehicleId, options);\r\n }\r\n\r\n public getNonThirdPartyUnitByBaseId(baseId: string) {\r\n return this.store\r\n .select(selectNonThirdPartyUnitByBaseId(baseId))\r\n .pipe(undefinedOrSwitchMap((u) => this.getActiveCardForUnit(u.id)));\r\n }\r\n\r\n public getPersonById(\r\n personId: string | null,\r\n options?: QueryOptions,\r\n ): Observable {\r\n if (personId == null) {\r\n return of(undefined);\r\n }\r\n return this.people\r\n .getById(personId, options)\r\n .pipe(\r\n undefinedOrSwitchMap((person) =>\r\n this.store\r\n .select(selectAccessibleItemEntitiesByPersonId(personId))\r\n .pipe(map((ai) => new PersonViewModel(person, ai.toArray()))),\r\n ),\r\n );\r\n }\r\n\r\n public getActiveCardForUnit(unitId: string): Observable {\r\n const activeCard$: Observable = this.store\r\n .select(selectActiveOperationByUnitId(unitId))\r\n .pipe(\r\n switchMap((operation) => {\r\n if (operation != null) {\r\n return this.store.select(selectCardByOperationId(operation.id));\r\n }\r\n return of(undefined as CardRecord | undefined);\r\n }),\r\n );\r\n\r\n return activeCard$.pipe(\r\n switchMap((card) => {\r\n if (card != null) {\r\n return this.getCardByCardNumber(card.cardNumber);\r\n }\r\n return of(undefined as CardViewModel | undefined);\r\n }),\r\n );\r\n }\r\n\r\n public getOperationById(\r\n operationId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.operations.getById(operationId, options).pipe(\r\n undefinedOrSwitchMap((operation) => {\r\n const card$ = this.store\r\n .select(selectCardByOperationId(operationId))\r\n .pipe(undefinedOrSwitchMap((card) => this.getCardById(card.id)));\r\n const unit$ =\r\n operation.unitId != null ? this.getUnitById(operation.unitId, options) : of(undefined);\r\n return combineLatest([card$, unit$]).pipe(\r\n map(([card, unit]) => {\r\n return card == null ? undefined : new OperationViewModel(operation, card, unit, this);\r\n }),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getRequestById(\r\n requestId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return combineLatest([\r\n this.store.select(selectCardEntitiesByRequestId(requestId)),\r\n this.requests.getById(requestId, options),\r\n ]).pipe(\r\n switchMap(([cards, request]) => {\r\n const c = cards.first(undefined);\r\n if (c != null && request != null) {\r\n return this.getCardById(c.id).pipe(\r\n undefinedOrMap((cvm) => new RequestViewModel(request, cvm, this)),\r\n );\r\n }\r\n return of(undefined);\r\n }),\r\n );\r\n }\r\n\r\n public getTransportOfferById(\r\n transportOfferId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.store.select(selectTransportOfferById(transportOfferId)).pipe(\r\n switchMap((offer) =>\r\n combineLatest([\r\n of(offer),\r\n offer?.unitId != null ? this.getUnitSummaryById(offer.unitId) : of(undefined),\r\n this._companies$,\r\n ]),\r\n ),\r\n switchMap(([offer, unit, companies]) => {\r\n const company = unit == null ? undefined : companies.find((c) => c.id === unit.companyId);\r\n return offer == null\r\n ? of(undefined)\r\n : this.getRequestById(offer.requestId, options).pipe(\r\n undefinedOrMap((req) => new TransportOfferViewModel(offer, req, company, this)),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getFirstTransportOfferByUnitId(\r\n unitId: string,\r\n excludeTransportOfferId: string,\r\n options?: QueryOptions,\r\n ) {\r\n return this.store\r\n .select(selectFirstTransportOfferByUnitId(unitId, excludeTransportOfferId))\r\n .pipe(\r\n switchMap((offer) =>\r\n combineLatest([\r\n of(offer),\r\n offer?.unitId != null ? this.getUnitSummaryById(offer.unitId) : of(undefined),\r\n this._companies$,\r\n ]),\r\n ),\r\n switchMap(([offer, unit, companies]) => {\r\n const company = unit == null ? undefined : companies.find((c) => c.id === unit.companyId);\r\n return offer == null\r\n ? of(undefined)\r\n : this.getRequestById(offer.requestId, options).pipe(\r\n undefinedOrMap((req) => new TransportOfferViewModel(offer, req, company, this)),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getRequestLocationById(\r\n requestLocationId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.store.select(selectRequestLocationById(requestLocationId)).pipe(\r\n distinctUntilChanged(),\r\n undefinedOrSwitchMap((rl) => {\r\n const request$ = this.getRequestById(rl.requestId, options).pipe(take(1));\r\n const location$ =\r\n rl.locationId != null\r\n ? this.getLocationById_deprecated(rl.locationId, options).pipe(take(1))\r\n : of(undefined);\r\n return request$.pipe(\r\n undefinedOrSwitchMap((r) => {\r\n return location$.pipe(map((l) => new RequestLocationViewModel(rl, r, l, this)));\r\n }),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getLocationById_deprecated(\r\n locationId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this._locationViewModel.getById(locationId, options);\r\n }\r\n\r\n public getCompanyByCode(companyCode: string, options: QueryOptions = {}) {\r\n return this.store\r\n .select(selectCompanyByCompanyCode(companyCode))\r\n .pipe(undefinedOrSwitchMap((company) => this.getCompanyById(company.id, options)));\r\n }\r\n\r\n public getCompanyById(\r\n companyId: string,\r\n options: QueryOptions,\r\n ): Observable {\r\n return this.companies\r\n .getById(companyId, options)\r\n .pipe(undefinedOrMap((c) => new CompanyViewModel(c, this)));\r\n }\r\n\r\n public getAllCompanies(): Observable {\r\n return this._companies$;\r\n }\r\n private _getAllCompanies(): Observable {\r\n return this.store.select(selectAllCompanyEntities).pipe(\r\n map((companies) =>\r\n companies\r\n .valueSeq()\r\n .map((c) => new CompanyViewModel(c, this))\r\n .toArray(),\r\n ),\r\n );\r\n }\r\n\r\n public getCurrentCompany(): Observable {\r\n return this.store.select(selectRouteParam('companyCode')).pipe(\r\n switchMap((companyCode) => {\r\n if (companyCode == null) {\r\n return of(undefined);\r\n }\r\n return this.selectViewModel(\r\n selectCompanyByCompanyCode(companyCode),\r\n (company) => new CompanyViewModel(company, this),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getCurrentCommunicationCenter(region: RegionProps | undefined) {\r\n return combineLatest([this.getQueryParam('communicationCenterId'), of(region)]).pipe(\r\n distinctUntilChanged(),\r\n map(([commCenterId, rgn]) => {\r\n const ccId = !isNullOrEmpty(commCenterId)\r\n ? commCenterId\r\n : rgn != null\r\n ? rgn.communicationCenterId\r\n : null;\r\n\r\n return ccId;\r\n }),\r\n distinctUntilChanged(),\r\n switchMap((commCenterId) =>\r\n commCenterId == null ? of(undefined) : this.getCommunicationCenterById(commCenterId),\r\n ),\r\n );\r\n }\r\n\r\n public getCommunicationCenterById(\r\n commCenterId: string,\r\n ): Observable {\r\n return this.selectViewModel(\r\n selectCommunicationCenterById(commCenterId),\r\n (commCenter) => new CommunicationCenterViewModel(commCenter, this.store),\r\n );\r\n }\r\n\r\n private selectViewModel(\r\n mapFn: (state: AppState) => TIn | undefined,\r\n createViewModelFn: (v: TIn) => TOut,\r\n ) {\r\n return selectViewModel(this.store, mapFn, createViewModelFn);\r\n }\r\n\r\n public getMedicalFacilityById(\r\n medicalFacilityId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.medicalFacilities.getById(medicalFacilityId, options).pipe(\r\n switchMap((mf) => {\r\n if (mf == null) {\r\n return of(undefined);\r\n }\r\n if (mf.locationId != null) {\r\n return this.getLocationById_deprecated(medicalFacilityId, options).pipe(\r\n map((loc) => new MedicalFacilityViewModel(mf, loc, this)),\r\n );\r\n }\r\n return of(new MedicalFacilityViewModel(mf, undefined, this));\r\n }),\r\n );\r\n }\r\n\r\n public getMedicalFacilityUnitById(\r\n medicalFacilityUnitId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.medicalFacilityUnits.getById(medicalFacilityUnitId, options).pipe(\r\n switchMap((mfu) => {\r\n if (mfu == null) {\r\n return of(undefined);\r\n }\r\n return of(mfu);\r\n }),\r\n );\r\n }\r\n\r\n public getMedicalFacilityPhysicianById(\r\n medicalFacilityPhysicianId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.medicalFacilityPhysicians.getById(medicalFacilityPhysicianId, options).pipe(\r\n switchMap((mfp) => {\r\n if (mfp == null) {\r\n return of(undefined);\r\n }\r\n return of(mfp);\r\n }),\r\n );\r\n }\r\n\r\n public getPhysicianById(\r\n physicianId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.physicians.getById(physicianId, options).pipe(\r\n switchMap((p) => {\r\n if (p == null) {\r\n return of(undefined);\r\n }\r\n return of(p);\r\n }),\r\n );\r\n }\r\n\r\n public getRequestPatientById(\r\n requestPatientId: string,\r\n options?: QueryOptions,\r\n ): Observable {\r\n return this.store\r\n .select(selectRequestPatientById(requestPatientId))\r\n .pipe(\r\n undefinedOrSwitchMap((p) =>\r\n this.getRequestById(p.requestId, options).pipe(\r\n undefinedOrMap((r) => new RequestPatientViewModel(p, r, this)),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n public getWaypointById(waypointId: string, options?: QueryOptions) {\r\n return this._waypoint.getById(waypointId, options);\r\n }\r\n\r\n public getTimelineItemViewModel(\r\n timelineItemId: string,\r\n ): Observable {\r\n return this.store\r\n .select(selectTimelineItemById(timelineItemId))\r\n .pipe(\r\n switchMap((tl) =>\r\n tl == null\r\n ? of(undefined as TimelineItemViewModel | undefined)\r\n : this.store\r\n .select(selectTimestampTypeById(tl.timestampTypeId))\r\n .pipe(\r\n map((tt) => (tt == null ? undefined : new TimelineItemViewModel(tl, tt, this))),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n public getCardTimelineItemViewModel(\r\n timelineItemId: string,\r\n timestampId: string | undefined,\r\n card: CardViewModel,\r\n ): Observable {\r\n return of(new CardTimelineItemViewModel(card, timelineItemId, timestampId, this, this.store));\r\n }\r\n\r\n public getActiveAlertById(activeAlertId: string) {\r\n return selectViewModel(\r\n this.store,\r\n selectActiveAlertById(activeAlertId),\r\n (activeAlert) => new ActiveAlertViewModel(activeAlert, this, undefined),\r\n );\r\n }\r\n\r\n public getFboById(id: string, options?: QueryOptions): Observable {\r\n return this.fbos.getById(id, options).pipe(\r\n undefinedOrSwitchMap((fbo) => {\r\n const location$ =\r\n fbo.locationId != null\r\n ? this._locationViewModel.getById(fbo.locationId, options)\r\n : of(undefined);\r\n\r\n return location$.pipe(map((location) => new FboViewModel(fbo, location)));\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { combineLatest, Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { map, take, takeUntil } from 'rxjs/operators';\r\nimport { EntityType, UserRole } from 'src/graphql/generated/graphql.generated';\r\nimport { AccessibleItemAuthorizationService } from 'src/lib/tcs-authorization/accessible-item-authorization.service';\r\nimport { CommCenterAuthorizationService } from 'src/lib/tcs-authorization/comm-center-authorization.service';\r\nimport { ControlZoneAuthorizationService } from 'src/lib/tcs-authorization/control-zone-authorization.service';\r\nimport { UserViewModel } from 'src/models/person-view-model';\r\nimport { AppState } from 'src/store/appstate';\r\nimport {\r\n CompanyProps,\r\n selectAllCompanyEntities,\r\n} from 'src/store/generated/company-record.generated';\r\nimport { firstValueOrDefault } from 'src/util/rxjs';\r\nimport { OosAuthorizationService } from 'src/lib/tcs-authorization/oos-authorization.service';\r\nimport { UserService } from '../../lib/tcs-identity/user.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CompanyAuthorizationService implements OnDestroy {\r\n private _onDestroy$ = new Subject();\r\n public _authorizedCompanies$ = new ReplaySubject(1);\r\n public get authorizedCompanies$(): Observable {\r\n return this._authorizedCompanies$.asObservable();\r\n }\r\n\r\n get isAllCompaniesAuthorized(): boolean {\r\n const user = this._userService.user;\r\n return user != null && this.isAuthorizedForAllCompanies(user);\r\n }\r\n\r\n public isAuthorizedForAllCompanies(user: UserViewModel): boolean {\r\n return user.hasRoleAnyScope(UserRole.Developer) || user.allCompaniesAccessible === true;\r\n }\r\n\r\n public isAuthorizedForCompany$(\r\n company: { id: string } | { companyCode: string },\r\n ): Observable {\r\n return this.authorizedCompanies$.pipe(\r\n map((companies) => {\r\n if ('id' in company) {\r\n return companies.find((c) => c.id === company.id) != null;\r\n }\r\n return companies.find((c) => c.companyCode === company.companyCode) != null;\r\n }),\r\n );\r\n }\r\n\r\n public isAuthorizedForCompany(\r\n company: { id: string } | { companyCode: string },\r\n ): Promise {\r\n return firstValueOrDefault(\r\n this.isAuthorizedForCompany$(company).pipe(take(1), takeUntil(this._onDestroy$)),\r\n false,\r\n );\r\n }\r\n\r\n constructor(\r\n private _userService: UserService,\r\n private _commCenterAuthorization: CommCenterAuthorizationService,\r\n private _controlZoneAuthorization: ControlZoneAuthorizationService,\r\n private _accessibleItems: AccessibleItemAuthorizationService,\r\n private _oosAuthorization: OosAuthorizationService,\r\n store: Store,\r\n ) {\r\n const authorizedCommCenters$ = this._commCenterAuthorization.getAuthorizedCommCenters();\r\n const authorizedControlZones$ = this._controlZoneAuthorization.getAuthorizedControlZones();\r\n const accessibleCompanies$ = this._accessibleItems.getAccessibleItems(EntityType.Company);\r\n const companies$ = store.select(selectAllCompanyEntities);\r\n const authorizedOosCommCenters$ = this._oosAuthorization.getAuthorizedCommCenters();\r\n\r\n const authorizedCompanies$: Observable = combineLatest([\r\n this._userService.user$,\r\n authorizedCommCenters$,\r\n authorizedControlZones$,\r\n accessibleCompanies$,\r\n companies$,\r\n authorizedOosCommCenters$,\r\n ]).pipe(\r\n map(([user, commCenters, controlZones, accessibleCompanies, companies, oosCommCenters]) => {\r\n if (user == null) {\r\n return [];\r\n }\r\n if (this.isAuthorizedForAllCompanies(user)) {\r\n return companies.valueSeq().toArray();\r\n }\r\n const authorizedCompanyIds = commCenters\r\n .map((cc) => cc.companyId)\r\n .concat([user.companyId])\r\n .concat(controlZones.map((cz) => cz.companyId))\r\n .concat(accessibleCompanies.map((ac) => ac.entityId))\r\n .concat(oosCommCenters.map((cc) => cc.companyId));\r\n\r\n return companies\r\n .filter((c) => authorizedCompanyIds.includes(c.id))\r\n .valueSeq()\r\n .toArray();\r\n }),\r\n );\r\n\r\n authorizedCompanies$.pipe(takeUntil(this._onDestroy$)).subscribe(this._authorizedCompanies$);\r\n }\r\n\r\n public observeCompanyAuthorized(companyId: string): Observable {\r\n return this.authorizedCompanies$.pipe(\r\n map((acs) => acs.find((x) => x.id === companyId) != null),\r\n );\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { ViewModelService } from 'src/app/shared/view-model.service';\r\nimport { AppState } from 'src/store/appstate';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RegionContextService {\r\n public currentRegionId$: Observable;\r\n\r\n constructor(private store: Store, private _viewModel: ViewModelService) {\r\n this.currentRegionId$ = store\r\n .select((x) => {\r\n if (x == null || x.router == null) {\r\n return null;\r\n }\r\n return x.router.state.params;\r\n })\r\n .pipe(\r\n switchMap((routeParams) => {\r\n if (routeParams == null) {\r\n return of(undefined);\r\n }\r\n const regionId = routeParams.regionId;\r\n if (regionId != null) {\r\n return of(regionId);\r\n }\r\n const cardNumber = routeParams.cardNumber;\r\n if (cardNumber != null) {\r\n return _viewModel.getCardSummaryByCardNumber(cardNumber).pipe(\r\n map((card) => {\r\n return card != null ? card.regionId : undefined;\r\n }),\r\n );\r\n }\r\n return of(undefined);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { TcsNavigationService } from 'src/app/shared/tcs-navigation.service';\r\n\r\nexport enum AppContext {\r\n Ops = 'Ops',\r\n Org = 'Org',\r\n Insights = 'Insights',\r\n Asb = 'Asb',\r\n OosRum = 'OosRum',\r\n Rtt = 'Rtt',\r\n FleetStatus = 'FleetStatus',\r\n Support = 'Support',\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppContextService {\r\n private _currentContext$ = new BehaviorSubject(AppContext.Insights);\r\n\r\n get currentContext$() {\r\n return this._currentContext$.asObservable();\r\n }\r\n\r\n constructor(private _tcsNav: TcsNavigationService) {}\r\n\r\n public setContext(context: AppContext | undefined) {\r\n context != null\r\n ? this._currentContext$.next(context)\r\n : this._currentContext$.next(AppContext.Insights);\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { differenceInSeconds, startOfSecond } from 'date-fns';\r\nimport { BehaviorSubject, combineLatest, race, Subject, throwError } from 'rxjs';\r\nimport { catchError, filter, map, take, takeUntil, tap } from 'rxjs/operators';\r\nimport { CompanyContextService } from 'src/app/shared/company-context.service';\r\nimport { Logger } from 'src/app/shared/tcs-logging/logger';\r\nimport {\r\n PollingService_FetchEntitiesGQL,\r\n PollingService_FetchEntitiesQueryVariables,\r\n UserRole,\r\n} from 'src/graphql/generated/graphql.generated';\r\nimport { StoreService } from 'src/store/store.service';\r\nimport { TickService } from 'src/app/shared/tick.service';\r\nimport { firstValueOrUndefined, undefinedOrSwitchMap } from 'src/util/rxjs';\r\nimport { selectAllCompanies } from 'src/store/entityStores/entity-store-selectors';\r\nimport { cacheFactory } from 'src/util/cache';\r\nimport { AppContext, AppContextService } from 'src/app/shared/app-context/app-context.service';\r\nimport { UserService } from '../tcs-identity/user.service';\r\nimport { AuthenticationService } from '../tcs-identity/authentication.service';\r\nimport { RegionContextService } from '../region-context-service/region-context.service';\r\nimport { TabsService } from '../tcs-tabs/tabs.service';\r\n\r\ntype QueryVariables = PollingService_FetchEntitiesQueryVariables;\r\n\r\ninterface Metadata {\r\n cardSummary: { maxLastUpdateDate?: Date };\r\n vehicleSummary: { maxLastUpdateDate?: Date };\r\n unitSummary: { maxLastUpdateDate?: Date };\r\n vehiclePositionSummary: { maxLastUpdateDate?: Date };\r\n}\r\n\r\ninterface Flag {\r\n canFetch: boolean;\r\n}\r\n\r\ninterface TriggerFlags {\r\n passdownLogs?: Flag;\r\n questionnaireResponses?: Flag;\r\n notifications?: Flag;\r\n summaries?: Flag;\r\n vehiclePositionSummaries?: Flag;\r\n}\r\n\r\ntype TriggerFlagTracker = keyof TriggerFlags;\r\n\r\nconst timedTriggers: { trigger: keyof TriggerFlags; intervalSeconds: number; lastRun?: Date }[] = [\r\n {\r\n trigger: 'questionnaireResponses',\r\n intervalSeconds: 300,\r\n },\r\n {\r\n trigger: 'passdownLogs',\r\n intervalSeconds: 300,\r\n },\r\n {\r\n trigger: 'notifications',\r\n intervalSeconds: 120,\r\n },\r\n {\r\n trigger: 'summaries',\r\n intervalSeconds: 60,\r\n },\r\n {\r\n trigger: 'vehiclePositionSummaries',\r\n intervalSeconds: 60,\r\n },\r\n];\r\n\r\nconst buildTriggerFlags = ({\r\n fetchAll = false,\r\n}: {\r\n fetchAll?: boolean;\r\n} = {}): TriggerFlags => {\r\n const now = startOfSecond(new Date());\r\n const flags = timedTriggers.reduce((triggers, cur) => {\r\n const diff = differenceInSeconds(now, cur.lastRun ?? now);\r\n const canFetch = fetchAll || diff >= cur.intervalSeconds;\r\n triggers[cur.trigger] = { canFetch };\r\n cur.lastRun = canFetch || cur.lastRun == null ? now : cur.lastRun;\r\n return triggers;\r\n }, {} as TriggerFlags);\r\n return flags;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PollingService implements OnDestroy {\r\n public qaResponseAwaitingReviewCount$ = new BehaviorSubject(0);\r\n public passdownLogCount$ = new BehaviorSubject(0);\r\n private _onDestroy$ = new Subject();\r\n private _enabledAppContexts = [AppContext.Ops, AppContext.FleetStatus];\r\n private readonly _queryParamsTracker = cacheFactory.accessTracker();\r\n private readonly _cache = cacheFactory.keyValueCache>(60_000 * 30);\r\n\r\n constructor(\r\n private _storeService: StoreService,\r\n private readonly _log: Logger,\r\n private _gql: PollingService_FetchEntitiesGQL,\r\n private _user: UserService,\r\n private _company: CompanyContextService,\r\n private _region: RegionContextService,\r\n private _auth: AuthenticationService,\r\n private _tick: TickService,\r\n private _appContext: AppContextService,\r\n private _tabsService: TabsService,\r\n ) {}\r\n\r\n public init() {\r\n combineLatest([\r\n this._appContext.currentContext$,\r\n this._tabsService.isTabActiveOrPending$,\r\n this._tick.seconds$,\r\n ])\r\n .pipe(takeUntil(this._onDestroy$))\r\n .subscribe(([appContext, isTabActive]) => {\r\n if (this._enabledAppContexts.includes(appContext) === true && isTabActive === true) {\r\n const flags = buildTriggerFlags();\r\n const canFetchData =\r\n Object.values(flags).filter((value?: Flag) => value?.canFetch === true).length > 0;\r\n if (canFetchData) {\r\n this.fetch(flags);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public async fetch(flags: TriggerFlags) {\r\n return await firstValueOrUndefined(this._fetch(flags));\r\n }\r\n\r\n public _fetch(triggerFlags?: TriggerFlags) {\r\n const companyId$ = this._company.company$.pipe(\r\n take(1),\r\n map((c) => c?.id ?? null),\r\n );\r\n const currRegionId$ = this._region.currentRegionId$.pipe(\r\n take(1),\r\n map((r) => r ?? null),\r\n );\r\n const hasRole$ = this._user.hasAnyRoleAnyScope([UserRole.Communications]);\r\n const allCompanyIds$ = this._storeService.store.select(selectAllCompanies).pipe(\r\n take(1),\r\n map((companies) =>\r\n companies\r\n .valueSeq()\r\n .map((c) => c.id)\r\n .toArray(),\r\n ),\r\n );\r\n\r\n return combineLatest([\r\n this._auth.isAuthenticated$.pipe(take(1)),\r\n hasRole$,\r\n companyId$,\r\n allCompanyIds$,\r\n currRegionId$,\r\n ]).pipe(\r\n map(([isAuthenticated, hasRole, companyId, allCompanyIds, regionId]) => {\r\n if (!isAuthenticated) {\r\n return undefined;\r\n }\r\n const flags = triggerFlags != null ? triggerFlags : buildTriggerFlags({ fetchAll: true });\r\n const userRoles =\r\n hasRole === true\r\n ? [UserRole.Communications]\r\n : this._user.user?.userRoles?.toArray() == null\r\n ? null\r\n : this._user.user?.userRoles?.toArray();\r\n\r\n return this._createQueryParams({ flags, companyId, regionId, userRoles, allCompanyIds });\r\n }),\r\n undefinedOrSwitchMap((params) => {\r\n // get lastAccess trackers\r\n const summariesTracker = this._getAccessTracker(\r\n 'summaries',\r\n params.includeSummaries ?? false,\r\n );\r\n const vehiclePositionsTracker = this._getAccessTracker(\r\n 'vehiclePositionSummaries',\r\n params.includeVehiclePositionSummaries ?? false,\r\n );\r\n\r\n // cancel previous query on matching params\r\n const cancel$ = this._cache.has(params)\r\n ? this._cache.getUnsafe(params)\r\n : this._cache.set(params, new Subject());\r\n cancel$.next(null);\r\n const cancelled$ = race(this._onDestroy$, cancel$);\r\n\r\n // setup for rollback\r\n const rollbackLastAccessDate = () => {\r\n summariesTracker.rollback();\r\n vehiclePositionsTracker.rollback();\r\n };\r\n const requestState = { completed: false, cancelled: false, error: false };\r\n\r\n // execute query\r\n return this._storeService\r\n .upsertEntitiesFromQuery({\r\n query: this._gql,\r\n variables: {\r\n ...params,\r\n vehiclesFetchAfterDate: summariesTracker.lastAccessDate,\r\n unitsFetchAfterDate: summariesTracker.lastAccessDate,\r\n cardsFetchAfterDate: summariesTracker.lastAccessDate,\r\n vehiclePositionSummariesFetchAfterDate: vehiclePositionsTracker.lastAccessDate,\r\n },\r\n isCancellable: true,\r\n })\r\n .pipe(\r\n filter((r) => r != null && r.data != null),\r\n map((r) => r.data),\r\n tap({\r\n next: (response) => {\r\n requestState.completed = true;\r\n if (params.includeQuestionnaireResponses ?? false) {\r\n const awaitingReviewQAResponseCount =\r\n response?.questionnaireResponses?.all.meta.total;\r\n this.qaResponseAwaitingReviewCount$.next(awaitingReviewQAResponseCount ?? 0);\r\n }\r\n if (params.includePassdownLogs ?? false) {\r\n const awaitingPassdownLogCount = response?.passdownLogs?.all.meta.total;\r\n this.passdownLogCount$.next(awaitingPassdownLogCount ?? 0);\r\n }\r\n },\r\n unsubscribe: () => (requestState.cancelled = !requestState.completed),\r\n error: () => (requestState.error = true),\r\n finalize: () => {\r\n if (requestState.cancelled || requestState.error) {\r\n rollbackLastAccessDate();\r\n }\r\n },\r\n }),\r\n takeUntil(cancelled$),\r\n );\r\n }),\r\n catchError((err) => {\r\n this._log.error(`Polling error fetching data: ${err.message}`);\r\n return throwError(() => err);\r\n }),\r\n );\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n\r\n private _getAccessTracker(id: keyof TriggerFlags, canFetch: boolean) {\r\n if (canFetch) {\r\n return this._queryParamsTracker.get(id);\r\n } else {\r\n return this._queryParamsTracker.peek(id);\r\n }\r\n }\r\n\r\n private _createQueryParams({\r\n flags,\r\n regionId,\r\n companyId,\r\n userRoles,\r\n allCompanyIds,\r\n }: {\r\n flags: TriggerFlags;\r\n regionId: string | null;\r\n companyId: string | null;\r\n userRoles: UserRole[] | null;\r\n allCompanyIds: string[];\r\n }): QueryVariables {\r\n const includeSummaries = true;\r\n const includeQuestionnaireResponses = flags.questionnaireResponses?.canFetch;\r\n const includePassdownLogs = (flags.passdownLogs?.canFetch ?? false) && regionId != null;\r\n const includeVehiclePositionSummaries = flags.vehiclePositionSummaries?.canFetch ?? true;\r\n return {\r\n companyId,\r\n regionId,\r\n userRoles,\r\n includeQuestionnaireResponses,\r\n includeVehiclePositionSummaries,\r\n includePassdownLogs,\r\n includeSummaries,\r\n companyIds: allCompanyIds ?? [],\r\n vehiclesFetchAfterDate: null,\r\n unitsFetchAfterDate: null,\r\n cardsFetchAfterDate: null,\r\n vehiclePositionSummariesFetchAfterDate: null,\r\n };\r\n }\r\n}\r\n","import { __rest } from \"tslib\";\nimport { createOperatorSubscriber } from '../../operators/OperatorSubscriber';\nimport { Observable } from '../../Observable';\nimport { innerFrom } from '../../observable/innerFrom';\nexport function fromFetch(input, initWithSelector = {}) {\n const {\n selector\n } = initWithSelector,\n init = __rest(initWithSelector, [\"selector\"]);\n return new Observable(subscriber => {\n const controller = new AbortController();\n const {\n signal\n } = controller;\n let abortable = true;\n const {\n signal: outerSignal\n } = init;\n if (outerSignal) {\n if (outerSignal.aborted) {\n controller.abort();\n } else {\n const outerSignalHandler = () => {\n if (!signal.aborted) {\n controller.abort();\n }\n };\n outerSignal.addEventListener('abort', outerSignalHandler);\n subscriber.add(() => outerSignal.removeEventListener('abort', outerSignalHandler));\n }\n }\n const perSubscriberInit = Object.assign(Object.assign({}, init), {\n signal\n });\n const handleError = err => {\n abortable = false;\n subscriber.error(err);\n };\n fetch(input, perSubscriberInit).then(response => {\n if (selector) {\n innerFrom(selector(response)).subscribe(createOperatorSubscriber(subscriber, undefined, () => {\n abortable = false;\n subscriber.complete();\n }, handleError));\n } else {\n abortable = false;\n subscriber.next(response);\n subscriber.complete();\n }\n }).catch(handleError);\n return () => {\n if (abortable) {\n controller.abort();\n }\n };\n });\n}\n","import { Observable, throwError, timer } from 'rxjs';\r\nimport { mergeMap, retryWhen } from 'rxjs/operators';\r\n\r\nexport interface RetryBackoffOptions {\r\n initialDuration?: number;\r\n maxRetries?: number;\r\n maxDuration?: number;\r\n canRetry?: (error: unknown) => boolean;\r\n backoffDelay?: (iteration: number, initialDuration: number) => number;\r\n}\r\n\r\n/**\r\n * Retry on error while increasing delay between attempts.\r\n * @param options sets the initialDuration (default: 1000), maxRetries (default: 3), maxDuration,\r\n * canRetry (default: true), backoffDelay (default: iteration * initialDuration)\r\n * @returns Observable<T>\r\n */\r\nexport function retryBackoff({\r\n initialDuration = 1000,\r\n maxRetries = 3,\r\n maxDuration,\r\n canRetry = (error) => true,\r\n backoffDelay = (iteration, duration) => iteration * duration,\r\n}: RetryBackoffOptions = {}) {\r\n return (error$: Observable) => {\r\n return error$.pipe(\r\n retryWhen(\r\n mergeMap((error, index) => {\r\n const retryCount = index + 1;\r\n let delay = backoffDelay(retryCount, initialDuration);\r\n delay = maxDuration == null || delay < maxDuration ? delay : maxDuration;\r\n const maxAttempts = maxRetries == null || maxRetries < 0 ? retryCount : maxRetries;\r\n\r\n return retryCount > maxAttempts || canRetry(error) === false\r\n ? throwError(error)\r\n : timer(delay);\r\n }),\r\n ),\r\n );\r\n };\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\r\nimport { fromFetch } from 'rxjs/fetch';\r\nimport {\r\n catchError,\r\n distinctUntilChanged,\r\n map,\r\n pairwise,\r\n switchMap,\r\n takeUntil,\r\n} from 'rxjs/operators';\r\nimport { Logger } from 'src/app/shared/tcs-logging/logger';\r\nimport { createSafeProps } from 'src/lib/tcs-app-insights/app-insights-util';\r\nimport { nullOrMap } from 'src/util/rxjs/operators';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport { retryBackoff } from 'src/util/rxjs/operators/retry-backoff';\r\nimport { TickService } from 'src/app/shared/tick.service';\r\nimport { TabsService } from '../tcs-tabs/tabs.service';\r\n\r\nexport enum OnlineStatus {\r\n Online = 'Online',\r\n Offline = 'Offline',\r\n}\r\n\r\nexport enum NetworkStatus {\r\n Up = 'Up',\r\n Down = 'Down',\r\n}\r\n\r\nexport type BandwidthEffectiveType = '2g' | '3g' | '4g';\r\nexport interface BandwidthStatus {\r\n effectiveBandwidth: number;\r\n effectiveType: BandwidthEffectiveType;\r\n}\r\n\r\ninterface NetworkInfo {\r\n rtt: number;\r\n downlink: number;\r\n effectiveType: BandwidthEffectiveType;\r\n onchange: (ev: Event) => void | null;\r\n}\r\n\r\nconst RETRY_TIMEOUT = 10_000;\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TcsNetworkService implements OnDestroy {\r\n private _onDestroy$ = new Subject();\r\n private _networkStatus$ = new BehaviorSubject(null);\r\n private _bandwidthStatus$ = new BehaviorSubject(null);\r\n private _networkInfo: NetworkInfo;\r\n private _downCache: {\r\n status: NetworkStatus;\r\n prevStatus: NetworkStatus | null;\r\n tabStatus: any;\r\n timestamp: Date;\r\n } | null;\r\n\r\n public status$: Observable;\r\n public onlineStatus$: Observable;\r\n public bandwidthStatus$: Observable;\r\n\r\n private _networkStatusSupport = 'ononline' in window && 'onoffline' in window;\r\n public bandwidthStatusSupport =\r\n this._networkStatusSupport && 'navigator' in window && 'connection' in window.navigator;\r\n\r\n constructor(private _logger: Logger, private _tabs: TabsService, private _tick: TickService) {\r\n this.status$ = this._networkStatus$.pipe(distinctUntilChanged());\r\n this.onlineStatus$ = this.status$.pipe(nullOrMap(this.toOnlineStatus));\r\n this.bandwidthStatus$ = this._bandwidthStatus$.asObservable();\r\n\r\n if (this._networkStatusSupport) {\r\n if (typeof navigator !== 'undefined') {\r\n this._changeStatus(this._boolToNetworkStatus(navigator.onLine));\r\n this._watchBandwidthChanges();\r\n }\r\n window.ononline = () => {\r\n this._changeStatus(NetworkStatus.Up);\r\n this._watchBandwidthChanges();\r\n };\r\n window.onoffline = () => this._changeStatus(NetworkStatus.Down);\r\n }\r\n\r\n const logStatusChange = (params: {\r\n status: NetworkStatus | null;\r\n prevStatus: NetworkStatus | null;\r\n tabStatus: object;\r\n timestamp: Date;\r\n }) =>\r\n this._logger.info(\r\n 'NetworkService.statusChanged',\r\n createSafeProps({\r\n status: params.status,\r\n previous: params.prevStatus,\r\n statusTimestamp: params.timestamp,\r\n ...params.tabStatus,\r\n }),\r\n );\r\n\r\n this.status$\r\n .pipe(pairwise(), takeUntil(this._onDestroy$))\r\n .subscribe(([prevStatus, curStatus]) => {\r\n if (curStatus !== prevStatus) {\r\n const timestamp = new Date();\r\n const tabStatus = this._tabs.getStatus();\r\n if (curStatus === NetworkStatus.Down) {\r\n // cache the status, then log it when the network is back up.\r\n this._downCache = { status: curStatus, prevStatus, tabStatus, timestamp };\r\n\r\n return;\r\n } else if (this._downCache != null) {\r\n // log previous down status\r\n logStatusChange(this._downCache);\r\n this._downCache = null;\r\n }\r\n\r\n // log current status\r\n logStatusChange({ status: curStatus, prevStatus, tabStatus, timestamp });\r\n }\r\n });\r\n\r\n // since window online/offline events aren't very accurate (other than when using devtools)\r\n // instead poll our healthcheck endpoint to check if network is up/down.\r\n this._tick.everyFifteenSeconds$\r\n .pipe(\r\n switchMap(() => {\r\n if (typeof navigator !== 'undefined' && !navigator.onLine) {\r\n // navigator.onLine really only works propery when the browser is manually set to on/offline.\r\n // this is here so we can continue to simulate offline status through devtools.\r\n return of(null);\r\n }\r\n return fromFetch('/healthcheck');\r\n }),\r\n filterNull(),\r\n retryBackoff({ initialDuration: 500, maxRetries: 4, maxDuration: RETRY_TIMEOUT }),\r\n map((res) => res.status),\r\n catchError(() => of(0)),\r\n distinctUntilChanged(),\r\n takeUntil(this._onDestroy$),\r\n )\r\n .subscribe((status) => {\r\n this._changeStatus(this._boolToNetworkStatus(status >= 200 && status <= 299));\r\n });\r\n }\r\n\r\n public toOnlineStatus(networkStatus: NetworkStatus | null) {\r\n return networkStatus === NetworkStatus.Up ? OnlineStatus.Online : OnlineStatus.Offline;\r\n }\r\n\r\n private _watchBandwidthChanges() {\r\n if (this.bandwidthStatusSupport) {\r\n this._networkInfo = (navigator as any).connection as NetworkInfo;\r\n const setBandwidth = () =>\r\n this._bandwidthStatus$.next({\r\n effectiveBandwidth: this._networkInfo.downlink,\r\n effectiveType: this._networkInfo.effectiveType,\r\n });\r\n setBandwidth();\r\n let { effectiveType, downlink } = this._networkInfo;\r\n this._networkInfo.onchange = (ev: any) => {\r\n const info = ev.target as NetworkInfo;\r\n if (effectiveType !== info.effectiveType || downlink !== info.downlink) {\r\n this._logger.warning(\r\n `NetworkStatus.connection bandwidth changed ${downlink}mb/s${\r\n downlink > 0 ? ` (${effectiveType})` : ''\r\n } to ${info.downlink}mb/s ${info.downlink > 0 ? `(${info.effectiveType})` : ''}`,\r\n createSafeProps({\r\n previous: { downlink, effectiveType },\r\n current: { downlink: info.downlink, effectiveType: info.effectiveType },\r\n ...this._tabs.getStatus(),\r\n }),\r\n );\r\n setBandwidth();\r\n effectiveType = info.effectiveType;\r\n downlink = info.downlink;\r\n }\r\n };\r\n } else {\r\n this._logger.warning('NetworkService bandwidth status is not supported');\r\n }\r\n }\r\n\r\n private _changeStatus(status: NetworkStatus) {\r\n this._networkStatus$.next(status);\r\n }\r\n\r\n private _boolToNetworkStatus(up: boolean) {\r\n return up ? NetworkStatus.Up : NetworkStatus.Down;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport Pubnub from 'pubnub';\r\nimport { BehaviorSubject, Observable, of, ReplaySubject, Subject, throwError } from 'rxjs';\r\nimport {\r\n catchError,\r\n distinctUntilChanged,\r\n filter,\r\n map,\r\n switchMap,\r\n take,\r\n takeUntil,\r\n tap,\r\n timeout,\r\n} from 'rxjs/operators';\r\nimport { TcsConfigurationService } from 'src/app/core/configuration.service';\r\nimport { createSafeProps } from 'src/lib/tcs-app-insights/app-insights-util';\r\nimport { AuthenticationService } from 'src/lib/tcs-identity/authentication.service';\r\nimport { TabsService } from 'src/lib/tcs-tabs/tabs.service';\r\nimport { AppState } from 'src/store/appstate';\r\nimport {\r\n MessageReceived,\r\n PresenceChange,\r\n StatusChange,\r\n} from 'src/store/pubnub/pubnub-store.actions';\r\nimport { BackpressureQueue } from 'src/util/backpressure-queue/backpressure-queue';\r\nimport { filterNull } from 'src/util/rxjs/operators/filter-null';\r\nimport { uuid } from 'src/util/uuid';\r\nimport { selectSubscribedChannels } from 'src/store/pubnub/pubnub-store.model';\r\nimport { retryBackoff } from 'src/util/rxjs/operators/retry-backoff';\r\nimport { networkTimeout } from 'src/util/rxjs/helper';\r\nimport { firstValueOrUndefined } from 'src/util/rxjs';\r\nimport { TcsUserSettingsService } from 'src/lib/tcs-user-settings/tcs-user-settings.service';\r\nimport { UserService } from '../../../lib/tcs-identity/user.service';\r\nimport { GraphQLMutationsService } from '../graphql/graphql-mutations.service';\r\nimport { Logger, loggerOptionsFactory } from '../tcs-logging/logger';\r\nimport { PubnubConfig } from './pubnub-config';\r\n\r\ninterface PubnubSubscribeError {\r\n errorData: {\r\n message: string;\r\n payload: {\r\n channels: string[];\r\n error: boolean;\r\n service: string;\r\n status: number;\r\n };\r\n };\r\n}\r\n\r\nclass PubnubEventLogger {\r\n private _events: { event: string; type: 'info' | 'warning' | 'error'; ignore?: boolean }[] = [\r\n { event: Pubnub.CATEGORIES.PNConnectedCategory, type: 'info', ignore: true },\r\n { event: Pubnub.CATEGORIES.PNNetworkUpCategory, type: 'info', ignore: true },\r\n { event: Pubnub.CATEGORIES.PNReconnectedCategory, type: 'info', ignore: true },\r\n { event: Pubnub.CATEGORIES.PNMalformedResponseCategory, type: 'info', ignore: true },\r\n { event: Pubnub.CATEGORIES.PNUnknownCategory, type: 'info', ignore: true },\r\n { event: Pubnub.CATEGORIES.PNNetworkIssuesCategory, type: 'warning', ignore: false },\r\n { event: Pubnub.CATEGORIES.PNTimeoutCategory, type: 'warning', ignore: false },\r\n { event: Pubnub.CATEGORIES.PNNetworkDownCategory, type: 'error', ignore: false },\r\n { event: Pubnub.CATEGORIES.PNBadRequestCategory, type: 'error', ignore: false },\r\n { event: Pubnub.CATEGORIES.PNAccessDeniedCategory, type: 'error', ignore: false },\r\n { event: Pubnub.CATEGORIES.PNRequestMessageCountExceedCategory, type: 'error', ignore: false },\r\n ];\r\n\r\n constructor(private _tabs: TabsService, private _user: UserService, private _logger: Logger) {}\r\n\r\n public logStatus(status: Pubnub.StatusEvent) {\r\n let msg = `PubnubEventLogger.logStatus.`;\r\n const message = {\r\n date: new Date().toISOString(),\r\n user: this._user.user?.email ?? 'unknown@gmr.net',\r\n logType: 'unknown',\r\n status,\r\n };\r\n const event = this._events.find((ev) => ev.event === status.category);\r\n const tabStatus = this._tabs.getStatus();\r\n if (event != null) {\r\n if (event.ignore !== true) {\r\n const isError = (status as any).error === true || event.type === 'error';\r\n msg += isError ? 'error' : event.type;\r\n message.logType = event.type;\r\n if (isError) {\r\n this._logger.error(msg, createSafeProps({ message, ...tabStatus }));\r\n } else if (event.type === 'info') {\r\n this._logger.info(msg, createSafeProps({ message, ...tabStatus }));\r\n } else if (event.type === 'warning') {\r\n this._logger.warning(msg, createSafeProps({ message, ...tabStatus }));\r\n }\r\n }\r\n } else {\r\n this._logger.warning(`${msg}unknown`, createSafeProps({ message, ...tabStatus }));\r\n }\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PubnubService implements OnDestroy {\r\n public readonly client: Pubnub;\r\n private readonly _listener: Pubnub.ListenerParameters;\r\n private _onDestroy$ = new Subject();\r\n private _initialized = false;\r\n\r\n private _subscribedChannels$ = new BehaviorSubject([]);\r\n private _hasClientSyncAccess$ = new ReplaySubject(1);\r\n private _messageQueue: BackpressureQueue;\r\n\r\n private _eventLogger: PubnubEventLogger;\r\n\r\n public reconnect() {\r\n return this.client.reconnect();\r\n }\r\n\r\n private get _config(): PubnubConfig {\r\n return this._tcsConfig.value.pubnub;\r\n }\r\n\r\n constructor(\r\n private readonly _tcsConfig: TcsConfigurationService,\r\n private readonly _authUserService: UserService,\r\n private readonly _auth: AuthenticationService,\r\n private readonly _store: Store,\r\n private readonly _mutations: GraphQLMutationsService,\r\n private readonly _logger: Logger,\r\n private readonly _tabs: TabsService,\r\n userSettings: TcsUserSettingsService,\r\n ) {\r\n const defaultUser = `default-${uuid()}`;\r\n this.client = new Pubnub({\r\n publishKey: this._config.publishKey,\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n subscribeKey: this._config.subscribeKey!,\r\n userId: this._authUserService.user?.id ?? defaultUser,\r\n });\r\n\r\n this._messageQueue = new BackpressureQueue(100, (message) => {\r\n try {\r\n this._store.dispatch(new MessageReceived(message, new Date()));\r\n\r\n if (userSettings.value.loggingCachePubnubMessages) {\r\n this._logger.info(\r\n 'Pubnub.MessageEvent',\r\n { message: typeof message === 'object' ? JSON.stringify(message) : 'unknown message' },\r\n loggerOptionsFactory.consoleAndCacheOnly(),\r\n );\r\n }\r\n } catch (error: any) {\r\n this._logger.error('PubnubService.messageQueue error', createSafeProps({ error }));\r\n }\r\n });\r\n\r\n this._eventLogger = new PubnubEventLogger(this._tabs, this._authUserService, this._logger);\r\n\r\n this._listener = {\r\n message: (message: Pubnub.MessageEvent) => {\r\n this._messageQueue.add(message);\r\n },\r\n status: (status: Pubnub.StatusEvent) => {\r\n // log status\r\n this._eventLogger.logStatus(status);\r\n\r\n if (status.category === 'PNConnectedCategory') {\r\n const previousChannels = this._subscribedChannels$.value;\r\n this._subscribedChannels$.next(status.subscribedChannels);\r\n this._logPubnubSubscribedChannels(status.subscribedChannels, previousChannels);\r\n } else if (status.category === 'PNNetworkUpCategory') {\r\n const channels = this._subscribedChannels$.value;\r\n if (channels.length > 0) {\r\n firstValueOrUndefined(\r\n this.subscribe(channels, { timeoutStrategy: 'silentlyContinue' }),\r\n );\r\n this._logger.info(\r\n 'PubnubService.status network up',\r\n createSafeProps({ status, ...this._tabs.getStatus() }),\r\n );\r\n }\r\n } else if (\r\n status.category === 'PNAccessDeniedCategory' &&\r\n status.operation === 'PNSubscribeOperation' &&\r\n (status as any).error === true\r\n ) {\r\n const error = status as any as Pubnub.PubnubStatus & PubnubSubscribeError;\r\n if (error.errorData != null) {\r\n // Failed subscribing to channel(s) so we need to unsubscribe\r\n // in order to avoid errors when subscribing to valid channels later on.\r\n this._logger.error(\r\n 'PubnubService._listener.status callback function: errorData on status.',\r\n createSafeProps({ error, ...this._tabs.getStatus() }),\r\n );\r\n this._unsubscribe(error.errorData.payload.channels);\r\n }\r\n }\r\n _store.dispatch(new StatusChange(status));\r\n },\r\n presence: (presence: Pubnub.PresenceEvent) => {\r\n _store.dispatch(new PresenceChange(presence));\r\n },\r\n };\r\n }\r\n\r\n public subscribe(\r\n channels: string[],\r\n options?: {\r\n timeoutStrategy?: 'silentlyContinue' | 'error';\r\n timeoutDuration?: number;\r\n },\r\n ) {\r\n return this._hasClientSyncAccess$.pipe(\r\n filter((isAuthorized) => isAuthorized === true),\r\n tap(() => {\r\n this.client.subscribe({ channels, withPresence: false });\r\n if (channels.find((c) => !this._subscribedChannels$.value.includes(c)) != null) {\r\n this._logger.info(\r\n 'PubnubService.subscribe subscribing',\r\n createSafeProps({ channels, ...this._tabs.getStatus() }),\r\n );\r\n }\r\n }),\r\n switchMap(() => {\r\n const subscribed$ = this._store.select(selectSubscribedChannels()).pipe(\r\n map((subscribed) => {\r\n channels = channels ?? [];\r\n const notYetSubscribed = channels.find((channel) => !subscribed.includes(channel));\r\n const allSubscribed = notYetSubscribed == null;\r\n return allSubscribed;\r\n }),\r\n filter((subscribed) => subscribed),\r\n );\r\n\r\n const timeoutDuration = options?.timeoutDuration ?? 5000;\r\n if (timeoutDuration >= 0) {\r\n let retryCount = 0;\r\n const timeoutStrategy = options?.timeoutStrategy ?? 'silentlyContinue';\r\n return subscribed$.pipe(\r\n timeout(timeoutDuration),\r\n retryBackoff({\r\n maxRetries: 5,\r\n initialDuration: 1000,\r\n canRetry: (err) => {\r\n retryCount++;\r\n this._logger.warning(\r\n 'PubnubService.subscribe: RetryBackoff',\r\n createSafeProps({ error: err, retryCount, ...this._tabs.getStatus() }),\r\n );\r\n return true;\r\n },\r\n }),\r\n catchError((err) => {\r\n this._logger.error(\r\n `PubnubService.subscribe: Timeout (${timeoutDuration}ms). Timeout strategy: ${timeoutStrategy} `,\r\n createSafeProps({\r\n timeoutDuration,\r\n timeoutStrategy,\r\n channels,\r\n ...this._tabs.getStatus(),\r\n }),\r\n );\r\n if (timeoutStrategy === 'silentlyContinue') {\r\n return of(true);\r\n }\r\n return throwError(err);\r\n }),\r\n );\r\n }\r\n return subscribed$;\r\n }),\r\n take(1),\r\n );\r\n }\r\n\r\n public unsubscribe({\r\n channelPrefix: prefix,\r\n exceptChannel: except,\r\n }: {\r\n channelPrefix: string;\r\n exceptChannel?: string;\r\n }): Observable {\r\n return this._store.select(selectSubscribedChannels()).pipe(\r\n map((subscribedChannels) =>\r\n subscribedChannels.filter((c) => c.startsWith(prefix) && c !== except).toArray(),\r\n ),\r\n tap((channelsToUnsubscribe) => {\r\n if (channelsToUnsubscribe.length > 0) {\r\n this._unsubscribe(channelsToUnsubscribe);\r\n }\r\n }),\r\n take(1),\r\n );\r\n }\r\n\r\n public init() {\r\n if (!this._initialized) {\r\n this._authUserService.distinctUser$\r\n .pipe(\r\n filterNull(),\r\n distinctUntilChanged((u1, u2) => u1.id === u2.id),\r\n takeUntil(this._onDestroy$),\r\n )\r\n .subscribe(async (user) => {\r\n this.client.setUUID(`${user.id}_${this._tabs.tabId}`);\r\n\r\n const token = await this._auth.getAccessToken();\r\n if (token != null) {\r\n await firstValueOrUndefined(\r\n this._mutations.organization\r\n .authorizeClientSyncAccess(\r\n { optionalEmail: null },\r\n {\r\n alert: { description: 'Connecting to client sync' },\r\n },\r\n )\r\n .pipe(timeout(networkTimeout('pubnubService.init'))),\r\n ).catch((error) => {\r\n this._logger.error(\r\n 'PubnubService.init: Could not authorize client sync access.',\r\n createSafeProps({ error, ...this._tabs.getStatus() }),\r\n );\r\n throw error;\r\n });\r\n this.client.setAuthKey(token);\r\n this._hasClientSyncAccess$.next(true);\r\n } else {\r\n this._logger.error(\r\n 'PubnubService.init: Token not found.',\r\n createSafeProps(this._tabs.getStatus()),\r\n );\r\n }\r\n });\r\n this.client.addListener(this._listener);\r\n this._initialized = true;\r\n }\r\n }\r\n\r\n private _unsubscribe(channels: string[]) {\r\n this.client.unsubscribe({ channels });\r\n this._logger.info(\r\n 'PubnubService._unsubscribe unsubscribing',\r\n createSafeProps({ channels, ...this._tabs.getStatus() }),\r\n );\r\n }\r\n\r\n private _logPubnubSubscribedChannels(subscribedChannels: string[], previousChannels: string[]) {\r\n const hasNewChannel = subscribedChannels.find((c) => !previousChannels.includes(c)) != null;\r\n if (hasNewChannel || subscribedChannels.length !== previousChannels.length) {\r\n const tabStatus = this._tabs.getStatus();\r\n this._logger.info(\r\n 'PubnubService.status subscribed',\r\n createSafeProps({ channels: subscribedChannels, previous: previousChannels, ...tabStatus }),\r\n );\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n","import { Action } from '@ngrx/store';\r\nimport * as Pubnub from 'pubnub';\r\nexport const STATUS_CHANGE = '[Pubnub] Status change';\r\nexport const PRESENCE_CHANGE = '[Pubnub] Presence change';\r\nexport const MESSAGE_RECIEVED = '[Pubnub] Message received';\r\n\r\nexport class StatusChange implements Action {\r\n public readonly type = STATUS_CHANGE;\r\n constructor(public readonly status: Pubnub.StatusEvent) {}\r\n}\r\n\r\nexport class PresenceChange implements Action {\r\n public readonly type = PRESENCE_CHANGE;\r\n constructor(public readonly presence: Pubnub.PresenceEvent) {}\r\n}\r\n\r\nexport class MessageReceived implements Action {\r\n public readonly type = MESSAGE_RECIEVED;\r\n constructor(public readonly message: Pubnub.MessageEvent, public readonly dateReceived: Date) {}\r\n\r\n public getMessageBody() {\r\n return this.message.message.body as T;\r\n }\r\n}\r\n\r\nexport type All = StatusChange | PresenceChange | MessageReceived;\r\n","export enum BackpressureQueueWorker {\r\n SetPeriod = 'setPeriod',\r\n SetQueueCount = 'setQueueCount',\r\n ProcessQueue = 'processQueue',\r\n ProcessNextItem = 'processNextItem',\r\n}\r\n\r\nexport type BackpressureQueueCommand =\r\n | SetPeriodCommand\r\n | SetQueueCountCommand\r\n | ProcessNextItemCommand\r\n | ProcessQueueCommand;\r\n\r\ninterface Command {\r\n cmd: T;\r\n}\r\ninterface Message {\r\n message: T;\r\n}\r\n\r\nexport class SetPeriodCommand implements Command, Message {\r\n public readonly cmd = BackpressureQueueWorker.SetPeriod;\r\n constructor(public readonly message: number) {}\r\n}\r\n\r\nexport class SetQueueCountCommand implements Command, Message {\r\n public readonly cmd = BackpressureQueueWorker.SetQueueCount;\r\n constructor(public readonly message: number) {}\r\n}\r\n\r\nexport class ProcessQueueCommand implements Command {\r\n public readonly cmd = BackpressureQueueWorker.ProcessQueue;\r\n constructor() {}\r\n}\r\n\r\nexport class ProcessNextItemCommand implements Command {\r\n public readonly cmd = BackpressureQueueWorker.ProcessNextItem;\r\n constructor() {}\r\n}\r\n","import { BehaviorSubject, timer } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport {\r\n BackpressureQueueCommand,\r\n BackpressureQueueWorker,\r\n ProcessQueueCommand,\r\n SetPeriodCommand,\r\n SetQueueCountCommand,\r\n} from './backpressure-queue-shared';\r\n\r\n/**\r\n * Controls the flow of data being processed.\r\n */\r\nexport class BackpressureQueue {\r\n private _queue: T[] = [];\r\n private _controller = new BehaviorSubject({ processing: false });\r\n private _executeProcessor: () => void;\r\n private worker: Worker;\r\n\r\n /**\r\n * Number of items remaining in the queue\r\n */\r\n public get queueCount() {\r\n return this._queue.length;\r\n }\r\n\r\n /**\r\n * @param period - Period of time between emitting the next item in the queue.\r\n * @param next - Called at each interval period\r\n */\r\n constructor(public period: number, public next: (item: T) => void) {\r\n if (typeof Worker !== 'undefined') {\r\n this.worker = new Worker(new URL('./backpressure-queue.worker', import.meta.url), {\r\n type: 'module',\r\n });\r\n this.worker.onmessage = ({ data }: MessageEvent) => {\r\n if (data.cmd === BackpressureQueueWorker.ProcessNextItem) {\r\n const msg = this._queue.shift();\r\n if (this.queueCount === 0) {\r\n this.worker.postMessage(new SetQueueCountCommand(this.queueCount));\r\n }\r\n if (msg != null) {\r\n this.next(msg);\r\n }\r\n }\r\n };\r\n\r\n this.worker.postMessage(new SetPeriodCommand(this.period));\r\n this._executeProcessor = () => {\r\n this.worker.postMessage(new SetQueueCountCommand(this.queueCount));\r\n this.worker.postMessage(new ProcessQueueCommand());\r\n };\r\n } else {\r\n // Worker is not supported, so process the queue locally.\r\n this._executeProcessor = () => this._processQueue();\r\n }\r\n }\r\n\r\n /**\r\n * Add item(s) to queue\r\n */\r\n public add(...items: T[]) {\r\n this._queue.push(...items);\r\n this._executeProcessor();\r\n }\r\n\r\n /**\r\n * Cleanup\r\n */\r\n public dispose() {\r\n this.worker?.terminate();\r\n }\r\n\r\n private _processQueue() {\r\n if (this._controller.value.processing) {\r\n return;\r\n }\r\n this._controller.next({ processing: true });\r\n timer(0, this.period)\r\n .pipe(takeUntil(this._controller.pipe(filter((c) => !c.processing))))\r\n .subscribe(() => {\r\n const msg = this._queue.shift();\r\n if (msg != null) {\r\n this.next(msg);\r\n if (this._queue.length === 0) {\r\n this._controller.next({ processing: false });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppInsightsService } from 'src/lib/tcs-app-insights/app-insights-initializer.service';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport { Logger, LoggerOptions, LoggerOptionsService } from './logger';\r\n\r\n@Injectable()\r\nexport class AppInsightsLogger implements Logger {\r\n constructor(\r\n private _optionsManager: LoggerOptionsService,\r\n private _appInsightsService: AppInsightsService,\r\n ) {}\r\n\r\n public error(\r\n error: Error | string,\r\n properties?: { [name: string]: string },\r\n options?: LoggerOptions,\r\n ): void {\r\n if (this._optionsManager.canLogToAppInsights(options)) {\r\n const e = error instanceof Error ? error : new Error(error);\r\n this._appInsightsService.appInsights?.trackException({\r\n exception: e,\r\n properties,\r\n severityLevel: SeverityLevel.Error,\r\n });\r\n }\r\n }\r\n\r\n public warning(\r\n message: string,\r\n properties?: { [name: string]: string },\r\n options?: LoggerOptions,\r\n ): void {\r\n if (this._optionsManager.canLogToAppInsights(options)) {\r\n this._appInsightsService.appInsights?.trackTrace({\r\n message,\r\n properties,\r\n severityLevel: SeverityLevel.Warning,\r\n });\r\n }\r\n }\r\n\r\n public info(\r\n message: string,\r\n properties?: { [name: string]: string },\r\n options?: LoggerOptions,\r\n ): void {\r\n if (this._optionsManager.canLogToAppInsights(options)) {\r\n this._appInsightsService.appInsights?.trackTrace({\r\n message,\r\n properties,\r\n severityLevel: SeverityLevel.Information,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport { NewRelicService } from 'src/lib/tcs-new-relic/new-relic-initializer.service';\r\nimport { TcsConfigurationService } from 'src/app/core/configuration.service';\r\nimport { Logger, LoggerOptions, LoggerOptionsService } from './logger';\r\n\r\n@Injectable()\r\nexport class NewRelicLogger implements Logger {\r\n constructor(\r\n private _optionsManager: LoggerOptionsService,\r\n private _newRelicService: NewRelicService,\r\n private _config: TcsConfigurationService,\r\n ) {}\r\n\r\n public error(\r\n error: Error | string,\r\n properties?: { [name: string]: string },\r\n options?: LoggerOptions,\r\n ): void {\r\n if (this._optionsManager.canLogToNewRelic(options)) {\r\n const e = error instanceof Error ? error : new Error(error);\r\n this._newRelicService.newRelic?.noticeError(e, {\r\n ...properties,\r\n severityLevel: SeverityLevel.Error,\r\n level: 'Error',\r\n appSpace: 'FirstCall.Tcs',\r\n environment: this._config.environmentDisplay,\r\n });\r\n }\r\n }\r\n\r\n public warning(\r\n message: string,\r\n properties?: { [name: string]: string },\r\n options?: LoggerOptions,\r\n ): void {\r\n if (this._optionsManager.canLogToNewRelic(options)) {\r\n this._newRelicService.newRelic?.noticeError(message, {\r\n ...properties,\r\n severityLevel: SeverityLevel.Warning,\r\n level: 'Warning',\r\n appSpace: 'FirstCall.Tcs',\r\n environment: this._config.environmentDisplay,\r\n });\r\n }\r\n }\r\n\r\n public info(\r\n message: string,\r\n properties?: { [name: string]: string },\r\n options?: LoggerOptions,\r\n ): void {\r\n if (this._optionsManager.canLogToNewRelic(options)) {\r\n this._newRelicService.newRelic?.noticeError(message, {\r\n ...properties,\r\n severityLevel: SeverityLevel.Information,\r\n level: 'Information',\r\n appSpace: 'FirstCall.Tcs',\r\n environment: this._config.environmentDisplay,\r\n });\r\n }\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Subject, switchMap, takeUntil, withLatestFrom } from 'rxjs';\r\nimport { TcsUserSettingsService } from 'src/lib/tcs-user-settings/tcs-user-settings.service';\r\nimport { UserEmailService } from 'src/lib/tcs-identity/user-email.service';\r\nimport { generateNamedMD5Hash } from 'src/util/hash';\r\nimport { createSafeProps } from 'src/lib/tcs-app-insights/app-insights-util';\r\nimport { SessionStorage } from 'src/util/storage/session-storage';\r\nimport { Executor } from 'src/util/executor';\r\nimport { TickService } from '../tick.service';\r\nimport { AppInsightsLogger } from './app-insights-logger';\r\nimport { LoggerOptions, LoggerOptionsService } from './logger-options.service';\r\nimport { NewRelicLogger } from './new-relic-logger';\r\n\r\nconst createStorageId = (id: string) => generateNamedMD5Hash('cache-logger', [id]);\r\n\r\nexport enum LogType {\r\n Information = 'info',\r\n Warning = 'warn',\r\n Error = 'error',\r\n}\r\n\r\ninterface CacheItem {\r\n type: LogType;\r\n message: string;\r\n properties?: { [name: string]: string };\r\n timestamp: Date;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CacheLoggerCacheService implements OnDestroy {\r\n private _exceededQuotaMaxAgeMs = 1000 * 60 * 60 * 4;\r\n private _maxAgeMs = 1000 * 60 * 60 * 8;\r\n private _id$ = new BehaviorSubject('');\r\n private _onDestroy$ = new Subject();\r\n private _cache$ = new BehaviorSubject([]);\r\n private _cacheLoggerStorage: SessionStorage;\r\n\r\n constructor(\r\n private _optionsManager: LoggerOptionsService,\r\n private _insightsLogger: AppInsightsLogger,\r\n private _newRelicLogger: NewRelicLogger,\r\n userSettings: TcsUserSettingsService,\r\n userEmailService: UserEmailService,\r\n tickService: TickService,\r\n ) {\r\n this._cacheLoggerStorage = new SessionStorage({\r\n name: 'CacheLogger',\r\n setItemExecutor: new Executor({\r\n strategies: [\r\n // execute operation\r\n {\r\n name: 'operation',\r\n canRetry: (args) => args.errorName === 'QuotaExceededError',\r\n execute: (operation) => operation(),\r\n error: (ex: any) => this._error(`setItem: failed. ${ex.message}`),\r\n },\r\n\r\n // execute failed, attempt to free space by removing older entries\r\n {\r\n name: 'clearOlderEntries',\r\n canRetry: (args) => args.errorName === 'QuotaExceededError',\r\n execute: (retry) => {\r\n this._cacheLoggerStorage.clear(this._exceededQuotaMaxAgeMs);\r\n return retry();\r\n },\r\n success: () => this._info('setItem: Cleared older entries'),\r\n error: (ex: any, strategy) =>\r\n this._warn(`setItem: Strategy '${strategy}' failed. ${ex.message}`),\r\n },\r\n ],\r\n failure: () => {\r\n throw new Error('All strategies failed.');\r\n },\r\n }),\r\n });\r\n\r\n // cleanup cache\r\n tickService.everyHour$.pipe(takeUntil(this._onDestroy$)).subscribe(() => {\r\n this._cacheLoggerStorage.clear(this._maxAgeMs);\r\n });\r\n\r\n userEmailService.latestEmail$.pipe(takeUntil(this._onDestroy$)).subscribe((email) => {\r\n this._id$.next(createStorageId(email));\r\n this._loadCache(this._id$.getValue());\r\n });\r\n\r\n userSettings.whenReady$\r\n .pipe(\r\n switchMap(() => userSettings.valueChanges$),\r\n takeUntil(this._onDestroy$),\r\n )\r\n .subscribe(([prev, cur]) => {\r\n if (prev.loggingCacheEnabled && !cur.loggingCacheEnabled) {\r\n this.clearCache();\r\n }\r\n });\r\n\r\n let prevLength = 0;\r\n tickService.everyTenSeconds$\r\n .pipe(withLatestFrom(this._cache$), takeUntil(this._onDestroy$))\r\n .subscribe(([, cache]) => {\r\n const curLength = cache.length;\r\n if (curLength !== prevLength) {\r\n this._saveCache();\r\n }\r\n prevLength = curLength;\r\n });\r\n }\r\n\r\n public getLogs() {\r\n return this._cache$.getValue();\r\n }\r\n\r\n public serializeLogs() {\r\n return this._cacheLoggerStorage.getItem(this._id$.getValue());\r\n }\r\n\r\n public clearCache() {\r\n const id = this._id$.getValue();\r\n this._cacheLoggerStorage.removeItem(id);\r\n this._cache$.next([]);\r\n }\r\n\r\n public cacheItem(\r\n type: LogType,\r\n message: string,\r\n properties?: { [name: string]: string },\r\n options?: LoggerOptions,\r\n ) {\r\n if (this._canCacheItem(options)) {\r\n const cache = this._cache$.getValue();\r\n this._cache$.next([...cache, { type, message, properties, timestamp: new Date() }]);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n\r\n private _canCacheItem(options?: LoggerOptions) {\r\n return this._id$.getValue() !== '' && this._optionsManager.canLogToCache(options);\r\n }\r\n\r\n private _loadCache(id: string) {\r\n try {\r\n const data = this._cacheLoggerStorage.getItem(id);\r\n if (data != null) {\r\n this._cache$.next(JSON.parse(data ?? '[]'));\r\n }\r\n } catch (error: any) {\r\n this._cacheLoggerStorage.removeItem(id);\r\n this._cache$.next([]);\r\n this._error('Error loading cache-logger data', { error });\r\n }\r\n }\r\n\r\n private _saveCache() {\r\n const id = this._id$.getValue();\r\n try {\r\n const str = JSON.stringify(this._cache$.getValue());\r\n this._cacheLoggerStorage.setItem(id, str);\r\n } catch (error: any) {\r\n this._cacheLoggerStorage.removeItem(id);\r\n this._cache$.next([]);\r\n this._error('Error saving cache-logger data', { error });\r\n }\r\n }\r\n\r\n private _info(message: string, props?: any) {\r\n this._insightsLogger.info(`${this.constructor.name}: ${message}`, createSafeProps(props));\r\n this._newRelicLogger.info(`${this.constructor.name}: ${message}`, createSafeProps(props));\r\n }\r\n\r\n private _warn(message: string, props?: any) {\r\n this._insightsLogger.warning(`${this.constructor.name}: ${message}`, createSafeProps(props));\r\n this._newRelicLogger.warning(`${this.constructor.name}: ${message}`, createSafeProps(props));\r\n }\r\n\r\n private _error(message: string, props?: any) {\r\n this._insightsLogger.error(`${this.constructor.name}: ${message}`, createSafeProps(props));\r\n this._newRelicLogger.error(`${this.constructor.name}: ${message}`, createSafeProps(props));\r\n }\r\n}\r\n","import * as i0 from '@angular/core';\nimport { InjectionToken, EventEmitter, Component, Inject, Input, ViewChild, Output, forwardRef, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nconst _c0 = [\"editorContainer\"];\nconst _c1 = \"[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}\";\nconst NGX_MONACO_EDITOR_CONFIG = new InjectionToken('NGX_MONACO_EDITOR_CONFIG');\nlet loadedMonaco = false;\nlet loadPromise;\nlet BaseEditor = /*#__PURE__*/(() => {\n class BaseEditor {\n set insideNg(insideNg) {\n this._insideNg = insideNg;\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(this._options, this.insideNg);\n }\n }\n get insideNg() {\n return this._insideNg;\n }\n constructor(config) {\n this.config = config;\n this.onInit = new EventEmitter();\n this._insideNg = false;\n }\n ngAfterViewInit() {\n if (loadedMonaco) {\n // Wait until monaco editor is available\n loadPromise.then(() => {\n this.initMonaco(this._options, this.insideNg);\n });\n } else {\n loadedMonaco = true;\n loadPromise = new Promise(resolve => {\n const baseUrl = this.config.baseUrl || \"./assets\";\n if (typeof window.monaco === 'object') {\n this.initMonaco(this._options, this.insideNg);\n resolve();\n return;\n }\n const onGotAmdLoader = require => {\n let usedRequire = require || window.require;\n let requireConfig = {\n paths: {\n vs: `${baseUrl}/monaco/min/vs`\n }\n };\n Object.assign(requireConfig, this.config.requireConfig || {});\n // Load monaco\n usedRequire.config(requireConfig);\n usedRequire([`vs/editor/editor.main`], () => {\n if (typeof this.config.onMonacoLoad === 'function') {\n this.config.onMonacoLoad();\n }\n this.initMonaco(this._options, this.insideNg);\n resolve();\n });\n };\n if (this.config.monacoRequire) {\n onGotAmdLoader(this.config.monacoRequire);\n // Load AMD loader if necessary\n } else if (!window.require) {\n const loaderScript = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = `${baseUrl}/monaco/min/vs/loader.js`;\n loaderScript.addEventListener('load', () => {\n onGotAmdLoader();\n });\n document.body.appendChild(loaderScript);\n // Load AMD loader without over-riding node's require\n } else if (!window.require.config) {\n var src = `${baseUrl}/monaco/min/vs/loader.js`;\n var loaderRequest = new XMLHttpRequest();\n loaderRequest.addEventListener(\"load\", () => {\n let scriptElem = document.createElement('script');\n scriptElem.type = 'text/javascript';\n scriptElem.text = [\n // Monaco uses a custom amd loader that over-rides node's require.\n // Keep a reference to node's require so we can restore it after executing the amd loader file.\n 'var nodeRequire = require;', loaderRequest.responseText.replace('\"use strict\";', ''),\n // Save Monaco's amd require and restore Node's require\n 'var monacoAmdRequire = require;', 'require = nodeRequire;', 'require.nodeRequire = require;'].join('\\n');\n document.body.appendChild(scriptElem);\n onGotAmdLoader(window.monacoAmdRequire);\n });\n loaderRequest.open(\"GET\", src);\n loaderRequest.send();\n } else {\n onGotAmdLoader();\n }\n });\n }\n }\n ngOnDestroy() {\n if (this._windowResizeSubscription) {\n this._windowResizeSubscription.unsubscribe();\n }\n if (this._editor) {\n this._editor.dispose();\n this._editor = undefined;\n }\n }\n static {\n this.ɵfac = function BaseEditor_Factory(t) {\n return new (t || BaseEditor)(i0.ɵɵdirectiveInject(NGX_MONACO_EDITOR_CONFIG));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BaseEditor,\n selectors: [[\"ng-component\"]],\n viewQuery: function BaseEditor_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._editorContainer = _t.first);\n }\n },\n inputs: {\n insideNg: \"insideNg\"\n },\n outputs: {\n onInit: \"onInit\"\n },\n decls: 0,\n vars: 0,\n template: function BaseEditor_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n }\n return BaseEditor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EditorComponent = /*#__PURE__*/(() => {\n class EditorComponent extends BaseEditor {\n set options(options) {\n this._options = Object.assign({}, this.config.defaultOptions, options);\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(options, this.insideNg);\n }\n }\n get options() {\n return this._options;\n }\n set model(model) {\n this.options.model = model;\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(this.options, this.insideNg);\n }\n }\n constructor(zone, editorConfig) {\n super(editorConfig);\n this.zone = zone;\n this.editorConfig = editorConfig;\n this._value = '';\n this.propagateChange = _ => {};\n this.onTouched = () => {};\n }\n writeValue(value) {\n this._value = value || '';\n // Fix for value change while dispose in process.\n setTimeout(() => {\n if (this._editor && !this.options.model) {\n this._editor.setValue(this._value);\n }\n });\n }\n registerOnChange(fn) {\n this.propagateChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n initMonaco(options, insideNg) {\n const hasModel = !!options.model;\n if (hasModel) {\n const model = monaco.editor.getModel(options.model.uri || '');\n if (model) {\n options.model = model;\n options.model.setValue(this._value);\n } else {\n options.model = monaco.editor.createModel(options.model.value, options.model.language, options.model.uri);\n }\n }\n if (insideNg) {\n this._editor = monaco.editor.create(this._editorContainer.nativeElement, options);\n } else {\n this.zone.runOutsideAngular(() => {\n this._editor = monaco.editor.create(this._editorContainer.nativeElement, options);\n });\n }\n if (!hasModel) {\n this._editor.setValue(this._value);\n }\n this._editor.onDidChangeModelContent(e => {\n const value = this._editor.getValue();\n // value is not propagated to parent when executing outside zone.\n this.zone.run(() => {\n this.propagateChange(value);\n this._value = value;\n });\n });\n this._editor.onDidBlurEditorWidget(() => {\n this.onTouched();\n });\n // refresh layout on resize event.\n if (this._windowResizeSubscription) {\n this._windowResizeSubscription.unsubscribe();\n }\n this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());\n this.onInit.emit(this._editor);\n }\n static {\n this.ɵfac = function EditorComponent_Factory(t) {\n return new (t || EditorComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(NGX_MONACO_EDITOR_CONFIG));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: EditorComponent,\n selectors: [[\"ngx-monaco-editor\"]],\n inputs: {\n options: \"options\",\n model: \"model\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EditorComponent),\n multi: true\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"editorContainer\", \"\"], [1, \"editor-container\"]],\n template: function EditorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 1, 0);\n }\n },\n styles: [\"[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}\"]\n });\n }\n }\n return EditorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DiffEditorComponent = /*#__PURE__*/(() => {\n class DiffEditorComponent extends BaseEditor {\n set options(options) {\n this._options = Object.assign({}, this.config.defaultOptions, options);\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(options, this.insideNg);\n }\n }\n get options() {\n return this._options;\n }\n set originalModel(model) {\n this._originalModel = model;\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(this.options, this.insideNg);\n }\n }\n set modifiedModel(model) {\n this._modifiedModel = model;\n if (this._editor) {\n this._editor.dispose();\n this.initMonaco(this.options, this.insideNg);\n }\n }\n constructor(zone, editorConfig) {\n super(editorConfig);\n this.zone = zone;\n this.editorConfig = editorConfig;\n }\n initMonaco(options, insideNg) {\n if (!this._originalModel || !this._modifiedModel) {\n throw new Error('originalModel or modifiedModel not found for ngx-monaco-diff-editor');\n }\n this._originalModel.language = this._originalModel.language || options.language;\n this._modifiedModel.language = this._modifiedModel.language || options.language;\n let originalModel = monaco.editor.createModel(this._originalModel.code, this._originalModel.language);\n let modifiedModel = monaco.editor.createModel(this._modifiedModel.code, this._modifiedModel.language);\n this._editorContainer.nativeElement.innerHTML = '';\n const theme = options.theme;\n if (insideNg) {\n this._editor = monaco.editor.createDiffEditor(this._editorContainer.nativeElement, options);\n } else {\n this.zone.runOutsideAngular(() => {\n this._editor = monaco.editor.createDiffEditor(this._editorContainer.nativeElement, options);\n });\n }\n options.theme = theme;\n this._editor.setModel({\n original: originalModel,\n modified: modifiedModel\n });\n // refresh layout on resize event.\n if (this._windowResizeSubscription) {\n this._windowResizeSubscription.unsubscribe();\n }\n this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());\n this.onInit.emit(this._editor);\n }\n static {\n this.ɵfac = function DiffEditorComponent_Factory(t) {\n return new (t || DiffEditorComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(NGX_MONACO_EDITOR_CONFIG));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DiffEditorComponent,\n selectors: [[\"ngx-monaco-diff-editor\"]],\n inputs: {\n options: \"options\",\n originalModel: \"originalModel\",\n modifiedModel: \"modifiedModel\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"editorContainer\", \"\"], [1, \"editor-container\"]],\n template: function DiffEditorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 1, 0);\n }\n },\n styles: [_c1]\n });\n }\n }\n return DiffEditorComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MonacoEditorModule = /*#__PURE__*/(() => {\n class MonacoEditorModule {\n static forRoot(config = {}) {\n return {\n ngModule: MonacoEditorModule,\n providers: [{\n provide: NGX_MONACO_EDITOR_CONFIG,\n useValue: config\n }]\n };\n }\n static {\n this.ɵfac = function MonacoEditorModule_Factory(t) {\n return new (t || MonacoEditorModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MonacoEditorModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return MonacoEditorModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DiffEditorComponent, EditorComponent, MonacoEditorModule, NGX_MONACO_EDITOR_CONFIG };\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport { NgxMonacoEditorConfig } from 'ngx-monaco-editor-v2';\r\nimport { Subject } from 'rxjs';\r\n\r\nfunction getKeywords(): string[] {\r\n return [\r\n 'card',\r\n 'card.card_number',\r\n 'card.operation_type',\r\n 'card.request',\r\n 'card.request.patients',\r\n 'card.request.pickup_location',\r\n 'card.request.pickup_location.location',\r\n 'card.request.pickup_location.location.abbreviation',\r\n 'card.request.pickup_location.fbo',\r\n 'card.request.pickup_location.fbo.name',\r\n 'card.request.pickup_location.medical_facility',\r\n 'card.request.pickup_location.medical_facility.abbreviation',\r\n 'card.request.pickup_location.medical_facility.name',\r\n 'card.request.pickup_location.room_number',\r\n 'card.request.pickup_location.bed_number',\r\n 'card.request.pickup_location.notes',\r\n 'card.request.pickup_location.address',\r\n 'card.request.pickup_location.address.gps_id',\r\n 'card.request.pickup_location.address.city',\r\n 'card.request.pickup_location.address.region',\r\n 'card.request.pickup_location.address.county',\r\n 'card.request.pickup_location.address.street_address',\r\n 'card.request.pickup_location.readable_dm',\r\n 'card.request.pickup_location.medical_facility_address',\r\n 'card.request.pickup_location.medical_facility_address.street_address',\r\n 'card.request.pickup_location.medical_facility_address.city',\r\n 'card.request.pickup_location.ground_contact',\r\n 'card.request.dropoff_location',\r\n 'card.request.dropoff_location.location',\r\n 'card.request.dropoff_location.location.abbreviation',\r\n 'card.request.dropoff_location.fbo',\r\n 'card.request.dropoff_location.fbo.name',\r\n 'card.request.dropoff_location.medical_facility',\r\n 'card.request.dropoff_location.medical_facility.abbreviation',\r\n 'card.request.dropoff_location.medical_facility.name',\r\n 'card.request.dropoff_location.room_number',\r\n 'card.request.dropoff_location.bed_number',\r\n 'card.request.dropoff_location.notes',\r\n 'card.request.dropoff_location.address',\r\n 'card.request.dropoff_location.address.gps_id',\r\n 'card.request.dropoff_location.address.city',\r\n 'card.request.dropoff_location.address.region',\r\n 'card.request.dropoff_location.address.county',\r\n 'card.request.dropoff_location.un_confirmed',\r\n 'card.request.dropoff_location.medical_facility_address',\r\n 'card.request.dropoff_location.medical_facility_address.street_address',\r\n 'card.request.dropoff_location.medical_facility_address.city',\r\n 'card.request.dropoff_location.readable_dm',\r\n 'card.request.customer_description',\r\n 'card.request.requestor',\r\n 'card.request.requestor.mission_role_type',\r\n 'card.request.safety_questions',\r\n 'card.request.safety_questions.other_service_declined',\r\n 'card.request.safety_questions.other_service_description',\r\n 'card.request.safety_questions.other_services_are_responding_to_transferring',\r\n 'card.request.safety_questions.other_service_response_description',\r\n 'card.request.ground_contact',\r\n 'card.request.requesting_agency',\r\n 'card.request.requesting_agency.name',\r\n 'card.operation',\r\n 'card.operation.unit',\r\n 'card.operation.unit.abbreviation',\r\n 'card.operation.unit.name',\r\n 'card.operation.trip',\r\n 'card.operation.trip.legs',\r\n 'card.time_unitOffered',\r\n 'card.crew_notified',\r\n 'card.timestamps',\r\n 'card.number',\r\n 'card.operations_type',\r\n 'patient',\r\n 'patient.weight_in_kg',\r\n 'patient.age',\r\n 'patient.gender',\r\n 'patient.transport_reason',\r\n 'patient.transport_reason.name',\r\n 'patient.chief_complaint_notes',\r\n 'patient.notes',\r\n 'patient.number_of_drips',\r\n 'patient.is_intubated',\r\n 'patient.specialty_equipment',\r\n 'patient.is_ride_along_requested',\r\n 'patient.ride_along_requested_weight',\r\n 'patient.ride_along_date_of_birth',\r\n 'patient.first_name',\r\n 'patient.last_name',\r\n 'patient.date_of_birth',\r\n 'patient.ride_along_name',\r\n 'unit',\r\n 'unit.name',\r\n 'unit.abbreviation',\r\n 'unit.vehicle',\r\n 'unit.vehicle.registration_number',\r\n 'oos_event',\r\n 'oos_event.unit',\r\n 'oos_event.unit.abbreviation',\r\n 'oos_event.unit.vehicle',\r\n 'oos_event.unit.vehicle.registration_number',\r\n 'oos_event.unit.name',\r\n 'oos_event.reason',\r\n 'oos_event.reason.name',\r\n 'oos_event.secondary_reason',\r\n 'oos_event.secondary_reason.name',\r\n 'oos_event.type',\r\n 'oos_event.notes',\r\n 'timestamp',\r\n 'timestamp.time',\r\n 'reason',\r\n 'reason.name',\r\n 'leg',\r\n 'leg.duration_in_minutes',\r\n 'leg.manifest_entries',\r\n 'manifest',\r\n 'manifest.title',\r\n 'manifest.name',\r\n 'timestampData',\r\n 'timestampData.note',\r\n 'bearing_in_degrees',\r\n 'distance_in_miles_nautical',\r\n 'duration_in_minutes',\r\n 'card.request.web_order_call_type',\r\n ];\r\n}\r\n\r\nexport function monacoLoad() {\r\n // Create Custom Language\r\n monaco.languages.register({\r\n id: 'scriban',\r\n extensions: [\r\n '.sbn',\r\n '.sbn-html',\r\n '.sbnhtml',\r\n '.sbn-htm',\r\n '.sbnhtm',\r\n '.sbn-txt',\r\n '.sbntxt',\r\n '.sbn-cs',\r\n '.sbncs',\r\n '.scriban',\r\n '.scriban-html',\r\n '.scriban-htm',\r\n '.scriban-txt',\r\n '.scriban-cs',\r\n ],\r\n mimetypes: ['text/scriban', 'text/sbn'],\r\n });\r\n\r\n // Configure language\r\n monaco.languages.setLanguageConfiguration('scriban', {\r\n surroundingPairs: [\r\n { open: '{{', close: '}}' },\r\n { open: '{%{', close: '}%}' },\r\n ],\r\n comments: {\r\n blockComment: ['{%{', '}%}'],\r\n lineComment: '#',\r\n },\r\n folding: {\r\n markers: { start: /{{|{%{/, end: /}}|}%}/ },\r\n },\r\n wordPattern: /[\\.a-z_$][\\w]*/,\r\n indentationRules: {\r\n indentNextLinePattern: /{{/,\r\n decreaseIndentPattern: /}}/,\r\n increaseIndentPattern: /{{/,\r\n },\r\n autoClosingPairs: [\r\n { open: '{{', close: '}}' },\r\n { open: '{{-', close: '-}}' },\r\n { open: '{{~', close: '~}}' },\r\n { open: '(', close: ')' },\r\n ],\r\n });\r\n\r\n monaco.languages.setMonarchTokensProvider('scriban', {\r\n keywords: [...getKeywords()],\r\n booleans: ['true', 'false'],\r\n typeKeywords: [\r\n 'if',\r\n 'else',\r\n 'end',\r\n 'func',\r\n 'for',\r\n 'break',\r\n 'continue',\r\n 'in',\r\n 'while',\r\n 'capture',\r\n 'readonly',\r\n 'import',\r\n 'with',\r\n 'wrap',\r\n 'include',\r\n 'ret',\r\n 'case',\r\n 'when',\r\n 'this',\r\n 'empty',\r\n 'tablerow',\r\n ],\r\n operators: ['==', '!=', '>=', '<=', '&&', '||', '??'],\r\n\r\n // we include these common regular expressions\r\n symbols: /[=>](?!@symbols)/, '@brackets'],\r\n [\r\n /@symbols/,\r\n {\r\n cases: {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '@operators': 'operator',\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n '@default': 'identifier',\r\n },\r\n },\r\n ],\r\n\r\n // numbers\r\n [/\\d*\\.\\d+([eE][\\-+]?\\d+)?[fFdD]?/, 'number.float'],\r\n [/0[xX][0-9a-fA-F_]*[0-9a-fA-F][Ll]?/, 'number.hex'],\r\n [/0[0-7_]*[0-7][Ll]?/, 'number.octal'],\r\n [/0[bB][0-1_]*[0-1][Ll]?/, 'number.binary'],\r\n [/\\d+[lL]?/, 'number'],\r\n\r\n // delimiter: after number because of .\\d floats\r\n [/[;,.]/, 'delimiter'],\r\n\r\n // strings\r\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\r\n [/'([^'\\\\]|\\\\.)*$/, 'string.invalid'], // non-teminated string\r\n [/\"/, 'string', '@doubleQuote'],\r\n [/'/, 'string', '@singleQuote'],\r\n\r\n // characters\r\n [/'[^\\\\']'/, 'string'],\r\n [/(')(@escapes)(')/, ['string', 'string.escape', 'string']],\r\n [/'/, 'string.invalid'],\r\n ],\r\n\r\n whitespace: [\r\n [/[ \\t\\r\\n]+/, 'white'],\r\n [/{%+{[~\\-]?/, 'brackets', '@comment1'],\r\n [/##/, 'comment', '@comment2'],\r\n [/#/, { token: 'comment', next: '@comment3' }],\r\n ],\r\n\r\n comment1: [\r\n [/[~\\-]?}%+}/, 'brackets', '@pop'],\r\n [/[^~\\-%}]+/, 'comment'],\r\n [/[~\\-%}]/, 'comment'],\r\n ],\r\n\r\n comment2: [\r\n [/##/, 'comment', '@pop'],\r\n [/[^#]+/, 'comment'],\r\n [/#/, 'comment'],\r\n ],\r\n\r\n comment3: [\r\n [/[~\\-]?}}/, 'brackets', '@popall'],\r\n [/[^~\\-}]+/, 'comment'],\r\n [/[~\\-}]/, 'comment'],\r\n ],\r\n\r\n singleQuote: [\r\n [/[^\\\\']+/, 'string'],\r\n [/@escapes/, 'string.escape'],\r\n [/\\\\./, 'string.escape.invalid'],\r\n [/'/, 'string', '@pop'],\r\n ],\r\n\r\n doubleQuote: [\r\n [/[^\\\\\"]+/, 'string'],\r\n [/@escapes/, 'string.escape'],\r\n [/\\\\./, 'string.escape.invalid'],\r\n [/\"/, 'string', '@pop'],\r\n ],\r\n },\r\n });\r\n\r\n const keywords = getKeywords();\r\n\r\n monaco.languages.registerCompletionItemProvider('scriban', {\r\n triggerCharacters: ['*'],\r\n provideCompletionItems: (model, position, context) => {\r\n const word = model.getWordAtPosition(position)?.word ?? '';\r\n const reg = new RegExp(word);\r\n const results = keywords.filter((v) => reg.test(v)) ?? [];\r\n\r\n const sugs = results.map((res) => {\r\n const replacement = res.substring(word.length - 1);\r\n return {\r\n label: res,\r\n insertText: replacement,\r\n preselect: true,\r\n kind: monaco.languages.CompletionItemKind.Variable,\r\n range: {\r\n startColumn: position.column - 1,\r\n startLineNumber: position.lineNumber,\r\n endColumn: position.column,\r\n endLineNumber: position.lineNumber,\r\n },\r\n };\r\n });\r\n\r\n return {\r\n incomplete: false,\r\n suggestions: [...sugs],\r\n };\r\n },\r\n });\r\n\r\n // Create Custom Theme\r\n monaco.editor.defineTheme('scriban-theme', {\r\n colors: {},\r\n base: 'vs-dark',\r\n inherit: true,\r\n rules: [\r\n // { token: 'brackets', foreground: '#149690', fontStyle: 'bold' },\r\n { token: 'brackets', foreground: '#7138eb', fontStyle: 'bold' },\r\n // { token: 'variables', foreground: '#4b70ad', fontStyle: 'normal' },\r\n { token: 'nkeyword', foreground: '#ff0000', fontStyle: 'bold' },\r\n ],\r\n });\r\n\r\n monaco.editor.setTheme('scriban-theme');\r\n}\r\n\r\nexport const monacoConfig: NgxMonacoEditorConfig = {\r\n onMonacoLoad: monacoLoad,\r\n};\r\n\r\n@Component({\r\n selector: 'tcs-editor',\r\n templateUrl: './editor.component.html',\r\n styleUrls: ['./editor.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class EditorComponent implements OnInit, OnDestroy {\r\n @Input()\r\n public code: string;\r\n @Input()\r\n public readOnly = false;\r\n @Output()\r\n public codeChange = new EventEmitter();\r\n\r\n public editor: any;\r\n\r\n public editorOptions = {\r\n theme: 'vs-dark',\r\n language: 'scriban',\r\n readOnly: 'false',\r\n minimap: { enabled: false },\r\n };\r\n\r\n private _onDestroy$ = new Subject();\r\n\r\n constructor() {}\r\n\r\n public ngOnInit() {\r\n if (this.readOnly === true) {\r\n this.editorOptions.readOnly = 'true';\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n\r\n public onCodeChange() {\r\n this.codeChange.emit(this.code);\r\n }\r\n\r\n public onEditorInit(editor: monaco.editor.IStandaloneCodeEditor) {\r\n editor.updateOptions({ bracketPairColorization: { enabled: false } });\r\n }\r\n}\r\n","\r\n \r\n\r\n\r\n \r\n\r\n"],"mappings":"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CACA,8CACA,4CACA,8CACA,8CACA,sDACA,2CACA,wDACA,uEACA,6DACA,8CACA,gCACA,yCACA,sDACA,oCACA,yCACA,iDACA,8DACA,sDACA,4CACA,2CACA,sCACA,wCACA,+CACA,6CACA,+CACA,+CACA,6CACA,yDACA,wEACA,8DACA,4CACA,oCACA,yBACA,2CACA,gCACA,uDACA,0DACA,8EACA,mEACA,8BACA,iCACA,sCACA,iBACA,sBACA,mCACA,2BACA,sBACA,2BACA,wBACA,qBACA,kBACA,cACA,uBACA,UACA,uBACA,cACA,iBACA,2BACA,gCACA,gCACA,gBACA,0BACA,uBACA,8BACA,kCACA,sCACA,mCACA,qBACA,oBACA,wBACA,0BACA,OACA,YACA,oBACA,eACA,mCACA,YACA,iBACA,8BACA,yBACA,6CACA,sBACA,mBACA,wBACA,6BACA,kCACA,iBACA,kBACA,YACA,iBACA,SACA,cACA,MACA,0BACA,uBACA,WACA,iBACA,gBACA,gBACA,qBACA,qBACA,6BACA,sBACA,kCAAkC,CAEtC,CAEM,SAAUC,IAAU,CAExBC,OAAOC,UAAUC,SAAS,CACxBC,GAAI,UACJC,WAAY,CACV,OACA,YACA,WACA,WACA,UACA,WACA,UACA,UACA,SACA,WACA,gBACA,eACA,eACA,aAAa,EAEfC,UAAW,CAAC,eAAgB,UAAU,EACvC,EAGDL,OAAOC,UAAUK,yBAAyB,UAAW,CACnDC,iBAAkB,CAChB,CAAEC,KAAM,KAAMC,MAAO,IAAI,EACzB,CAAED,KAAM,MAAOC,MAAO,KAAK,CAAE,EAE/BC,SAAU,CACRC,aAAc,CAAC,MAAO,KAAK,EAC3BC,YAAa,KAEfC,QAAS,CACPC,QAAS,CAAEC,MAAO,SAAUC,IAAK,QAAQ,GAE3CC,YAAa,iBACbC,iBAAkB,CAChBC,sBAAuB,KACvBC,sBAAuB,KACvBC,sBAAuB,MAEzBC,iBAAkB,CAChB,CAAEd,KAAM,KAAMC,MAAO,IAAI,EACzB,CAAED,KAAM,MAAOC,MAAO,KAAK,EAC3B,CAAED,KAAM,MAAOC,MAAO,KAAK,EAC3B,CAA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","names":["require_constants","__commonJSMin","exports","sexagesimalPattern","earthRadius","MINLAT","MAXLAT","MINLON","MAXLON","longitudeKeys","latitudeKeys","altitudeKeys","distanceConversion","timeConversion","areaConversion","require_getCoordinateKey","__commonJSMin","exports","getCoordinateKey","point","keysToLookup","foundKey","key","_default","require_isDecimal","__commonJSMin","exports","isDecimal","value","checkedValue","_default","require_isSexagesimal","__commonJSMin","exports","_constants","isSexagesimal","value","_default","require_sexagesimalToDecimal","__commonJSMin","exports","_constants","sexagesimalToDecimal","sexagesimal","data","min","sec","decimal","_default","require_getCoordinateKeys","__commonJSMin","exports","_constants","_getCoordinateKey","_interopRequireDefault","obj","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","value","getCoordinateKeys","point","keysToLookup","longitude","latitude","altitude","_default","require_isValidLatitude","__commonJSMin","exports","_isDecimal","_interopRequireDefault","_isSexagesimal","_sexagesimalToDecimal","_constants","obj","isValidLatitude","value","_default","require_isValidLongitude","__commonJSMin","exports","_isDecimal","_interopRequireDefault","_isSexagesimal","_sexagesimalToDecimal","_constants","obj","isValidLongitude","value","_default","require_isValidCoordinate","__commonJSMin","exports","_getCoordinateKeys2","_interopRequireDefault","_isValidLatitude","_isValidLongitude","obj","isValidCoordinate","point","_getCoordinateKeys","latitude","longitude","lon","lat","_default","require_toDecimal","__commonJSMin","exports","_isDecimal","_interopRequireDefault","_isSexagesimal","_sexagesimalToDecimal","_isValidCoordinate","_getCoordinateKeys","obj","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","value","toDecimal","v","index","point","_default","require_getLatitude","__commonJSMin","exports","_constants","_getCoordinateKey","_interopRequireDefault","_toDecimal","obj","getLatitude","point","raw","latKey","value","_default","require_getLongitude","__commonJSMin","exports","_constants","_getCoordinateKey","_interopRequireDefault","_toDecimal","obj","getLongitude","point","raw","latKey","value","_default","require_toRad","__commonJSMin","exports","toRad","value","_default","require_toDeg","__commonJSMin","exports","toDeg","value","_default","require_computeDestinationPoint","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_toDeg","_constants","obj","computeDestinationPoint","start","distance","bearing","radius","lat","lng","delta","theta","phi1","lambda1","phi2","lambda2","longitude","_default","require_convertArea","__commonJSMin","exports","_constants","convertArea","squareMeters","targetUnit","factor","_default","require_convertDistance","__commonJSMin","exports","_constants","convertDistance","meters","targetUnit","factor","_default","require_convertSpeed","__commonJSMin","exports","_constants","convertSpeed","metersPerSecond","targetUnit","_default","require_decimalToSexagesimal","__commonJSMin","exports","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","len","arr2","_arr","_n","_d","_e","_i","_s","err","imprecise","number","decimals","factor","decimal2sexagesimalNext","decimal","_decimal$toString$spl","_decimal$toString$spl2","pre","post","deg","min0","sec0","min","sec","_sec$split","_sec$split2","secPreDec","_sec$split2$","secDec","_default","require_robustAcos","__commonJSMin","exports","robustAcos","value","_default","require_getDistance","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_robustAcos","_constants","obj","getDistance","from","to","accuracy","fromLat","fromLon","toLat","toLon","distance","_default","require_orderByDistance","__commonJSMin","exports","_getDistance","_interopRequireDefault","obj","orderByDistance","point","coords","distanceFn","a","b","_default","require_findNearest","__commonJSMin","exports","_orderByDistance","_interopRequireDefault","obj","findNearest","point","coords","_default","require_getAreaOfPolygon","__commonJSMin","exports","_toRad","_interopRequireDefault","_getLatitude","_getLongitude","_constants","obj","getAreaOfPolygon","points","area","lowerIndex","middleIndex","upperIndex","i","p1lon","p2lat","p3lon","_default","require_getBounds","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","obj","getBounds","points","stats","point","latitude","longitude","_default","require_getBoundsOfDistance","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_toDeg","_constants","obj","getBoundsOfDistance","point","distance","latitude","longitude","radLat","radLon","radDist","minLat","maxLat","MAX_LAT_RAD","MIN_LAT_RAD","MAX_LON_RAD","MIN_LON_RAD","minLon","maxLon","deltaLon","_default","require_getCenter","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_toDeg","obj","getCenter","points","numberOfPoints","sum","acc","point","pointLat","pointLon","X","Y","Z","_default","require_getCenterOfBounds","__commonJSMin","exports","_getBounds","_interopRequireDefault","obj","getCenterOfBounds","coords","bounds","latitude","longitude","_default","require_getRhumbLineBearing","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_toDeg","obj","getRhumbLineBearing","origin","dest","diffLon","diffPhi","_default","require_getCompassDirection","__commonJSMin","exports","_getRhumbLineBearing","_interopRequireDefault","obj","getCompassDirection","origin","dest","bearingFn","bearing","_default","require_getDistanceFromLine","__commonJSMin","exports","_getDistance","_interopRequireDefault","_robustAcos","obj","getDistanceFromLine","point","lineStart","lineEnd","accuracy","d1","d2","d3","alpha","beta","_default","require_getGreatCircleBearing","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_toDeg","obj","getGreatCircleBearing","origin","dest","destLat","detLon","originLat","originLon","bearing","_default","require_getPathLength","__commonJSMin","exports","_getDistance","_interopRequireDefault","obj","_typeof","getPathLength","points","distanceFn","acc","point","_default","require_getPreciseDistance","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","_toRad","_constants","obj","getDistance","start","end","accuracy","startLat","startLon","endLat","endLon","b","ellipsoidParams","L","cosSigma","sigma","sinAlpha","cosSqAlpha","cos2SigmaM","sinSigma","U1","U2","sinU1","cosU1","sinU2","cosU2","lambda","lambdaP","iterLimit","sinLambda","cosLambda","C","uSq","A","B","deltaSigma","distance","_default","require_getRoughCompassDirection","__commonJSMin","exports","getRoughCompassDirection","exact","_default","require_getSpeed","__commonJSMin","exports","_getDistance","_interopRequireDefault","obj","getSpeed","start","end","distanceFn","distance","time","metersPerSecond","_default","require_isPointInLine","__commonJSMin","exports","_getDistance","_interopRequireDefault","obj","isPointInLine","point","lineStart","lineEnd","_default","require_isPointInPolygon","__commonJSMin","exports","_getLatitude","_interopRequireDefault","_getLongitude","obj","isPointInPolygon","point","polygon","isInside","totalPolys","i","j","_default","require_isPointNearLine","__commonJSMin","exports","_getDistanceFromLine","_interopRequireDefault","obj","isPointNearLine","point","start","end","distance","_default","require_isPointWithinRadius","__commonJSMin","exports","_getDistance","_interopRequireDefault","obj","isPointWithinRadius","point","center","radius","accuracy","_default","require_wktToPolygon","__commonJSMin","exports","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","len","arr2","_arr","_n","_d","_e","_i","_s","err","wktToPolygon","wkt","coordsText","polygon","coordText","_coordText$split","_coordText$split2","longitude","latitude","_default","require_es","__commonJSMin","exports","_exportNames","_computeDestinationPoint","_convertArea","_convertDistance","_convertSpeed","_decimalToSexagesimal","_findNearest","_getAreaOfPolygon","_getBounds","_getBoundsOfDistance","_getCenter","_getCenterOfBounds","_getCompassDirection","_getCoordinateKey","_getCoordinateKeys","_getDistance","_getDistanceFromLine","_getGreatCircleBearing","_getLatitude","_getLongitude","_getPathLength","_getPreciseDistance","_getRhumbLineBearing","_getRoughCompassDirection","_getSpeed","_isDecimal","_isPointInLine","_isPointInPolygon","_isPointNearLine","_isPointWithinRadius","_isSexagesimal","_isValidCoordinate","_isValidLatitude","_isValidLongitude","_orderByDistance","_sexagesimalToDecimal","_toDecimal","_toRad","_toDeg","_wktToPolygon","_interopRequireDefault","_constants","key","obj","require_pubnub_min","__commonJSMin","exports","module","e","t","n","r","o","i","s","u","a","c","l","p","h","f","d","y","g","m","b","v","_","S","w","O","P","E","A","T","N","C","k","M","j","R","x","U","I","D","F","L","G","K","B","H","q","z","V","W","J","$","Q","X","Y","Z","ee","te","ne","re","oe","ie","se","ae","ue","ce","le","pe","he","fe","de","ye","ge","me","be","ve","_e","Se","we","Oe","Pe","Ee","Ae","Te","Ne","Ce","ke","Me","je","Re","xe","Ue","Ie","De","Fe","Le","Ge","Ke","Be","He","qe","ze","Ve","We","Je","$e","Qe","Xe","Ye","Ze","et","tt","nt","rt","ot","it","st","at","ut","ct","lt","pt","ht","ft","dt","yt","gt","mt","bt","vt","_t","St","wt","Ot","Pt","Et","At","Tt","Nt","Ct","kt","Mt","Ft","Lt","jt","Rt","xt","Ut","It","Dt","Gt","Kt","Bt","Ht","qt","zt","Vt","Wt","Jt","$t","Qt","Xt","Yt","Zt","en","tn","nn","an","un","rn","on","sn","cn","ln","pn","hn","fn","dn","yn","gn","mn","bn","vn","_n","Sn","wn","On","Pn","En","Mn","Un","An","Tn","Nn","Cn","kn","Rn","Dn","jn","xn","In","Fn","Ln","Gn","Kn","Bn","Hn","qn","zn","Vn","Wn","Jn","$n","Qn","Xn","Yn","Zn","er","tr","nr","rr","or","ir","sr","ar","ur","cr","lr","pr","hr","fr","dr","yr","gr","mr","br","vr","_r","Sr","wr","Or","Pr","Er","Ar","Tr","Nr","Cr","kr","Mr","jr","Rr","xr","Ur","Ir","Dr","Fr","Lr","Gr","Kr","Br","Hr","qr","zr","Vr","Wr","Jr","$r","Qr","Xr","Yr","Zr","eo","to","no","ro","oo","co","io","so","ao","ho","uo","lo","po","fo","yo","go","mo","bo","vo","_o","So","wo","Oo","Po","Eo","Ao","To","No","Co","ko","Mo","jo","Ro","xo","Uo","Io","Do","Fo","Lo","Go","Ko","Bo","Ho","qo","zo","Vo","Wo","Jo","$o","Qo","Xo","Yo","Zo","ei","ti","ni","ri","oi","ii","si","ai","ui","ci","li","pi","hi","fi","di","yi","gi","mi","bi","vi","_i","Si","wi","Oi","Pi","Ei","Ai","Ti","Ni","Ci","ki","Mi","ji","Ri","xi","Ui","Ii","Di","Fi","Li","Gi","Ki","Bi","Hi","qi","zi","Vi","Wi","Ji","$i","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","InjectionToken","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY","BASE_SIZE","MatProgressSpinnerModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","MatCommonModule","MatLegacyProgressSpinner__svg_circle_2_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelement","ctx_r0","ɵɵnextContext","svg_r2","ɵɵreference","ɵɵstyleProp","ɵɵattribute","MatLegacyProgressSpinner__svg_circle_3_Template","BASE_SIZE","BASE_STROKE_WIDTH","_MatProgressSpinnerBase","mixinColor","_elementRef","INDETERMINATE_ANIMATION_TEMPLATE","MatLegacyProgressSpinner","_MatLegacyProgressSpinner","size","coerceNumberProperty","value","newValue","elementRef","_platform","_document","animationMode","defaults","changeDetectorRef","viewportRuler","ngZone","_nonce","Subscription","trackedDiameters","element","_getShadowRoot","viewBox","svg","scale","styleRoot","currentDiameter","diameters","diametersForElement","styleTag","strokeCircumference","t","ɵɵdirectiveInject","ElementRef","Platform","DOCUMENT","ANIMATION_MODULE_TYPE","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","ChangeDetectorRef","ViewportRuler","NgZone","CSP_NONCE","ɵɵdefineComponent","ɵɵclassProp","ɵɵInheritDefinitionFeature","ɵɵelementStart","ɵɵtemplate","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","NgSwitch","NgSwitchCase","MatLegacyProgressSpinnerModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","CommonModule","_c0","activeEventOptions","normalizePassiveListenerOptions","MIN_AUTO_TICK_SEPARATION","DISABLED_THUMB_GAP","MIN_VALUE_NONACTIVE_THUMB_GAP","MIN_VALUE_ACTIVE_THUMB_GAP","MAT_LEGACY_SLIDER_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","MatLegacySlider","MatLegacySliderChange","_MatSliderBase","mixinTabIndex","mixinColor","mixinDisabled","_elementRef","value","coerceBooleanProperty","v","coerceNumberProperty","options","axis","scale","sign","percent","offset","tickSize","backgroundSize","rotate","styles","shouldInvertAxis","side","elementRef","_focusMonitor","_changeDetectorRef","_dir","tabIndex","_ngZone","_document","_animationMode","EventEmitter","Subscription","event","isTouchEvent","getTouchIdForSlider","pointerPosition","getPointerPositionOnPage","oldValue","findMatchingTouch","element","origin","hasModifierKey","triggerEvent","document","isTouch","moveEventName","endEventName","window","numSteps","clampedValue","pos","size","posComponent","exactValue","closestValue","tickIntervalPercent","trackSize","pixelsPerStep","isSafeNumber","percentage","min","max","fn","isDisabled","t","ɵɵdirectiveInject","ElementRef","FocusMonitor","ChangeDetectorRef","Directionality","ɵɵinjectAttribute","NgZone","DOCUMENT","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","$event","ɵɵhostProperty","ɵɵattribute","ɵɵclassProp","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","NgStyle","id","point","touches","i","sliderHost","target","MatLegacySliderModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","MatCommonModule","HumanizePipe","transform","value","args","humanize","pure","AmgHumanizeModule","CommonModule","PubnubStoreState","Record","presence","status","message","channels","List","subscribedChannels","selectPubnub","state","pubnub","selectSubscribedChannels","createSelector","selectPubnubStatus","selectPubnubMessage","selectPubnubPresence","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","status_r1","PubnubStatusComponent","constructor","store","status$","select","selectPubnubStatus","ɵɵdirectiveInject","Store","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PubnubStatusComponent_pre_2_Template","PubnubStatusComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","ɵɵproperty","none_r2","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","message_r1","PubnubMessageComponent","constructor","store","message$","select","selectPubnubMessage","ɵɵdirectiveInject","Store","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PubnubMessageComponent_pre_2_Template","PubnubMessageComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","ɵɵproperty","none_r2","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","presence_r1","PubnubPresenceComponent","constructor","store","presence$","select","selectPubnubPresence","ɵɵdirectiveInject","Store","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PubnubPresenceComponent_pre_2_Template","PubnubPresenceComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","ɵɵproperty","none_r2","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","channel_r1","PubnubSubscribedChannelsComponent","constructor","store","subscribedChannels$","select","selectSubscribedChannels","pipe","map","c","toArray","ɵɵdirectiveInject","Store","selectors","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PubnubSubscribedChannelsComponent_li_3_Template","ɵɵproperty","ɵɵpipeBind1","PubnubDetailsComponent","constructor","ngOnInit","selectors","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","AmgPubnubModule","CommonModule","defaultContext","message","withBox","LoadUntilComponent","constructor","context","ngOnInit","__spreadValues","selectors","inputs","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵclassProp","ɵɵtextInterpolate","LoadUntilDirective","constructor","host","templateRef","viewContainer","componentFactoryResolver","ngOnDestroy","_componentRef","destroy","ngOnChanges","changes","_executeChange","tcsLoadUntil","ref","tcsLoadUntilTemplate","LoadUntilComponent","TemplateRef","_changeTemplate","tcsLoadUntilContext","_changeComponent","$implicit","context","clear","createEmbeddedView","component","factory","resolveComponentFactory","createComponent","instance","ɵɵdirectiveInject","ElementRef","ViewContainerRef","ComponentFactoryResolver","selectors","inputs","features","ɵɵNgOnChangesFeature","LoadCardComponent","constructor","context","type","CardStatus","AwaitingAssignment","isCondensed","ngOnInit","selectors","inputs","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵclassMapInterpolate1","ɵɵclassProp","TcsLoadUntilModule","CommonModule","MatProgressSpinnerModule","tcsFadeInOutAnimation","trigger","state","style","opacity","visibility","AUTO_STYLE","transition","group","query","animateChild","optional","animate","params","duration","delay","easeOnIn","easeOnOut","MAT_PROGRESS_BAR_DEFAULT_OPTIONS","InjectionToken","MAT_PROGRESS_BAR_LOCATION","MAT_PROGRESS_BAR_LOCATION_FACTORY","_document","inject","DOCUMENT","_location","_c0","_MatProgressBarBase","mixinColor","_elementRef","progressbarId","MatLegacyProgressBar","elementRef","_ngZone","_animationMode","location","defaults","_changeDetectorRef","EventEmitter","Subscription","path","v","clamp","coerceNumberProperty","element","fromEvent","filter","e","t","ɵɵdirectiveInject","ElementRef","NgZone","ANIMATION_MODULE_TYPE","MAT_PROGRESS_BAR_LOCATION","MAT_PROGRESS_BAR_DEFAULT_OPTIONS","ChangeDetectorRef","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","ɵɵelementStart","ɵɵnamespaceSVG","ɵɵelement","ɵɵelementEnd","ɵɵnamespaceHTML","ɵɵadvance","ɵɵproperty","NgStyle","min","max","MatLegacyProgressBarModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","MatCommonModule","ɵɵelement","ɵɵproperty","ctx_r0","mode","value","color","getCircleDiameter","getCircleStrokeWidth","LoadingType","LoadingMode","LoadingStrategy","LoadingStyle","CIRCLE_DIAMETER","TcsLoadingComponent","_defaultMode","_mode","_value","_changeDetectorRef","markForCheck","constructor","_elementRef","Indeterminate","_circleDiameter","animation","style","None","height","type","Circular","ngDoCheck","isOverlay","_hostHeight","_setCircleDiameter","getHeight","isFullScreen","strokeWidth","Math","abs","isCircular","isLinear","Linear","FullScreen","Overlay","show","hide","Determinate","diameter","undefined","floor","nativeElement","getBoundingClientRect","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtemplate","TcsLoadingComponent_mat_progress_spinner_2_Template","TcsLoadingComponent_mat_progress_bar_3_Template","ɵɵelementEnd","TcsLoadingComponent_ng_template_4_Template","ɵɵstyleProp","ɵɵclassProp","ɵɵadvance","content","tcsFadeInOutAnimation","TcsLoadingFactory","constructor","_overlay","_applicationRef","createFullScreenComponent","options","height","undefined","style","LoadingStyle","FullScreen","loadingRef","_initializeContext","loading","overlayRef","observable","pipe","distinctUntilChanged","subscribe","registered","_createOverlay","componentRef","attach","ComponentPortal","TcsLoadingComponent","_mapOptions","instance","show","changeDetectorRef","detectChanges","hide","destroy","detach","dispose","createOverlayComponent","viewContainerRef","templateRef","Overlay","_createComponent","content","TemplatePortal","clear","insert","hostView","createReplaceComponent","context","nativeElement","elementRef","nextElementSibling","scrollHeight","None","contentRef","createEmbeddedView","indexOf","markForCheck","state","OverlayConfig","hasBackdrop","positionStrategy","position","global","centerHorizontally","centerVertically","create","compRef","environmentInjector","injector","createComponent","subject","Subject","asObservable","times","type","mode","color","ɵɵinject","ApplicationRef","factory","ɵfac","providedIn","loadingFactoryProviderFactory","parent","overlay","applicationRef","loadingFactoryProvider","provide","deps","Optional","SkipSelf","useFactory","TcsLoadingConfig","constructor","config","name","Error","mode","LoadingMode","Indeterminate","type","LoadingType","Circular","color","TcsLoadingDirectiveConfig","strategy","LoadingStrategy","Replace","TcsLoadingService","_loadingFactory","_context","_timeouts","create","createComponent","viewContainerRef","templateRef","context","directiveConfig","Overlay","createOverlayComponent","createReplaceComponent","fullscreenConfig","removeComponent","createFullScreenComponent","subject","unsubscribe","componentRef","destroy","register","registers","times","next","setTimeout","_clearTimeout","resolve","resolves","resolveAll","setValue","value","instance","Determinate","animation","clearTimeout","ɵɵinject","TcsLoadingFactory","factory","ɵfac","providedIn","loadingProviderFactory","parent","loadingFactory","loadingProvider","provide","deps","Optional","SkipSelf","useFactory","TcsLoadingContext","constructor","$implicit","undefined","tcsLoading","TCS_LOADING_NEXT_ID","TcsLoadingDirective","until","name","_context","_loadingService","register","resolveAll","_viewContainerRef","_templateRef","type","LoadingType","Circular","mode","LoadingMode","Indeterminate","strategy","LoadingStrategy","Replace","color","ngOnInit","_registerComponent","ngOnDestroy","removeComponent","_loadingRef","Error","createComponent","ɵɵdirectiveInject","ViewContainerRef","TemplateRef","TcsLoadingService","selectors","inputs","ɵɵInputFlags","None","TcsLoadingModule","loadingFactoryProvider","loadingProvider","imports","CommonModule","MatProgressBarModule","MatProgressSpinnerModule","OverlayModule","PortalModule","Executor","strategies","_strategies","constructor","options","addStrategies","push","execute","operation","retryArgs","strategy","success","name","failed","_createRetryArgs","ex","error","canRetry","failure","strategyName","errorName","Error","defaultSetItemExecutor","Executor","strategies","name","execute","operation","canRetry","error","Error","JSON","stringify","SessionStorage","_name","constructor","options","_setItem","setItemExecutor","setItem","key","value","data","v","t","Date","now","s","_","size","length","item","__spreadProps","__spreadValues","toString","sessionStorage","getItem","_getEntry","getEntry","removeItem","clear","ageMs","_entries","diff","index","total","Array","from","Symbol","iterator","Object","keys","_getStorageValue","_isStorageEntry","strValue","parse","TabStatus","Message","constructor","type","payload","TabStorageManager","STORAGE_KEY","settings","_settings","_storage","_incrementBy","createSettings","tab","tabId","fromSettings","tabSettings","storage","getSavedTab","SessionStorage","name","setItemExecutor","Executor","strategies","canRetry","execute","operation","JSON","parse","getItem","stringify","generateTabNumber","tabNumber","save","__spreadValues","setItem","getBrowser","agent","window","navigator","userAgent","toLowerCase","indexOf","TabsService","_isTabActive","_tabStatus$","value","Active","_tabManager","isTabActive$","pipe","map","status","isTabPending$","Pending","isTabActiveOrPending$","_router","_onDestroy$","Subject","_channel","BroadcastChannel","BehaviorSubject","init","randId","_random","initializing","Date","now","setActive","next","postMessage","setInactive","Inactive","addEventListener","msg","recv","data","forceUpdate","fromEvent","document","takeUntil","subscribe","hidden","filter","events","ev","NavigationEnd","take","getStatus","isTabActive","crypto","getRandomValues","Uint32Array","ngOnDestroy","complete","ɵɵinject","Router","factory","ɵfac","providedIn","TickService","constructor","_seconds$","Subject","_fiveSeconds$","_tenSeconds$","_fifteenSeconds$","_thirtySeconds$","_minutes$","_fiveMinutes$","_tenMinutes$","_hours$","seconds","_secondsIntervalId","setInterval","now","Date","next","minutes","_minutesIntervalId","hours","_hoursIntervalId","seconds$","asObservable","pipe","startWith","everyFiveSeconds$","everyTenSeconds$","everyFifteenSeconds$","everyThirtySeconds$","everyMinute$","everyFiveMinutes$","everyTenMinutes$","everyHour$","ngOnDestroy","clearInterval","factory","ɵfac","providedIn","CommandResultError","Error","constructor","command","result","errors","message","captureStackTrace","Object","setPrototypeOf","prototype","userErrors","filter","e","code","map","MUTATION_REQUEST","MUTATION_SUCCESS","MUTATION_ERROR","MUTATION_EFFECT","MutationRequest","constructor","name","operationId","variables","type","timestamp","performance","now","MutationSuccess","result","MutationError","MutationEffect","MUTATION_REQUEST_TIMEOUT","GraphqlMutationExecutorService","constructor","_store","_alerts","_apollo","_td","_cache","Map","_onDestroy$","Subject","createOperation","name","command","createAlertFn","operationId","uuid","json","stringify","operations","get","alert","set","id","completeOperation","completeFn","delete","execute","variables","mutation","options","operation","OperationAlertHandler","createAlert","description","verbosity","operationCancelled$","onAction$","pipe","filter","a","type","requestAction","MutationRequest","dispatch","markAsExecuting","destroy$","race","mutate","context","timeout","map","result","dataKey","lowerCaseFirstLetter","typedResult","data","status","CommandResultStatus","Succeeded","CommandResultError","tap","success","successAction","MutationSuccess","markAsSuccess","error","errorAction","MutationError","undefined","ApolloError","Failed","errorMessage","message","replace","length","substring","userErrors","openAlert","title","hasBackdrop","width","markAsError","details","markAsWarning","takeUntil","ngOnDestroy","next","complete","ɵɵinject","Store","OperationAlertService","Apollo","TdDialogService","factory","ɵfac","providedIn","GraphQLMutationsService","constructor","executor","organization","OrganizationMutations","operations","OperationsMutations","ɵɵinject","GraphqlMutationExecutorService","factory","ɵfac","providedIn","ClientSyncStatusComponent","constructor","_store","subscribedChannels$","select","x","pubnub","channels","pipe","distinctUntilChanged","map","c","toArray","ɵɵdirectiveInject","Store","selectors","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","TcsClientSyncModule","CommonModule","MatIconModule","AmgPubnubModule","NavigationLinkNode","constructor","_router","commands","extras","icon","title","description","data","navigationExtras","navigate","Object","assign","serializeUrl","tree","createUrlTree","toJSON","NavigationServiceBase","navigable","NavigableServiceBase","DevKitComponentsNavigation","NavigableServiceBase","constructor","nav","router","commands","title","kitchenSink","navigable","DevKitPatternsNavigation","allPatternsLinks","navigation","layouts","DevKitStyleGuideNavigation","allStyleGuideLinks","colors","logo","typography","utilityClasses","DevKitGuidesNavigation","allGuides","clientSyncGuide","customIconsGuide","pageTitlesGuide","viewModelsGuide","DevKitNavigation","devKitLinks","components","patterns","icons","styleGuide","librariesAndFrameworks","guides","_router","FbosNavigation","airportId","airportNav","add","detail","fboId","manage","AirportsNavigation","orgNav","icon","description","data","showInOverview","bgColorClass","agencyId","fbo","AgencyLocationsNavigation","agencyNav","locationId","AgenciesNavigation","agencyLocation","DeclineReasonsNavigation","declineCategoryId","declineCategoryNav","declineReasonId","DeclineCategoriesNavigation","id","declineReason","CancellationReasonsNavigation","cancellationCategoryId","cancellationCategoryNav","cancellationReasonId","CancellationCategoriesNavigation","cancellationReason","SpecialtyTeamMemberNavigation","specialtyTeamId","specialtyTeamNav","specialtyTeamMemberId","SpecialtyTeamsNavigation","specialtyTeamMember","AlertsNavigation","LandingZoneNavigation","FirewallRulesNavigation","TrmUsersNavigation","MedicalFacilitiesNavigation","CapabilitiesNavigation","OrganiztionNavigation","companyCode","tcsConfig","companyId","isCurrentContext","RegExp","test","url","orgCompanyLinks","bases","vehicles","personnel","notificationGroups","compliance","alerts","notificationTemplates","communicationCenters","controlZones","offerAlgorithms","firewallRules","specialtyTeams","questionnaires","trmUsers","orgLinks","links","overview","medicalFacilities","physicians","airportsAndFbos","vehicleModels","globalSettings","timestampTypes","timelines","agencies","landingZones","applicationNotifications","cancellationCategories","cardReOpenReasons","declineCategories","outOfServiceReasons","nonReferralReasons","fuelTanks","capabilities","questions","oktaDirectory","value","features","transferCenterEnabled","transferReasons","diversionReasons","facilityNonAcceptanceReasons","programs","queryParams","navigationExtras","regionGroups","regions","organization","events","history","transferCenters","TripNavigation","cardNav","editWaypoint","waypointId","mode","insertWaypoint","requestLocation","waypointType","type","CardNavigation","cardNumber","opNav","request","assignUnit","historyNotes","historyTimes","historyTimestamps","trip","questionnaireResponse","positionReportHistory","UnitInstanceNavigation","unitId","UnitNavigation","regionId","OperationNavigation","allRegions","commCenterId","params","communicationCenterId","allControlZones","controlZone","controlZoneId","sharedServices","region","card","locationSearch","units","unit","currentCard","InsightsNavigation","cardSearch","oldCardSearch","AsbNavigation","OosRumNavigation","commCenter","CompanyNavigation","constructor","companyCode","router","tcsConfig","companyId","ops","OperationNavigation","org","OrganiztionNavigation","insights","InsightsNavigation","asb","AsbNavigation","oosRum","OosRumNavigation","TcsNavigationService","NavigationServiceBase","companyContextService","_tcsConfig","devKit","DevKitNavigation","currentCompanyNav$","company$","pipe","filterNull","map","c","_router","id","currentCompany$","company","currentCompany","Error","login","navigable","logout","notFound","navigationExtras","skipLocationChange","replaceUrl","fleetstatus","rtt","authenticatedLandingPage","ɵɵinject","Router","CompanyContextService","TcsConfigurationService","factory","ɵfac","providedIn","timeElapsed","date","now","Date","minutes","differenceInMinutes","hours","differenceInHours","days","differenceInDays","years","differenceInYears","time","format","dateWithTime","result","minutesToSeconds","secondsToMinutes","seconds","minutesToTimeElapsed","totalMinutes","displayLevels","secondsToTimeElapsed","totalSeconds","ignoreSeconds","undefined","Math","abs","floor","filter","p","slice","join","minutesToTimeString","totalMinute","getMinutesOfDay","getHours","getMinutes","selectCardSummaryEntityByRequestId","requestId","createSelector","selectAllCardSummaryEntities","entities","find","e","request","id","selectCardSummaryEntityByCardNumber","cardNumber","selectCardSummaryEntitiesByCurrentCompany","currentCompanyId","excludeDispatchByCurrentCompany","unitNameOrTailLike","vehicleTypes","companyIds","status","selectUnitSummariesByCurrentCompany","cards","units","filter","card","some","unit","unitId","length","includes","toOrderedSet","sort","a","b","dateCreated","selectNextExternalActionInQueueByCardId","cardId","createSelector","selectPendingExternalActionsByEntityId","selectAllExternalActionTypeEntities","actions","types","map","a","type","get","actionTypeId","externalAction","externalActionType","filter","i","sort","b","priority","first","undefined","selectAllPendingExternalActions","selectAllExternalActionEntities","dateCompleted","entityId","selectPendingExternalActionByEntityIdAndTypeId","typeId","find","CardSummaryViewModel","CardSummaryViewModelBase","constructor","props","_store","pendingExternalActions$","select","selectPendingExternalActionsByEntityId","id","pipe","map","a","valueSeq","toArray","nextExternalActionInQueue$","selectNextExternalActionInQueueByCardId","hasUnacknowledgedWebOrders$","selectWebOrderLogEntitiesByEntityId","logs","hasNotAcknowledged","forEach","log","acknowledgedById","isReadOnly","isClosed","tripId","operation","undefined","cardNumberDisplay","onStandby","status","OperationStatus","OnStandby","cardNumber","trim","isWebOrder","apiWebhookSubscriptionId","hasCrewAccepted","CrewAccepted","isAbortedOrCancelled","Aborted","Cancelled","isWebOrderWaiting","webOrderAcknowledgedTime","isActionRequired$","e","length","isSisterCompanyReferralActive","request","isSisterCompanyReferral","CardStatus","AwaitingAssignment","_requestStatusHumanized","humanize","requestStatusDisplay","requester","missionRole","MissionRoleType","TeamFlight","MassCasualty","isStandbyRequest","RequestStatus","AssignmentDelayed","assignmentDelayedReason","CardSummaryViewModelService","_cardSummaryFetchService","getById","undefinedOrMap","card","getByUnitId","unitId","selectCardSummaryByUnitId","getByCardNumber","selectCardSummaryEntityByCardNumber","ɵɵinject","CardSummaryEntityFetchService","Store","factory","ɵfac","providedIn","selectCardSummaryByTripId","createSelector","selectAllCardSummaryEntities","cardSummaries","find","c","selectTimestampById","id","createSelector","selectAllTimestamps","timestamps","get","selectTimestampsByCardId","cardId","Seq","Indexed","filter","ts","toIndexedSeq","sortBy","time","selectTimestampsByTypeAndCardId","timestampTypeId","selectAllTimestampTypes","timestampTypes","find","typeId","selectTimestampByCardIdAndType","systemTimestampType","type","undefined","createObservableLookup","keys","valueFn","result","key","$","createPartialLookupFactory","factory","selectAllCommunicationCenters","appState","entityStores","communicationCenter","entities","selectCommunicationCenterById","id","createSelector","commCenters","get","selectCommunicationCentersByCompany","companyId","filter","cc","ControlZoneViewModel","ControlZoneViewModelBase","constructor","controlZone","store","cardNumbers$","select","selectCardSummariesByControlZoneId","id","pipe","distinctUntilChanged","map","cards","card","cardNumber","toSet","cardIdsByStatus","createObservableLookup","CardStatus","cardStatus","filter","r","status","sort","a","b","dateCreated","c","allUnitIds$","selectUnitSummariesByControlZoneId","units","u","nonHiddenUnitIds$","getOrElse","isHidden","nonHiddenUnitIdsByStatus","UnitStatus","unitStatus","abbreviation","localeCompare","allUnitIdsByStatus","ControlZoneViewModelService","_controlZoneFetchService","_store","getById","undefinedOrMap","ɵɵinject","ControlZoneEntityFetchService","Store","factory","ɵfac","providedIn","config","GroundRun","name","abbreviation","key","Maintenance","RequestorSpecialtyTeam","icon","PatientShuttle","request","initialDestination","WaypointType","PatientPickupRendezvous","targetDestination","PatientDropoffRendezvous","locations","waypointType","formType","panel","formPanels","Requestor","ChiefComplaint","PatientInformation","MissionInformation","disabled","PatientClinicalInformation","TransferCenterCallInformation","SafetyQuestions","NonPatientShuttle","RendezvousPoint","PublicRelations","PublicRelationsSite","Reposition","SearchAndAssist","SceneLocation","ReceivingFacility","collapsed","Training","Transfer","SendingFacility","TransferCenter","SceneCall","Residence","PublicUtility","operationTypeConfig","Object","entries","reduce","acc","typeConfig","type","cfg","__spreadValues","requestOperationTypes","values","filter","ot","map","c","__spreadProps","createWaypointFromRequestLocation","location","WaypointRecord","id","name","abbreviation","type","address","timezoneCd","isRotorWingLz","arrivalTime","departureTime","locationId","companyId","dateLastUpdated","Date","estimatedDurationId","currentEtaId","isPatientPickup","isPatientDropoff","arrivingType","dateCreated","dateDeleted","lastUpdatedById","hasLatLng","hasCoordinates","coordinates","latitude","longitude","selectOperationById","operationId","createSelector","selectAllOperations","operations","get","selectActiveOperationByUnitId","unitId","valueSeq","find","o","dateOperationEnded","selectTripByTripId","tripId","createSelector","selectAllTrips","trips","valueSeq","find","t","id","selectTripByOperationId","operationId","selectPrimaryTripByCardNumber","cardNumber","createSelector","selectOperationByCardNumber","selectAllTrips","operation","trips","undefined","find","trip","operationId","id","vehicleId","selectVehicleById","vehicleId","createSelector","selectAllVehicles","v","get","selectVehicleSummaryEntityById","selectAllVehicleSummaryEntities","vehicles","find","id","selectPrimaryVehicleByCardNumber","cardNumber","createSelector","selectOperationByCardNumber","selectAllVehicles","operation","vehicles","undefined","find","vehicle","id","vehicleId","selectVehicleDispositionByVehicleId","vehicleId","createSelector","selectAllVehicleDispositions","vd","find","v","selectVehicleDispositionByCurrentWaypointId","waypointId","currentWaypointId","dateDeleted","selectVehicleDispositionByTripId","tripId","selectTripByTripId","trip","undefined","selectVehicleDispositionByCardNumber","cardNumber","createSelector","selectPrimaryVehicleByCardNumber","selectAllVehicleDispositions","vehicle","vehicleDispositions","undefined","find","vd","vehicleId","id","selectTripLegById","tripLegId","createSelector","selectAllTripLegs","tripLegs","valueSeq","find","tl","id","selectNonCancelledTripLegsByTripId","tripId","filter","status","TripLegStatus","Cancelled","sortBy","sequence","selectCurrentOrNextTripLeg","enRouteLeg","leg","EnRoute","Planned","selectTripLegByTripLegBySequence","sequenceLeg","selectEnRouteTripLeg","selectPlannedTripLeg","selectCurrentTripLegByTripId","tripId","createSelector","selectNonCancelledTripLegsByTripId","selectVehicleDispositionByTripId","tripLegs","vehicleDisposition","find","tl","id","currentTripLegId","selectTripLegAfterTripLegId","nextSequence","leg","sequence","NaN","isNaN","undefined","selectCurrentOrNextTripLegByCardNumber_DEPRECATED","cardNumber","createSelector","selectVehicleDispositionByCardNumber","selectAllTripLegs","vehicleDisposition","tripLegs","findTripLeg","valueSeq","selectCurrentOrNextTripLegByTripId_DEPRECATED","tripId","selectVehicleDispositionByTripId","find","leg","currentTripLegId","id","currentWaypointId","startingWaypointId","selectFirstWaypointByTripAndType","tripId","type","createSelector","selectAllTripLegs","selectAllWaypoints","legs","waypoints","filter","l","flatMap","leg","w","startingWaypointId","id","endingWaypointId","first","undefined","selectWaypointsWithLatLngsByTripId","tripId","createSelector","selectNonCancelledTripLegsByTripId","selectAllWaypoints","legs","waypoints","filter","w","find","l","startingWaypointId","id","endingWaypointId","hasLatLng","selectCurrentWaypointForVehicleByCardNumber","cardNumber","createSelector","selectVehicleDispositionByCardNumber","selectAllWaypoints","disposition","waypoints","currentWaypointId","get","undefined","import_geolib","selectEstimatedDurationsById","id","createSelector","selectAllEstimatedDurations","durations","get","selectEstimatedDurationsByTripId","tripId","filter","duration","selectCurrentEstimatedDurationByCardNumber","cardNumber","selectOperationByCardNumber","selectCurrentWaypointForVehicleByCardNumber","selectCurrentOrNextTripLegByCardNumber_DEPRECATED","operation","waypoint","tripLeg","durationId","estimatedDurationId","undefined","toLowerCase","unitActivated","unitActivationTime","find","d","emptyWaypoint","WaypointRecord","id","type","WaypointType","ReceivingFacility","name","abbreviation","address","AddressRecord","streetAddress","city","country","county","postalCode","region","gpsId","coordinates","CoordinatesRecord","latitude","longitude","companyId","arrivalTime","Date","dateLastUpdated","dateCreated","dateDeleted","departureTime","locationId","timezoneCd","isRotorWingLz","estimatedDurationId","currentEtaId","isPatientPickup","isPatientDropoff","arrivingType","lastUpdatedById","withCoordinates","waypoint","withMutations","w","setIn","lineIcon","strokeColor","icon","path","strokeOpacity","scale","offset","repeat","tripLegStyles","Cancelled","icons","Complete","EnRoute","Planned","TripLegViewModelRecord","Record","startingWaypoint","tripLeg","endingWaypoint","isCurrent","isNext","isNextAtWaypoint","isLast","isFirst","officialDuration","calculatedDuration","constructor","params","number","sequence","polylineOptions","status","latLngs","startingLatLng","endingLatLng","address","Error","coordinates","getLatLng","distance","getPreciseDistance","miles","round","convertDistance","nauticalMiles","direction","getCompassDirection","bearing","Math","floor","getGreatCircleBearing","isStarted","TripLegStatus","isComplete","duration","waypoints","defaults","maybeCoord","latitude","longitude","lat","lng","__spreadProps","__spreadValues","JSON","stringify","selectTripLegModelsForTripId","tripId","createSelector","selectWaypointsWithLatLngsByTripId","selectNonCancelledTripLegsByTripId","selectCurrentTripLegByTripId","selectVehicleDispositionByTripId","selectEstimatedDurationsByTripId","tripLegs","currentTripLeg","vehicleDisposition","durations","sortBy","l","map","startingWaypointId","undefined","get","endingWaypointId","filter","data","isAtWaypoint","getNextInSequence","id","isNextInSequence","count","officialEteId","calculatedEteId","currentWaypointId","find","legViewModel","hasLatLng","TripLegRecord","dateLastUpdated","Date","dateCreated","dateDeleted","companyId","estimatedDistanceInMiles","arrivingOdometerReading","arrivingNote","departingOdometerReading","departingNote","lastUpdatedById","isEmergent","selectRequestById","id","createSelector","selectAllRequests","requests","find","r","selectRequestByCardNumber","cardNumber","selectCardByCardNumber","card","requestId","undefined","selectAllPatientsByRequestId","selectAllRequestPatients","reqPatient","filter","rp","sortBy","a1","dateCreated","selectRequestPatientByRequestId","reqPatients","first","selectRequestConfigurationByRequestId","requestId","createSelector","selectRequestById","request","opType","requestedOperationType","operationTypeConfig","selectInitialDestinationByRequestId","selectRequestLocationsByRequestId","requestConfig","locations","find","l","type","initialDestination","selectTargetDestinationByRequestId","targetDestination","selectRequestWaypointsByCardNumber","cardNumber","selectRequestByCardNumber","selectAllRequestLocations","waypoints","requestLocations","filter","r","id","toIndexedSeq","map","createWaypointFromRequestLocation","hasLatLng","toArray","Collection","Indexed","loc","valueSeq","selectRequestLocationByType","requestId","type","createSelector","selectRequestLocationsByRequestId","locations","matches","filter","l","count","get","Error","selectRequestAtloDataByRequestId","requestId","createSelector","selectRequestById","request","etloInMinutes","atloInMinutes","atlo","minutesToTimeElapsed","etlo","unitNumberStr","unit","abbreviation","parts","split","length","toPassengerType","type","UnitPositionType","Pilot","PassengerType","PilotInCommand","CrewMember","toBaseTime","dt","tzCode","withTimezone","isCurrentShift","todayMinutes","shift","startTimeInMinutes","endTimeInMinutes","getMissingResources","unitSummary","isGroundUnit","missingVehicle","vehicleId","missingFlightCrew","positions","filter","p","isFlightCrew","isNonEmployee","teamMemberId","groupBy","v","type","mapEntries","missing","count","toArray","find","UnitPositionType","Pilot","push","length","missingResources","map","i","humanize","toLowerCase","unshift","summary","join","__spreadValues","vehicle","undefined","Object","fromEntries","UnitSummaryViewModel","UnitSummaryViewModelBase","constructor","props","isGround","unitNumberStr","isTeamMemberNonCompliant","m","isNonCompliant","baseTimeInMinutes","getMinutesOfDay","Date","baseTimezoneCd","getCurrentShift","shifts","oosReasons","isOutOfService","outOfServiceEvents","o","reasonName","availableTime","plannedAvailableTime","availableNotes","plannedAvailableNotes","UnitSummaryViewModelService","_unitSummaryFetchService","_store","getById","id","pipe","undefinedOrMap","getByVehicleId","select","selectUnitSummaryEntitiesByVehicleId","units","unit","first","ɵɵinject","UnitSummaryEntityFetchService","Store","factory","ɵfac","providedIn","selectUnitPositionsByUnitId","unitId","createSelector","selectAllUnitPostions","positions","valueSeq","filter","p","selectVehicleByUnitId","unitId","createSelector","selectUnitById","selectAllVehicles","unit","vehicles","vehicleId","get","undefined","statusConfig","Available","Committed","OnStandby","OutOfService","displayStatus","PartiallyAvailable","weatherStatusConfig","Green","icon","Red","Yellow","Unspecified","UnitViewModel","UnitViewModelBase","config","status","statusDisplay","getOrElse","humanize","activeOperation$","activeCard$","pipe","switchMap","card","operation$","of","undefined","statusRollupDisplay$","combineLatest","op","trip$","trip","currentOrNextTripLeg$","debounceTime","map","operation","currentOrNextLeg","vehicleDisposition","vehicle","waypoint","currentWaypoint","isEnRoute","isOnStandby","displayType","destination","endingWaypoint","unitNumberStr","constructor","unit","region","_model","getActiveCardForUnit","id","vehicle$","store","select","selectVehicleByUnitId","base$","getBaseById","baseId","baseTimezone$","undefinedOrMap","b","location","undefinedOrSwitchMap","l","timezone$","baseEtlo$","base","estimatedLiftoffTime","etlo$","etloInMinutes","unitPositionIds$","selectUnitPositionsByUnitId","positions","ts","toSet","waypointTypeConfig","PublicRelationsSite","name","icon","EnRouteDiversion","FuelLocation","Other","Post","ReceivingFacility","RendezvousPoint","SceneLocation","SendingFacility","PatientPickupRendezvous","PatientDropoffRendezvous","PickupTeam","DropoffTeam","LocationHazardViewModel","LocationHazardViewModelBase","constructor","locationHazard","location","TimezoneViewModel","TimezoneViewModelBase","constructor","props","TimezoneViewModelService","_timezoneEntityFetchService","store","getById","id","pipe","map","timezone","getTimezoneByCode","timezoneCd","select","selectTimezoneEntitiesByCode","zones","tz","first","undefined","ɵɵinject","TimezoneEntityFetchService","Store","factory","ɵfac","providedIn","LocationViewModel","LocationViewModelBase","constructor","location","timezoneService","locationHazards","apollo","timezone$","timezoneCd","getTimezoneByCode","of","undefined","hazards$","getMany","cacheSelector","selectLocationHazardEntitiesByLocationId","id","getIdsFallback","fetchLocationHazardIdsByLocationId","pipe","map","hazards","h","LocationHazardViewModel","locationId","query","gql","variables","r","loc","data","locations","byId","l","LocationViewModelService","_locationEntityFetchService","_timezoneService","_locationHazards","_apollo","getById","options","ɵɵinject","LocationEntityFetchService","TimezoneViewModelService","LocationHazardEntityFetchService","Apollo","factory","ɵfac","providedIn","WaypointViewModel","WaypointViewModelBase","config","waypointTypeConfig","type","locationProps","location","abbreviation","address","isRotorWingLz","name","timezoneCd","locationDisplay","streetAddress","find","v","displayType","icon","ruleMatchType","constructor","waypoint","pickupOrDropoffDescription","waypointType","WaypointType","SceneLocation","SendingFacility","includes","ReceivingFacility","RuleMatchType","PickupLocation","DropoffLocation","Unspecified","WaypointViewModelService","_waypointEntityFetchService","_locationViewModel","getById","id","options","pipe","undefinedOrSwitchMap","locationId","of","undefined","map","ɵɵinject","WaypointEntityFetchService","LocationViewModelService","factory","ɵfac","providedIn","PositionReportViewModel","PositionReportViewModelBase","constructor","props","PositionReportViewModelService","_positionReportEntityFetchService","getById","id","options","pipe","map","positionReport","ɵɵinject","PositionReportEntityFetchService","factory","ɵfac","providedIn","FlightFollowingReportViewModel","FlightFollowingReportViewModelBase","constructor","props","FlightFollowingReportViewModelService","_flightFollowingReportEntityFetchService","getById","id","options","pipe","map","flightFollowingReport","ɵɵinject","FlightFollowingReportEntityFetchService","factory","ɵfac","providedIn","statusConfig","AtWaypoint","EnRoute","statusDisplay","vehicleStatusDisplay","status","getOrElse","humanize","VehicleDispositionViewModel","VehicleDispositionViewModelBase","hasTrip","currentTripId","config","constructor","vehicleDisposition","latestPositionReport","latestFlightFollowingReport","currentWaypoint","waypoint$","of","VehicleDispositionViewModelService","_vehicleDispositionEntityFetchService","_waypointVm","_positionReportVm","_flightFollowingVm","_store","getByVehicleId","vehicleId","options","select","selectVehicleDispositionByVehicleId","pipe","undefinedOrSwitchMap","vd","_getVm","getById","id","currentWaypoint$","currentWaypointId","undefined","positionReport$","latestPositionReportId","latestFlightFollowing$","latestFlightFollowingReportId","combineLatest","startWith","map","ɵɵinject","VehicleDispositionEntityFetchService","WaypointViewModelService","PositionReportViewModelService","FlightFollowingReportViewModelService","Store","factory","ɵfac","providedIn","VehicleModelViewModel","VehicleModelViewModelBase","constructor","props","VehicleModelViewModelService","_vehicleModelEntityFetchService","getById","id","options","pipe","map","vehicleModel","ɵɵinject","VehicleModelEntityFetchService","factory","ɵfac","providedIn","VehicleMakeViewModel","VehicleMakeViewModelBase","constructor","props","VehicleMakeViewModelService","_vehicleMakeEntityFetchService","getById","id","options","pipe","map","vehicleMake","ɵɵinject","VehicleMakeEntityFetchService","factory","ɵfac","providedIn","vehicleDisplayName","makeName","modelName","registrationNumber","VehicleViewModel","VehicleViewModelBase","displayName","make","name","undefined","model","constructor","vehicle","vehicleDisposition","VehicleViewModelService","_vehicleEntityFetchService","_vehicleModelViewModel","_vehicleMakeViewModel","_vdVm","getById","id","options","pipe","undefinedOrSwitchMap","model$","modelId","of","make$","makeId","vd$","getByVehicleId","combineLatest","map","disposition","ɵɵinject","VehicleEntityFetchService","VehicleModelViewModelService","VehicleMakeViewModelService","VehicleDispositionViewModelService","factory","ɵfac","providedIn","VehicleSummaryViewModel","VehicleSummaryViewModelBase","constructor","props","getLocationStatusDisplay","unit","isExternallyManaged","statusDescription","isEnRoute","to","name","from","displayName","vehicleDisplayName","makeName","modelName","registrationNumber","statusDisplay","vehicleStatusDisplay","status","currentWaypoint","isAtWaypoint","hasTrip","_props","currentCardSummaryId","currentOrNextLegSequence","VehicleSummaryViewModelService","_vehicleSummaryFetchService","getById","id","pipe","map","vehicleSummary","ɵɵinject","VehicleSummaryEntityFetchService","factory","ɵfac","providedIn","RequestStatusCd","ActiveAlertViewModel","ActiveAlertViewModelBase","constructor","activeAlert","_model","card","personAcknowledged$","getPersonById","acknowledgedById","timeAcknowledgedString","dateAcknowledged","undefined","timeElapsed","BaseViewModel","BaseViewModelBase","constructor","base","location","company","aviationCompany","dispatchBase","_model","CardTimelineItemViewModel","timestampType$","combineLatest","timestamp$","timelineItem$","pipe","map","ts","tli","type","timestampType","required$","tl","required","requiredAndCompleted$","req","_requiredAndIncomplete$","_anyNextTimestamp$","timestamps$","_store","select","selectTimestampsByCardId","card","id","timestampTypes$","selectAllTimestampTypes","currentTimelineItem","timestamps","timestampTypes","nextTimestampTypes","filter","tst","order","toList","find","includes","typeId","requiredIncompleteAndSkipped$","anyNextTimestamp","incomplete","requiredIncompleteAndNoNext$","statusDisplay$","requiredAndCompleted","requiredIncompleteAndSkipped","requiredIncompleteAndNoNext","constructor","timelineItemId","timestampId","_model","of","undefined","getTimestampById","getTimelineItemViewModel","NotificationRecipientViewModel","NotificationRecipientViewModelBase","constructor","notificationRecipient","notification","selectViewModel","store","mapFn","createViewModelFn","select","pipe","distinctUntilChanged","map","v","undefined","selectMessageStatusUpdatesByMessageId","messageId","createSelector","selectAllMessageStatusUpdates","messageUpdates","filter","r","trackedMessageId","toIndexedSeq","sortBy","n","dateCreated","selectErrorMessageByMessageId","status","MessageStatus","Failed","first","undefined","selectNotificationRecipientById","notificationRecipientId","createSelector","selectAllNotificationRecipients","recipients","get","selectNotificationRecipientsByNotificationId","notificationId","filter","r","toIndexedSeq","sortBy","n","dateCreated","MessageStatusUpdateViewModel","MessageStatusUpdateViewModelBase","constructor","props","NotificationViewModel","NotificationViewModelBase","hasRecipients$","recipientIds$","pipe","map","rIds","count","timeElapsed","dateCreated","statusString","humanize","status","constructor","notification","card","_model","store","select","selectNotificationRecipientsByNotificationId","id","recipients","r","toSet","getRecipientById","recipientId","of","undefined","selectViewModel","selectNotificationRecipientById","recipient","NotificationRecipientViewModel","getErrorMessageByMessageId","messageId","selectErrorMessageByMessageId","message","MessageStatusUpdateViewModel","TimestampTypeViewModel","TimestampTypeViewModelBase","constructor","timestampType","TimestampViewModel","TimestampViewModelBase","person$","_model","getPersonById","userId","pipe","map","p","PersonViewModel","systemUser","timeElapsed","time","description","note","type","name","personsInvolvedDetials","personsInvolved","constructor","timestamp","timestampType","card","TimestampTypeViewModel","timeString","formatDate","urgencySortOrder","AlertUrgency","Critical","Warning","Information","lifecycleStageSortOrder","AlertLifecycleStage","PreAssignment","Unspecified","selectAllActiveAlerts","appState","entityStores","activeAlert","entities","selectActiveAlertById","id","createSelector","reasons","get","selectActiveAlertsByCardId","cardId","selectActiveAlertEntitiesByEntityType","EntityType","Card","alerts","valueSeq","filter","a","entityId","sortBy","urgency","selectActiveAlertsByCardIdByMatchType","matchType","aa","findIndex","x","selectUnacknowledgedActiveAlertsByCardId","toIndexedSeq","requiresAcknowledgement","acknowledgedById","sortActiveAlerts","selectAcknowledgedActiveAlertsByCardId","selectOtherActiveAlertsByCardId","allAlerts","unacknowledgedAlerts","acknowledgedAlerts","excludeAlerts","toArray","alert","includes","selectAllUnacknowledgedActiveAlertsByCompanyId","companyId","entityType","now","Date","isEntityType","isUnacked","isActive","activationTime","lifecycleStage","selectMedicalControlContactLogEntriesByCardId","cardId","createSelector","selectAllMedicalControlContactLogEntries","medicalControlContactLogEntries","Seq","Indexed","filter","logEntry","toIndexedSeq","selectNotificationById","notificationId","createSelector","selectAllNotifications","notifications","get","selectNotificationsByCardId","cardId","filter","n","entityId","toIndexedSeq","sortBy","dateCreated","selectUnsentNotificationsByCardId","status","NotificationStatus","AwaitingApproval","selectNotificationsByRegionId","regionId","selectCardSummariesByRegionId","cards","length","includes","find","c","id","map","notification","card","CardStatus","Closed","cardNumber","selectNotificationViewModelsByEntityId","model","NotificationViewModel","selectTimestampTypeById","id","createSelector","selectAllTimestampTypes","timestampTypes","get","getNotificationById","notificationId","model","card","selectViewModel","store","selectNotificationById","notification","NotificationViewModel","CardViewModel","CardViewModelBase","operationIfExists$","operation$","pipe","filterNull","tripIfExists$","switchMap","o","trip$","of","undefined","firstTripLeg$","t","requestIfExists$","request$","regionId","region","id","nav","_model","currentCompany","ops","cardNumber","linkedCard$","linkedCardId","getCardById","isReadOnly","isClosed","opsReadonly","hasReadonlyAccess","isClosedOrCancelled$","combineLatest","debounceTime","map","oper","req","isCancelled","constructor","unit$","getUnitForCard","operationId","getOperationById","requestId","getRequestById","vehicleDisposition$","undefinedOrMap","u","vehicle","vehicleDisposition","timestampIds$","select","selectTimestampsByCardId","timestamps","ts","notificationIds$","selectNotificationsByCardId","notifications","n","unsentNotificationIds$","selectUnsentNotificationsByCardId","activeAlertIds$","selectActiveAlertsByCardId","activeAlerts","aa","unacknowledgedActiveAlertIds$","selectUnacknowledgedActiveAlertsByCardId","unacknowledgedActiveAlertIds","ua","acknowledgedActiveAlertIds$","selectAcknowledgedActiveAlertsByCardId","acknowledgedActiveAlertIds","otherActiveAlertIds$","selectOtherActiveAlertsByCardId","otherActiveAlerts","oa","nonPendingReceivingFacilityRequestIds$","selectReceivingFacilityRequestEntitiesByCardId","requests","filter","r","status","ReceivingFacilityRequestStatus","Pending","sort","a","b","dateCreated","rfr","medicalControlContactLogEntryIds$","selectMedicalControlContactLogEntriesByCardId","medicalControlContactLogEntries","le","receivingFacilityRequestIdsByStatus$","createObservableLookup","distinctUntilChanged","rfrs","c","toSet","cardNumberDisplay$","isOnStandby","cardLinks$","Seq","Indexed","getCardLinksByFromCardId","getTimestampById","timestampId","selectTimestampById","selectTimestampTypeById","typeId","tt","TimestampViewModel","getTimestampByType","timestampTypeId","selectTimestampsByTypeAndCardId","getActiveAlertById","activeAlertId","selectActiveAlertById","activeAlert","ActiveAlertViewModel","getAllActiveAlerts","ruleMatchType","RuleMatchType","Unspecified","getMany","cacheSelector","getIdsFallback","fetchCardActiveAlertIdsByCardId","activeAlertsByCardId","selectActiveAlertsByCardIdByMatchType","cardId","fetch","res","data","cards","byId","matchType","CompanyViewModel","CompanyViewModelBase","constructor","company","_model","operationRegions$","store","select","selectOperationsRegionsByCompanyId","id","regionIds$","pipe","map","regions","r","toSet","distinctUntilChanged","regionsIdsWithoutAssignedCommCenters$","filter","communicationCenterId","sort","a","b","abbreviation","localeCompare","toOrderedSet","regionsIdsWithoutAssignedCommCentersCount$","c","count","communicationCenterIds$","selectCommunicationCentersByCompany","ccs","cc","companyBadgeClass","companyCode","allUnitIdsByStatus$","regionIds","nameOrTailLike","includeHidden","includeSpareUnits","createObservableLookup","UnitStatus","unitStatus","length","of","_getAllRegionIds","switchMap","ids","selectUnitSummariesByRegions","units","u","status","OutOfService","isHidden","isSpare","allUnitIds$","cardIdsByStatus$","unitNameOrTailLike","filterCardIds","CardStatus","cardStatus","cards$","selectCardSummariesByRegions","units$","combineLatest","cards","includes","rIds","cIds","unitIds","unitId","toJSON","selectUnitSummariesByRegionsAndUnits","isNullOrEmpty","find","sortBy","cardNumber","dateCreated","_getAllRegions","valueSeq","toArray","selectRegionsByCompanyId","FboViewModel","FboViewModelBase","address","location","emptyAddress","constructor","props","FboViewModelService","_fboEntityFetchService","_locationViewModel","getById","id","pipe","undefinedOrSwitchMap","fbo","locationId","of","undefined","map","ɵɵinject","FboEntityFetchService","LocationViewModelService","factory","ɵfac","providedIn","MedicalFacilityContactViewModel","MedicalFacilityContactViewModelBase","constructor","props","medicalFacility","MedicalFacilityViewModel","MedicalFacilityViewModelBase","constructor","props","location","model","contacts$","medicalFacilityContacts","getMany","cacheSelector","selectMedicalFacilityContactEntitiesByMedicalFacilityId","id","getIdsFallback","getMedicalFacilityContactIds","apollo","pipe","map","contacts","c","MedicalFacilityContactViewModel","facilityId","query","gql","variables","filter","r","loading","facility","data","medicalFacilities","byId","import_geolib","ManifestEntryViewModel","ManifestEntryViewModelBase","isConfirmed","confirmedAt","confirmedAtDisplay","format","constructor","entry","tripLeg","passenger","_model","selectFlightFollowingReportById","id","createSelector","selectAllFlightFollowingReports","reports","valueSeq","find","r","selectFlightFollowingReportsByTripId","tripId","filter","selectFlightFollowingReportsByTripLegId","tripLegId","selectTripPassengersByTripId","tripId","createSelector","selectAllTripPassengers","tripPassengers","valueSeq","filter","t","selectTripPassengersById","passengerId","get","selectManifestEntriesByTripId","tripId","createSelector","selectAllManifestEntries","selectNonCancelledTripLegsByTripId","manifestEntries","tripLegs","valueSeq","filter","m","find","t","id","tripLegId","dateDeleted","selectManifestEntriesByTripLegId","selectTripPassengersByTripId","passengers","entries","e","sortBy","p","abbreviation","map","passengerId","selectManifestEntryById","get","selectManifestEntryByLegAndPassengerId","manifests","manifest","TripLegViewModel_DEPRECATED","TripLegViewModelBase","flightPlan$","_model","store","select","selectFlightFollowingReportsByTripLegId","id","pipe","filterNull","constructor","tripLeg","TripLegViewModel","startingLatLng","startingWaypoint","hasLatLng","getLatLng","undefined","endingLatLng","endingWaypoint","distance","getPreciseDistance","miles","round","convertDistance","nauticalMiles","direction","getCompassDirection","bearing","Math","floor","getGreatCircleBearing","hasGeo","officialDuration$","officialEteId","of","selectEstimatedDurationsById","calculatedDuration$","calculatedEteId","isLoaded$","manifestEntries$","map","entries","find","e","passenger","type","PassengerType","Patient","patientEntry","isConfirmed$","m","isConfirmed","isPilot","trip","manifestEntryIds$","selectManifestEntriesByTripLegId","tripId","toSet","mergeMap","entryIds","combineLatest","toArray","entryId","getManifestEntry","selectManifestEntryById","switchMap","getPassenger","passengerId","ManifestEntryViewModel","getManifestEntryByPassenger","selectManifestEntryByLegAndPassengerId","manifest","passengerTypeConfig","CrewMember","icon","Escort","Guard","Other","Patient","PilotInCommand","CoPilot","SpecialyTeamMember","Driver","RideAlong","TripPassengerViewModel","TripPassengerViewModelBase","config","type","typeDisplay","humanize","constructor","passenger","trip","person","_model","TripViewModel","TripViewModelBase","firstTripLeg$","_model","store","select","selectNonCancelledTripLegsByTripId","id","pipe","map","legs","isEmpty","first","switchMap","leg","of","undefined","getLegViewModel","legIds$","sort","l","sequence","toOrderedSet","passengerIds$","combineLatest","selectTripPassengersByTripId","selectManifestEntriesByTripId","passengers","manifests","filter","p","find","m","passengerId","toSet","allPassengerIds$","currentOrNextTripLeg$","selectCurrentOrNextTripLeg","tripLeg","getLeg","getWaypointByType","type","selectFirstWaypointByTripAndType","wp","getWaypointById","constructor","trip","operation","getCurrentTripLeg","selectEnRouteTripLeg","getNextTripLeg","selectPlannedTripLeg","getTripLegAfterTripLegId","tripLegId","selectTripLegAfterTripLegId","undefinedOrSwitchMap","getPassenger","selectTripPassengersById","passenger","getPersonById","personId","maybePerson","TripPassengerViewModel","selectTripLegById","tripId","startingWaypoint$","startingWaypointId","endingWaypoint$","endingWaypointId","startingWaypoint","endingWaypoint","TripLegViewModel","OperationViewModel","OperationViewModelBase","tripIfExists$","trip$","pipe","filterNull","options","operationTypeConfig","type","statusDisplay","humanize","status","currentOrNextTripLeg_DEPRECATED$","selectViewModel","_model","store","selectCurrentOrNextTripLegByCardNumber_DEPRECATED","card","cardNumber","tripLeg","undefined","TripLegViewModel_DEPRECATED","dateOperationStartedDisplay","format","dateOperationStarted","constructor","operation","unit","select","selectPrimaryTripByCardNumber","map","trip","TripViewModel","vehicle$","selectVehicleById","vehicleId","RegionViewModel","RegionViewModelBase","constructor","region","store","cardNumbers$","select","selectCardSummaryEntitiesByRegionId","id","pipe","distinctUntilChanged","map","cards","card","cardNumber","toSet","cardIdsByStatus","createObservableLookup","CardStatus","cardStatus","filter","r","status","sort","a","b","dateCreated","c","allUnitIds$","selectUnitSummariesByRegionId","units","u","nonHiddenUnitIds$","getOrElse","isHidden","nonHiddenUnitIdsByStatus","UnitStatus","unitStatus","abbreviation","localeCompare","allUnitIdsByStatus","notificationIds$","selectNotificationsByRegionId","NotificationStatus","AwaitingApproval","Failed","notifications","toOrderedSet","RegionViewModelService","_regionFetchService","_store","getById","undefinedOrMap","ɵɵinject","RegionEntityFetchService","Store","factory","ɵfac","providedIn","selectRendezvousRequestByRequestLocationId","requestLocationId","createSelector","selectAllRendezvousRequests","rr","find","r","cancelledAt","selectAllCardLinks","state","entityStores","cardLink","entities","selectCardLinksByRendezvousRequestId","rendezvousRequestId","createSelector","selectAllCardLinks","cardLinks","valueSeq","filter","c","sortBy","toCardNumber","RendezvousRequestViewModel","RendezvousRequestViewModelBase","canConfirm","confirmedAt","canDepartLz","departedLzAt","canArriveDest","arrivedDestAt","canDepartDest","departedDestAt","canArriveLz","arrivedLzAt","isConfirmed","hasDepartedLz","hasArrivedAtDest","hasDepartedDest","hasArrivedAtLz","constructor","rendezvousRequestRecord","_store","cardLinkIds$","select","selectCardLinksByRendezvousRequestId","id","pipe","map","cardLinks","cl","cardLinkCardNumbers$","cardLink","toCardNumber","RendezvousRequestViewModelService","_entity","getById","undefinedOrMap","rr","ɵɵinject","RendezvousRequestEntityFetchService","Store","factory","ɵfac","providedIn","RequestLocationViewModel","RequestLocationViewModelBase","patientLocation","location","roomNumber","type","WaypointType","ReceivingFacility","abbreviation","hasLatLng","pickupDropoffDescription","pickupOrDropoffDescription","ruleMatchType","constructor","requestLocationRecord","request","_model","alerts$","card","request$","pipe","switchMap","getAllActiveAlerts","editNavigationLink$","trip$","undefinedOrSwitchMap","trip","getWaypointByType","map","wp","undefined","nav","currentCompany","ops","cardNumber","editWaypoint","id","rendezvousRequest$","_getRendezvousRequest","medicalFacility$","medicalFacilityId","getMedicalFacilityById","of","medicalFacilityUnit$","medicalFacilityUnitId","getMedicalFacilityUnitById","physician$","physicianId","getPhysicianById","locationHazards$","hazards$","Seq","Indexed","medicalFacilityHazards$","mf","combineLatest","locHazards","medFacilityHazards","concat","groupBy","h","v","first","valueSeq","fbo$","fboId","getFboById","displayName$","filterNull","r","name","diversionReason$","diversionReasonId","diversionReasons","getById","canArrangeTransport","isReadOnly","store","select","selectRendezvousRequestByRequestLocationId","rr","RendezvousRequestViewModel","RequestPatientViewModel","RequestPatientViewModelBase","weightString","weightInKg","kilogramsToPounds","roundWeight","ageGenderString","born","dateOfBirth","formatDate","age","differenceInYears","Date","now","lifeStage","gender","Gender","Unspecified","toLocaleLowerCase","ageGender","join","trim","rideAlongAgeString","rideAlongDateOfBirth","constructor","requestPatient","request","_model","name","firstName","lastName","transferReason$","transferReasonId","of","undefined","transferReasons","getById","rideAlongWeightString","rideAlongWeightInKg","import_geolib","RequesterViewModel","RequesterViewModelBase","constructor","requester","request","_model","selectRequesterByRequestId","requestId","createSelector","selectAllRequesters","requesters","find","r","RequestViewModel","RequestViewModelBase","requestedOperationTypeConfig","operationTypeConfig","requestedOperationType","isWebOrder","card","apiWebhookSubscriptionId","constructor","request","_model","transportOfferIds$","store","select","selectTransportOffersByRequestId","id","pipe","map","offers","o","toOrderedSet","offeredOrAcceptedTransportId$","selectOfferedOrAcceptedTransportByRequestId","offer","availableOrRespondedOfferIds$","selectAvailableOrRespondedTransportOffersByRequestId","skippedOrDeclinedOfferIds$","selectSkippedOrDeclinedTransportOffersByRequestId","autoDeclineOfferIds$","selectAutoDeclineTransportOffersByRequestId","cancelledOrDeclinedOfferIds$","selectCancelledOrDeclinedTransportOffersByRequestId","activeOffer$","selectActiveTransportOfferByRequestId","filterNull","switchMap","getTransportOffer","firstCandidate$","selectFirstCandidateTransportOfferByRequestId","to","of","undefined","requestPatientIds$","selectAllPatientsByRequestId","patients","p","requestPatient$","selectViewModel","selectRequestPatientByRequestId","requestPatient","RequestPatientViewModel","requestPatientIfExists$","requester$","selectRequesterByRequestId","requester","RequesterViewModel","requesterIfExists$","initialDestination$","selectInitialDestinationByRequestId","rl","getRequestLocationById","targetDestination$","selectTargetDestinationByRequestId","isWebOrderAcknowledged$","selectTimestampByCardIdAndType","SystemTimestampType","WebOrderAcknowledged","ts","isWebOrderAndWaiting$","combineLatest","acknowledged","estimatedLoadedMileageInMeters$","filter","initialDest","targetDest","address","hasCoordinates","coordinates","getPreciseDistance","getLatLng","estimatedLoadedMileageInMiles$","distanceInMeters","round","convertDistance","estimatedLoadedMileageInNauticalMiles$","getTransportOfferById","TimelineItemViewModel","TimelineItemViewModelBase","constructor","timeline","timestampType","_model","TimestampTypeViewModel","isPriorOffer","status","response","TransportOfferStatus","Skipped","Cancelled","TransportOfferResponse","Declined","Aborted","offerAttributes","offer","label","value","distanceInNauticalMiles","tooltip","distanceInMiles","heading","createViewModelFromUnitSummary","unitSummary","vehicleSummary","statusRollup","humanize","isEnRoute","destination","to","type","currentWaypointDisplay","from","statusDescription","includes","description","abbreviation","descriptionClass","statusClass","attributes","weatherStatus","valueClass","createViewModelForInternalReferral","unitDescription","createViewModelForExternalReferral","selectCardSummaryByRequestId","vm","requestId","store","select","createSelector","selectAllCardSummaryEntities","entities","filter","e","request","id","valueSeq","first","undefined","pipe","undefinedOrSwitchMap","cardSummaryRecord","getCardSummaryById","TransportOfferViewModel","TransportOfferViewModelBase","isReferral","_props","isExternal","unitId","isSisterCompany","isAutoDeclinable$","combineLatest","_hasAutoDeclineOfferId$","unitSummary$","map","hasId","unit","isOffering","isAssignmentDelayed","isAvailable","canOfferAutoDeclinable$","allowStandby","isOffered","isSceneCall","isTransfer","canPatientOriginateAtUnit","referralTypeDisplay","bearingInDegrees","toFixed","getOrElse","estimatedDepartureTimeInMinutes","estimatedTimeEnRouteInMinutes","estimatedTimeToArrivalInMinutes","specialtyTeamETLO","specialtyTeamETE","onBaseETAInMinutes","specialtyTeamETEInMinutes","specialtyTeamETLOInMinutes","offerReponseHeader","isAborted","isDeclined","isSkipped","statusDisplay","isAccepted","isCancelled","wasBulkSkip","constructor","transportOffer","company","_model","getUnitSummaryById","shareReplaySafe","of","vehicleSummary$","vehicleSummaryId","getVehicleSummaryById","summary$","switchMap","isSpecialityTeamSelected$","requester$","specialtyTeamId","canOffer$","card","cardLinks$","cardLinks","reasons","isClosed","push","isAwaitingAssignment","isAssigned","isPending","linkedCardId","find","cl","CardLinkType","Referral","isCommitted","isOutOfService","missingResources","isGround","summary","length","canOffer","patientOriginatesAtUnit","etaInMinutes$","estimatedValues$","etaInMinutes","isSpecialityTeamSelected","etloInMinutes","eteInMinutes","onBaseEtaInMinutes","specialityTeamEte","specialityTeamEtlo","times","local","addMinutes","Date","now","displayTime","date","formatDate","autoDeclineOfferIds$","autoDeclineOfferIds","declineReasonId","CardLinkViewModel","CardLinkViewModelBase","constructor","props","CardLinkFetchService","constructor","_gql","_store","fetchAllByFromCardId","fromCardId","options","upsertEntitiesFromGraphQL","filter","pipe","map","res","data","cardLinks","all","items","ɵɵinject","FetchCardLinksGQL","StoreService","factory","ɵfac","providedIn","ViewModelService","constructor","store","locations","_waypoint","_vehicle","_locationViewModel","opsReadonly","locationHazards","medicalFacilities","medicalFacilityContacts","medicalFacilityUnits","medicalFacilityPhysicians","physicians","units","companies","operations","cards","requests","people","bases","fbos","nav","apollo","ticker","timezoneService","activeAlerts","activeAlertsByCardId","oosEvents","diversionReasons","transferReasons","cardLinks","_companies$","_getAllCompanies","pipe","shareReplaySafe","getCardSummaryByCardNumber","cardNumber","select","selectCardSummaryEntitiesByCardNumber","map","card","first","undefined","CardSummaryViewModel","getCardSummaryByTripId","tripId","selectCardSummaryByTripId","cardSummary","getCardSummaryById","id","selectCardSummaryById","getCardSummaryByUnitId","unitId","selectCardSummaryEntitiesByUnitId","getUnitSummaryById","selectUnitSummaryById","unit","UnitSummaryViewModel","getVehicleSummaryById","selectVehicleSummaryById","VehicleSummaryViewModel","getCardByCardNumber","selectViewModel","selectRegionByCardNumber","r","RegionViewModel","switchMap","region","of","selectCardByCardNumber","c","CardViewModel","getCardLinksByFromCardId","cardId","selectCardLinkEntitiesByFromCardId","cl","CardLinkViewModel","Seq","Indexed","getBaseById","baseId","options","getById","undefinedOrSwitchMap","base","company$","getCompanyById","companyId","filterNull","aviationCompany$","aviationCompanyId","dispatchBase$","dispatchBaseId","location$","getLocationById_deprecated","locationId","combineLatest","company","aviationCompany","dispatchBase","location","BaseViewModel","getCardById","selectRegionByCardId","selectCardById","getCardByRequestId","requestId","selectCardByRequestId","getCurrentCard","getRouteParam","distinctUntilChanged","getCurrentRegion","valueOrSwitchMap","undefinedOrMap","regionId","getRegionById","selectRegionById","_region","getQueryParam","queryParamName","selectQueryParam","paramName","selectRouteParam","_controlZone","controlZone","ControlZoneViewModel","getUnitForCard","selectUnitByCardNumber","u","getUnitById","getUnitFromRouteParamIfExists","idParamName","param","region$","vehicle$","vehicleId","getVehicle","vehicle","UnitViewModel","getNonThirdPartyUnitByBaseId","selectNonThirdPartyUnitByBaseId","getActiveCardForUnit","getPersonById","personId","person","selectAccessibleItemEntitiesByPersonId","ai","PersonViewModel","toArray","selectActiveOperationByUnitId","operation","selectCardByOperationId","getOperationById","operationId","card$","unit$","OperationViewModel","getRequestById","selectCardEntitiesByRequestId","request","cvm","RequestViewModel","getTransportOfferById","transportOfferId","selectTransportOfferById","offer","find","req","TransportOfferViewModel","getFirstTransportOfferByUnitId","excludeTransportOfferId","selectFirstTransportOfferByUnitId","getRequestLocationById","requestLocationId","selectRequestLocationById","rl","request$","take","l","RequestLocationViewModel","getCompanyByCode","companyCode","selectCompanyByCompanyCode","CompanyViewModel","getAllCompanies","selectAllCompanyEntities","valueSeq","getCurrentCompany","getCurrentCommunicationCenter","commCenterId","rgn","isNullOrEmpty","communicationCenterId","getCommunicationCenterById","selectCommunicationCenterById","commCenter","CommunicationCenterViewModel","mapFn","createViewModelFn","getMedicalFacilityById","medicalFacilityId","mf","loc","MedicalFacilityViewModel","getMedicalFacilityUnitById","medicalFacilityUnitId","mfu","getMedicalFacilityPhysicianById","medicalFacilityPhysicianId","mfp","getPhysicianById","physicianId","p","getRequestPatientById","requestPatientId","selectRequestPatientById","RequestPatientViewModel","getWaypointById","waypointId","getTimelineItemViewModel","timelineItemId","selectTimelineItemById","tl","selectTimestampTypeById","timestampTypeId","tt","TimelineItemViewModel","getCardTimelineItemViewModel","timestampId","CardTimelineItemViewModel","getActiveAlertById","activeAlertId","selectActiveAlertById","activeAlert","ActiveAlertViewModel","getFboById","fbo","FboViewModel","ɵɵinject","Store","LocationEntityFetchService","WaypointViewModelService","VehicleViewModelService","LocationViewModelService","OpsReadonlyService","LocationHazardEntityFetchService","MedicalFacilityEntityFetchService","MedicalFacilityContactEntityFetchService","MedicalFacilityUnitEntityFetchService","MedicalFacilityPhysicianEntityFetchService","PhysicianEntityFetchService","UnitEntityFetchService","CompanyEntityFetchService","OperationEntityFetchService","CardEntityFetchService","RequestEntityFetchService","PersonEntityFetchService","BaseEntityFetchService","FboEntityFetchService","TcsNavigationService","Apollo","TickService","TimezoneViewModelService","ActiveAlertEntityFetchService","GetCardActiveAlertsByCardIdGQL","OutOfServiceEventEntityFetchService","DiversionReasonEntityFetchService","TransferReasonEntityFetchService","CardLinkFetchService","factory","ɵfac","providedIn","CompanyAuthorizationService","authorizedCompanies$","_authorizedCompanies$","asObservable","isAllCompaniesAuthorized","user","_userService","isAuthorizedForAllCompanies","hasRoleAnyScope","UserRole","Developer","allCompaniesAccessible","isAuthorizedForCompany$","company","pipe","map","companies","find","c","id","companyCode","isAuthorizedForCompany","firstValueOrDefault","take","takeUntil","_onDestroy$","constructor","_commCenterAuthorization","_controlZoneAuthorization","_accessibleItems","_oosAuthorization","store","Subject","ReplaySubject","authorizedCommCenters$","getAuthorizedCommCenters","authorizedControlZones$","getAuthorizedControlZones","accessibleCompanies$","getAccessibleItems","EntityType","Company","companies$","select","selectAllCompanyEntities","authorizedOosCommCenters$","combineLatest","user$","commCenters","controlZones","accessibleCompanies","oosCommCenters","valueSeq","toArray","authorizedCompanyIds","cc","companyId","concat","cz","ac","entityId","filter","includes","subscribe","observeCompanyAuthorized","acs","x","ngOnDestroy","next","complete","ɵɵinject","UserService","CommCenterAuthorizationService","ControlZoneAuthorizationService","AccessibleItemAuthorizationService","OosAuthorizationService","Store","factory","ɵfac","providedIn","RegionContextService","constructor","store","_viewModel","currentRegionId$","select","x","router","state","params","pipe","switchMap","routeParams","of","undefined","regionId","cardNumber","getCardSummaryByCardNumber","map","card","ɵɵinject","Store","ViewModelService","factory","ɵfac","providedIn","AppContext","AppContextService","currentContext$","_currentContext$","asObservable","constructor","_tcsNav","BehaviorSubject","Insights","setContext","context","next","ɵɵinject","TcsNavigationService","factory","ɵfac","providedIn","timedTriggers","trigger","intervalSeconds","buildTriggerFlags","fetchAll","now","startOfSecond","Date","reduce","triggers","cur","diff","differenceInSeconds","lastRun","canFetch","PollingService","constructor","_storeService","_log","_gql","_user","_company","_region","_auth","_tick","_appContext","_tabsService","qaResponseAwaitingReviewCount$","BehaviorSubject","passdownLogCount$","_onDestroy$","Subject","_enabledAppContexts","AppContext","Ops","FleetStatus","_queryParamsTracker","cacheFactory","accessTracker","_cache","keyValueCache","init","combineLatest","currentContext$","isTabActiveOrPending$","seconds$","pipe","takeUntil","subscribe","appContext","isTabActive","includes","flags","Object","values","filter","value","length","fetch","__async","firstValueOrUndefined","_fetch","triggerFlags","companyId$","company$","take","map","c","id","currRegionId$","currentRegionId$","r","hasRole$","hasAnyRoleAnyScope","UserRole","Communications","allCompanyIds$","store","select","selectAllCompanies","companies","valueSeq","toArray","isAuthenticated$","isAuthenticated","hasRole","companyId","allCompanyIds","regionId","userRoles","user","_createQueryParams","undefinedOrSwitchMap","params","summariesTracker","_getAccessTracker","includeSummaries","vehiclePositionsTracker","includeVehiclePositionSummaries","cancel$","has","getUnsafe","set","next","cancelled$","race","rollbackLastAccessDate","rollback","requestState","completed","cancelled","error","upsertEntitiesFromQuery","query","variables","__spreadProps","__spreadValues","vehiclesFetchAfterDate","lastAccessDate","unitsFetchAfterDate","cardsFetchAfterDate","vehiclePositionSummariesFetchAfterDate","isCancellable","data","tap","response","includeQuestionnaireResponses","awaitingReviewQAResponseCount","questionnaireResponses","all","meta","total","includePassdownLogs","awaitingPassdownLogCount","passdownLogs","unsubscribe","finalize","catchError","err","message","throwError","ngOnDestroy","complete","get","peek","vehiclePositionSummaries","companyIds","ɵɵinject","StoreService","Logger","PollingService_FetchEntitiesGQL","UserService","CompanyContextService","RegionContextService","AuthenticationService","TickService","AppContextService","TabsService","factory","ɵfac","providedIn","fromFetch","input","initWithSelector","selector","init","__rest","Observable","subscriber","controller","signal","abortable","outerSignal","outerSignalHandler","perSubscriberInit","handleError","err","response","innerFrom","createOperatorSubscriber","retryBackoff","initialDuration","maxRetries","maxDuration","canRetry","error","backoffDelay","iteration","duration","error$","pipe","retryWhen","mergeMap","index","retryCount","delay","maxAttempts","throwError","timer","OnlineStatus","NetworkStatus","RETRY_TIMEOUT","TcsNetworkService","constructor","_logger","_tabs","_tick","_onDestroy$","Subject","_networkStatus$","BehaviorSubject","_bandwidthStatus$","_networkStatusSupport","window","bandwidthStatusSupport","navigator","status$","pipe","distinctUntilChanged","onlineStatus$","nullOrMap","toOnlineStatus","bandwidthStatus$","asObservable","_changeStatus","_boolToNetworkStatus","onLine","_watchBandwidthChanges","ononline","Up","onoffline","Down","logStatusChange","params","info","createSafeProps","__spreadValues","status","previous","prevStatus","statusTimestamp","timestamp","tabStatus","pairwise","takeUntil","subscribe","curStatus","Date","getStatus","_downCache","everyFifteenSeconds$","switchMap","of","fromFetch","filterNull","retryBackoff","initialDuration","maxRetries","maxDuration","map","res","catchError","networkStatus","Online","Offline","_networkInfo","connection","setBandwidth","next","effectiveBandwidth","downlink","effectiveType","onchange","ev","target","warning","current","up","ngOnDestroy","complete","ɵɵinject","Logger","TabsService","TickService","factory","ɵfac","providedIn","import_pubnub","STATUS_CHANGE","PRESENCE_CHANGE","MESSAGE_RECIEVED","StatusChange","constructor","status","type","PresenceChange","presence","MessageReceived","message","dateReceived","getMessageBody","body","BackpressureQueueWorker","SetPeriodCommand","constructor","message","cmd","SetPeriod","SetQueueCountCommand","SetQueueCount","ProcessQueueCommand","ProcessQueue","BackpressureQueue","queueCount","_queue","length","constructor","period","next","_controller","BehaviorSubject","processing","Worker","worker","URL","import","url","type","onmessage","data","cmd","BackpressureQueueWorker","ProcessNextItem","msg","shift","postMessage","SetQueueCountCommand","SetPeriodCommand","_executeProcessor","ProcessQueueCommand","_processQueue","add","items","push","dispose","terminate","value","timer","pipe","takeUntil","filter","c","subscribe","PubnubEventLogger","constructor","_tabs","_user","_logger","_events","event","Pubnub","CATEGORIES","PNConnectedCategory","type","ignore","PNNetworkUpCategory","PNReconnectedCategory","PNMalformedResponseCategory","PNUnknownCategory","PNNetworkIssuesCategory","PNTimeoutCategory","PNNetworkDownCategory","PNBadRequestCategory","PNAccessDeniedCategory","PNRequestMessageCountExceedCategory","logStatus","status","msg","message","date","Date","toISOString","user","email","logType","find","ev","category","tabStatus","getStatus","isError","error","createSafeProps","__spreadValues","info","warning","PubnubService","reconnect","client","_config","_tcsConfig","value","pubnub","_authUserService","_auth","_store","_mutations","userSettings","_onDestroy$","Subject","_initialized","_subscribedChannels$","BehaviorSubject","_hasClientSyncAccess$","ReplaySubject","defaultUser","uuid","publishKey","subscribeKey","userId","id","_messageQueue","BackpressureQueue","dispatch","MessageReceived","loggingCachePubnubMessages","JSON","stringify","loggerOptionsFactory","consoleAndCacheOnly","_eventLogger","_listener","add","previousChannels","next","subscribedChannels","_logPubnubSubscribedChannels","channels","length","firstValueOrUndefined","subscribe","timeoutStrategy","operation","errorData","_unsubscribe","payload","StatusChange","presence","PresenceChange","options","pipe","filter","isAuthorized","tap","withPresence","c","includes","switchMap","subscribed$","select","selectSubscribedChannels","map","subscribed","channel","timeoutDuration","retryCount","timeout","retryBackoff","maxRetries","initialDuration","canRetry","err","catchError","of","throwError","take","unsubscribe","channelPrefix","prefix","exceptChannel","except","startsWith","toArray","channelsToUnsubscribe","init","distinctUser$","filterNull","distinctUntilChanged","u1","u2","takeUntil","__async","setUUID","tabId","token","getAccessToken","organization","authorizeClientSyncAccess","optionalEmail","alert","description","networkTimeout","catch","setAuthKey","addListener","previous","ngOnDestroy","complete","ɵɵinject","TcsConfigurationService","UserService","AuthenticationService","Store","GraphQLMutationsService","Logger","TabsService","TcsUserSettingsService","factory","ɵfac","providedIn","AppInsightsLogger","constructor","_optionsManager","_appInsightsService","error","properties","options","canLogToAppInsights","e","Error","appInsights","trackException","exception","severityLevel","SeverityLevel","warning","message","trackTrace","Warning","info","Information","ɵɵinject","LoggerOptionsService","AppInsightsService","factory","ɵfac","NewRelicLogger","constructor","_optionsManager","_newRelicService","_config","error","properties","options","canLogToNewRelic","e","Error","newRelic","noticeError","__spreadProps","__spreadValues","severityLevel","SeverityLevel","level","appSpace","environment","environmentDisplay","warning","message","Warning","info","Information","ɵɵinject","LoggerOptionsService","NewRelicService","TcsConfigurationService","factory","ɵfac","createStorageId","id","generateNamedMD5Hash","LogType","CacheLoggerCacheService","constructor","_optionsManager","_insightsLogger","_newRelicLogger","userSettings","userEmailService","tickService","_exceededQuotaMaxAgeMs","_maxAgeMs","_id$","BehaviorSubject","_onDestroy$","Subject","_cache$","_cacheLoggerStorage","SessionStorage","name","setItemExecutor","Executor","strategies","canRetry","args","errorName","execute","operation","error","ex","_error","message","retry","clear","success","_info","strategy","_warn","failure","Error","everyHour$","pipe","takeUntil","subscribe","latestEmail$","email","next","_loadCache","getValue","whenReady$","switchMap","valueChanges$","prev","cur","loggingCacheEnabled","clearCache","prevLength","everyTenSeconds$","withLatestFrom","cache","curLength","length","_saveCache","getLogs","serializeLogs","getItem","removeItem","cacheItem","type","properties","options","_canCacheItem","timestamp","Date","ngOnDestroy","complete","canLogToCache","data","JSON","parse","str","stringify","setItem","props","info","createSafeProps","warning","ɵɵinject","LoggerOptionsService","AppInsightsLogger","NewRelicLogger","TcsUserSettingsService","UserEmailService","TickService","factory","ɵfac","providedIn","_c0","NGX_MONACO_EDITOR_CONFIG","InjectionToken","loadedMonaco","loadPromise","BaseEditor","insideNg","config","EventEmitter","resolve","baseUrl","onGotAmdLoader","require","usedRequire","requireConfig","src","loaderRequest","scriptElem","loaderScript","t","ɵɵdirectiveInject","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_c0","_t","ɵɵqueryRefresh","ɵɵloadQuery","EditorComponent","options","model","zone","editorConfig","_","value","fn","hasModel","e","fromEvent","NgZone","ɵɵProvidersFeature","NG_VALUE_ACCESSOR","forwardRef","ɵɵInheritDefinitionFeature","ɵɵelement","MonacoEditorModule","config","NGX_MONACO_EDITOR_CONFIG","t","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","code","ɵɵresetView","ɵɵlistener","onEditorInit","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","editorOptions","ɵɵtwoWayProperty","_r3","onCodeChange","getKeywords","monacoLoad","monaco","languages","register","id","extensions","mimetypes","setLanguageConfiguration","surroundingPairs","open","close","comments","blockComment","lineComment","folding","markers","start","end","wordPattern","indentationRules","indentNextLinePattern","decreaseIndentPattern","increaseIndentPattern","autoClosingPairs","setMonarchTokensProvider","keywords","booleans","typeKeywords","operators","symbols","escapes","tokenizer","root","scriban","cases","include","whitespace","token","next","comment1","comment2","comment3","singleQuote","doubleQuote","registerCompletionItemProvider","triggerCharacters","provideCompletionItems","model","position","context","word","getWordAtPosition","reg","RegExp","incomplete","suggestions","filter","v","test","map","res","replacement","substring","length","label","insertText","preselect","kind","CompletionItemKind","Variable","range","startColumn","column","startLineNumber","lineNumber","endColumn","endLineNumber","editor","defineTheme","colors","base","inherit","rules","foreground","fontStyle","setTheme","monacoConfig","onMonacoLoad","EditorComponent","constructor","readOnly","codeChange","EventEmitter","theme","language","minimap","enabled","_onDestroy$","Subject","ngOnInit","ngOnDestroy","complete","emit","updateOptions","bracketPairColorization","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","EditorComponent_ng_container_0_Template","EditorComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","editable_r4"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,67,68,170,180]}