123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503 |
- //
- // KMGlobalParser.swift
- // PDF Reader Pro
- //
- // Created by wanjun on 2022/12/21.
- //
- import Cocoa
- class KMGlobalParser: KMBaseParser {
- func startParse() -> KMGlobal {
- self.fileName = "global"
- self.fileType = "json"
- return globalParser(self.jsonParser)
- }
-
- func globalParser(_ jsonData: [String: Any]) -> KMGlobal {
- let data = jsonData
- let allKey = data.keys
-
- let globalModel = KMGlobal.init()
- if allKey.contains("sizing") {
- globalModel.sizing = ["sizing" : sizingParser((data["sizing"] as! [String : Any]))]
- }
- if allKey.contains("spacing") {
- globalModel.spacing = ["spacing" : spacingParser((data["spacing"] as! [String : Any]))]
- }
- if allKey.contains("color") {
- globalModel.color = ["color" : colorParser((data["color"] as! [String : Any]))]
- }
- if allKey.contains("border-radius") {
- globalModel.border_radius = ["border-radius" : borderRadiusParser((data["border-radius"] as! [String : Any]))]
- }
- if allKey.contains("border-width") {
- globalModel.border_width = ["border-width" : borderWidthParser((data["border-width"] as! [String : Any]))]
- }
- if allKey.contains("shadow") {
- globalModel.shadow = ["shadow" : shadowParser((data["shadow"] as! [String : Any]))]
- }
- if allKey.contains("text-mac") {
- globalModel.text_mac = ["text-mac" : textMacParser((data["text-mac"] as! [String : Any]))]
- }
- if allKey.contains("text-windows") {
- globalModel.text_windows = ["text-windows" : textWindowsParser((data["text-windows"] as! [String : Any]))]
- }
- return globalModel
- }
-
- // MARK: sizing
- func sizingParser(_ jsonData: [String: Any]) -> KMGlobal_sizing {
- let allKey = jsonData.keys
- let model = KMGlobal_sizing.init()
- if allKey.contains("1") {
- model.sizing1 = ["1" : valueTypeParser2(jsonData["1"] as! [String : Any])]
- }
- if allKey.contains("4") {
- model.sizing4 = ["4" : valueTypeParser2(jsonData["4"] as! [String : Any])]
- }
- if allKey.contains("8") {
- model.sizing8 = ["8" : valueTypeParser2(jsonData["8"] as! [String : Any])]
- }
- if allKey.contains("10") {
- model.sizing10 = ["10" : valueTypeParser2(jsonData["10"] as! [String : Any])]
- }
- if allKey.contains("12") {
- model.sizing12 = ["12" : valueTypeParser2(jsonData["12"] as! [String : Any])]
- }
- if allKey.contains("14") {
- model.sizing14 = ["14" : valueTypeParser2(jsonData["14"] as! [String : Any])]
- }
- if allKey.contains("16") {
- model.sizing16 = ["16" : valueTypeParser2(jsonData["16"] as! [String : Any])]
- }
- if allKey.contains("18") {
- model.sizing18 = ["18" : valueTypeParser2(jsonData["18"] as! [String : Any])]
- }
- if allKey.contains("20") {
- model.sizing20 = ["20" : valueTypeParser2(jsonData["20"] as! [String : Any])]
- }
- if allKey.contains("21") {
- model.sizing21 = ["21" : valueTypeParser2(jsonData["21"] as! [String : Any])]
- }
- if allKey.contains("22") {
- model.sizing22 = ["22" : valueTypeParser2(jsonData["22"] as! [String : Any])]
- }
- if allKey.contains("24") {
- model.sizing24 = ["24" : valueTypeParser2(jsonData["24"] as! [String : Any])]
- }
- if allKey.contains("26") {
- model.sizing26 = ["26" : valueTypeParser2(jsonData["26"] as! [String : Any])]
- }
- if allKey.contains("28") {
- model.sizing28 = ["28" : valueTypeParser2(jsonData["28"] as! [String : Any])]
- }
- if allKey.contains("30") {
- model.sizing30 = ["30" : valueTypeParser2(jsonData["30"] as! [String : Any])]
- }
- if allKey.contains("32") {
- model.sizing32 = ["32" : valueTypeParser2(jsonData["32"] as! [String : Any])]
- }
- if allKey.contains("34") {
- model.sizing34 = ["34" : valueTypeParser2(jsonData["34"] as! [String : Any])]
- }
- if allKey.contains("36") {
- model.sizing36 = ["36" : valueTypeParser2(jsonData["36"] as! [String : Any])]
- }
- if allKey.contains("40") {
- model.sizing40 = ["40" : valueTypeParser2(jsonData["40"] as! [String : Any])]
- }
- if allKey.contains("48") {
- model.sizing48 = ["48" : valueTypeParser2(jsonData["48"] as! [String : Any])]
- }
- if allKey.contains("50") {
- model.sizing50 = ["50" : valueTypeParser2(jsonData["50"] as! [String : Any])]
- }
- if allKey.contains("58") {
- model.sizing58 = ["58" : valueTypeParser2(jsonData["58"] as! [String : Any])]
- }
- if allKey.contains("60") {
- model.sizing60 = ["60" : valueTypeParser2(jsonData["60"] as! [String : Any])]
- }
- if allKey.contains("64") {
- model.sizing64 = ["64" : valueTypeParser2(jsonData["64"] as! [String : Any])]
- }
- if allKey.contains("68") {
- model.sizing68 = ["68" : valueTypeParser2(jsonData["68"] as! [String : Any])]
- }
- if allKey.contains("72") {
- model.sizing72 = ["72" : valueTypeParser2(jsonData["72"] as! [String : Any])]
- }
- if allKey.contains("110") {
- model.sizing110 = ["110" : valueTypeParser2(jsonData["110"] as! [String : Any])]
- }
- if allKey.contains("116") {
- model.sizing116 = ["116" : valueTypeParser2(jsonData["116"] as! [String : Any])]
- }
- if allKey.contains("120") {
- model.sizing120 = ["120" : valueTypeParser2(jsonData["120"] as! [String : Any])]
- }
- if allKey.contains("132") {
- model.sizing132 = ["132" : valueTypeParser2(jsonData["132"] as! [String : Any])]
- }
- if allKey.contains("139") {
- model.sizing139 = ["139" : valueTypeParser2(jsonData["139"] as! [String : Any])]
- }
- if allKey.contains("180") {
- model.sizing180 = ["180" : valueTypeParser2(jsonData["180"] as! [String : Any])]
- }
- if allKey.contains("200") {
- model.sizing200 = ["200" : valueTypeParser2(jsonData["200"] as! [String : Any])]
- }
- if allKey.contains("228") {
- model.sizing228 = ["228" : valueTypeParser2(jsonData["228"] as! [String : Any])]
- }
- if allKey.contains("260") {
- model.sizing260 = ["260" : valueTypeParser2(jsonData["260"] as! [String : Any])]
- }
- return model
- }
- // MARK: spacing
-
- func spacingParser(_ jsonData: [String: Any]) -> KMGlobal_spacing {
- let allKey = jsonData.keys
- let model = KMGlobal_spacing.init()
- if allKey.contains("0") {
- model.spacing0 = ["0" : valueTypeParser2(jsonData["0"] as! [String : Any])]
- }
- if allKey.contains("1") {
- model.spacing1 = ["1" : valueTypeParser2(jsonData["1"] as! [String : Any])]
- }
- if allKey.contains("2") {
- model.spacing2 = ["2" : valueTypeParser2(jsonData["2"] as! [String : Any])]
- }
- if allKey.contains("4") {
- model.spacing4 = ["4" : valueTypeParser2(jsonData["4"] as! [String : Any])]
- }
- if allKey.contains("5") {
- model.spacing5 = ["5" : valueTypeParser2(jsonData["5"] as! [String : Any])]
- }
- if allKey.contains("6") {
- model.spacing6 = ["6" : valueTypeParser2(jsonData["6"] as! [String : Any])]
- }
- if allKey.contains("8") {
- model.spacing8 = ["8" : valueTypeParser2(jsonData["8"] as! [String : Any])]
- }
- if allKey.contains("10") {
- model.spacing10 = ["10" : valueTypeParser2(jsonData["10"] as! [String : Any])]
- }
- if allKey.contains("12") {
- model.spacing12 = ["12" : valueTypeParser2(jsonData["12"] as! [String : Any])]
- }
- if allKey.contains("16") {
- model.spacing16 = ["16" : valueTypeParser2(jsonData["16"] as! [String : Any])]
- }
- if allKey.contains("24") {
- model.spacing24 = ["24" : valueTypeParser2(jsonData["24"] as! [String : Any])]
- }
- if allKey.contains("32") {
- model.spacing32 = ["32" : valueTypeParser2(jsonData["32"] as! [String : Any])]
- }
- if allKey.contains("40") {
- model.spacing40 = ["40" : valueTypeParser2(jsonData["40"] as! [String : Any])]
- }
- if allKey.contains("56") {
- model.spacing56 = ["56" : valueTypeParser2(jsonData["56"] as! [String : Any])]
- }
- if allKey.contains("64") {
- model.spacing64 = ["64" : valueTypeParser2(jsonData["64"] as! [String : Any])]
- }
- if allKey.contains("80") {
- model.spacing80 = ["80" : valueTypeParser2(jsonData["80"] as! [String : Any])]
- }
- if allKey.contains("88") {
- model.spacing88 = ["88" : valueTypeParser2(jsonData["88"] as! [String : Any])]
- }
- return model
- }
- // MARK: color
-
- func colorParser(_ jsonData: [String: Any]) -> KMGlobal_color {
- let allKey = jsonData.keys
- let model = KMGlobal_color.init()
- if allKey.contains("light") {
- model.light = ["light" : colorValueParser(jsonData["light"] as! [String : Any])]
- }
- if allKey.contains("dark") {
- model.dark = ["dark" : colorValueParser(jsonData["dark"] as! [String : Any])]
- }
- return model
- }
- // MARK: border-radius
-
- func borderRadiusParser(_ jsonData: [String: Any]) -> KMGlobal_borderRadius {
- let allKey = jsonData.keys
- let model = KMGlobal_borderRadius.init()
- if allKey.contains("2") {
- model.number2 = ["2" : valueTypeParser2(jsonData["2"] as! [String : Any])]
- }
- if allKey.contains("4") {
- model.number4 = ["4" : valueTypeParser2(jsonData["4"] as! [String : Any])]
- }
- if allKey.contains("6") {
- model.number6 = ["6" : valueTypeParser2(jsonData["6"] as! [String : Any])]
- }
- if allKey.contains("8") {
- model.number8 = ["8" : valueTypeParser2(jsonData["8"] as! [String : Any])]
- }
- if allKey.contains("10") {
- model.number10 = ["10" : valueTypeParser2(jsonData["10"] as! [String : Any])]
- }
- if allKey.contains("12") {
- model.number12 = ["12" : valueTypeParser2(jsonData["12"] as! [String : Any])]
- }
- if allKey.contains("16") {
- model.number16 = ["16" : valueTypeParser2(jsonData["16"] as! [String : Any])]
- }
- if allKey.contains("20") {
- model.number20 = ["20" : valueTypeParser2(jsonData["20"] as! [String : Any])]
- }
- return model
- }
- // MARK: border-width
-
- func borderWidthParser(_ jsonData: [String: Any]) -> KMGlobal_borderWidth {
- let allKey = jsonData.keys
- let model = KMGlobal_borderWidth.init()
- if allKey.contains("1") {
- model.number1 = ["1" : valueTypeParser2(jsonData["1"] as! [String : Any])]
- }
- if allKey.contains("2") {
- model.number2 = ["2" : valueTypeParser2(jsonData["2"] as! [String : Any])]
- }
- return model
- }
- // MARK: shadow
-
- func shadowParser(_ jsonData: [String: Any]) -> KMGlobal_shadow {
- let allKey = jsonData.keys
- let model = KMGlobal_shadow.init()
- if allKey.contains("black-2-2") {
- model.black_2_2 = ["black-2-2" : valueTypeParser(jsonData["black-2-2"] as! [String : Any])]
- }
- if allKey.contains("black-4-8") {
- model.black_4_8 = ["black-4-8" : valueTypeParser(jsonData["black-4-8"] as! [String : Any])]
- }
- if allKey.contains("black-2-8") {
- model.black_2_8 = ["black-2-8" : valueTypeParser(jsonData["black-2-8"] as! [String : Any])]
- }
- if allKey.contains("blue-0-4") {
- model.blue_0_4 = ["blue-0-4" : valueTypeParser(jsonData["blue-0-4"] as! [String : Any])]
- }
- if allKey.contains("red-0-4") {
- model.red_0_4 = ["red-0-4" : valueTypeParser(jsonData["red-0-4"] as! [String : Any])]
- }
- return model
- }
- // MARK: text-mac
-
- func textMacParser(_ jsonData: [String: Any]) -> KMGlobal_textMac {
- let allKey = jsonData.keys
- let model = KMGlobal_textMac.init()
- if allKey.contains("regular") {
- model.regular = ["regular" : numberNodeParser(jsonData["regular"] as! [String : Any])]
- }
- if allKey.contains("semibold") {
- model.semibold = ["semibold" : numberNodeParser(jsonData["semibold"] as! [String : Any])]
- }
- return model
- }
- // MARK: text-windows
-
- func textWindowsParser(_ jsonData: [String: Any]) -> KMGlobal_textWindows {
- let allKey = jsonData.keys
- let model = KMGlobal_textWindows.init()
- if allKey.contains("regular") {
- model.regular = ["regular" : numberNodeParser(jsonData["regular"] as! [String : Any])]
- }
- if allKey.contains("semibold") {
- model.semibold = ["semibold" : numberNodeParser(jsonData["semibold"] as! [String : Any])]
- }
- return model
- }
-
- // MARK: -
-
- func numberNodeParser(_ jsonData: [String: Any]) -> KMGlobal_number {
- let allKey = jsonData.keys
- let model = KMGlobal_number.init()
- if allKey.contains("11") {
- model.number11 = ["11" : valueTypeParser(jsonData["11"] as! [String : Any])]
- }
- if allKey.contains("12") {
- model.number12 = ["12" : valueTypeParser(jsonData["12"] as! [String : Any])]
- }
- if allKey.contains("14") {
- model.number14 = ["14" : valueTypeParser(jsonData["14"] as! [String : Any])]
- }
- if allKey.contains("16") {
- model.number16 = ["16" : valueTypeParser(jsonData["16"] as! [String : Any])]
- }
- if allKey.contains("20") {
- model.number20 = ["20" : valueTypeParser(jsonData["20"] as! [String : Any])]
- }
- return model
- }
-
- func colorValueParser(_ jsonData: [String: Any]) -> KMGlobal_colorValue {
- let allKey = jsonData.keys
- let model = KMGlobal_colorValue.init()
- if allKey.contains("blue") {
- model.blue = ["blue" : colorNumberNodeParser(jsonData["blue"] as! [String : Any])]
- }
- if allKey.contains("gray") {
- model.gray = ["gray" : colorNumberNodeParser(jsonData["gray"] as! [String : Any])]
- }
- if allKey.contains("navy-blue") {
- model.navy_blue = ["navy-blue" : colorNumberNodeParser(jsonData["navy-blue"] as! [String : Any])]
- }
- if allKey.contains("green") {
- model.green = ["green" : colorNumberNodeParser(jsonData["green"] as! [String : Any])]
- }
- if allKey.contains("gold") {
- model.gold = ["gold" : colorNumberNodeParser(jsonData["gold"] as! [String : Any])]
- }
- if allKey.contains("red") {
- model.red = ["red" : colorNumberNodeParser(jsonData["red"] as! [String : Any])]
- }
- if allKey.contains("orange") {
- model.orange = ["orange" : colorNumberNodeParser(jsonData["orange"] as! [String : Any])]
- }
- if allKey.contains("cyan") {
- model.cyan = ["cyan" : colorNumberNodeParser(jsonData["cyan"] as! [String : Any])]
- }
- if allKey.contains("purple") {
- model.purple = ["purple" : colorNumberNodeParser(jsonData["purple"] as! [String : Any])]
- }
- if allKey.contains("pink") {
- model.pink = ["pink" : colorNumberNodeParser(jsonData["pink"] as! [String : Any])]
- }
- return model
- }
-
- func colorNumberNodeParser(_ jsonData: [String: Any]) -> KMGlobal_colorNumber {
- let allKey = jsonData.keys
- let model = KMGlobal_colorNumber.init()
- if allKey.contains("1") {
- model.number1 = ["1" : valueTypeParser2(jsonData["1"] as! [String : Any])]
- }
- if allKey.contains("2") {
- model.number2 = ["2" : valueTypeParser2(jsonData["2"] as! [String : Any])]
- }
- if allKey.contains("3") {
- model.number3 = ["3" : valueTypeParser2(jsonData["3"] as! [String : Any])]
- }
- if allKey.contains("4") {
- model.number4 = ["4" : valueTypeParser2(jsonData["4"] as! [String : Any])]
- }
- if allKey.contains("5") {
- model.number5 = ["5" : valueTypeParser2(jsonData["5"] as! [String : Any])]
- }
- if allKey.contains("6") {
- model.number6 = ["6" : valueTypeParser2(jsonData["6"] as! [String : Any])]
- }
- if allKey.contains("7") {
- model.number7 = ["7" : valueTypeParser2(jsonData["7"] as! [String : Any])]
- }
- if allKey.contains("8") {
- model.number8 = ["8" : valueTypeParser2(jsonData["8"] as! [String : Any])]
- }
- if allKey.contains("9") {
- model.number9 = ["9" : valueTypeParser2(jsonData["9"] as! [String : Any])]
- }
- if allKey.contains("10") {
- model.number10 = ["10" : valueTypeParser2(jsonData["10"] as! [String : Any])]
- }
- if allKey.contains("11") {
- model.number11 = ["11" : valueTypeParser2(jsonData["11"] as! [String : Any])]
- }
- if allKey.contains("12") {
- model.number12 = ["12" : valueTypeParser2(jsonData["12"] as! [String : Any])]
- }
- return model
- }
- func valueTypeParser(_ jsonData: [String: Any]) -> KMGlobal_valueType {
- let allKey = jsonData.keys
- let model = KMGlobal_valueType.init()
- if allKey.contains("value") {
- model.value = ["value" : uiValueParser(jsonData["value"] as! [String : Any])]
- }
- if allKey.contains("type") {
- model.type = ["type" : jsonData["type"] as! String]
- }
- return model
- }
-
- func valueTypeParser2(_ jsonData: [String: Any]) -> KMGlobal_valueType {
- let allKey = jsonData.keys
- let model = KMGlobal_valueType.init()
- if allKey.contains("value") {
- model.value = ["value" : jsonData["value"] as! String]
- }
- if allKey.contains("type") {
- model.type = ["type" : jsonData["type"] as! String]
- }
- return model
- }
-
- func uiValueParser(_ jsonData: [String: Any]) -> KMGlobal_UIValue {
- let allKey = jsonData.keys
- let model = KMGlobal_UIValue.init()
- if allKey.contains("fontFamily") {
- model.fontFamily = ["fontFamily" : jsonData["fontFamily"] as! String]
- }
- if allKey.contains("fontWeight") {
- model.fontWeight = ["fontWeight" : jsonData["fontWeight"] as! String]
- }
- if allKey.contains("lineHeight") {
- model.lineHeight = ["lineHeight" : jsonData["lineHeight"] as! String]
- }
- if allKey.contains("fontSize") {
- model.fontSize = ["fontSize" : jsonData["fontSize"] as! String]
- }
- if allKey.contains("x") {
- model.x = ["x" : jsonData["x"] as! String]
- }
- if allKey.contains("y") {
- model.y = ["y" : jsonData["y"] as! String]
- }
- if allKey.contains("blur") {
- model.blur = ["blur" : jsonData["blur"] as! String]
- }
- if allKey.contains("spread") {
- model.spread = ["spread" : jsonData["spread"] as! String]
- }
- if allKey.contains("color") {
- model.color = ["color" : jsonData["color"] as! String]
- }
- if allKey.contains("type") {
- model.type = ["type" : jsonData["type"] as! String]
- }
- return model
- }
- }
- // MARK: - Parser Action
- extension KMGlobalParser {
- func startJSONParse() -> [String : Any] {
- self.fileName = "global"
- self.fileType = "json"
- return self.jsonParser
- }
- }
|