{"version":3,"file":"gradePicker.obs.js","sources":["../../../Framework/Controls/gradePicker.obs"],"sourcesContent":["<!-- Copyright by the Spark Development Network; Licensed under the Rock Community License -->\r\n<template>\r\n <BaseAsyncPicker v-model=\"internalValue\"\r\n v-bind=\"standardProps\"\r\n :items=\"actualItems\" />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\n import { standardAsyncPickerProps, useStandardAsyncPickerProps, useVModelPassthrough } from \"@Obsidian/Utility/component\";\r\n import { useHttp } from \"@Obsidian/Utility/http\";\r\n import { GradePickerGetGradesOptionsBag } from \"@Obsidian/ViewModels/Rest/Controls/gradePickerGetGradesOptionsBag\";\r\n import { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n import { computed, PropType, ref, watch } from \"vue\";\r\n import BaseAsyncPicker from \"./baseAsyncPicker.obs\";\r\n\r\n const props = defineProps({\r\n modelValue: {\r\n type: Object as PropType<ListItemBag | ListItemBag[] | null>,\r\n required: false\r\n },\r\n\r\n useAbbreviation: {\r\n type: Boolean as PropType<boolean>,\r\n default: false\r\n },\r\n\r\n useGuidAsValue: {\r\n type: Boolean as PropType<boolean>,\r\n default: false\r\n },\r\n\r\n ...standardAsyncPickerProps\r\n });\r\n\r\n const emit = defineEmits<{\r\n (e: \"update:modelValue\", value: ListItemBag | ListItemBag[] | null): void;\r\n }>();\r\n\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<ListItemBag[] | null>(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<ListItemBag[]>) => {\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<ListItemBag[]> => {\r\n const options: GradePickerGetGradesOptionsBag = {\r\n useAbbreviation: props.useAbbreviation,\r\n useGuidAsValue: props.useGuidAsValue\r\n };\r\n const result = await http.post<ListItemBag[]>(\"/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</script>\r\n"],"names":["internalValue","useVModelPassthrough","props","emit","standardProps","useStandardAsyncPickerProps","http","useHttp","loadedItems","ref","actualItems","computed","value","loadOptions","_ref2","_asyncToGenerator","options","useAbbreviation","useGuidAsValue","result","post","undefined","isSuccess","data","_result$errorMessage","console","error","errorMessage","apply","arguments","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwCI,IAAMA,aAAa,GAAGC,oBAAoB,CAACC,KAAK,EAAE,YAAY,EAAEC,IAAI,CAAC,CAAA;MACrE,IAAA,IAAMC,aAAa,GAAGC,2BAA2B,CAACH,KAAK,CAAC,CAAA;UACxD,IAAMI,IAAI,GAAGC,OAAO,EAAE,CAAA;MACtB,IAAA,IAAMC,WAAW,GAAGC,GAAG,CAAuB,IAAI,CAAC,CAAA;MAUnD,IAAA,IAAMC,WAAW,GAAGC,QAAQ,CAAC,MAAsD;MAC/E,MAAA,OAAOH,WAAW,CAACI,KAAK,IAAIC,WAAW,CAAA;MAC3C,KAAC,CAAC,CAAA;MASF,IAAA,IAAMA,WAAW,GAAA,YAAA;MAAA,MAAA,IAAAC,KAAA,GAAAC,iBAAA,CAAG,aAAoC;MACpD,QAAA,IAAMC,OAAuC,GAAG;gBAC5CC,eAAe,EAAEf,KAAK,CAACe,eAAe;gBACtCC,cAAc,EAAEhB,KAAK,CAACgB,cAAAA;eACzB,CAAA;cACD,IAAMC,MAAM,GAASb,MAAAA,IAAI,CAACc,IAAI,CAAgB,uCAAuC,EAAEC,SAAS,EAAEL,OAAO,CAAC,CAAA;MAE1G,QAAA,IAAIG,MAAM,CAACG,SAAS,IAAIH,MAAM,CAACI,IAAI,EAAE;MACjCf,UAAAA,WAAW,CAACI,KAAK,GAAGO,MAAM,CAACI,IAAI,CAAA;gBAC/B,OAAOJ,MAAM,CAACI,IAAI,CAAA;MACtB,SAAC,MACI;MAAA,UAAA,IAAAC,oBAAA,CAAA;MACDC,UAAAA,OAAO,CAACC,KAAK,CAAAF,CAAAA,oBAAA,GAACL,MAAM,CAACQ,YAAY,MAAA,IAAA,IAAAH,oBAAA,KAAA,KAAA,CAAA,GAAAA,oBAAA,GAAI,mCAAmC,CAAC,CAAA;gBACzEhB,WAAW,CAACI,KAAK,GAAG,EAAE,CAAA;MACtB,UAAA,OAAO,EAAE,CAAA;MACb,SAAA;aACH,CAAA,CAAA;MAAA,MAAA,OAAA,SAhBKC,WAAWA,GAAA;MAAA,QAAA,OAAAC,KAAA,CAAAc,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;MAAA,OAAA,CAAA;WAgBhB,EAAA,CAAA;MAMDC,IAAAA,KAAK,CAAC,MAAM,CAAC5B,KAAK,CAACe,eAAe,EAAEf,KAAK,CAACgB,cAAc,CAAC,EAAE,MAAM;YAC7DV,WAAW,CAACI,KAAK,GAAG,IAAI,CAAA;MAC5B,KAAC,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;"}