{"version":3,"file":"gradePicker.js","sources":["../../../Framework/Controls/gradePicker.ts"],"sourcesContent":["// \r\n// Copyright by the Spark Development Network\r\n//\r\n// Licensed under the Rock Community License (the \"License\");\r\n// you may not use this file except in compliance with the License.\r\n// You may obtain a copy of the License at\r\n//\r\n// http://www.rockrms.com/license\r\n//\r\n// Unless required by applicable law or agreed to in writing, software\r\n// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n// See the License for the specific language governing permissions and\r\n// limitations under the License.\r\n// \r\n//\r\nimport { standardAsyncPickerProps, useStandardAsyncPickerProps, useVModelPassthrough } from \"@Obsidian/Utility/component\";\r\nimport { useHttp } from \"@Obsidian/Utility/http\";\r\nimport { GradePickerGetGradesOptionsBag } from \"@Obsidian/ViewModels/Rest/Controls/gradePickerGetGradesOptionsBag\";\r\nimport { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\nimport { computed, defineComponent, PropType, ref, watch } from \"vue\";\r\nimport BaseAsyncPicker from \"./baseAsyncPicker\";\r\n\r\nexport default defineComponent({\r\n name: \"GradePicker\",\r\n\r\n components: {\r\n BaseAsyncPicker\r\n },\r\n\r\n props: {\r\n modelValue: {\r\n type: Object as PropType,\r\n required: false\r\n },\r\n\r\n useAbbreviation: {\r\n type: Boolean as PropType,\r\n default: false\r\n },\r\n\r\n useGuidAsValue: {\r\n type: Boolean as PropType,\r\n default: false\r\n },\r\n\r\n ...standardAsyncPickerProps\r\n },\r\n\r\n emits: {\r\n \"update:modelValue\": (_value: ListItemBag | ListItemBag[] | null) => true\r\n },\r\n\r\n setup(props, { emit }) {\r\n // #region Values\r\n\r\n const internalValue = useVModelPassthrough(props, \"modelValue\", emit);\r\n const standardProps = useStandardAsyncPickerProps(props);\r\n const http = useHttp();\r\n const loadedItems = ref(null);\r\n\r\n // #endregion\r\n\r\n // #region Computed Values\r\n\r\n /**\r\n * The actual items to make available to the picker. This allows us to do any\r\n * post-processing, such as adding additional items, and still be lazy loaded as well.\r\n */\r\n const actualItems = computed((): ListItemBag[] | (() => Promise) => {\r\n return loadedItems.value || loadOptions;\r\n });\r\n\r\n // #endregion\r\n\r\n // #region Functions\r\n\r\n /**\r\n * Loads the items from the server.\r\n */\r\n const loadOptions = async (): Promise => {\r\n const options: Partial = {\r\n useAbbreviation: props.useAbbreviation,\r\n useGuidAsValue: props.useGuidAsValue\r\n };\r\n const result = await http.post(\"/api/v2/Controls/GradePickerGetGrades\", undefined, options);\r\n\r\n if (result.isSuccess && result.data) {\r\n loadedItems.value = result.data;\r\n return result.data;\r\n }\r\n else {\r\n console.error(result.errorMessage ?? \"Unknown error while loading data.\");\r\n loadedItems.value = [];\r\n return [];\r\n }\r\n };\r\n\r\n // #endregion\r\n\r\n // #region Watchers\r\n\r\n watch(() => [props.useAbbreviation, props.useGuidAsValue], () => {\r\n loadedItems.value = null;\r\n });\r\n\r\n // #endregion\r\n\r\n return {\r\n actualItems,\r\n internalValue,\r\n standardProps\r\n };\r\n },\r\n\r\n template: `\r\n\r\n`\r\n});\r\n"],"names":["defineComponent","name","components","BaseAsyncPicker","props","_objectSpread","modelValue","type","Object","required","useAbbreviation","Boolean","default","useGuidAsValue","standardAsyncPickerProps","emits","_value","setup","_ref","emit","internalValue","useVModelPassthrough","standardProps","useStandardAsyncPickerProps","http","useHttp","loadedItems","ref","actualItems","computed","value","loadOptions","_ref2","_asyncToGenerator","options","result","post","undefined","isSuccess","data","_result$errorMessage","console","error","errorMessage","apply","arguments","watch","template"],"mappings":"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"}