{"version":3,"sources":["../../../packages/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE;;GAEG;AACH,qBAAa,cAAc;IACvB;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM;IAW3D;;;;OAIG;IACH,OAAO,CAAC,UAAU;CAsBrB","file":"iif-updater-util.d.ts","sourcesContent":["import { ResolveState } from '../../../common';\r\nimport { ErrorResult } from '../../../upgrade/models/error-result';\r\nimport { Logger } from '../../utils/logger';\r\n\r\n/**\r\n * Updater for iif errors.\r\n */\r\nexport class IiFUpdaterUtil {\r\n    /**\r\n     * the update function.\r\n     * @param fileData the file data.\r\n     * @param error the error object.\r\n     * @returns the updated file data.\r\n     */\r\n    public update(fileData: string, error: ErrorResult): string {\r\n        if (!fileData) {\r\n            Logger.error(`Cannot find file data`);\r\n        }\r\n\r\n        const result = this.regexFixer(fileData);\r\n\r\n        error.resolved = ResolveState.Resolved;\r\n        return result;\r\n    }\r\n\r\n    /**\r\n     * the update function.\r\n     * @param inputString the input file data string.\r\n     * @returns the updated file data string.\r\n     */\r\n    private regexFixer(inputString): string {\r\n        const regexPattern = /iif\\s*\\(\\s*((?:[^,\\r\\n]+|\\([^)]*\\))*)(?:\\s*,\\s*((?:[^,\\r\\n]+|\\([^)]*\\))*))?(?:\\s*,\\s*((?:[^,\\r\\n]+|\\([^)]*\\))))?\\s*\\)/g;\r\n\r\n        Logger.error(regexPattern.test(inputString).toString());\r\n\r\n        const replacedCode = inputString.replace(regexPattern, (match, condition, valueIfTrue, valueIfFalse) => {\r\n            Logger.log('match: ' + match);\r\n            if (valueIfTrue === undefined && valueIfFalse === undefined) {\r\n                Logger.log('added valueIfTrue and valueIfFalse');\r\n                return `iif(${condition}, of(null), of(null))`;\r\n            }\r\n            if (valueIfFalse === undefined) {\r\n                Logger.log('added valueIfFalse');\r\n                return `iif(${condition}, ${valueIfTrue}, of(null))`;\r\n            }\r\n\r\n            Logger.log('no-op');\r\n            return match;\r\n        });\r\n\r\n        return replacedCode;\r\n    }\r\n}\r\n"]}