{"version":3,"file":"app-f4262503.981ca8458d389c9a476a.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAOA;AACA;AACA;AAIA;;AAKA;AACA;;AAEA;AACA;;AAEA;AACA;AAIA;AAkCA;;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAcA;AACA;AAgBA;AACA;AAsBA;;AAEA;AACA;;AAEA;AACA;AAEA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3NA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;;;;;;;;;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACtBA;AACA;;;;;;;;;;;;;;ACDA;;AAEA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACnBA;;AAEA;AACA;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;;;;;;;;;;;;;;AC9BA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAEA;AAGA;AAGA;AACA;AACA;AAEA;AAEA;;;;;;;;;;;;;;;;;AChCA;;AAEA;AACA;AACA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;;;;;;;;;;;;;;;;ACpCA;;;;;;;;;;;;;;;;;;;;ACAA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzDA;;AAEA;AACA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvFA;;AAEA;AACA;;AAEA;AACA;AAIA;AACA;AAEA;AACA;AAMA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvIA;;AAEA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/BA;;AAEA;AACA;;AAEA;AACA;;AAGA;AACA;AACA;AAAA;AACA;AAAA;AACA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;;;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACPA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBA;;AAEA;AACA;;AAEA;AACA;AAEA;;;;;;;;;;;;;;ACRA;AACA;;;;;;;;;;;;;;;;;ACDA;AACA;;;;;;;;;;;;;;;;ACDA;AACA;AACA;AACA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC3LA;AACA;AACA;AACA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AAAA;AAAA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACNA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAGA;AACA;AACA;AAIA;AAEA;AAEA;AAEA;AACA;;;;;;;;;;;;;;;;;;ACzBA;;AAEA;AACA;;AAOA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACpCA;;AAEA;AACA;;AAGA;AACA;AACA;AACA;AAGA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AChCA;;AAEA;AACA;;AAGA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;;AAEA;AACA;;AAOA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChHA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA","sources":["webpack://latinera/./sources/main.js","webpack://latinera/./sources/parameters/activity.js","webpack://latinera/./sources/parameters/ajv.js","webpack://latinera/./sources/parameters/api.js","webpack://latinera/./sources/parameters/application.js","webpack://latinera/./sources/parameters/conversion.js","webpack://latinera/./sources/parameters/default.js","webpack://latinera/./sources/parameters/definition.js","webpack://latinera/./sources/parameters/element.js","webpack://latinera/./sources/parameters/environment.js","webpack://latinera/./sources/parameters/etc.js","webpack://latinera/./sources/parameters/graphql.js","webpack://latinera/./sources/parameters/i18n.js","webpack://latinera/./sources/parameters/index.js","webpack://latinera/./sources/parameters/lemma.js","webpack://latinera/./sources/parameters/locale.js","webpack://latinera/./sources/parameters/notification.js","webpack://latinera/./sources/parameters/offer.js","webpack://latinera/./sources/parameters/pay.js","webpack://latinera/./sources/parameters/promise.js","webpack://latinera/./sources/parameters/regexp.js","webpack://latinera/./sources/parameters/router.js","webpack://latinera/./sources/parameters/router/private.js","webpack://latinera/./sources/parameters/router/public.js","webpack://latinera/./sources/parameters/sentence.js","webpack://latinera/./sources/parameters/session.js","webpack://latinera/./sources/parameters/state.js","webpack://latinera/./sources/parameters/stripe.js","webpack://latinera/./sources/parameters/time.js","webpack://latinera/./sources/parameters/user.js","webpack://latinera/./sources/parameters/vimeo.js"],"sourcesContent":["// Define Aurelia's configuration function\n\n// Import library modules\nimport { PLATFORM } from \"aurelia-pal\";\nimport { TCustomAttribute } from \"aurelia-i18n\";\nimport Backend from \"i18next-xhr-backend\";\n\n// import utility modules\nimport { getCurrentTimeStampMs } from \"utilities/time\";\nimport {\n getSessionStorageData,\n setSessionStorageData,\n getLocalStorageData,\n setLocalStorageData\n} from \"utilities/storage\";\n\n// Import parameter modules\nimport { runMode } from \"parameters/environment\";\nimport { \n initialSessionStorageData,\n initialLocalStorageData\n} from \"parameters/state\";\nimport {\n postProcessors as i18nextPostProcessors,\n i18next as i18nextParams\n} from \"parameters/i18n\";\n\n// Import class modules\nimport JSONSchemaValidator from \"classes/json-schema-validator\";\n\n// Import style modules\nimport \"styles/ps-uikit.scss\";\n\n// Import image modules\nimport {\n library as fontawesomeLibrary,\n dom as fontawesomeDom\n} from \"@fortawesome/fontawesome-svg-core\";\nimport {\n faCalendarAlt,\n faClipboard,\n faCopy,\n faEye,\n faEyeSlash,\n faFile,\n faFileAlt,\n faFlag as faFlagRegular,\n faFrown,\n faHourglass,\n faPaperPlane,\n faPlayCircle,\n faQuestionCircle,\n faTrashAlt,\n} from \"@fortawesome/free-regular-svg-icons\";\nimport {\n faAlignLeft,\n faAmbulance,\n faAngleDoubleDown,\n faAngleDoubleUp,\n faArrowLeft,\n faAsterisk,\n faBars,\n faBookOpen,\n faCaretDown,\n faCaretUp,\n faCheck,\n faChevronLeft,\n faChevronRight,\n faCog,\n faEdit,\n faExclamation,\n // faFlag as faFlagSolid,\n faHome,\n faPaperclip,\n faGripHorizontal,\n faGripVertical,\n faIndustry,\n faList,\n faLock,\n faUnlock,\n faPlus,\n faQrcode,\n faRedo,\n faSave,\n faSignInAlt,\n faSignOutAlt,\n faSlash,\n faSpinner,\n faSync,\n faTimes,\n faUndo,\n faUser,\n faUserPlus,\n} from \"@fortawesome/free-solid-svg-icons\";\n\n// Export Aurelia's configuration function\nexport async function configure(aurelia) {\n try {\n aurelia.use\n .defaultBindingLanguage() // data-binding language (.bind, .trigger, etc)\n .defaultResources() // default view resources (repeat, if, etc)\n .globalResources([]) // global view resources (user-defined)\n .history() // integration with browser's history API\n .router() // map routes to screens\n .eventAggregator() // pub/sub-based messaging\n .developmentLogging([\"dev\"].includes(runMode) ? \"debug\" : \"info\") // log level\n .plugin(PLATFORM.moduleName(\"aurelia-i18n\"), instance => {\n // add aliases for the translation attribute\n TCustomAttribute.configureAliases(i18nextParams.attributes);\n\n // register backend plugin (use xhr backend)\n // note: had problems with Aurelia's loader)\n instance.i18next.use(Backend);\n\n // register post-processors\n i18nextPostProcessors.forEach(i18nextPostProcessor => {\n instance.i18next.use(i18nextPostProcessor);\n });\n\n // configure i18next \n return instance.setup(i18nextParams);\n })\n .plugin(PLATFORM.moduleName(\"aurelia-validation\"), config => {\n return config.customValidator(JSONSchemaValidator);\n })\n .plugin(PLATFORM.moduleName(\"aurelia-dialog\"), config => {\n config.useDefaults(); // needed when specifying custom config\n config.settings.lock = true;\n config.settings.centerHorizontalOnly = false;\n config.settings.startingZIndex = 5;\n config.settings.keyboard = [\"Escape\"];\n });\n\n //// Load aurelia-testing plugin\n // if ([ \"dev\", \"test\" ].includes(runMode)) {\n // aurelia.use.plugin(PLATFORM.moduleName(\"aurelia-testing\"));\n // }\n\n // Configure fontawesome icons\n fontawesomeLibrary.add(\n // free regular icons\n faCalendarAlt,\n faClipboard,\n faCopy,\n faEye,\n faEyeSlash,\n faFile,\n faFileAlt,\n faFlagRegular,\n faFrown,\n faHourglass,\n faPaperPlane,\n faPlayCircle,\n faQuestionCircle,\n faTrashAlt,\n // free solid icons\n faAlignLeft,\n faAmbulance,\n faAngleDoubleDown,\n faAngleDoubleUp,\n faArrowLeft,\n faAsterisk,\n faBars,\n faBookOpen,\n faCaretDown,\n faCaretUp,\n faCheck,\n faChevronLeft,\n faChevronRight,\n faCog,\n faEdit,\n faExclamation,\n // faFlagSolid,\n faHome,\n faPaperclip,\n faGripHorizontal,\n faGripVertical,\n faIndustry,\n faList,\n faLock,\n faUnlock,\n faPlus,\n faQrcode,\n faRedo,\n faSave,\n faSignInAlt,\n faSignOutAlt,\n faSlash,\n faSpinner,\n faSync,\n faTimes,\n faUndo,\n faUser,\n faUserPlus,\n );\n fontawesomeDom.watch(); // enable automatic replacement of icons in DOM\n\n // Wait for the Aurelia framework to start\n await aurelia.start();\n\n // Set the root to public/private depending on session data\n const sessionStorageData = \n getSessionStorageData() || initialSessionStorageData;\n const localStorageData = \n getLocalStorageData() || initialLocalStorageData;\n const { token: { data: tokenData } = {} } = sessionStorageData;\n const currentTimeStampMs = getCurrentTimeStampMs();\n const { exp: sessionExpiresOnMs = currentTimeStampMs } = tokenData || {};\n if (currentTimeStampMs < sessionExpiresOnMs) {\n console.debug(`Open session found: set root to \"private\"`);\n return aurelia.setRoot(PLATFORM.moduleName(\"private\"));\n }\n setSessionStorageData({ data: sessionStorageData });\n setLocalStorageData({ data: localStorageData });\n console.debug(`No open session found: set root to \"public\"`);\n return aurelia.setRoot(PLATFORM.moduleName(\"public\"));\n } catch(error) {\n console.error(`Error in \"configure\" function`, error);\n }\n}\n","// Define activity-related parameters\n\n// Import parameter modules\nimport { outLocaleCode } from \"parameters/environment\";\n\n\n// Export activity-related parameters\nexport const activityCostCredits = 1.0;\nexport const createTaskActivityFormData = {\n _schemaId: \"taskActivity.createTaskActivityInput\",\n taskData: {\n title: \"\",\n localeCode: outLocaleCode\n }\n};\nexport const taskActivityMetaData = {\n isOpen: false\n};\n\nexport const visibleMetaDataField = \"modificationTime\";\n","// Define ajv-validator-related parameters\n\n// Export ajv parameters\nexport const ajv = {\n $data: true,\n allErrors: true, // required by ajv-errors\n validateFormats: true,\n verbose: false,\n unicodeRegExp: true,\n useDefaults: true,\n removeAdditional: false,\n strict: false // enable strict mode\n};\n\n// Export ajv-formats parameters\nexport const ajvFormats = {\n mode: \"full\", // validation mode (full|fast)\n formats: [ \"email\", \"uri\" ], // array of formats to be validated\n keywords: true // allow adding custom formats\n};\n\n// Export ajv-errors parameters\nexport const ajvErrors = {\n errors: {\n singleError: false,\n }\n};\n","// Define API-related parameters\n\n// Import parameter mddules\nimport { apiGatewayEndpoint } from \"parameters/environment\";\n\n\n// Export api parameters\nexport const baseEndpoint = apiGatewayEndpoint;\nexport const fetchOptions = {\n method: \"get\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n mode: \"cors\",\n credentials: \"omit\", // do not send credentials' cookie (use bearer auth)\n cache: \"no-cache\",\n redirect: \"follow\"\n};\nexport const alivePath = \"alive\"; // relative to baseEndpoint\nexport const responseTimeAverageWindowLength = 8;\n\n// Export graphQL parameters\nexport const graphQLPath = \"graphql\"; // relative to baseEndpoint\n","// Define application-related parameters\nexport const runModes = [ \"dev\", \"test\", \"live\" ];\n","// Define conversion-related parameters\n\n// Export parameters\nexport const lemmaCathegory = [\n { long: \"adjective\", short: \"adj\" },\n { long: \"adverb\", short: \"adv\" },\n { long: \"noun\", short: \"nou\" },\n { long: \"pronoun\", short: \"prn\" },\n { long: \"verb\", short: \"vrb\" },\n { long: \"participle\", short: \"prt\" },\n { long: \"gerundive\", short: \"grd\" },\n { long: \"preposition\", short: \"prp\" },\n { long: \"conjunction\", short: \"cnj\" },\n { long: \"interjection\", short: \"int\" },\n { long: \"prefix\", short: \"pfx\" },\n { long: \"suffix\", short: \"sfx\" },\n { long: \"mirror\", short: \"mir\" }\n];\n","// Define default parameters\n//\n// Import parameter modules\nimport { runMode } from \"parameters/environment\";\n\n\nexport const activities = {\n currentFetchCount: [\"dev\"].includes(runMode) ? 2 : 20,\n previousFetchCount: [\"dev\"].includes(runMode) ? 1 : 10\n};\n\nexport const authors = {\n minCharsSearchCount: 3\n};\n\nexport const sentences = {\n minCharsSearchCount: 3,\n minElementsSearchCount: 2,\n minCharsAddCount: 3\n};\n","// Define definition-related parameters\n\n// Import parameter modules\nimport { outLocaleCode } from \"parameters/environment\";\n\n\n// Export definition-related parameters\nexport const hypedDefinitionsCount = 3;\n\n// Export default create form data\nexport const createDefinitionFormData = {\n _schemaId: \"definition.createInput\",\n definitionData: {\n text: \"\",\n description: \"\",\n localeCode: outLocaleCode\n }\n};\nexport const definitionResetPropertyNames = [ \"text\", \"description\" ];\n\n// Export definition-report-related parameters\nexport const minReportsCount = 3;\nexport const reportTargets = [\n \"definition\", // report the definition itself\n \"lemma\" // report the association of the definition with the lemma\n];\nexport const reportTypes = [\n \"cns\", // censurable\n \"inc\", // incorrect\n \"mis\", // misplaced\n \"oth\" // other\n];\n","// Define element-related parameters\nexport const sentenceEndingMarkElementTexts = [ \".\", \":\", \";\", \"!\", \"?\" ];\n","// Define UI environment-related parameters for ionos/live\n\n// Export fixed parameters\nexport const companyName = \"PLVSVLTRA OÜ\";\nexport const companyAddress = \"Tallinn, Estonia\";\nexport const domainName = \"latinera.app\";\nexport const projectName = \"latinera\";\nexport const inLocaleCode = \"la-it\";\n\n// Export variable parameters\nexport const runContext = \"ionos\";\nexport const runMode = \"live\";\nexport const runZone = \"it-it\";\nexport const uiVersion = \"beta\";\n\n// Export derived parameters\nexport const uiLocaleCode = runZone;\nexport const outLocaleCode = runZone;\nexport const countryCode = runZone\n .replace(/-[a-z]+$/, \"\");\nconst baseHostname = runContext === \"ionos\" ?\n `${domainName}` :\n `${runContext}.${domainName}`;\nconst fullHostname = runMode === \"live\" ?\n `${baseHostname}` :\n `${runMode}.${baseHostname}`;\nexport const uiBaseUrl = `https://${fullHostname}/${runZone}`;\nexport const spaBaseUrl = `${uiBaseUrl}/spa/#`;\nexport const apiGatewayEndpoint =\n `https://api.${fullHostname}/${runZone}`;\nexport const payGatewayEndpoint =\n `https://pay.${fullHostname}/${runZone}`;\nexport const mediaGatewayEndpoint =\n `https://media.${fullHostname}/${runZone}`;","// Define miscellaneous parameters\n\n// Terms of service\nexport const termsOfServiceTimeStampMs = new Date(2024, 4, 3).valueOf(); // 01/06\nexport const termsOfServiceSectionNames = [\n \"agreementToTerms\",\n \"intellectualPropertyRights\",\n \"userRepresentations\",\n \"userRegistration\",\n \"prohibitedActivities\",\n \"userGeneratedContributions\",\n \"contributionsLicense\",\n //\"guidelinesForReviews\", // temporarily disabled\n //\"mobileApplication\", // t.b.d.\n //\"socialMedia\", // t.b.d.\n \"userSubmissions\",\n //\"thirdParties\", // t.b.d.\n //\"advertisers\", // t.b.d.\n \"siteManagement\",\n \"copyrightInfringements\",\n \"termination\",\n \"modificationsAndInterruptions\",\n \"governingLaw\",\n \"disputeResolution\",\n \"corrections\",\n \"disclaimer\",\n \"limitationsOfLiability\",\n \"indemnification\",\n \"userData\",\n \"electronicCommunications\",\n \"miscellaneous\",\n \"contacts\"\n];\n\n// Privacy policy\nexport const privacyPolicyTimeStampMs = new Date(2024, 7, 21).valueOf();\nexport const privacyPolicySectionNames = [\n \"introduction\",\n \"dataCollectionUseAndSharing\",\n \"accessAndControlOfData\",\n \"security\",\n \"registration\",\n \"payments\",\n \"cookies\"\n];\n","// Define graphQL-related parameters\nexport {\n backoffTimeoutsMs as requestBackoffTimeoutsMs,\n timeoutMs as requestTimeoutMs\n} from \"parameters/promise\";\n","// Define i18n-related parameters\n\n// Import utility modules\nimport { capitalizeFirst, capitalizeAll } from \"utilities/string\";\n\n// Import parameter modules\nimport { uiLocaleCode } from \"parameters/environment\";\nimport { localesData } from \"parameters/locale\";\n\n// Define internal parameters\nconst aliases = [ \"t\", \"i18n\" ];\nconst preloadLocaleCodes = localesData\n .filter(({ uiEnabled: localeUIEnabled, code: localeCode }) => {\n return localeUIEnabled && localeCode === uiLocaleCode;\n })\n .map(({ code: localeCode }) => localeCode);\nif (preloadLocaleCodes.length !== 1) {\n throw new Error(`Could not determine a locade code to pre-load: ` +\n `verify the environment/locale parameters`);\n}\n\n\n// Export i18next parameters\nexport const i18next = {\n backend: {\n loadPath: \"translations/{{lng}}/{{ns}}.json\",\n },\n attributes: aliases,\n lng : uiLocaleCode,\n fallbackLng : uiLocaleCode,\n lowerCaseLng: true, // use lower-case language names (e.g. \"en-gb\")\n load: \"currentOnly\", // load option (all|currentOnly|languageOnly)\n preload: preloadLocaleCodes, // array of locale codes to pre-load (or false)\n ns: [\n \"alerts\", \"dialogs\", \"elements\", \"enums\", \"errors\", \"etc\", \"faq\", \"legal\",\n \"main\", \"notifications\", \"screens\", \"tooltips\"\n ],\n defaultNS: \"main\",\n nsSeparator: \":\",\n keySeparator: \".\",\n debug : false\n};\n\n// Export the post-processors' array\nexport const postProcessors = [{\n type: \"postProcessor\",\n name: \"capitalizeFirst\",\n process: value => capitalizeFirst(value)\n}, {\n type: \"postProcessor\",\n name: \"capitalizeAll\",\n process: value => capitalizeAll(value)\n}];\n\n// Export tBindingBehavior parameters\nexport const tBindingBehavior = {\n postProcess: [\"capitalizeFirst\"]\n};\n","// Define indexDB-related parameters\n\n// Import library modules\nimport ms from \"ms\";\n\n// Import parameter modules\nimport { runMode } from \"parameters/environment\";\n\n\n// Export databases parameters\nexport const globalDatabaseData = {\n name: \"global\",\n version: 20231129,\n schema: { // first property is primary key, & means unique\n schemas: \"key, _crtOn, _expOn\",\n keyvalues: \"key, _crtOn, _expOn\",\n offers: \"key, _crtOn, _expOn\",\n },\n pruningIntervalMs: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"5m\")\n};\nexport const userDatabaseData = {\n baseName: \"user\", // final name will be `${baseName}-${userKey}`\n version: 20231129,\n schema: { // first property is primary key, & means unique\n activities: \"key, index, _crtOn, _expOn\",\n activityItems: \"key, index, _crtOn, _expOn\",\n analyses: \"key, _crtOn, _expOn\",\n authors: \"key, _crtOn, _expOn\",\n cards: \"key, _crtOn, _expOn\",\n definitions: \"key, _crtOn, _expOn\",\n elements: \"key, _crtOn, _expOn\",\n functions: \"key, _crtOn, _expOn\",\n inflectors: \"key, _crtOn, _expOn\",\n inflections: \"key, _crtOn, _expOn\",\n keyvalues: \"key, _crtOn, _expOn\",\n lemmas: \"key, _crtOn, _expOn\",\n sentences: \"key, _crtOn, _expOn\",\n states: \"key, _crtOn, _expOn\",\n tasks: \"key, _crtOn, _expOn\",\n },\n pruningIntervalMs: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"5m\")\n};\nexport const minResidualValidityMs =\n [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1m\");\n\n// Export collections' expiry data (in ms)\nexport const expiryData = {\n default: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n activities: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n activityItems: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n analyses: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n authors: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n cards: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n definitions: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n elements: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n functions: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n inflectors: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n inflections: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n keyvalues: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n lemmas: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n offers: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n schemas: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n sentences: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n states: [\"dev\"].includes(runMode) ? ms(\"24h\") : ms(\"28d\"),\n tasks: [\"dev\"].includes(runMode) ? ms(\"1m\") : ms(\"1h\"),\n};\n\n// Export collections' extend data (in ms)\nexport const extendData = {\n default: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n activities: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n activityItems: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n analyses: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n authors: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n cards: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n definitions: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n elements: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n functions: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n inflectors: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n inflections: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n keyvalues: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n lemmas: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n offers: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n schemas: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n sentences: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n states: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"7d\"),\n tasks: [\"dev\"].includes(runMode) ? ms(\"15m\") : ms(\"3h\"),\n};\n","// Define lemma-related parameters\n\n// Import parameter modules\nimport { inLocaleCode } from \"parameters/environment\";\n\n// Export lemma-related parameters\nexport const shortLemmaCathegories = [\n \"adj\",\n \"adv\",\n \"nou\",\n //\"prn\",\n \"vrb\",\n \"prt\",\n //\"grd\",\n \"prp\",\n \"cnj\",\n \"int\",\n \"pfx\",\n \"sfx\"\n];\nexport const shortLemmaGenders = [ \"m\", \"f\", \"n\" ];\nexport const shortLemmaDegrees = [ \"pos\", \"cmp\", \"sup\" ];\nexport const shortAdjectiveLemmaClasses = [ \"1st\", \"2nd\" ];\nexport const shortLemmaTenses = [ \"pre\", \"fut\", \"per\" ];\nexport const shortConjunctionLemmaTypes = [ \"crd\", \"sub\" ];\n\n// Export default create form data\nexport const createLemmaFormData = {\n _schemaId: \"lemma.createInput\",\n lemmaData: {\n cathegory: null,\n localeCode: inLocaleCode\n },\n inflectionsKeys: [],\n definitionsKeys: []\n};\n\n// Export default adjective input form data\nexport const adjectiveLemmaInputFormData = {\n _schemaId: \"lemma.adjectiveLemmaInput\",\n cathegory: \"adj\", // adjective\n class: null,\n degree: null,\n text: \"\", // will match the content of paradigm[0] item\n paradigm: [ \"\", \"\", \"\" ],\n formsRegularComparative: false,\n formsRegularSuperlative: false,\n localeCode: inLocaleCode\n};\n\n// Export default adverb input form data\nexport const adverbLemmaInputFormData = {\n _schemaId: \"lemma.adverbLemmaInput\",\n cathegory: \"adv\", // adverb\n text: \"\",\n degree: null,\n localeCode: inLocaleCode\n};\n\n// Export default noun input form data\nexport const nounLemmaInputFormData = {\n _schemaId: \"lemma.nounLemmaInput\",\n cathegory: \"nou\", // noun\n text: \"\", // will match the content of paradigm[0] item\n paradigm: [ \"\", \"\" ],\n gender: null,\n isSingularOnly: false,\n isPluralOnly: false,\n localeCode: inLocaleCode\n};\n\n// Export default verb input form data\nexport const verbLemmaInputFormData = {\n _schemaId: \"lemma.verbLemmaInput\",\n cathegory: \"vrb\", // verb\n text: \"\", // will match the content of paradigm[0] item\n paradigm: [ \"\", \"\", \"\", \"\", \"\" ],\n isTransitive: false,\n isIntransitive: false,\n isAnomalous: false,\n localeCode: inLocaleCode\n};\n\n// Export default participle input form data\nexport const participleLemmaInputFormData = {\n _schemaId: \"lemma.participleLemmaInput\",\n cathegory: \"prt\", // participle\n mood: \"prt\",\n tense: null,\n degree: \"pos\",\n text: \"\", // will match the content of paradigm[0] item\n paradigm: [ \"\", \"\", \"\" ],\n formsRegularComparative: false,\n formsRegularSuperlative: false,\n localeCode: inLocaleCode\n};\n\n// Export default preposition input form data\nexport const prepositionLemmaInputFormData = {\n _schemaId: \"lemma.prepositionLemmaInput\",\n cathegory: \"prp\", // preposition\n text: \"\",\n localeCode: inLocaleCode\n};\n\n// Export default conjunction input form data\nexport const conjunctionLemmaInputFormData = {\n _schemaId: \"lemma.prepositionLemmaInput\",\n cathegory: \"cnj\", // conjunction\n text: \"\",\n localeCode: inLocaleCode\n};\n\n// Export default interjection input form data\nexport const interjectionLemmaInputFormData = {\n _schemaId: \"lemma.interjectionLemmaInput\",\n cathegory: \"int\", // interjection\n text: \"\",\n localeCode: inLocaleCode\n};\n\n// Export default prefix input form data\nexport const prefixLemmaInputFormData = {\n _schemaId: \"lemma.prefixLemmaInput\",\n cathegory: \"pfx\", // prefix\n text: \"\",\n localeCode: inLocaleCode\n};\n\n// Export default suffix input form data\nexport const suffixLemmaInputFormData = {\n _schemaId: \"lemma.suffixLemmaInput\",\n cathegory: \"sfx\", // suffix\n text: \"\",\n localeCode: inLocaleCode\n};\n","// Define locale-related parameters\n\n// Import image modules\nimport gbFlag from \"images/flags/gb.png\";\nimport itFlag from \"images/flags/it.png\";\n\n\n// Export parameters\nexport const localesData = [{\n code: \"la-it\",\n languageCode: \"la\",\n countryCode: \"it\",\n inEnabled: true,\n uiEnabled: false,\n outEnabled: false\n}, {\n code: \"it-it\",\n languageCode: \"it\",\n countryCode: \"it\",\n countryFlag: itFlag,\n inEnabled: false,\n uiEnabled: true,\n outEnabled: true,\n}, {\n code: \"en-gb\",\n languageCode: \"en\",\n countryCode: \"gb\",\n countryFlag: gbFlag,\n inEnabled: false,\n uiEnabled: true,\n outEnabled: true\n}];\n","// Define notification-related parameters\n\n// Import library modules\nimport ms from \"ms\";\n\n// Define internal parameters\nconst vibrations = [ 200, 100, 200 ];\n\n\n// Export UI notifications parameters\nexport const ui = {\n status: \"success\", // status [primary|success|warning|danger]\n timeout: ms(\"5s\"), // duration [ms]\n position: \"top-center\", // position [string]\n group: null // group [string]\n};\n\n// Export system notifications parameters\nexport const system = {\n vibrate: vibrations, // vibration pattern (onMs, offMs, onMs...)\n renotify: false, // notify user when a notification replaces\n // another one\n requireInteraction: false, // require user's interaction\n icon: \"images/logos/latinera/latinera-icon.png\"\n};\n","// Define offer-related parameters\nexport const maxActivatedOffersDisplayCount = 3;\nexport const recentlyActivatedOffersFilterData = {\n statuses: [\"act\", \"fut\", \"dis\", \"exp\"],\n types: [\"flt\", \"crd\"],\n sortDirection: \"dsc\",\n limit: maxActivatedOffersDisplayCount\n};\n","// Define pay-related parameters\n\n// Import parameter mddules\nimport { payGatewayEndpoint } from \"parameters/environment\";\n\n\n// Export api parameters\nexport const baseEndpoint = payGatewayEndpoint;\nexport const fetchOptions = {\n method: \"get\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n mode: \"cors\",\n credentials: \"omit\", // do not send credentials' cookie (use bearer auth)\n cache: \"no-cache\",\n redirect: \"follow\"\n};\nexport const alivePath = \"alive\"; // relative to baseEndpoint\nexport const responseTimeAverageWindowLength = 8;\n\n","// Define promise-related parameters\n\n// Import library modules\nimport ms from \"ms\";\n\n// Export parameters\nexport const backoffTimeoutsMs = [ \"1s\", \"2s\", \"3s\", \"5s\" ]\n .map(ts => ms(ts));\nexport const timeoutMs = ms(\"3s\");\n","// Define regular-expression-related parameters\nexport const placeAdjectivesBeforeNounsRegExp = /^(en|de)/;\n","// Define router-related parameters\nexport { publicRoutesData } from \"./router/public\";\nexport { privateRoutesData } from \"./router/private\";\n","// Define private router-related parameters\n// notes: \n// - route: property is a parameterized description of the route\n// - name: friendly name to be used when generating/navigating to routes\n\n// Import libraey modules\nimport { PLATFORM } from \"aurelia-pal\";\n\n\n// Export private routes\nexport const privateRoutesData = {\n empty: {\n route: \"\",\n name: \"empty\",\n redirect: \"dashboard\"\n },\n dashboard: {\n route: \"dashboard\",\n name: \"dashboard\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/dashboard\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n activities: {\n route: \"activities\",\n name: \"activities\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/activities\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n activity: {\n route: \"activity/:activityKey/:activitiesIndex?/:taskAnalysisActivityKey?\",\n name: \"activity\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/activity\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n inviteUser: {\n route: \"invite-user\",\n name: \"inviteUser\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/invite-user\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n settings: {\n route: \"settings\",\n name: \"settings\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/settings\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n signUp: { // needed only because referenced by navigation-bar screen\n route: \"sign-up/:invitingUserKey?/:invitingUserDisplayName?\",\n name: \"signUp\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/public/sign-up\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n logIn: { // needed only because referenced by navigation-bar screen\n route: \"log-in/:emailAddress?\",\n name: \"logIn\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/public/log-in\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n videoGuide: {\n route: \"video-guide\",\n name: \"videoGuide\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/video-guide\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n privacyPolicy: {\n route: \"privacy-policy\",\n name: \"privacyPolicy\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/privacy-policy\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n termsOfService: {\n route: \"terms-of-service/:sectionName?\",\n name: \"termsOfService\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/terms-of-service\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n supportedBrowsers: {\n route: \"supported-browsers\",\n name: \"supportedBrowsers\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/supported-browsers\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n freeCredit: {\n route: \"free-credit\",\n name: \"freeCredit\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/free-credit\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n invitationDiscounts: {\n route: \"invitation-discounts\",\n name: \"invitationDiscounts\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/invitation-discounts\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n frequentlyAskedQuestions: {\n route: \"faq/:questionName?\",\n name: \"faq\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/frequently-asked-questions\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n offers: {\n route: \"offers\",\n name: \"offers\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/offers\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n offer: {\n route: \"offer/:offerKey\",\n name: \"offer\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/offer\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n checkout: {\n route: \"checkout/:offerKey/:paymentIntentClientSecret?\",\n name: \"checkout\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/checkout\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n paymentStatus: {\n route: \"payment-status/:offerKey\",\n name: \"paymentStatus\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/private/payment-status\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n notFound: {\n route: \"not-found\",\n name: \"notFound\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/not-found\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n }\n};\n","// Define public router-related parameters\n// notes: \n// - route: property is a parameterized description of the route\n// - name: friendly name to be used when generating/navigating to routes\n\n// Import libraey modules\nimport { PLATFORM } from \"aurelia-pal\";\n\n\n// Export public routes\nexport const publicRoutesData = {\n empty: {\n route: \"\",\n name: \"empty\",\n redirect: \"logIn\"\n },\n logIn: {\n route: \"log-in/:emailAddress?\",\n name: \"logIn\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/public/log-in\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n loggedOut: {\n route: \"logged-out\",\n name: \"loggedOut\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/public/logged-out\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n signUp: {\n route: \"sign-up/:invitingUserKey?/:invitingUserDisplayName?\",\n name: \"signUp\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/public/sign-up\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n resetPassword: {\n route: \"reset-password\",\n name: \"resetPassword\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/public/reset-password\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n videoGuide: {\n route: \"video-guide\",\n name: \"videoGuide\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/video-guide\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n privacyPolicy: {\n route: \"privacy-policy\",\n name: \"privacyPolicy\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/privacy-policy\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n termsOfService: {\n route: \"terms-of-service/:sectionName?\",\n name: \"termsOfService\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/terms-of-service\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n supportedBrowsers: {\n route: \"supported-browsers\",\n name: \"supportedBrowsers\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/supported-browsers\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n freeCredit: {\n route: \"free-credit\",\n name: \"freeCredit\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/free-credit\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n invitationDiscounts: {\n route: \"invitation-discounts\",\n name: \"invitationDiscounts\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/invitation-discounts\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n frequentlyAskedQuestions: {\n route: \"faq/:questionName?\",\n name: \"faq\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/frequently-asked-questions\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n confirmAction: {\n route: \"confirm-action\",\n name: \"confirmAction\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/public/confirm-action\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n offers: {\n route: \"offers\",\n name: \"offers\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/offers\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n },\n notFound: {\n route: \"not-found\",\n name: \"notFound\",\n viewPorts: {\n header: { moduleId: PLATFORM.moduleName(\"screens/etc/navigation-bar\") },\n body: { moduleId: PLATFORM.moduleName(\"screens/etc/not-found\") },\n footer: { moduleId: PLATFORM.moduleName(\"screens/etc/footer-area\") }\n }\n }\n};\n","// Define sentence-relatated parameters\nexport const startsWithUpperCaseRegExp = /^([A-ZĂĀĔĒĬĪŎŌŬŪ])/;\nexport const startsWithLowerCaseRegExp = /^([a-zăāĕēĭīŏōŭū])/;\nexport const capitalizedWordsRegExp = /\\b([A-ZĂĀĔĒĬĪŎŌŬŪ])/g;\nexport const uncapitalizedWordsRegExp = /\\b([a-zăāĕēĭīŏōŭū])/g;\nexport const normalizeMarksRegExp = /\\s+([.,;:!?'])/g;\nexport const endsWithMarkRegExp = /[.,;:!?']$/;\n","// Define session-related parameters\n\n// Import library modules\nimport ms from \"ms\";\n\n// Import parameter modules\nimport { runMode } from \"parameters/environment\";\n\n// Define internal parameters\nconst sessionDurationMin = 20;\n\n\n// Export parameters\nexport const sessionDurationMs = ms(`${sessionDurationMin} min`);\nconst expiryNotificationDeadlinesStrings = [\n ...([\"dev\"].includes(runMode) ? [`${sessionDurationMin-1} min`] : []),\n ...[ \"5 min\", \"3 min\", \"2 min\", \"1 min\", \"30 sec\" ]\n];\nexport const expiryNotificationDeadlinesMs = expiryNotificationDeadlinesStrings\n .map(timeString => ms(timeString));\nexport const expiryAlertingThresholdMs = [\"dev\"].includes(runMode) ?\n ms(`${sessionDurationMin-1} min`) : ms(`5 min`);\nexport const autoExtensionThresholdMs = [\"dev\"].includes(runMode) ?\n ms(`${sessionDurationMin-1} min`) : ms(`${sessionDurationMin/2} min`);\nexport const expiryPollingIntervalMs = ms(\"5 sec\");\nexport const expiryMarginMs = ms(\"5 sec\");\n","// Define store-related parameters\n\n// Import parameter modules\nimport {\n inLocaleCode as defaultInLocaleCode,\n uiLocaleCode as defaultUILocaleCode,\n outLocaleCode as defaultOutLocaleCode\n} from \"parameters/environment\";\n\n\n// Export sessionStorage key\nexport const sessionStorageKey = \"session\";\n\n// Export initialSessionStorage data (to be saved to session storage)\nexport const initialSessionStorageData = {\n token: {\n string: \"\",\n data: null\n },\n};\n\n// Export localStorage key\nexport const localStorageKey = \"local\";\n\n// Export initialLocalStorage data (to be saved to local storage)\nexport const initialLocalStorageData = {\n config: {\n acceptPrivacyPolicy: false\n },\n user: {\n settings: {\n inLocaleCode: defaultInLocaleCode,\n uiLocaleCode: defaultUILocaleCode,\n outLocaleCode: defaultOutLocaleCode\n }\n }\n};\n","// Define stripe-related parameters\n\n// Import parameter modules\nimport { runMode } from \"parameters/environment\";\n\n\n// Export parameters\nexport const basePath = \"stripe\";\nexport const paymentIntentsPath = \"payment-intents\";\nexport const publishableKey = [ \"dev\", \"test\" ].includes(runMode) ?\n \"pk_test_51OP0z3BaocXtEW05r9IvbdUKK8NNtldlDsHlAqSXkYCvPJWlTtf9XG8ciA7FvY8SDzOLftu5Z6wuFBwXc82gqi41007NQArlxQ\" :\n \"pk_live_51OP0z3BaocXtEW05wzBaHWrK4kwtEYKlwRlWgjAmMT47sGplkNNFOwNOFU0xxR9z1MBPHk1gi8cKFJfZolNPApoZ00r9W1bB6i\";\nexport const maxIntentDescriptionLength = 128;\nexport const maxIntentStatementDescriptorLength = 22;\n\nexport const paymentElementAppearance = {\n theme: \"stripe\",\n variables: {\n colorPrimary: \"#1e87f0\",\n colorBackground: \"#ffffff\",\n colorText: \"#000000\",\n colorDanger: \"#f0506e\",\n // fontFamily: \"Ideal Sans, system-ui, sans-serif\",\n spacingUnit: \"2px\",\n borderRadius: \"4px\",\n }\n}\n\nexport const paymentElementOptions = {\n layout: {\n type: \"tabs\"\n }\n};\n","// Define time-related parameters\n\n// Import library modules\nimport ms from \"ms\";\n\n\n// Export parameters\nexport const autohideAvailabilityStatusAlertAfterMs = ms(\"5 sec\");\nexport const mockUpdateAvailabilityStatusDurationMs = ms(\"1 sec\");\n\nexport const autohidePasswordAfterMs = ms(\"2 sec\");\n\nexport const autohideInputFieldHintAfterMs = ms(\"10 sec\");\nexport const processInputFieldChangeEventAfterMs = ms(\"100 ms\");\nexport const processInputFieldBlurEventAfterMs = ms(\"250 ms\");\n\nexport const autoRedirectionTimeoutMs = ms(\"8 sec\");\nexport const autoRedirectionIntervalMs = ms(\"1 sec\");\n\nexport const mockLoadingDataDurationMs = ms(\"1 sec\");\nexport const mockSavingDataDurationMs = ms(\"1 sec\");\nexport const mockOperationDurationMs = ms(\"1 sec\");\n","// Define user-related parameters\n\n// Import parameter modules\nimport {\n inLocaleCode,\n uiLocaleCode,\n outLocaleCode,\n countryCode,\n} from \"parameters/environment\";\n\n// Export user-related parameters\nexport const userTypes = [ \"std\", \"tch\", \"ent\", \"oth\" ];\nexport const genderNames = [\"m\", \"f\", \"o\"];\nexport const minAgeYears = 10;\nexport const maxAgeYears = 80;\n\n// Export default sign-up form data\nconst emptySignUpProfileData = {\n salutation: \"\",\n academicTitle: \"\",\n firstName: \"\",\n middleName: \"\",\n lastName: \"\",\n suffixName: \"\",\n displayName: \"\",\n emailAddress: \"\",\n countryCode,\n userType: null,\n birthYear: null,\n gender: null,\n};\nconst signUpSettingsData = {\n inLocaleCode,\n uiLocaleCode,\n outLocaleCode,\n acceptServiceNotifications: true\n};\nexport const emptySignUpFormData = {\n _schemaId: \"user.requestCreate\",\n profile: emptySignUpProfileData,\n settings: signUpSettingsData,\n password: \"\",\n password2: \"\"\n};\nexport const rawSignUpFormData = {\n _schemaId: \"user.requestCreate\",\n ...emptySignUpFormData\n};\n\n// Export default log-in form data\nexport const emptyLogInFormData = {\n emailAddress: \"\",\n password: \"\"\n};\nexport const rawLogInFormData = {\n _schemaId: \"user.openSession\",\n ...emptyLogInFormData\n};\n\n// Export default change password form data\nexport const rawChangePasswordFormData = {\n _schemaId: \"user.changePassword\",\n oldPassword: \"\",\n newPassword: \"\",\n newPassword2: \"\"\n};\n\n// Export default reset password form data\nexport const emptyResetPasswordFormData = {\n emailAddress: \"\"\n};\nexport const rawResetPasswordFormData = {\n _schemaId: \"user.requestResetPassword\",\n ...emptyResetPasswordFormData\n};\n\n// Export menu items data\nexport const menuItemsData = [{\n name: \"dashboard\",\n i18nKey: \"main:dashboard\",\n iconClasses: \"fas fa-home\",\n hideOnRouteNames: [\"dashboard\"]\n }, {\n name: \"activities\",\n i18nKey: \"main:activities\",\n iconClasses: \"far fa-copy\",\n hideOnRouteNames: [\"activities\"]\n }, {\n name: \"offers\",\n i18nKey: \"main:offers\",\n iconClasses: \"far fa-paper-plane\",\n hideOnRouteNames: [\"offers\"]\n }, {\n name: \"videoGuide\",\n i18nKey: \"main:videoGuide\",\n iconClasses: \"far fa-play-circle\",\n hideOnRouteNames: [\"videoGuide\"]\n }, {\n name: \"settings\",\n i18nKey: \"main:settings\",\n iconClasses: \"fas fa-cog\",\n hideOnRouteNames: [\"settings\"]\n }, {\n name: \"inviteUser\",\n i18nKey: \"main:inviteUser\",\n iconClasses: \"fas fa-qrcode\",\n hideOnRouteNames: [\"inviteUser\"]\n }, {\n name: \"logOut\",\n i18nKey: \"main:logOut\",\n iconClasses: \"fas fa-sign-out-alt\",\n hideOnRouteNames: []\n }];\n","// Define vimeo-related parameteres\nexport const videosUrl = \"https://player.vimeo.com/video\";\nconst queryParams = {\n title: 0, // show title of the video\n byline: 0, // show description of the video\n portrait: 0, \n badge: 0, // show account's badge\n autopause: 1, // auto-pause a video when another one starts\n player_id: 0,\n app_id: 58479\n};\nexport const queryParamsString = Object.entries(queryParams)\n .map(([paramKey, paramValue]) => `${paramKey}=${paramValue}`)\n .join(\"&\");\n"],"names":[],"sourceRoot":""}