{"version":3,"file":"ethnicityPicker.obs.js","sources":["../../../Framework/Controls/ethnicityPicker.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                     :label=\"label\"\r\n                     :displayStyle=\"displayStyle\"\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 { EthnicityPickerGetEthnicitiesResultsBag } from \"@Obsidian/ViewModels/Rest/Controls/ethnicityPickerGetEthnicitiesResultsBag\";\r\n    import { ListItemBag } from \"@Obsidian/ViewModels/Utility/listItemBag\";\r\n    import { PropType, computed, ref } from \"vue\";\r\n    import BaseAsyncPicker from \"./baseAsyncPicker\";\r\n\r\n    const props = defineProps({\r\n        /** The currently selected campus value(s). */\r\n        modelValue: {\r\n            type: Object as PropType<ListItemBag | ListItemBag[] | null>,\r\n            required: 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    const label = ref<string>(\"Ethnicity\");\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    async function loadOptions(): Promise<ListItemBag[]> {\r\n        const result = await http.post<EthnicityPickerGetEthnicitiesResultsBag>(\"/api/v2/Controls/EthnicityPickerGetEthnicities\");\r\n\r\n        if (result.isSuccess && result.data) {\r\n            loadedItems.value = result.data.ethnicities ?? null;\r\n            label.value = result.data.label ?? \"Ethnicity\";\r\n\r\n            return loadedItems.value ?? [];\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    // Initialize\r\n    loadOptions();\r\n</script>\r\n"],"names":["internalValue","useVModelPassthrough","props","emit","standardProps","useStandardAsyncPickerProps","http","useHttp","loadedItems","ref","label","actualItems","computed","value","loadOptions","_loadOptions","apply","arguments","_asyncToGenerator","result","post","isSuccess","data","_result$data$ethnicit","_result$data$label","_loadedItems$value","ethnicities","_result$errorMessage","console","error","errorMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAiCI,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;MACnD,IAAA,IAAMC,KAAK,GAAGD,GAAG,CAAS,WAAW,CAAC,CAAA;MAUtC,IAAA,IAAME,WAAW,GAAGC,QAAQ,CAAC,MAAsD;MAC/E,MAAA,OAAOJ,WAAW,CAACK,KAAK,IAAIC,WAAW,CAAA;MAC3C,KAAC,CAAC,CAAA;MAAC,IAAA,SASYA,WAAWA,GAAA;MAAA,MAAA,OAAAC,YAAA,CAAAC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;MAAA,KAAA;MAAA,IAAA,SAAAF,YAAA,GAAA;YAAAA,YAAA,GAAAG,iBAAA,CAA1B,aAAqD;MACjD,QAAA,IAAMC,MAAM,GAASb,MAAAA,IAAI,CAACc,IAAI,CAA0C,gDAAgD,CAAC,CAAA;MAEzH,QAAA,IAAID,MAAM,CAACE,SAAS,IAAIF,MAAM,CAACG,IAAI,EAAE;MAAA,UAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,kBAAA,CAAA;MACjCjB,UAAAA,WAAW,CAACK,KAAK,GAAAU,CAAAA,qBAAA,GAAGJ,MAAM,CAACG,IAAI,CAACI,WAAW,MAAAH,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,IAAI,CAAA;MACnDb,UAAAA,KAAK,CAACG,KAAK,GAAAW,CAAAA,kBAAA,GAAGL,MAAM,CAACG,IAAI,CAACZ,KAAK,MAAAc,IAAAA,IAAAA,kBAAA,KAAAA,KAAAA,CAAAA,GAAAA,kBAAA,GAAI,WAAW,CAAA;gBAE9C,OAAAC,CAAAA,kBAAA,GAAOjB,WAAW,CAACK,KAAK,cAAAY,kBAAA,KAAA,KAAA,CAAA,GAAAA,kBAAA,GAAI,EAAE,CAAA;MAClC,SAAC,MACI;MAAA,UAAA,IAAAE,oBAAA,CAAA;MACDC,UAAAA,OAAO,CAACC,KAAK,CAAAF,CAAAA,oBAAA,GAACR,MAAM,CAACW,YAAY,MAAA,IAAA,IAAAH,oBAAA,KAAA,KAAA,CAAA,GAAAA,oBAAA,GAAI,mCAAmC,CAAC,CAAA;gBACzEnB,WAAW,CAACK,KAAK,GAAG,EAAE,CAAA;MACtB,UAAA,OAAO,EAAE,CAAA;MACb,SAAA;aACH,CAAA,CAAA;MAAA,MAAA,OAAAE,YAAA,CAAAC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;MAAA,KAAA;MAKDH,IAAAA,WAAW,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;"}