UNPKG

3.79 kBSource Map (JSON)View Raw
1{"version":3,"file":"Styles.js","sourceRoot":"","sources":["../../src/android/Styles.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,wDAA0B;AAC1B,mCAAyC;AAQlC,KAAK,UAAU,4BAA4B,CAAC,UAAkB;IACnE,IAAI;QACF,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,kBAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;YAC5C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,CAAC;YAC9E,MAAM,kBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO,UAAU,CAAC;SACnB;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;KAChF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAbD,oEAaC;AAEM,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IACzD,MAAM,QAAQ,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,QAAQ,CAAC;AAClB,CAAC;AALD,gDAKC;AAEM,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,aAAkB;IAC9E,MAAM,SAAS,GAAG,IAAI,gBAAO,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7C,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAJD,kDAIC;AAED,SAAgB,aAAa,CAAC,SAAoB,EAAE,qBAA+B;IACjF,IAAI,QAAQ,GAAG,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CACzD,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,UAAU,CAC1C,CAAC,CAAC,CAAC,CAAC;IACL,IAAI,QAAQ,CAAC,IAAI,EAAE;QACjB,IAAI,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CACrC,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAC1D,CAAC,CAAC,CAAC,CAAC;QAEL,sEAAsE;QACtE,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACvC;aAAM;YACL,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjD;KACF;SAAM;QACL,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;KAC3B;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAnBD,sCAmBC","sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { Builder, Parser } from 'xml2js';\nimport { Document } from './Manifest';\n\nexport type XMLItem = {\n _: string;\n $: { name: string };\n};\n\nexport async function getProjectStylesXMLPathAsync(projectDir: string): Promise<string | null> {\n try {\n const shellPath = path.join(projectDir, 'android');\n if ((await fs.stat(shellPath)).isDirectory()) {\n const stylesPath = path.join(shellPath, 'app/src/main/res/values/styles.xml');\n await fs.ensureFile(stylesPath);\n return stylesPath;\n }\n } catch (error) {\n throw new Error(`Could not create android/app/src/main/res/values/styles.xml`);\n }\n\n return null;\n}\n\nexport async function readStylesXMLAsync(stylesPath: string): Promise<Document> {\n const contents = await fs.readFile(stylesPath, { encoding: 'utf8', flag: 'r' });\n const parser = new Parser();\n const manifest = parser.parseStringPromise(contents);\n return manifest;\n}\n\nexport async function writeStylesXMLAsync(stylesPath: string, stylesContent: any): Promise<void> {\n const stylesXml = new Builder().buildObject(stylesContent);\n await fs.ensureDir(path.dirname(stylesPath));\n await fs.writeFile(stylesPath, stylesXml);\n}\n\nexport function setStylesItem(itemToAdd: XMLItem[], styleFileContentsJSON: Document) {\n let appTheme = styleFileContentsJSON.resources.style.filter(\n (e: any) => e['$']['name'] === 'AppTheme'\n )[0];\n if (appTheme.item) {\n let existingItem = appTheme.item.filter(\n (item: XMLItem) => item['$'].name === itemToAdd[0].$.name\n )[0];\n\n // Don't want to 2 of the same item, so if one exists, we overwrite it\n if (existingItem) {\n existingItem['_'] = itemToAdd[0]['_'];\n } else {\n appTheme.item = appTheme.item.concat(itemToAdd);\n }\n } else {\n appTheme.item = itemToAdd;\n }\n return styleFileContentsJSON;\n}\n"]}
\No newline at end of file