{"version":3,"file":"app-4fffa15d.981ca8458d389c9a476a.bundle.js","mappings":";;;;;;;;;;;;;;;;;;AAAA;;AAEA;AACA;;AAGA;AACA;AAGA;AAAA;AACA;AAAA;AAEA;AAAA;AANA;AAEA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AANA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;;;;;;;;;;;;;;;;;;;;;;ACdA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAGA;AACA;AAUA;AAPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;;AAGA;AACA;AAEA;AAMA;AAJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAzDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAGA;AACA;AAIA;AAAA;AACA;AAAA;AASA;AAXA;AAAA;AAAA;AAIA;AAAA;AACA;AACA;AACA;AACA;AAIA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AA5DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;;AAEA;AACA;;AAOA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAGA;AACA;AAIA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AAEA;AAAA;AAEA;AAAA;AAEA;AAVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAGA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AAEA;AACA;;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AA5DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;;;;;;;;;;;ACtCA;AACA;AACA;AACA;;;;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;;;ACHA;AACA;AACA;AACA;;;;;;;;;;;ACHA;AACA;AACA;AACA","sources":["webpack://latinera/./sources/components/etc/unreport-entity-icon.js","webpack://latinera/./sources/components/etc/validation-errors.js","webpack://latinera/./sources/components/private/activities-loader.js","webpack://latinera/./sources/components/private/activity-item.js","webpack://latinera/./sources/components/etc/unreport-entity-icon.html","webpack://latinera/./sources/components/etc/validation-errors.html","webpack://latinera/./sources/components/private/activities-loader.html","webpack://latinera/./sources/components/private/activity-item.html"],"sourcesContent":["// Define the view-model for the \"unreport-entity-icon\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export UnreportEntityIcon class\nexport class UnreportEntityIcon {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) iconSize = \"1em\";\n @bindable({ defaultBindingMode: bindingMode.toView }) \n iconTopPosition = \"-0.1em\";\n @bindable({ defaultBindingMode: bindingMode.toView }) \n iconLeftPosition = \"-1.4em\";\n\n}\n","// Define the view-model for the \"validation-errors\" component\n\n// Import library modules\nimport { inject, bindable, computedFrom } from \"aurelia-framework\";\nimport { I18N } from \"aurelia-i18n\";\n\n// Import utility modules\nimport { parseJSON } from \"utilities/string\";\n\n// Import parameter modules\nimport { tBindingBehavior as i18nParams } from \"parameters/i18n\";\n\n\n// Export the \"ValidationErrors\" class\n@inject(I18N)\nexport class ValidationErrors {\n\n // Bound attributes\n @bindable errorsData = [];\n @bindable divClasses = \"uk-alert-danger\";\n @bindable titleI18nKey = \"main:theField\";\n @bindable titleI18nParams = i18nParams;\n @bindable fieldnameI18nKey = \"\";\n\n constructor(i18n) {\n this.i18n = i18n;\n }\n\n\n // Lifecycle methods\n bind() {\n if (this.fieldnameI18nKey) {\n const fieldName = this.i18n.tr(this.fieldnameI18nKey);\n this.titleI18nParams = { \n ...this.titleI18nParams, \n fieldName,\n interpolation: { escapeValue: false }\n };\n }\n }\n\n\n // Getter and setter methods\n @computedFrom(\"errorsData\")\n get i18nErrorsData() {\n return this.errorsData\n .map(({\n error: {\n rule: i18nKey,\n message: i18nParamsString = \"{}\"\n }\n }) => {\n const i18nParams = Object.entries(parseJSON(i18nParamsString) || {})\n .reduce((accI18nParams, [ pName, pValue ]) => {\n switch (pName) {\n case \"allowedChars\":\n pValue = pValue\n .map(charGroup => this.i18n.tr(`etc:charGroups.${charGroup}`));\n if (pValue.length > 1) {\n pValue = `${pValue.slice(0, -1).join(`, `)} ` +\n `${this.i18n.tr(`main:or`)} ` +\n `${pValue.slice(-1)}`;\n }\n break;\n }\n accI18nParams[pName] = pValue;\n return accI18nParams;\n }, {});\n return {\n key: `[html]errors:${i18nKey}`,\n params: i18nParams\n };\n });\n }\n\n}\n","// Define the view-model for the \"activity\" component\n\n// Import library modules\nimport { inject, bindable, bindingMode } from \"aurelia-framework\";\n\n// Import utility modules\nimport { pause } from \"utilities/promise\";\n\n// Import parameter modules\nimport { tBindingBehavior as i18nParams } from \"parameters/i18n\";\nimport { mockLoadingDataDurationMs } from \"parameters/time\";\nimport { runMode } from \"parameters/environment\";\n\n// Import service modules\nimport ActivityService from \"services/activity\";\n\n// Define internal parameters\nconst showAllActivitiesLoadedTimeoutMs = 2000;\n\n\n// Export the \"ActivitiesLoader\" class\n@inject(ActivityService)\nexport class ActivitiesLoader {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.twoWay }) activitiesData = [];\n @bindable({ defaultBindingMode: bindingMode.toView }) ascendingIndex = true;\n\n // Local attributes\n previousActivitiesData = [];\n isLoadingActivities = false;\n allActivitiesLoaded = false;\n showAllActivitiesLoaded = false;\n i18nParams = i18nParams;\n\n constructor(activityService) {\n this.activityService = activityService;\n }\n\n\n // Lifecycle methods\n unbind() {\n if (this.showAllActivitiesLoadedTimeoutId) {\n clearTimeout(this.showAllActivitiesLoadedTimeoutId);\n }\n }\n\n\n // Core methods\n async loadPreviousActivities() {\n if (this.allActivitiesLoaded) {\n console.info(`No more previous activities to be loaded`);\n this.showAllActivitiesLoaded = true;\n await pause(showAllActivitiesLoadedTimeoutMs);\n this.showAllActivitiesLoaded = false;\n return;\n }\n\n this.isLoadingActivities = true;\n\n // Mock loading data duration\n if ([\"dev\"].includes(runMode)) {\n await pause(mockLoadingDataDurationMs);\n }\n\n try {\n const previousActivitiesExtData = \n await this.activityService.getPreviousActivities();\n this.previousActivitiesData = \n previousActivitiesExtData.previousActivitiesData || [];\n this.activitiesData = \n previousActivitiesExtData.activitiesData || [];\n } catch(error) {\n console.warn(`Error while fetching previous activities from server`, error);\n this.previousActivitiesData = [];\n this.isLoadingActivities = false;\n return;\n }\n this.isLoadingActivities = false;\n\n if (this.previousActivitiesData.length === 0) {\n this.allActivitiesLoaded = true;\n }\n }\n\n}\n","// Define the view-model for the activity-item component\n// note: this is a container for either an analysis or a task list item\n\n// Import library modules\nimport { \n bindable, \n bindingMode, \n computedFrom, \n inject \n} from \"aurelia-framework\";\n\n// Import utility modules\nimport { setEventHandlers, unsetEventHandlers } from \"utilities/event\";\nimport { computeActivityType } from \"utilities/activity\";\nimport { typeOf } from \"utilities/etc\";\n\n// Import parameter modules\nimport { runMode as defaultRunMode } from \"parameters/environment\";\n\n// Import service modules\nimport EventService from \"services/event\";\n\n// Define internal parameters\nconst eventsData = [];\n\n\n// Export ActivityItem class\n@inject(EventService)\nexport class ActivityItem {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) activityData = null;\n @bindable({ defaultBindingMode: bindingMode.twoWay }) activitiesData = [];\n @bindable({ defaultBindingMode: bindingMode.toView }) activitiesIndex = -1;\n @bindable({ defaultBindingMode: bindingMode.toView }) \n analysisActivityDisplayMode = \"full\";\n @bindable({ defaultBindingMode: bindingMode.toView }) \n taskActivityDisplayMode = \"full\";\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n constructor(eventService) {\n this.eventService = eventService;\n }\n\n // Lifecycle methods\n bind() {\n this.validateBoundAttributes();\n\n this.eventsSubscriptions = setEventHandlers.call(this, {\n entityName: \"activityItem\",\n entityKey: this.activityKey,\n eventService: this.eventService,\n eventsData\n });\n }\n\n unbind() {\n unsetEventHandlers.call(this, {\n eventsSubscriptions: this.eventsSubscriptions\n });\n }\n\n\n // Getter and setter methods\n @computedFrom(\"activityData.key\")\n get activityKey() {\n const { key: activityKey = \"\" } = this.activityData || {};\n return activityKey;\n }\n\n @computedFrom(\"activityData.type\")\n get activityType() {\n return computeActivityType(this.activityData);\n }\n\n\n // Core methods\n validateBoundAttributes() {\n if (typeOf(this.activitiesIndex) !== \"number\" || this.activitiesIndex < -1) {\n throw new Error(`Bound attribute \"activitiesIndex\" should be either ` +\n `minus one or a non-negative index`);\n }\n if (![\"full\", \"compact\"].includes(this.analysisActivityDisplayMode)) {\n throw new Error(`Unknown analysis activity display mode ` +\n `\"${this.analysisActivityDisplayMode}\"`);\n }\n if (![\"full\"].includes(this.taskActivityDisplayMode)) {\n throw new Error(`Unknown task activity display mode ` +\n `\"${this.taskActivityDisplayMode}\"`);\n }\n }\n}\n","// Module\nvar code = \"\\n\\n \\n \\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n 0\\\"\\n uk-alert>\\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n \\n\\n \\n \\n\\n \\n \\n \\n ${\\\"main:loadingPreviousActivities\\\" & t: i18nParams}…\\n \\n\\n \\n \\n ${\\\"main:noPreviousActivitiesToLoad\\\" & t: i18nParams}\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n\\n\";\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}