{"version":3,"file":"app-d5e4a936.981ca8458d389c9a476a.bundle.js","mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;;AAGA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AACA;AACA;AAEA;AAEA;AAKA;;AAGA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;;AAGA;AACA;AACA;AACA;AAEA;AADA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AADA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AADA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAxLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;AClDA;;AAEA;AACA;;AAEA;AACA;;AAGA;AACA;AAGA;AAAA;AACA;AAAA;AACA;AAAA;AALA;AAEA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACfA;;AAEA;AACA;AACA;;AAEA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","sources":["webpack://latinera/./sources/components/private/in-sentence-item.js","webpack://latinera/./sources/components/private/in-sentence.js","webpack://latinera/./sources/components/private/inflection-age.js","webpack://latinera/./sources/components/private/inflection-case.js","webpack://latinera/./sources/components/private/inflection-cathegory.js","webpack://latinera/./sources/components/private/inflection-degree.js","webpack://latinera/./sources/components/private/inflection-form.js","webpack://latinera/./sources/components/private/inflection-gender.js","webpack://latinera/./sources/components/private/inflection-item.js","webpack://latinera/./sources/components/private/inflection-mood.js","webpack://latinera/./sources/components/private/inflection-number.js","webpack://latinera/./sources/components/private/inflection-person.js","webpack://latinera/./sources/components/private/inflection-tense.js","webpack://latinera/./sources/components/private/inflector-item.js","webpack://latinera/./sources/components/private/interjection-lemma-form.js","webpack://latinera/./sources/components/private/interjection-lemma-item.js","webpack://latinera/./sources/components/private/lemma-definitions.js","webpack://latinera/./sources/components/private/lemma-hold-cases.js","webpack://latinera/./sources/components/private/lemma-hold-moods.js","webpack://latinera/./sources/components/private/lemma-inflections.js","webpack://latinera/./sources/components/private/lemma-item.js","webpack://latinera/./sources/components/private/lemma-paradigm.js","webpack://latinera/./sources/components/private/lemma.js","webpack://latinera/./sources/components/private/in-sentence-item.html","webpack://latinera/./sources/components/private/in-sentence.html","webpack://latinera/./sources/components/private/inflection-age.html","webpack://latinera/./sources/components/private/inflection-case.html","webpack://latinera/./sources/components/private/inflection-cathegory.html","webpack://latinera/./sources/components/private/inflection-degree.html","webpack://latinera/./sources/components/private/inflection-form.html","webpack://latinera/./sources/components/private/inflection-gender.html","webpack://latinera/./sources/components/private/inflection-item.html","webpack://latinera/./sources/components/private/inflection-mood.html","webpack://latinera/./sources/components/private/inflection-number.html","webpack://latinera/./sources/components/private/inflection-person.html","webpack://latinera/./sources/components/private/inflection-tense.html","webpack://latinera/./sources/components/private/inflector-item.html","webpack://latinera/./sources/components/private/interjection-lemma-form.html","webpack://latinera/./sources/components/private/interjection-lemma-item.html","webpack://latinera/./sources/components/private/lemma-definitions.html","webpack://latinera/./sources/components/private/lemma-hold-cases.html","webpack://latinera/./sources/components/private/lemma-hold-moods.html","webpack://latinera/./sources/components/private/lemma-inflections.html","webpack://latinera/./sources/components/private/lemma-item.html","webpack://latinera/./sources/components/private/lemma-paradigm.html","webpack://latinera/./sources/components/private/lemma.html"],"sourcesContent":["// Define the view-model for the \"in-sentence-item\" component\n\n// Import library modules\nimport {\n inject,\n bindable,\n bindingMode,\n computedFrom\n} from \"aurelia-framework\";\n\n// Import utility modules\nimport { setEventHandlers, unsetEventHandlers } from \"utilities/event\";\n\n// Import parameter modules\nimport { tBindingBehavior as i18nParams } from \"parameters/i18n\";\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 the \"InSentence\" class\n@inject(EventService)\nexport class InSentenceItem {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inSentenceData = null;\n @bindable({ defaultBindingMode: bindingMode.toView })\n textClasses = \"uk-text uk-text-bold uk-text-break\";\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n // Local attributes\n i18nParams = i18nParams;\n isLoadingData = false;\n\n constructor(eventService) {\n this.eventService = eventService;\n }\n\n // Lifecycle methods\n async bind() {\n this.eventsSubscriptions = setEventHandlers.call(this, {\n entityName: \"inSentenceItem\",\n entityKey: this.inSentenceKey,\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(\"inSentenceData.key\")\n get inSentenceKey() {\n const { key: inSentenceKey = \"\" } = this.inSentenceData || {};\n return inSentenceKey;\n }\n\n @computedFrom(\"inSentenceData.text\")\n get inSentenceText() {\n const { text: inSentenceText = \"\" } = this.inSentenceData || {};\n return inSentenceText;\n }\n\n}\n","// Define the view-model for the \"in-sentence\" component\n\n// Import library modules\nimport {\n inject,\n bindable,\n bindingMode,\n computedFrom\n} from \"aurelia-framework\";\n\n// Import utility modules\nimport { setEventHandlers, unsetEventHandlers } from \"utilities/event\";\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 the \"InSentence\" class\n@inject(EventService)\nexport class InSentence {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inSentenceData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) inSentenceMetaData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) activityKey = \"\";\n @bindable({ defaultBindingMode: bindingMode.toView }) analysisKey = \"\";\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n @bindable({ defaultBindingMode: bindingMode.toView }) isEnabled = true;\n @bindable({ defaultBindingMode: bindingMode.toView })\n textClasses = \"uk-text uk-text-bold uk-text-break\";\n @bindable({ defaultBindingMode: bindingMode.toView })\n textStyles = \"line-height: 1.15\";\n\n constructor(eventService) {\n this.eventService = eventService;\n }\n\n\n // Lifecycle methods\n async bind() {\n this.eventsSubscriptions = setEventHandlers.call(this, {\n entityName: \"inSentence\",\n entityKey: this.inSentenceKey,\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(\"inSentenceData.key\")\n get inSentenceKey() {\n const { key: inSentenceKey = \"\" } = this.inSentenceData || {};\n return inSentenceKey;\n }\n\n @computedFrom(\"inSentenceData.text\")\n get inSentenceText() {\n const { text: inSentenceText = \"\" } = this.inSentenceData || {};\n return inSentenceText;\n }\n\n}\n","// Define the view-model for the \"inflection-age\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionAge class\nexport class InflectionAge {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionAge = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-case\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionCase class\nexport class InflectionCase {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionCase = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-cathegory\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionCathegory class\nexport class InflectionCathegory {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionCathegory;\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-degree\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionDegree class\nexport class InflectionDegree {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionDegree = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-form\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionForm class\nexport class InflectionForm {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionForm = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-gender\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionGender class\nexport class InflectionGender {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionGender = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-item\" component\n\n// Import library modules\nimport { computedFrom, bindable, bindingMode } from \"aurelia-framework\";\n\n// Import parameter modules\nimport { runMode as defaultRunMode } from \"parameters/environment\";\n\n\n// Export InflectionItem class\nexport class InflectionItem {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n\n // Getter and setter methods\n @computedFrom(\"inflectionData.type\")\n get inflectionType() {\n const { type: inflectionType = \"\" } = this.inflectionData || {};\n return inflectionType;\n }\n @computedFrom(\"inflectionData.cathegory\")\n get inflectionCathegory() {\n const { cathegory: inflectionCathegory = \"\" } = this.inflectionData || {};\n return inflectionCathegory;\n }\n\n}\n","// Define the view-model for the \"inflection-mood\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionMood class\nexport class InflectionMood {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionMood = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-number\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionNumber class\nexport class InflectionNumber {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionNumber = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-person\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionPerson class\nexport class InflectionPerson {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionPerson = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflection-tense\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export InflectionTense class\nexport class InflectionTense {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectionTense = \"?\";\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"inflector-item\" component\n\n// Import library modules\nimport { \n bindable, \n bindingMode, \n computedFrom,\n inject\n} from \"aurelia-framework\";\n\n// Import parameter modules\nimport { runMode as defaultRunMode } from \"parameters/environment\";\n\n\n// Export InflectorItem class\n@inject()\nexport class InflectorItem {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inflectorData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) \n inflectorDataModified = false;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n\n // Getter and setter methods\n @computedFrom(\"inflectorData.key\")\n get inflectorKey() {\n const { key: inflectorKey = \"\" } = this.inflectorData || {};\n return inflectorKey;\n }\n\n @computedFrom(\"inflectorData.type\")\n get inflectorType() {\n const { type: inflectorType = \"\" } = this.inflectorData || {};\n return inflectorType;\n }\n\n @computedFrom(\"inflectorData.cathegory\")\n get inflectorCathegory() {\n const { cathegory: inflectorCathegory = \"\" } = this.inflectorData || {};\n return inflectorCathegory;\n }\n\n @computedFrom(\"inflectorKey\")\n get inflectorDataSelected() {\n return this.inflectorKey !== \"\";\n }\n\n}\n","// Define the view-model for the \"interjection-lemma-form\" component\n\n// Import library modules\nimport { inject, computedFrom, bindable, bindingMode } from \"aurelia-framework\";\nimport { Validator } from \"aurelia-validation\";\nimport { I18N } from \"aurelia-i18n\";\n\n// Import utility modules\nimport { setEventHandlers, unsetEventHandlers } from \"utilities/event\";\nimport { cyrb53 as computeHash } from \"utilities/hash\";\nimport { hasTonicAccents } from \"utilities/latin\";\nimport { normalizeWords } from \"utilities/sentence\";\nimport { optimizeSpaces } from \"utilities/string\";\nimport { pause } from \"utilities/promise\";\nimport { clone } from \"utilities/etc\";\nimport {\n unsetProperties,\n toString\n} from \"utilities/object\";\n\n// Import parameter modules\nimport { tBindingBehavior as i18nParams } from \"parameters/i18n\";\nimport { runMode as defaultRunMode } from \"parameters/environment\";\nimport { \n processInputFieldChangeEventAfterMs,\n processInputFieldBlurEventAfterMs\n} from \"parameters/time\";\nimport {\n interjectionLemmaInputFormData as defaultInterjectionLemmaInputFormData\n} from \"parameters/lemma\";\n\n// Import service modules\nimport EventService from \"services/event\";\n\n// Define internal parameters\nconst eventsData = [\n { name: \"interjectionTextChanged\" },\n { name: \"interjectionHoldsDativeCaseChanged\" },\n { name: \"interjectionHoldsAccusativeCaseChanged\" },\n { name: \"interjectionHoldsAblativeCaseChanged\" },\n { name: \"lemmaInflectionsChanged\" },\n];\n\n\n// Export InterjectionLemmaForm class\n@inject(I18N, Validator, EventService)\nexport class InterjectionLemmaForm {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.twoWay }) inElementData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n // Local attributes\n rawFormData = clone(defaultInterjectionLemmaInputFormData);\n lemmaData = null;\n lemmaDataDigest = \"\";\n oldLemmaDataDigest = \"\";\n lemmaDataValid = false;\n lemmaDataReady = false;\n holdsDativeCase = false;\n holdsAccusativeCase = false;\n holdsAblativeCase = false;\n showTextInputFieldHint = false;\n showLemmaDefinitions = false;\n validationErrorsData = [];\n i18nParams = i18nParams;\n\n constructor(i18n, validator, eventService) {\n this.i18n = i18n;\n this.validator = validator;\n this.eventService = eventService;\n }\n\n\n // Lifecycle methods\n bind() {\n this.eventsSubscriptions = setEventHandlers.call(this, {\n entityName: \"interjectionLemmaForm\",\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(\"rawFormData.text\")\n get lemmaText() {\n const { text: lemmaText = \"\" } = this.rawFormData || {};\n return lemmaText;\n }\n set lemmaText(newLemmaText = \"\") {\n this.rawFormData.text = newLemmaText;\n }\n\n @computedFrom(\"holdsDativeCase\", \"holdsAccusativeCase\", \"holdsAblativeCase\")\n get lemmaHoldCases() {\n return [\n ...(this.holdsDativeCase ? [ \"dat\" ] : []),\n ...(this.holdsAccusativeCase ? [ \"acc\" ] : []),\n ...(this.holdsAblativeCase ? [ \"abl\" ] : []) \n ];\n }\n\n\n // Core methods\n initializeLemmaDataChanged() {\n this.lemmaDataDigest = this.computeLemmaDataDigest();\n this.oldLemmaDataDigest = this.lemmaDataDigest;\n this.lemmaDataChanged = false;\n }\n\n updateLemmaDataChanged() {\n this.lemmaDataDigest = this.computeLemmaDataDigest();\n this.lemmaDataChanged = this.lemmaDataDigest !== this.oldLemmaDataDigest;\n }\n conditionallyPublishLemmaDataChangedEvent() {\n this.updateLemmaDataChanged();\n if (this.lemmaDataChanged) {\n this.oldLemmaDataDigest = this.lemmaDataDigest;\n this.publishLemmaDataChangedEvent();\n }\n }\n\n updateLemmaData() {\n this.lemmaData = unsetProperties(this.rawFormData, [\"_schemaId\"]);\n }\n\n updateLemmaDataReady() {\n const lemmaTextReady = this.lemmaText !== \"\";\n this.lemmaDataReady = lemmaTextReady;\n }\n\n computeLemmaDataDigest() {\n this.updateLemmaData();\n return computeHash(`lemma-${toString(this.lemmaData)}`);\n }\n\n async validateLemmaData() {\n this.validationErrorsData =\n await this.validator.validateObject(this.rawFormData);\n this.lemmaDataValid = this.validationErrorsData.length === 0;\n this.updateLemmaDataReady();\n }\n\n\n // Event handlers\n // note1: automatically converting paradigm items of interjactions to \n // lower-case because they cannot be capitalized\n async handleInterjectionTextChangedEvent({\n newValue: lemmaText = \"\"\n }) {\n this.lemmaText = lemmaText;\n this.showTextInputFieldHint = this.lemmaText.length > 0 && \n !hasTonicAccents(this.lemmaText);\n await pause(processInputFieldChangeEventAfterMs);\n await this.validateLemmaData();\n this.conditionallyPublishLemmaDataChangedEvent();\n }\n async handleInterjectionTextBlurEvent() {\n this.showTextInputFieldHint = false;\n this.lemmaText = normalizeWords(optimizeSpaces(\n (this.lemmaText || \"\").toLowerCase()\n ));\n this.showTextInputFieldHint = this.lemmaText.length > 0 && \n !hasTonicAccents(this.lemmaText);\n await pause(processInputFieldBlurEventAfterMs);\n await this.validateLemmaData();\n this.conditionallyPublishLemmaDataChangedEvent();\n }\n\n async handleInterjectionHoldsDativeCaseChangedEvent({\n newValue: holdsDativeCase = false\n }) {\n this.holdsDativeCase = holdsDativeCase;\n if (this.lemmaHoldCases.length > 0) {\n this.rawFormData.holdCases = this.lemmaHoldCases;\n } else {\n this.rawFormData = unsetProperties(this.rawFormData, [\"holdCases\"]);\n }\n await this.validateLemmaData();\n this.conditionallyPublishLemmaDataChangedEvent();\n }\n\n async handleInterjectionHoldsAccusativeCaseChangedEvent({\n newValue: holdsAccusativeCase = false\n }) {\n this.holdsAccusativeCase = holdsAccusativeCase;\n if (this.lemmaHoldCases.length > 0) {\n this.rawFormData.holdCases = this.lemmaHoldCases;\n } else {\n this.rawFormData = unsetProperties(this.rawFormData, [\"holdCases\"]);\n }\n await this.validateLemmaData();\n this.conditionallyPublishLemmaDataChangedEvent();\n }\n\n async handleInterjectionHoldsAblativeCaseChangedEvent({\n newValue: holdsAblativeCase = false\n }) {\n this.holdsAblativeCase = holdsAblativeCase;\n if (this.lemmaHoldCases.length > 0) {\n this.rawFormData.holdCases = this.lemmaHoldCases;\n } else {\n this.rawFormData = unsetProperties(this.rawFormData, [\"holdCases\"]);\n }\n await this.validateLemmaData();\n this.conditionallyPublishLemmaDataChangedEvent();\n }\n\n async handleLemmaInflectionsChangedEvent({\n selectedInflectionsKeys = []\n }) {\n this.showLemmaDefinitions = selectedInflectionsKeys.length > 0;\n }\n\n // Event publishers\n publishLemmaDataChangedEvent() {\n this.eventService.publish({\n eventName: \"lemmaDataChanged\",\n eventData: {\n lemmaData: this.lemmaData,\n lemmaDataValid: this.lemmaDataValid,\n lemmaDataReady: this.lemmaDataReady\n }\n });\n }\n\n}\n","// Define the view-model for the \"interjection-lemma-item\" component\n\n// Import library modules\nimport { bindable, bindingMode, computedFrom } from \"aurelia-framework\";\n\n// Import parameter modules\nimport { runMode as defaultRunMode } from \"parameters/environment\";\n\n\n// Export the \"InterjectionLemmaItem\" class\nexport class InterjectionLemmaItem {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) lemmaData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n\n // Getter and setter methods\n @computedFrom(\"lemmaData.key\")\n get lemmaKey() {\n const { key: lemmaKey = \"\" } = this.lemmaData || {};\n return lemmaKey;\n }\n @computedFrom(\"lemmaData.cathegory\")\n get lemmaCathegory() {\n const { cathegory: lemmaCathegory = \"\" } = this.lemmaData || {};\n return lemmaCathegory;\n }\n @computedFrom(\"lemmaData.holdCases\")\n get holdCases() {\n const { holdCases = [] } = this.lemmaData || {};\n return holdCases;\n }\n\n}\n","// Define the view-model for the \"lemma-definitions\" component\n\n// Import library modules\nimport { inject, bindable, bindingMode } from \"aurelia-framework\";\nimport { DialogService } from \"aurelia-dialog\";\n\n// Import parameter modules\nimport { tBindingBehavior as i18nParams } from \"parameters/i18n\";\nimport { runMode as defaultRunMode } from \"parameters/environment\";\n\n\n// Import dialog modules\nimport { CreateDefinition } from \"dialogs/create-definition\";\n\n// Import service modules\nimport EventService from \"services/event\";\n\n\n// Export LemmaDefinitions class\n@inject(DialogService, EventService)\nexport class LemmaDefinitions {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.twoWay }) lemmaData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n // Local attributes\n definitionsData = [];\n i18nParams = i18nParams;\n\n constructor(dialogService, eventService) {\n this.dialogService = dialogService;\n this.eventService = eventService;\n }\n\n async openAddDefinitionDialog() {\n const createDefinitionDialogOpenResult = await this.dialogService.open({\n viewModel: CreateDefinition,\n model: { lemmaData: this.lemmaData },\n //keyboard: [\"Escape\"] // keys that close the dialog\n });\n const createDefinitionDialogCloseResult =\n await createDefinitionDialogOpenResult.closeResult;\n if (createDefinitionDialogCloseResult.wasCancelled) {\n console.debug(`User canceled the creation of a definition`);\n return;\n }\n const { output: createdDefinitionData } = createDefinitionDialogCloseResult;\n const { key: createdDefinitionKey = \"\" } = createdDefinitionData || {};\n const existingDefinition = this.definitionsData\n .some(({ key: definitionKey }) => definitionKey === createdDefinitionKey);\n if (!existingDefinition) {\n this.definitionsData = [ ...this.definitionsData, createdDefinitionData ];\n }\n this.publishLemmaDefinitionsChangedEvent();\n }\n\n deleteDefinition(definitionIndex) {\n this.definitionsData.splice(definitionIndex, 1);\n this.publishLemmaDefinitionsChangedEvent();\n }\n\n // Event publishers\n publishLemmaDefinitionsChangedEvent() {\n this.eventService.publish({\n eventName: \"lemmaDefinitionsChanged\",\n eventData: {\n definitionsData: this.definitionsData\n }\n });\n }\n\n}\n","// Define the view-model for the \"lemma-hold-cases\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export LemmaHoldCases class\nexport class LemmaHoldCases {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) holdCases = [];\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"lemma-hold-moods\" component\n\n// Import library modules\nimport { bindable, bindingMode } from \"aurelia-framework\";\n\n\n// Export LemmaHoldMoods class\nexport class LemmaHoldMoods {\n\n // Attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) holdMoods = [];\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n\n}\n","// Define the view-model for the \"lemma-inflections\" component\n\n// Import library modules\nimport { inject, bindable, bindingMode, computedFrom } from \"aurelia-framework\";\nimport { I18N } from \"aurelia-i18n\";\n\n// Import utility modules\nimport { setEventHandlers, unsetEventHandlers } from \"utilities/event\";\nimport { computeSelectedInflectionsFlags } from \"utilities/inflection\";\nimport { pickProperties } from \"utilities/object\";\n\n// Import parameter modules\nimport { tBindingBehavior as i18nParams } from \"parameters/i18n\";\nimport { runMode as defaultRunMode } from \"parameters/environment\";\n\n// Import service modules\nimport InflectionService from \"services/inflection\";\nimport EventService from \"services/event\";\n\n// Define internal parameters\nconst eventsData = [{ name: \"lemmaDataChanged\" }];\nconst paradigmedInflectionCathegories = \n [\"adj\", \"nou\", \"prn\", \"vrb\", \"prn\", \"grv\"];\n\n\n// Export LemmaInflections class\n@inject(I18N, EventService, InflectionService)\nexport class LemmaInflections {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) inElementData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n // Local attributes\n lemmaData = null;\n inflectionsData = [];\n selectedInflectionsFlags = [];\n selectedInflectionsKeys = [];\n someInflectionSelected = false;\n eventsSubscriptions = [];\n isLoadingData = false;\n i18nParams = i18nParams;\n\n constructor(\n i18n,\n eventService,\n inflectionService\n ) {\n this.i18n = i18n;\n this.eventService = eventService;\n this.inflectionService = inflectionService;\n }\n\n\n // Lifecycle methods\n bind() {\n this.eventsSubscriptions = setEventHandlers.call(this, {\n entityName: \"lemmaInflections\",\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(\"lemmaData.cathegory\")\n get lemmaCathegory() {\n const { cathegory: lemmaCathegory = \"\" } = this.lemmaData || {};\n return lemmaCathegory;\n }\n @computedFrom(\"lemmaData.text\")\n get lemmaText() {\n const { text: lemmaText = \"\" } = this.lemmaData || {};\n return lemmaText;\n }\n\n\n // Core methods\n async getInflectionsByFilter() {\n this.isLoadingData = true;\n const filterData = {\n ...(this.lemmaData ? { lemma: this.lemmaData } : {}),\n ...(this.inElementData ? \n { element: pickProperties(this.inElementData, [\"text\"]) } : {})\n };\n let inflectionsData;\n try {\n inflectionsData =\n await this.inflectionService.getInflectionsByFilter(filterData);\n } catch(error) {\n console.debug(`filterData`, filterData);\n console.warn(`Error getting inflections by filter ` +\n `for lemma \"${this.lemmaText}\"`, error);\n inflectionsData = [];\n }\n this.isLoadingData = false;\n return inflectionsData;\n }\n\n updateSelectedInflectionsKeys() {\n this.selectedInflectionsKeys = this.inflectionsData\n .filter((_, inflectionIndex) => {\n return this.selectedInflectionsFlags[inflectionIndex];\n })\n .map(({ key: inflectionKey = \"\" }) => inflectionKey);\n }\n\n updateSomeInflectionsSelected() {\n this.someInflectionSelected = this.selectedInflectionsFlags\n .some(flag => flag);\n }\n\n\n // Event handlers\n async handleLemmaDataChangedEvent({\n lemmaData = null,\n lemmaDataValid = false,\n lemmaDataReady = false\n }) {\n this.lemmaData = lemmaData;\n if (lemmaData && lemmaDataReady && lemmaDataValid) {\n const { paradigm: lemmaParadigmItems = [] } = lemmaData || {};\n const nonNullLemmaParadigmItemsCount = lemmaParadigmItems\n .filter(lemmaParadigmItem => Boolean(lemmaParadigmItem))\n .length;\n const inflectionsData = await this.getInflectionsByFilter();\n this.inflectionsData = inflectionsData\n .filter(({ \n cathegory: inflectionCathegory = \"\",\n type: inflectionType = \"\"\n }) => {\n return inflectionType !== \"mir\" ||\n !(paradigmedInflectionCathegories.includes(inflectionCathegory)) || \n nonNullLemmaParadigmItemsCount === 1;\n })\n .sort(({ type: inflectionType1 }, { type: inflectionType2 }) => {\n return inflectionType1 === \"mir\" ? 1 :\n inflectionType2 === \"mir\" ? -1 : 0;\n });\n this.selectedInflectionsFlags = computeSelectedInflectionsFlags({\n lemmaData: this.lemmaData,\n inflectionsData: this.inflectionsData\n });\n this.updateSomeInflectionsSelected();\n this.updateSelectedInflectionsKeys();\n this.publishLemmaInflectionsChangedEvent();\n }\n }\n\n handleSelectedInflectionFlagChanged() {\n this.updateSomeInflectionsSelected();\n this.updateSelectedInflectionsKeys();\n this.publishLemmaInflectionsChangedEvent();\n }\n\n\n // Event publishers\n publishLemmaInflectionsChangedEvent(eventData) {\n this.eventService.publish({\n eventName: \"lemmaInflectionsChanged\",\n eventData: {\n inflectionsData: this.inflectionsData,\n selectedInflectionsKeys: this.selectedInflectionsKeys,\n ...(eventData || {})\n }\n });\n }\n\n}\n","// Define the view-model for the \"lemma-item\" component\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 { computeLemmaType } from \"utilities/lemma\";\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 LemmaItem class\n@inject(EventService)\nexport class LemmaItem {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) lemmaData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) lemmaDataModified = false;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n\n constructor(eventService) {\n this.eventService = eventService;\n }\n\n\n bind() {\n this.eventsSubscriptions = setEventHandlers.call(this, {\n entityName: \"lemmeItem\",\n entityKey: this.lemmaKey,\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(\"lemmaData.key\")\n get lemmaKey() {\n const { key: lemmaKey = \"\" } = this.lemmaData || {};\n return lemmaKey;\n }\n @computedFrom(\"lemmaData.cathegory\")\n get lemmaCathegory() {\n const { cathegory: lemmaCathegory } = this.lemmaData || {};\n return lemmaCathegory;\n }\n @computedFrom(\"lemmaData.cathegory\")\n get lemmaType() {\n return computeLemmaType(this.lemmaData || {});\n }\n @computedFrom(\"lemmaType\")\n get isPureMirrorLemma() {\n return this.lemmaType === \"mir\" &&\n ![ \"prp\", \"cnj\", \"int\" ].includes(this.lemmaCathegory);\n }\n\n}\n","// Define the view-model for the \"inflection-cathegory\" component\n\n// Import library modules\nimport { inject, bindable, bindingMode, computedFrom } from \"aurelia-framework\";\nimport UIkit from \"uikit\";\n\n\n// Export the \"LemmaParadigm\" class\n@inject()\nexport class LemmaParadigm {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) lemmaData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) classes = \"\";\n @bindable({ defaultBindingMode: bindingMode.toView }) suffixText = \"\";\n\n\n // Lifecycle methods\n attached() {\n UIkit.tooltip(this.lemmaParadigmElement, {\n title: this.paradigmItemsString\n });\n }\n\n\n // Getter and setter methods\n @computedFrom(\"lemmaData.text\")\n get lemmaText() {\n const { text: lemmaText = \"\" } = this.lemmaData || {};\n return lemmaText.trim();\n }\n\n @computedFrom(\"lemmaData.paradigm\")\n get paradigmItems() {\n const { paradigm: paradigmItems = [] } = this.lemmaData || {};\n return paradigmItems.length > 0 ? paradigmItems : [this.lemmaText];\n }\n\n @computedFrom(\"lemmaData.paradigm\")\n get paradigmItemsString() {\n return this.paradigmItems\n .map(paradigmItem => paradigmItem || \"…\")\n .join(\", \");\n }\n\n}\n","// Define the view-model for the \"lemma\" component\n\n// Import library modules\nimport {\n inject,\n bindable,\n bindingMode,\n computedFrom\n} from \"aurelia-framework\";\n\n// Import utility modules\nimport { setEventHandlers, unsetEventHandlers } from \"utilities/event\";\n\n// Import parameter modules\nimport { tBindingBehavior as i18nParams } from \"parameters/i18n\";\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 Generators class\n@inject(EventService)\nexport class Lemma {\n\n // Bound attributes\n @bindable({ defaultBindingMode: bindingMode.toView }) generatorData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) lemmaDataModified = false;\n @bindable({ defaultBindingMode: bindingMode.toView }) inElementData = null;\n @bindable({ defaultBindingMode: bindingMode.toView }) activityKey = \"\";\n @bindable({ defaultBindingMode: bindingMode.toView }) analysisKey = \"\";\n @bindable({ defaultBindingMode: bindingMode.toView }) cardIndex = -1;\n @bindable({ defaultBindingMode: bindingMode.toView }) inChildElementIndex = -1;\n @bindable({ defaultBindingMode: bindingMode.toView }) runMode = defaultRunMode;\n @bindable({ defaultBindingMode: bindingMode.toView }) isEnabled = true;\n\n // Local attributes\n i18nParams = i18nParams;\n\n constructor(eventService) {\n this.eventService = eventService;\n }\n\n\n // Lifecycle methods\n bind() {\n this.eventsSubscriptions = setEventHandlers.call(this, {\n entityName: \"lemma\",\n entityKey: this.lemmaKey,\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(\"generatorData.lemma\")\n get lemmaData() {\n const { lemma: lemmaData = null } = this.generatorData || {};\n return lemmaData;\n }\n @computedFrom(\"lemmaData.key\")\n get lemmaKey() {\n const { key: lemmaKey = \"\" } = this.lemmaData || {};\n return lemmaKey;\n }\n\n @computedFrom(\"inElementData.text\")\n get inElementText() {\n const { text: inElementText = \"\" } = this.inElementData || {};\n return inElementText;\n }\n @computedFrom(\"inElementText\")\n get generatorI18nParams() {\n return { ...i18nParams, inElementText: this.inElementText };\n }\n\n @computedFrom(\"lemmaDataModified\")\n get lemmaAnchorClasses() {\n return this.lemmaDataModified ? \"uk-link-modified\" : \"uk-link-heading\";\n }\n\n\n // Event filters\n filterEventByAnalysisKeyCardIndexAndInChildElementIndex({\n analysisKey = \"\",\n cardIndex = -1,\n inChildElementIndex = -1\n }) {\n return analysisKey === this.analysisKey &&\n cardIndex === this.cardIndex &&\n inChildElementIndex === this.inChildElementIndex;\n }\n\n\n // Event publishers\n publishOpenGeneratorsDialogEvent(eventData) {\n this.eventService.publish({\n eventName: \"openGeneratorsDialog\",\n eventData: {\n activityKey: this.activityKey,\n analysisKey: this.analysisKey,\n cardIndex: this.cardIndex,\n inChildElementIndex: this.inChildElementIndex,\n ...(eventData || {})\n }\n });\n }\n\n}\n","// Module\nvar code = \"\\n\\n \\n \\n \\n\\n\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n inSnt/${inSentenceKey || '???'}\\n \\n\\n \\n \\n ${inSentenceText}\\n \\n\\n \\n \\n \\n \\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n inSentence/${inSentenceKey || '???'}\\n \\n\\n \\n \\n ${inSentenceText}\\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\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\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\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// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\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 \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\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 \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n\\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 lemma/${lemmaKey || '???'}\\n \\n\\n \\n \\n \\n\\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 0\\\">\\n \\n \\n \\n \\n ${\\\"main:addOneOrMoreDefinitions\\\" & t: i18nParams}:\\n \\n\\n \\n \\n \\n \\n \\n ${\\\"main:add\\\" & t: i18nParams}\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n ${\\\"main:noDefinition\\\" & t}…\\n \\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n \\n ${\\\"main:holdCase\\\" & t: { count: holdCases.length }}\\n \\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n \\n\\n \\n ${\\\"main:holdMood\\\" & t: { count: holdMoods.length }}\\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 ${\\\"main:loadingData\\\" & t}\\n \\n\\n \\n \\n \\n \\n \\n \\n\\n \\n 0\\\">\\n \\n \\n \\n \\n ${\\\"main:selectOneOrMoreInflections\\\" & t: i18nParams}:\\n \\n\\n \\n 0\\\">\\n \\n \\n \\n \\n \\n\\n \\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\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n\\n\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\n\\n \\n ${lemmaText}${suffixText}\\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 \\n \\n\\n\\n\";\n// Exports\nexport default code;"],"names":[],"sourceRoot":""}