{"version":3,"file":"Resources.js","sourceRoot":"","sources":["../../src/android/Resources.ts"],"names":[],"mappings":";;AAAA,sCAAuD;AA8BvD,MAAM,sBAAsB,GAAG,+DAA+D,CAAC;AAE/F;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CAAC,EAC1C,IAAI,EACJ,QAAQ,GAAG,sBAAsB,GAIlC;IACC,MAAM,GAAG,GAAG,MAAM,kBAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,+BAA+B;IAC/B,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;QAClB,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;KACpB;IACD,OAAO,GAAkB,CAAC;AAC5B,CAAC;AAbD,sDAaC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,GAAc;IACrD,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KACzB;IACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;QAClB,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC;KACpB;IAED,OAAO,GAAkB,CAAC;AAC5B,CAAC;AATD,4DASC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,KAAK,GAIN;IACC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AARD,8CAQC;AAED,SAAgB,kBAAkB,CAAC,MAIlC;;IACC,OAAO;QACL,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAC/C,IAAI,QAAE,MAAM,CAAC,KAAK,mCAAI,EAAE;KACzB,CAAC;AACJ,CAAC;AATD,gDASC","sourcesContent":["import { readXMLAsync, XMLObject } from '../utils/XML';\n\nexport type ResourceGroupXML = {\n $: {\n name: string;\n parent: string;\n };\n item: ResourceItemXML[];\n};\n\nexport type ResourceXML = {\n resources: {\n color?: ResourceItemXML[];\n string?: ResourceItemXML[];\n style?: ResourceGroupXML[];\n // Add more if needed...\n };\n};\n\nexport type ResourceItemXML = {\n _: string;\n $: {\n name: string;\n };\n};\n/**\n * Name of the resource folder.\n */\nexport type ResourceKind = 'values' | 'values-night' | 'values-v23';\n\nconst fallbackResourceString = ``;\n\n/**\n * Read an XML file while providing a default fallback for resource files.\n *\n * @param options path to the XML file, returns a fallback XML if the path doesn't exist.\n */\nexport async function readResourcesXMLAsync({\n path,\n fallback = fallbackResourceString,\n}: {\n path: string;\n fallback?: string | null;\n}): Promise {\n const xml = await readXMLAsync({ path, fallback });\n // Ensure the type is expected.\n if (!xml.resources) {\n xml.resources = {};\n }\n return xml as ResourceXML;\n}\n\n/**\n * Ensure the provided xml has a `resources` object (the expected shape).\n *\n * @param xml\n */\nexport function ensureDefaultResourceXML(xml: XMLObject): ResourceXML {\n if (!xml) {\n xml = { resources: {} };\n }\n if (!xml.resources) {\n xml.resources = {};\n }\n\n return xml as ResourceXML;\n}\n\n/**\n * Build a `ResourceItemXML` given its `name` and `value`. This makes things a bit more readable.\n *\n * - JSON: `{ $: { name }, _: value }`\n * - XML: `VALUE`\n *\n * @param props name and value strings.\n */\nexport function buildResourceItem({\n name,\n value,\n}: {\n name: string;\n value: string;\n}): ResourceItemXML {\n return { $: { name }, _: value };\n}\n\nexport function buildResourceGroup(parent: {\n name: string;\n parent: string;\n items?: ResourceItemXML[];\n}): ResourceGroupXML {\n return {\n $: { name: parent.name, parent: parent.parent },\n item: parent.items ?? [],\n };\n}\n"]}