Ver código fonte

【2025】【综合】代码整理

niehaoyu 2 meses atrás
pai
commit
7265efd1b9
66 arquivos alterados com 207 adições e 13866 exclusões
  1. 1 2
      PDF Office/PDF Master/AppDelegate.swift
  2. 3 9
      PDF Office/PDF Master/Class/Common/Category/CPDFKit/CPDFAnnotation+KMExtension.swift
  3. 2 24
      PDF Office/PDF Master/Class/Common/Control/KMTextField.swift
  4. 5 38
      PDF Office/PDF Master/Class/Common/Designs/KMDesignBaseView.swift
  5. 2 14
      PDF Office/PDF Master/Class/Common/Designs/KMDesignStepperView.swift
  6. 1 8
      PDF Office/PDF Master/Class/Common/Designs/KMDesignTextField.swift
  7. 16 0
      PDF Office/PDF Master/Class/Common/KMCommonEnum.swift
  8. 0 24
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Action.swift
  9. 0 34
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Border.swift
  10. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderBottom.swift
  11. 0 40
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderColor.swift
  12. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderLeft.swift
  13. 0 28
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadius.swift
  14. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusBottomLeft.swift
  15. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusBottomRight.swift
  16. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusTopLeft.swift
  17. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusTopRight.swift
  18. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRight.swift
  19. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderTop.swift
  20. 0 28
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidth.swift
  21. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthBottom.swift
  22. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthLeft.swift
  23. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthRight.swift
  24. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthTop.swift
  25. 0 42
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BoxShadow.swift
  26. 0 40
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Fill.swift
  27. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Height.swift
  28. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+HorizontalPadding.swift
  29. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+ItemSpacing.swift
  30. 0 29
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Notification.swift
  31. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingBottom.swift
  32. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingLeft.swift
  33. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingRight.swift
  34. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingTop.swift
  35. 0 25
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Sizing.swift
  36. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Spacing.swift
  37. 0 27
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Typography.swift
  38. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+VerticalPadding.swift
  39. 0 15
      PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Width.swift
  40. 0 7
      PDF Office/PDF Master/Class/ComponentLibrary/JSON/$metadata.json
  41. 0 598
      PDF Office/PDF Master/Class/ComponentLibrary/JSON/$themes.json
  42. 0 938
      PDF Office/PDF Master/Class/ComponentLibrary/JSON/alias-light.json
  43. 0 5809
      PDF Office/PDF Master/Class/ComponentLibrary/JSON/comp-light.json
  44. 0 1379
      PDF Office/PDF Master/Class/ComponentLibrary/JSON/global.json
  45. 0 564
      PDF Office/PDF Master/Class/ComponentLibrary/KMAliasLightParser.swift
  46. 0 109
      PDF Office/PDF Master/Class/ComponentLibrary/KMBaseParser.swift
  47. 0 836
      PDF Office/PDF Master/Class/ComponentLibrary/KMCompLightParser.swift
  48. 0 393
      PDF Office/PDF Master/Class/ComponentLibrary/KMDesignToken.swift
  49. 0 503
      PDF Office/PDF Master/Class/ComponentLibrary/KMGlobalParser.swift
  50. 0 78
      PDF Office/PDF Master/Class/ComponentLibrary/KMJSONParser.swift
  51. 0 181
      PDF Office/PDF Master/Class/ComponentLibrary/Models/KMAliasLight.swift
  52. 0 345
      PDF Office/PDF Master/Class/ComponentLibrary/Models/KMCompLight.swift
  53. 0 214
      PDF Office/PDF Master/Class/ComponentLibrary/Models/KMGlobal.swift
  54. 3 98
      PDF Office/PDF Master/Class/Home/ViewController/KMHomePopViewController.swift
  55. 1 2
      PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignBase.swift
  56. 1 9
      PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignButton.swift
  57. 1 9
      PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignPropertySelector.swift
  58. 7 107
      PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignSelect.swift
  59. 14 87
      PDF Office/PDF Master/Class/PDFTools/PageEdit/Controller/KMPDFEditViewController.swift
  60. 0 352
      PDF Office/PDF Master/Class/PDFTools/PageEdit/View/KMPageEditInsertPageSizeItemView.swift
  61. 94 0
      PDF Office/PDF Master/Class/PDFWindowController/MainWindowController/KMPresentTableViewCell.swift
  62. 53 54
      PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Tools/KMNoteReplyHanddler.swift
  63. 2 11
      PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMPopMenuButton.swift
  64. BIN
      PDF Office/PDF Master/KMClass/KMPDFViewController/PDFImages.xcassets/Toolbar/Tools/tools_AITools.imageset/tools_AITools.pdf
  65. BIN
      PDF Office/PDF Master/KMClass/KMPDFViewController/PDFImages.xcassets/Toolbar/Tools/tools_TTS.imageset/tools_TTS.pdf
  66. 1 441
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 2
PDF Office/PDF Master/AppDelegate.swift


+ 3 - 9
PDF Office/PDF Master/Class/Common/Category/CPDFKit/CPDFAnnotation+KMExtension.swift

@@ -31,11 +31,7 @@ extension CPDFAnnotation.kType {
     
     public static let polyline                          = "Polyline"
     public static let polygon                           = "Polygon"
-    
-    // Form
-    // CPDFTextWidgetAnnotation type=""
-    // CPDFButtonWidgetAnnotation type=""
-    // CPDFChoiceWidgetAnnotation type=""
+     
     
     // 自定义的
     public static let measureArrow                      = "MeasureArrow"
@@ -44,11 +40,9 @@ extension CPDFAnnotation.kType {
 @objc extension CPDFAnnotation {
     static let kSquareType                              = "Square"
     static let kCircleType                              = "Circle"
-//    static let kDiamondType                             = "Diamond"
-    static let kArrowType                               = "Arrow"
+     static let kArrowType                               = "Arrow"
     static let kLineType                                = "Line"
-//    static let kClosedArrowType                         = "ClosedArrow"
-    
+ 
     static let KSquigglyType                            = "Squiggly"
     
     public struct kType {}

+ 2 - 24
PDF Office/PDF Master/Class/Common/Control/KMTextField.swift

@@ -34,26 +34,7 @@ class KMTextField: NSTextField {
         var borderThickness: CGFloat = 1
         // 左右两边缩进
         var offset: CGFloat = 8.0
-
-//        override func drawingRect(forBounds theRect: NSRect) -> NSRect {
-//            var newRect = super.drawingRect(forBounds: theRect)
-//            
-//            let textSize = self.cellSize(forBounds: theRect)
-//            let heightInset = newRect.size.height - textSize.height
-//            if (heightInset > 0) {
-//                newRect.size.height = textSize.height
-//                newRect.origin.y += heightInset * 0.5
-//            } else {
-//                newRect.size.height = textSize.height
-//                newRect.origin.y += heightInset
-//            }
-//            
-//            newRect.origin.x += self.offset
-//            newRect.size.width = theRect.width - self.offset * 2
-//            
-//            return newRect
-//        }
-        
+ 
         override func draw(withFrame cellFrame: NSRect, in controlView: NSView) {
             // Area that covers the NSTextField itself. That is the total height minus our custom border size.
             let interiorFrame = NSRect(x: 0, y: 0, width: cellFrame.width, height: cellFrame.height - self.borderThickness)
@@ -106,10 +87,7 @@ class KMTextField: NSTextField {
     
     required init?(coder: NSCoder) {
         super.init(coder: coder)
-        
-//        if let result = self.cell?.isKind(of: _KMTextFieldCell.self), !result {
-//            self.cell = _KMTextFieldCell()
-//        }
+         
     }
     
     override class var cellClass: AnyClass? {

+ 5 - 38
PDF Office/PDF Master/Class/Common/Designs/KMDesignBaseView.swift

@@ -77,39 +77,12 @@ class KMDesignBaseView: NSView {
         if (bgToken.isEmpty) {
             KMPrint("bgToken invalid.")
         } else {
-            let model = KMDesignToken.shared.tokenUsesModel(withToken: bgToken)
-            if let data = model.border as? String {
-                self.borderColor = NSColor.km_init(hex: data)
-            }
-            if let data = model.borderRadius as? String, let _value = Float(data) {
-                self.borderRadius = CGFloat(_value)
-            }
-            if let data = model.borderWidth as? String, let _value = Float(data) {
-                self.borderWidth = CGFloat(_value)
-            }
-            if let data = model.fill as? String {
-                self.fillColor = NSColor.km_init(hex: data)
-            }
+             
         }
         
         let textToken = self.find_textToken(state: state)
         if (!textToken.isEmpty) {
-            let model = KMDesignToken.shared.tokenUsesModel(withToken: textToken)
-            if let data = model.fill as? String {
-                self.textColor = NSColor.km_init(hex: data)
-            }
             
-            let tModel = KMDesignToken.shared.typography(withToken: textToken)
-            if let _fontSize = Float(tModel.fontSize) {
-                self.fontSize = CGFloat(_fontSize)
-            }
-            var fontName: String = ""
-            fontName.append(tModel.fontFamily.isEmpty ? "SFProText" : tModel.fontFamily)
-            fontName.append("-")
-            fontName.append(tModel.fontWeight.isEmpty ? "Regular" : tModel.fontWeight)
-            // 去掉多余的空格
-            fontName = fontName.replacingOccurrences(of: " ", with: "")
-            self.fontName = fontName
         }
         
     }
@@ -124,24 +97,18 @@ class KMDesignBaseView: NSView {
     // MARK: - divider
     
     func horDividerHeight() -> CGFloat {
-        let height = KMDesignToken.shared.height(withToken: KMHorizDividerTokenKey)
-        if let _height = Float(height) {
-            return CGFloat(_height)
-        }
+ 
         return 0
     }
     func horDividerColor() -> NSColor {
-        return KMDesignToken.shared.fill(withToken: KMHorizDividerTokenKey)
+        return NSColor.clear
     }
     
     func verDividerWidth() -> CGFloat {
-        let width = KMDesignToken.shared.width(withToken: KMVertDividerTokenKey)
-        if let _width = Float(width) {
-            return CGFloat(_width)
-        }
+        
         return 0
     }
     func verDividerColor() -> NSColor {
-        return KMDesignToken.shared.fill(withToken: KMVertDividerTokenKey)
+        return NSColor.clear
     }
 }

+ 2 - 14
PDF Office/PDF Master/Class/Common/Designs/KMDesignStepperView.swift

@@ -74,7 +74,7 @@ class KMDesignStepperView: KMDesignBaseView {
         self._stepperView?.rightHoverAction = { [unowned self] button, action in
             if (action == .enter) {
                 button.wantsLayer = true
-                button.layer?.backgroundColor = KMDesignToken.shared.fill(withToken: self.find_arrowBgToken(state: .Hov)).cgColor
+               
             } else if (action == .exit) {
                 button.wantsLayer = true
                 button.layer?.backgroundColor = .clear
@@ -85,19 +85,7 @@ class KMDesignStepperView: KMDesignBaseView {
     override func initDefaultValue() {
         super.initDefaultValue()
         
-        self._stepperView?.backgroundView.wantsLayer = true
-        let model = KMDesignToken.shared.tokenUsesModel(withToken: self.find_bgToken(state: .Norm))
-        if let data = model.height as? String, let _height = Float(data) {
-            self.height = CGFloat(_height)
-        }
-        if let data = model.paddingLeft as? String, let _paddingLeft = Float(data) {
-            self._stepperView?.contentOffset = CGFloat(_paddingLeft)
-        }
-        self._stepperView?.itemWidth = 20
-        let arrowBgModel = KMDesignToken.shared.tokenUsesModel(withToken: self.find_arrowBgToken(state: .Norm))
-        if let data = arrowBgModel.height as? String, let _height = Float(data) {
-            self._stepperView?.itemHeight = CGFloat(_height)
-        }
+      
 
         self._stepperView?.horizontalDividerHeight = self.horDividerHeight()
         self._stepperView?.horizontalDividerColor = self.horDividerColor()

+ 1 - 8
PDF Office/PDF Master/Class/Common/Designs/KMDesignTextField.swift

@@ -100,14 +100,7 @@ class KMDesignTextField: KMDesignBaseView {
             }
         }
         
-        let model = KMDesignToken.shared.tokenUsesModel(withToken: self.find_bgToken(state: .Norm))
-        if let data = model.height as? String, let _height = Float(data) {
-            self.height = CGFloat(_height)
-        }
-        if let data = model.horizontalPadding as? String, let _vSpace = Float(data) {
-            self.horizontalPadding = CGFloat(_vSpace)
-            self.textField?.offset = self.horizontalPadding
-        }
+        
         
         self.state = .Norm
     }

+ 16 - 0
PDF Office/PDF Master/Class/Common/KMCommonEnum.swift

@@ -93,3 +93,19 @@ enum KMInsertPosition {
     case before
     case after
 }
+
+@objc enum KMDesignTokenState : Int {
+    case Norm = 0
+    case Hov
+    case Sel
+    case Act
+    case Disabled
+    case Custom
+    case None
+    case Change
+    case Focus
+    case Error_def
+    case Error_focus
+    case Checked
+    case Checked_dis
+}

+ 0 - 24
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Action.swift

@@ -1,24 +0,0 @@
-//
-//  KMDesignToken+Action.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/2/5.
-//
-
-import Foundation
-
-@objc enum KMDesignTokenState : Int {
-    case Norm = 0
-    case Hov
-    case Sel
-    case Act
-    case Disabled
-    case Custom
-    case None
-    case Change
-    case Focus
-    case Error_def
-    case Error_focus
-    case Checked
-    case Checked_dis
-}

+ 0 - 34
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Border.swift

@@ -1,34 +0,0 @@
-//
-//  KMDesignToken+Border.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderNodeUsesAction(control: Any, node: Any) -> Bool {
-        
-        return false
-    }
-
-    func border(withToken token: String) -> NSColor {
-        let model = tokenUsesModel(withToken: token)
-//        return model.border as! KMBorderValue
-        var borderColor: NSColor!
-        if (model.border as! String) == "" {
-            borderColor = .clear
-        } else {
-            let border = model.border as! String
-            if border.contains(",") {
-                let keys = border.split(separator: ",")
-                borderColor = NSColor.km_init(hex: String(keys[0]), alpha: Float(String(keys[1]).stringToCGFloat()))
-            } else {
-                borderColor = NSColor.km_init(hex: border)
-            }
-        }
-        return borderColor
-
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderBottom.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderBottom.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderBottom(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderBottom as! String
-    }
-}

+ 0 - 40
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderColor.swift

@@ -1,40 +0,0 @@
-//
-//  KMDesignToken+BorderColor.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderColorNodeUsesAction(control: Any, node: Any) -> Bool {
-        let borderColor = NSColor.km_init(hex: (node as! String))
-        if (control as AnyObject).isKind(of: NSView.self) {
-            (control as! NSView).wantsLayer = true
-            (control as! NSView).layer?.borderColor = borderColor.cgColor
-            return true
-        } else if (control as AnyObject).isKind(of: NSBox.self) {
-            (control as! NSBox).fillColor = borderColor
-            return true
-        }
-        return false
-    }
-
-    func borderColor(withToken token: String) -> NSColor {
-        let model = tokenUsesModel(withToken: token)
-        var borderColor: NSColor!
-        if (model.borderColor as! String) == "" {
-            borderColor = .clear
-        } else {
-            let border = model.borderColor as! String
-            if border.contains(",") {
-                let keys = border.split(separator: ",")
-                borderColor = NSColor.km_init(hex: String(keys[0]), alpha: Float(String(keys[1]).stringToCGFloat()))
-            } else {
-                borderColor = NSColor.km_init(hex: border)
-            }
-        }
-        return borderColor
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderLeft.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderLeft.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderLeft(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderLeft as! String
-    }
-}

+ 0 - 28
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadius.swift

@@ -1,28 +0,0 @@
-//
-//  KMDesignToken+BorderRadius.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderRadiusNodeUsesAction(control: Any, node: Any) -> Bool {
-        let borderRadius = (node as! String).stringToCGFloat()
-        if (control as AnyObject).isKind(of: NSView.self) {
-            (control as! NSView).wantsLayer = true
-            (control as! NSView).layer?.cornerRadius = borderRadius
-            return true
-        } else if (control as AnyObject).isKind(of: NSBox.self) {
-            (control as! NSBox).cornerRadius = borderRadius
-            return true
-        }
-        return false
-    }
-
-    func borderRadius(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderRadius as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusBottomLeft.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderRadiusBottomLeft.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderRadiusBottomLeft(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderRadiusBottomLeft as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusBottomRight.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderRadiusBottomRight.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderRadiusBottomRight(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderRadiusBottomRight as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusTopLeft.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderRadiusTopLeft.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderRadiusTopLeft(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderRadiusTopLeft as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRadiusTopRight.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderRadiusTopRight.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderRadiusTopRight(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderRadiusTopRight as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderRight.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderRight.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderRight(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderRight as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderTop.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderTop.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderTop(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderTop as! String
-    }
-}

+ 0 - 28
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidth.swift

@@ -1,28 +0,0 @@
-//
-//  KMDesignToken+BorderWidth.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderWidthNodeUsesAction(control: Any, node: Any) -> Bool {
-        let borderWidth = (node as! String).stringToCGFloat()
-        if (control as AnyObject).isKind(of: NSView.self) {
-            (control as! NSView).wantsLayer = true
-            (control as! NSView).layer?.borderWidth = borderWidth
-            return true
-        } else if (control as AnyObject).isKind(of: NSBox.self) {
-            (control as! NSBox).borderWidth = borderWidth
-            return true
-        }
-        return false
-    }
-
-    func borderWidth(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderWidth as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthBottom.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderWidthBottom.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderWidthBottom(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderWidthBottom as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthLeft.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderWidthLeft.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderWidthLeft(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderWidthLeft as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthRight.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderWidthRight.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderWidthRight(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderWidthRight as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BorderWidthTop.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+BorderWidthTop.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func borderWidthTop(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.borderWidthTop as! String
-    }
-}

+ 0 - 42
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+BoxShadow.swift

@@ -1,42 +0,0 @@
-//
-//  KMDesignToken+BoxShadow.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func boxShadowNodeUsesAction(control: Any, node: Any) -> Bool {
-        
-        return false
-    }
-
-    func boxShadow(withToken token: String) -> KMBoxShadowValue {
-        let model = tokenUsesModel(withToken: token)
-        let boxShadow = model.boxShadow as! [String : String]
-        let value = KMBoxShadowValue.init()
-        value.x = boxShadow["x"]!
-        value.y = boxShadow["y"]!
-        value.blur = boxShadow["blur"]!
-        value.spread = boxShadow["spread"]!
-        
-        var boxShadowColor: NSColor!
-        if (boxShadow["color"]!) == "" {
-            boxShadowColor = .clear
-        } else {
-            let boxShadow = boxShadow["color"]!
-            if boxShadow.contains(",") {
-                let keys = boxShadow.split(separator: ",")
-                boxShadowColor = NSColor.km_init(hex: String(keys[0]), alpha: Float(String(keys[1]).stringToCGFloat()))
-            } else {
-                boxShadowColor = NSColor.km_init(hex: boxShadow)
-            }
-        }
-        value.color = boxShadowColor
-
-        value.type = boxShadow["type"]!
-        return value as! KMBoxShadowValue
-    }
-}

+ 0 - 40
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Fill.swift

@@ -1,40 +0,0 @@
-//
-//  KMDesignToken+Fill.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func fillNodeUsesAction(control: Any, node: Any) -> Bool {
-        let fillColor = NSColor.km_init(hex: (node as! String))
-        if (control as AnyObject).isKind(of: NSView.self) {
-            (control as! NSView).wantsLayer = true
-            (control as! NSView).layer?.backgroundColor = fillColor.cgColor
-            return true
-        } else if (control as AnyObject).isKind(of: NSBox.self) {
-            (control as! NSBox).fillColor = fillColor
-            return true
-        }
-        return false
-    }
-
-    func fill(withToken token: String) -> NSColor {
-        let model = tokenUsesModel(withToken: token)
-        var fillColor: NSColor!
-        if (model.fill as! String) == "" {
-            fillColor = .clear
-        } else {
-            let fill = model.fill as! String
-            if fill.contains(",") {
-                let keys = fill.split(separator: ",")
-                fillColor = NSColor.km_init(hex: String(keys[0]), alpha: Float(String(keys[1]).stringToCGFloat()))
-            } else {
-                fillColor = NSColor.km_init(hex: fill)
-            }
-        }
-        return fillColor
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Height.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+Height.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func height(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.height as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+HorizontalPadding.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+HorizontalPadding.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func horizontalPadding(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.horizontalPadding as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+ItemSpacing.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+ItemSpacing.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func itemSpacing(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.itemSpacing as! String
-    }
-}

+ 0 - 29
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Notification.swift

@@ -1,29 +0,0 @@
-//
-//  KMDesignToken+Notification.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/2/9.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func notificationDesignToken(bgToken: String = "", textToken: String = "", heightConstraint: NSLayoutConstraint = NSLayoutConstraint(), control: Any = "", state: KMDesignTokenState = .Norm) -> Void {
-        var height: String?
-        var spacing: String?
-        var itemSpacing: String?
-        var bgFill: NSColor?
-        var boxShadow: KMBoxShadowValue?
-        var textTypography: KMTypographyValue?
-        var textFill: NSColor?
-        var titleTextTypography: KMTypographyValue?
-        var titleTextFill: NSColor?
-        var descTextTypography: KMTypographyValue?
-        var descTextFill: NSColor?
-        var bodyItemSpacing: String?
-        
-        if bgToken != "" {
-            
-        }
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingBottom.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+PaddingBottom.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func paddingBottom(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.paddingBottom as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingLeft.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+PaddingLeft.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func paddingLeft(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.paddingLeft as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingRight.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+PaddingRight.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func paddingRight(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.paddingRight as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+PaddingTop.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+PaddingTop.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func paddingTop(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.paddingTop as! String
-    }
-}

+ 0 - 25
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Sizing.swift

@@ -1,25 +0,0 @@
-//
-//  KMDesignToken+Sizing.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func sizingNodeUsesAction(control: Any, node: Any) -> Bool {
-        let sizing = node as! String
-        return false
-    }
-    
-/**
-    在需要了解具体属性的值的时候,调用此方法
-     - parameter token: 传入获取的Design Token
-     - returns: sizing 值
-*/
-    func sizing(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.sizing as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Spacing.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+Spacing.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func spacing(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.spacing as! String
-    }
-}

+ 0 - 27
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Typography.swift

@@ -1,27 +0,0 @@
-//
-//  KMDesignToken+Typography.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func typographyNodeUsesAction(control: Any, node: Any) -> Bool {
-        let typography = node
-
-        return false
-    }
-
-    func typography(withToken token: String) -> KMTypographyValue {
-        let model = tokenUsesModel(withToken: token)
-        let typography = model.typography as! [String : String]
-        let value = KMTypographyValue.init()
-        value.lineHeight = typography["lineHeight"]!
-        value.fontWeight = typography["fontWeight"]!
-        value.fontFamily = typography["fontFamily"]!
-        value.fontSize = typography["fontSize"]!
-        return value
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+VerticalPadding.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+VerticalPadding.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func verticalPadding(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.verticalPadding as! String
-    }
-}

+ 0 - 15
PDF Office/PDF Master/Class/ComponentLibrary/Category/KMDesignToken+Width.swift

@@ -1,15 +0,0 @@
-//
-//  KMDesignToken+Width.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2023/1/29.
-//
-
-import Foundation
-
-extension KMDesignToken {
-    func width(withToken token: String) -> String {
-        let model = tokenUsesModel(withToken: token)
-        return model.width as! String
-    }
-}

+ 0 - 7
PDF Office/PDF Master/Class/ComponentLibrary/JSON/$metadata.json

@@ -1,7 +0,0 @@
-{
-  "tokenSetOrder": [
-    "global",
-    "alias-light",
-    "comp-light"
-  ]
-}

+ 0 - 598
PDF Office/PDF Master/Class/ComponentLibrary/JSON/$themes.json

@@ -1,598 +0,0 @@
-[
-  {
-    "id": "7f7f3ec22239b74dfde0162d53b0c7378b905112",
-    "name": "Light",
-    "selectedTokenSets": {
-      "global": "source",
-      "alias-light": "enabled",
-      "comp-light": "enabled"
-    },
-    "$figmaStyleReferences": {
-      "color.font.primary": "S:59301949fdf45104989b9de2754bb3750d2cea1b,",
-      "color.font.secondary": "S:a4625d0be4f86ca0ba4c147d23c085cf57f5dd9c,",
-      "color.font.thirdry": "S:900a983b14c179fdff696c0bcb8632a319c1423c,",
-      "color.font.disabled": "S:61587725ba3fa96372e08da162c2d5430024f179,",
-      "color.font.anti": "S:e31dcfe15315c6baa22336b0ff032bb0a0260fae,",
-      "color.btn_bg_accent.default": "S:5016011c4f8456d5a934a8f68e613498df1b8184,",
-      "color.btn_bg_accent.hover": "S:252144b7189be226c694565826f729a96c6ec697,",
-      "color.btn_bg_accent.active": "S:4b7895a4bca57f7fb72ba12e4a51cd89fbd305f0,",
-      "color.btn_bg_accent.disabled": "S:68a0ebcc8447b1ff0c5c3e1b6bd57f6d8c570f5d,",
-      "color.fill.anti": "S:a43e2cac8bd784e6c2d59ace493987ab879f91d0,",
-      "color.fill.hover": "S:f0f759f20f677a769548f74d296c04ba6f45192b,",
-      "color.fill.active": "S:f25dd8333e03b6d9eda312e2b170632c357081dc,",
-      "color.fill.disabled": "S:7170244f025c2acaf64070741ff04ddbb1c639d9,",
-      "color.error.default": "S:bb727d41b24cc2ded2d6379071d769f88b7e1532,",
-      "color.error.hover": "S:3c6c12cb2cd639b347af33b3944da48dde20b0ea,",
-      "color.error.active": "S:f2b36a9714357365d56afb541de63345c29f822d,",
-      "color.error.disabled": "S:a8aedfcf5a419ca2f24753b51b53bef237301907,",
-      "color.warning.default": "S:eaa3920dc0223b220384d40c388f0a796846d03a,",
-      "color.warning.hover": "S:6b56cd1ff82e9a69e927bcd82cd21e4667d9bb3c,",
-      "color.warning.active": "S:1f4098771dbaf488fedaeda312a90945b25cadf4,",
-      "color.warning.disabled": "S:e74777b8e3aafa94411bf8d4ea5ae265c71e0bb1,",
-      "color.success.default": "S:e099112b48e8ca7dc53267ca6ecbe59335846bf9,",
-      "color.success.hover": "S:dcd1283253b5fbd77e16637e11ffad454576b47c,",
-      "color.success.active": "S:b1757a7683af3c6e12c1a31900b7aaa19ae7eede,",
-      "color.success.disabled": "S:8443589d8256af80f99cc09cf9e27663d164f250,",
-      "color.btn_bg_brand.default": "S:3ed54810d778532702921f24fa2cfc93b7a630cc,",
-      "color.btn_bg_brand.hover": "S:a689e194b2de0d41793c5b11feb46467a923c555,",
-      "color.btn_bg_brand.active": "S:ae64da8642483211ed5c4c811c7607496dd85264,",
-      "color.btn_bg_brand.disabled": "S:f36bddbe1a11aba8416647345469c8a083d4f01a,",
-      "color.component_border": "S:732bd52b074a9918ecff55b3694ad411488130cd,",
-      "color.stroke": "S:d4d9665420eae35ba059b70ddce3622c9a13db5e,",
-      "color.btn_bg_normal.default": "S:9d3ccbc16483952b729563cbcdbdd25bd499e1af,",
-      "color.btn_bg_normal.hover": "S:5f1cd687ff905ebd8c1bfe4bcf1d62d16b375437,",
-      "color.btn_bg_normal.active": "S:b16b89780f7acc55c4433deaab4ea0a7e581a68d,",
-      "color.btn_bg_normal.disabled": "S:e77a7a6aa6a4cb3a0419b9e594bebb28262db36d,",
-      "color.input.error.default": "S:efdd98dc21506722b21c92068c9906de302bb048,",
-      "color.input.error.hover": "S:7bde8b49b2401f8ae59026a660215b2944883984,",
-      "color.input.normal.default": "S:e82eb54400ab49a543ae6fd24e54f71df70ace70,",
-      "color.input.normal.hover": "S:a4c2d9c69330e745399e8e7c8705d764ef4401d2,",
-      "color.input.normal.focus": "S:eab99981b01237d814b5667d0c101b2209765919,",
-      "color.input.normal.disabled": "S:d4c43d7aa050d3c0d456e7fc28e8789beb2b2ff2,",
-      "color.input.error.focus": "S:825b5b77722cb5cabf340d6f61f7a3a34feef25a,",
-      "color.accent.blue1": "S:0f71b959a0425193e2428b952ca15fdea09182ba,",
-      "color.accent.blue2": "S:4b8fd0c786c6a0a23e07bfae3f11a84ac6d32c93,",
-      "color.accent.blue3": "S:31829483b3f9d148a3fd97f292c87ce0733c82b5,",
-      "color.accent.blue4": "S:7fa8a690cf3a924de4366d66d10d8baaee0c2955,",
-      "color.accent.blue5": "S:6d9d5bc97edf71466d5947c4fd6b19168922a773,",
-      "color.accent.blue6": "S:b35c4e773335a0259509f95ae1843e11d7e7c1b6,",
-      "color.accent.blue7": "S:7e9bf456e1d154ff91cea56bd8b646ad37df706b,",
-      "color.accent.blue8": "S:a8845e9e7a7f85c233b276841c1aa0f8c9583ebe,",
-      "color.accent.blue9": "S:be44085f8d8491adff007b057d420e551c82f048,",
-      "color.accent.blue10": "S:bfa7a90837222bec468150302f08cc055289bc7a,",
-      "color.neutral.gray1": "S:f9bad740a859a68d91dacb940813a259b437f4df,",
-      "color.neutral.gray2": "S:8a2a0ed5b64e0768f41e1e7f0100a54dd637f293,",
-      "color.neutral.gray3": "S:4e309cb31e96a0c576a6582f7763b74c63c58c82,",
-      "color.neutral.gray4": "S:6423789808824cb29385634eb953f0990ca22e81,",
-      "color.neutral.gray5": "S:92535ad2d0a8252a702257b4d716665268fb51e0,",
-      "color.neutral.gray6": "S:1a57e022787afa8b0595207b2fdec1ddb8d96b91,",
-      "color.neutral.gray7": "S:f97f90925b6672391cdea381df8ccac2247b9b68,",
-      "color.neutral.gray8": "S:fdc9c6937f2ed208d502c30fddaaa0428d97a2a8,",
-      "color.neutral.gray9": "S:a8cfc2ea2f751f64e130fc1b971b4b24979db7c6,",
-      "color.neutral.gray10": "S:9a94dca8b7ea93f637e425cd77760c116d754793,",
-      "color.neutral.gray11": "S:6abc6481748827b9da846ab817e3e19672cb6546,",
-      "color.brand.navyblue1": "S:2c0b303dcb992dcb2cd72bac2b6924bdbd5a6f2d,",
-      "color.brand.navyblue2": "S:85afe1dc901bf118b415ce6a6295fe2c93f0b270,",
-      "color.brand.navyblue3": "S:980bfe3872ae7cf6a2238460abc751371f778607,",
-      "color.brand.navyblue4": "S:60ba7a1ef39966c136f5501866642756b6700668,",
-      "color.brand.navyblue5": "S:c5be146559ffbb7ff7f773ccd34e547ae0825c66,",
-      "color.brand.navyblue6": "S:3ff472d710f7f22f83047c63c2eb2a27264638f4,",
-      "color.brand.navyblue7": "S:84bd46570ea5d08103fd0cbd2c6ef3173857e023,",
-      "color.brand.navyblue8": "S:c5e7e198e5c1fbb543b77d3de26cb6b4a5ea9aad,",
-      "color.brand.navyblue9": "S:5720e455fc65a88f96a248f8c5091d20c385087b,",
-      "color.brand.navyblue10": "S:1319c08d47f3af3bce3cf254961a757da64a8408,",
-      "color.functional.success.green1": "S:c878cb773ae79cb553672d84343565bffa951b64,",
-      "color.functional.success.green2": "S:1fe4a20d1b989795865b9c669ba129b030d52143,",
-      "color.functional.success.green3": "S:9d6d98e29c3c88e94a7d61c7d26d8d0b447ad61f,",
-      "color.functional.success.green4": "S:6935e1ae38e6c6cb83d226eed99fff2edb6b59ca,",
-      "color.functional.success.green5": "S:dda9fcb878503785319080c48ab0bf44689c24f4,",
-      "color.functional.success.green6": "S:4032304a2e20ad8c9a626c3fdfd08762aca25694,",
-      "color.functional.success.green7": "S:b98dada169b068c04f630c848a5d9f6c5a8abe4e,",
-      "color.functional.success.green8": "S:7d59fe792c7673e177f33da5ef34ea4e5d0899bb,",
-      "color.functional.success.green9": "S:35dceae38438085ab2873603333a7d5d147df6f2,",
-      "color.functional.success.green10": "S:7fbd66f443fba0578b284a780893eec97bdb5431,",
-      "color.gold.1": "S:ed15a710bd010290ac46edc22ab6c09ef344874b,",
-      "color.gold.2": "S:c6f005cbacb9a27dce47d0160244011dc0abd9d8,",
-      "color.gold.3": "S:24f2d979e20fa7050b62c41f94b3e934ab2ee212,",
-      "color.gold.4": "S:6157c4d4295e6f2323260ded5914c23908e6f497,",
-      "color.gold.5": "S:e706214e6bea4aea07647c1b5bc538b857a7c7dc,",
-      "color.gold.6": "S:548ab0210095cfd52f3c9d40d03c844fb36fb95e,",
-      "color.gold.7": "S:6cda11b9675b1755438f84efcff1f29edbd1aa9c,",
-      "color.gold.8": "S:0a5fee35ab263d841c9d51b2b488743c8a8ef64c,",
-      "color.gold.9": "S:8a540b0ab6f4d9d1fc22294d120c66da39ee1e6d,",
-      "color.gold.10": "S:5a4771c97c0ae8db753dae458b3a2e39220c56d4,",
-      "color.red.1": "S:37fdeb75f2a45bbf2f255584ae3b0067e6f116ea,",
-      "color.red.2": "S:fba534a45235f7040606bf2774c929964959c253,",
-      "color.red.3": "S:c3106617d624d62536747c0c624313e05e2e8ff1,",
-      "color.red.4": "S:cdf3b49da9a5f91679730ef9653a1a881e973fb8,",
-      "color.red.5": "S:0390589cc93a353f45f15662ddf1cb70b3d668b4,",
-      "color.red.6": "S:5b0d7a0dfdf5f6ea0a0061499981a74029547aeb,",
-      "color.red.7": "S:bf8f80016b7454a380718ad18de58ead61be5078,",
-      "color.red.8": "S:7a785f650675a1d4030c3a31f6a428ce09228562,",
-      "color.red.9": "S:572b1def612f7069ae14b409a31696880475cf13,",
-      "color.red.10": "S:5d9b5ea94280ee5f929eb0d1dc6f016bca79fa88,",
-      "color.orange.1": "S:9fe61b4c5affc5d36c70ede486ae01172942e218,",
-      "color.orange.2": "S:025adc8b4a57fa78ae443ea08405ccce5b0f5ffa,",
-      "color.orange.3": "S:415a6f91114ca38391c5e07140988cec932dcea8,",
-      "color.orange.4": "S:5dff6e823966909c05de0b822c47d6858610061e,",
-      "color.orange.5": "S:c5b39197aa4e42fe4ca7211deffdf7065efe687a,",
-      "color.orange.6": "S:2b98ecfe31f3bbee3ced3e79c4dc6aaefe019220,",
-      "color.orange.7": "S:cfd5613dc9977c25fa2bbe743ad639fa051ca418,",
-      "color.orange.8": "S:5a45e1a04d302299131fbefc5823e0e870014e30,",
-      "color.orange.9": "S:a945fc0bf1d9dd69a79cd0835ceb359058006a59,",
-      "color.orange.10": "S:8954eca3c0138cf275a6703cd5558f9610271dc8,",
-      "color.cyan.1": "S:d119f4f2fef318e973f8984ed6294ee960fae6ef,",
-      "color.cyan.2": "S:b9b65707792db5d035127aa2a5e9be22b9b7bbec,",
-      "color.cyan.3": "S:e62e46c58cf05f4fad2a40ce1c19054ee17d9f40,",
-      "color.cyan.4": "S:0391fd75221be740be1908d30a8ec4f05d6111f2,",
-      "color.cyan.5": "S:eeccc6a8c5091a2a31ce3f73081234b18bdf4a73,",
-      "color.cyan.6": "S:9ee7a5f657d284dca65022fa8786443b8a4d6595,",
-      "color.cyan.7": "S:43705265a38488d0b1c62560ed8df2f0f98c827c,",
-      "color.cyan.8": "S:ffce6c41279c31cbe780fa8f1e4221a92ded6324,",
-      "color.cyan.9": "S:c0c17b51fc222fce03854fd24be991897734d328,",
-      "color.cyan.10": "S:933990b30460051dee09542d8bc1b9b79f49ffd0,",
-      "color.purple.1": "S:88db0fad8e113dd8d4b7b87e348ab9f3c336997a,",
-      "color.purple.2": "S:a581436e302ff7d69e3c52a7bd4c585386e12ee9,",
-      "color.purple.3": "S:fb54a92ea7ef995b9ec875a5fb8a7f5e17f5e3ea,",
-      "color.purple.4": "S:f00a13a80704227d503124d80e4723821770b9f5,",
-      "color.purple.5": "S:7e4ed7cc2df9aa6fa07c3ae61bd54e39de35f015,",
-      "color.purple.6": "S:29960ca02b53c955fb941ace1bc1242298a28b40,",
-      "color.purple.7": "S:8a1f690c2f06373afb1511642c521a8c7301404a,",
-      "color.purple.8": "S:28770bbc19b8068a62e4cd910fe63f3234fa30d5,",
-      "color.purple.9": "S:6ee7bd134bfa7f1bfec50b68cc0a85351df4bedb,",
-      "color.purple.10": "S:fc660186a85c47d8a78a72322047880f5c25e020,",
-      "color.pink.1": "S:455635f8c86bc6c6407c52182e57bdda0e921b41,",
-      "color.pink.2": "S:8b65edaa7c877f542f7de9137d7f8548ab1c4646,",
-      "color.pink.3": "S:c73aa6324b2dbab1710aa035f588294cf6def6d5,",
-      "color.pink.4": "S:fe498e21675efa5178946644b880034f59de2a2e,",
-      "color.pink.5": "S:f1a185b9267da3550a78a7ade6daae5428acaf63,",
-      "color.pink.6": "S:3bd13e7912f2e75b327e30a3754d0495a8159c07,",
-      "color.pink.7": "S:b191be0283ba1d5ab8753bd09fc00958d4989d51,",
-      "color.pink.8": "S:8925457ca17fca1ecda7dc263a371cc83bf558d8,",
-      "color.pink.9": "S:75e4051fd929c921d26276869b232b40070aebcf,",
-      "color.pink.10": "S:712157a9efc4b8e55656bb0c5c9c5c3d01fd69b4,",
-      "input.color.icon-disabled": "S:935c44c39aa52f47fdc274318c154c562f46b2e0,",
-      "list.bookmark.bg-hov": "S:baf43be1716639043fb5857c96d03a3b5bb9610e,",
-      "list.bookmark.border": "S:fcd1a5dd0586847396b7ed5bede7042bdd91d8b6,",
-      "list.bookmark.bg-sel": "S:35318e31b5b45423a5db7fa72f1247f2a65120ef,",
-      "text.body.xs": "S:f443f7ff5c8d65723bd9a7ad2fe06624d535748a,",
-      "text.body.s": "S:96d25a4c5685204cb121f94e06df25fca02439fe,",
-      "text.title.s": "S:779ca9b62e2c82c3d7a9eeca0ac698b6b5208b6e,",
-      "text.title.m": "S:8568da6726d929164fc7969abc9de2cbe8db88d2,",
-      "text.title.l": "S:6d37644bd6d6ac463da9c17068ddc1367b838a8f,",
-      "text.title.xl": "S:00932539e2c1210ce193ae24045445c4083b0677,",
-      "text.body.m": "S:bb77238b0a38f39a48bae5116c5b951d880fb69f,",
-      "text.body.l": "S:6b01933aaaf073db46309b8991bf6c783472eb08,",
-      "progress.shadow": "S:b931779468699a74dd7dcdaed3fe9c6c88cbc458,",
-      "general.color.text.home-title": "S:f9ace57da1cb33ab6a76acf7493650eac00ee4b1,",
-      "btn.color.cta.icon-color": "S:38a868109df6f1521f579bbaddffb237edaecb1a,",
-      "btn.color.brand.icon-color": "S:ce2a9a9d0443db35ec48840fa0425436f3c41d4c,",
-      "btn.color.outline.icon-norm": "S:1448f76dbbc968806852b41374c7fd1e6081ae4f,",
-      "btn.color.icon-fill.icon-norm": "S:99d24a645a921f7cec31285aa8cc5bf3a78e1e24,",
-      "btn.color.icon-outline.icon-norm": "S:acea9338412cacd6ab5e14f7415c7b313d1cac49,",
-      "btn.color.outline.icon-hov": "S:34f8ba148981ee059e4b070b855e2463a95e9fef,",
-      "btn.color.icon-fill.icon-hov": "S:11fc2c91a0384121b08b2b44ba3640deb16e5609,",
-      "btn.color.icon-outline.icon-hov": "S:a482ccd1ebaf31c5883a0f799d576a05d653528d,",
-      "btn.color.outline.icon-act": "S:2b70c502825d879ef36563cc7393dbf972baa607,",
-      "btn.color.icon-fill.icon-act": "S:d0f3c8622c627c487593ad33673268a5315296b4,",
-      "btn.color.icon-outline.icon-act": "S:f6e68d79499fc1f8b1bc6896c75f979f9fb9ba69,",
-      "btn.color.outline.icon-disabled": "S:62a76bcbd003dc350ec0e2ed892470409e4a31f1,",
-      "btn.color.icon-fill.icon-disabled": "S:b2488c3f66ed030e6de9c3b45c1973d2126bec01,",
-      "btn.color.icon-outline.icon-disabled": "S:80d496330cb5b6e3db1017e0dbe677fd57d1051f,",
-      "btn.color.cta.icon-disabled": "S:fe9736756b726db06145657df2ea3716736adb47,",
-      "btn.color.brand.icon-disabled": "S:f08f7cb5e36d0af31ed585e5e8bfa8523d29472f,",
-      "multi-tab.color.icon-color.close": "S:1cd7ae404d26b7021d3b55a32fab1fb7b1f26b31,",
-      "multi-tab.color.icon-color.home-sel": "S:934615de1c3749db67b82c14d1d9295e7672bcf0,",
-      "multi-tab.color.icon-color.home-unsel": "S:cd2819da1d1ada1492cc186a05c19d1b4edc87c9,",
-      "checkbox.color.icon-unsel.bg-border": "S:e2d3dcd3026a4be34e22bb9ea257e8bde4756929,",
-      "radio.color.icon-unsel.bg-border": "S:7a89f04b70be343caab42460e1c44d13bf44e8b8,",
-      "checkbox.color.icon-unsel.bg-border-hov": "S:a775c47d499e1e5aac41b088782bd8a733af89a4,",
-      "radio.color.icon-unsel.bg-border-hov": "S:fbbfecf5a0ee6273bd6ea24a574e1306ed29d9dd,",
-      "checkbox.color.icon-unsel.bg-disabled": "S:e21e478a18f2e65323998a96f2074d038d3e19c7,",
-      "radio.color.icon-unsel.bg-disabled": "S:b49b07bfb3a7030ef45172905fc19e52233e8eb9,",
-      "checkbox.color.icon-sel.bg-disabled": "S:7f5b61bce714de3d18ece12446e1a83dfec2df3a,",
-      "radio.color.icon-sel.bg-disabled": "S:dfde0867609e06655d6abfb5cc87aadc67e3bd67,",
-      "checkbox.color.icon-sel.bg-border": "S:542f29f02e0ec121187878ff978189aa1c92e309,",
-      "radio.color.icon-sel.border-disabled": "S:7d8b406349cb725bd58662d8a909d1f83d107761,",
-      "checkbox.color.icon-sel.bg-sel": "S:35cc7b45d24a4c53e6a4d1d2d53b8aa698f29b69,",
-      "radio.color.icon-sel.sel": "S:ed09465159abc3a709a628656fd53dc33dc33da0,",
-      "checkbox.color.icon-sel.body-sel": "S:d8f5bd75fa60a47dff0d7e8788f6ba8e22110689,",
-      "checkbox.color.icon-sel.body-disabled": "S:e190e3f253a2d30fd6064e1da016411abcb7e03b,",
-      "input.color.icon-close": "S:1cfe1f847361970f5e717bbaf0828c2fa1a826d1,",
-      "select.color.icon-norm": "S:f4d6d6c6c4c2402a784dda96cc45cb845dab93dd,",
-      "select.color.icon-focus": "S:224e512fc3a2257411fb4be5a1589f52812c1b10,",
-      "stepper.arrow.color.icon-norm": "S:96b2aef68b6feb570fb291aacd6960b348bd70e8,",
-      "stepper.arrow.color.icon-focus": "S:03750de97d841bfac6f596987aa43d3fbae4db5a,",
-      "stepper.arrow.color.icon-disabled": "S:251b53df9623ea296d1cc7931b8c6c426b4f1a5e,",
-      "stepper.color.icon-norm": "S:bd9d1725641f7fcddd620f7ecbfe2877b6f778c1,",
-      "stepper.color.icon-disabled": "S:e4ba89827946aca9f0fab330161c4666554a4115,",
-      "select.color.icon-disabled": "S:3defb2a5eee32ec95962c45f60c497a268e25f3c,",
-      "general.color.icon.propertybar.brand": "S:7d8a191aebaaeeea60798b0b67b8c514ac0382dc,",
-      "general.color.icon.home.gray-sel": "S:fe235651034df6cab5aed39a7f6d3ea3f09df2ce,",
-      "general.color.icon.tips.notification.warning": "S:da2b8419c5be198b61525a78b9bcc94ded7d35b8,",
-      "general.color.icon.tips.notification.info": "S:fbac480af8685a0e316502b137f620ddaf0484c4,",
-      "general.color.icon.tips.notification.success": "S:5ba9439231df7c4e94e70af9abf5b6de7ec0ad77,",
-      "general.color.icon.tips.notification.error": "S:eb0805fa6dbe0c4c6cca394fd6d3e3180ed35a4b,",
-      "general.color.icon.tips.notification.gray-anti": "S:95b30a46484123a5e5b1e11701816a5817e9ae17,",
-      "general.color.icon.tips.progress.gray-close": "S:60fba0d20a7e62c46ba69992c7696b0c96bef171,",
-      "general.color.icon.tips.alert.warning": "S:68cebcb0b982bf221d4a2bcc71ce6b8001d394d9,",
-      "general.color.icon.tips.alert.info": "S:66c6c6f8fb1c81882ace2920a3b6948b56edd6d2,",
-      "general.color.icon.tips.alert.error": "S:ca886b8b9df2b640e221835f1bac0d6545901ce8,",
-      "general.color.icon.tips.alert.gray-anti": "S:6cdcf0cfd91f8a0a2fcebecd26c4b447fb034571,",
-      "general.color.icon.input": "S:8d73de189e76b2fff4bae87976c042edad587857,",
-      "badge.count.text-color": "S:5168e727be0453b23dd1b372e9154bce16680fc6,",
-      "btn.outline.border-color": "S:ba13ea631defe50e21f775b169f2977f5c5c7ca3,",
-      "btn.outline.hov.bg-color": "S:7212a4ebb3b66a08e20b8f9137dc74e1f70d3522,",
-      "btn.outline.act.bg-color": "S:7147e521c204d9def37ad47a01d23a9a8db177b0,",
-      "btn.icon-outline.hov.bg-color": "S:5db6555659bf8e1bdb2a530a4381b07f2757c425,",
-      "btn.icon-outline.border-color": "S:507224b6014a7d8ebee89533a8961151f04f5fc2,",
-      "btn.icon-outline.act.bg-color": "S:be62c474dfe7f22537cdd7aeb95c14fd573f1b91,",
-      "btn.icon-outline.disabled.bg-color": "S:63b54971bf1fd9b8379ea2f7291a51c982378857,",
-      "card.has-desc.hov.border-color": "S:bca602735d82d6112a33f93d5f06a6bdabd81874,",
-      "card.has-desc.sel.border-color": "S:78564ec3142c6c040d33e50a0c472c21b459a395,",
-      "card.has-desc.sel.bg-color": "S:6bbbac3a09e818106cb338eb26ee343a2955f491,",
-      "table.list.sel.bg-color": "S:9561528f51811f931fe5b1d3faccb97bf55fbae7,",
-      "card.has-desc.move.border-color": "S:de5a160675898a6054ac658602181f9a5356e38f,",
-      "card.has-desc.move.bg-color": "S:da0452c3e486cd2dd0988bb5ea21499acaaf7e9c,",
-      "card.has-desc.text-tiltle-color": "S:93b56f03a3ef341000d34f37ed977d5d8a2a45f4,",
-      "card.has-desc.text-desc-color": "S:c70e194242984c7ffef174b405b145ce69ce7936,",
-      "collapse.ad-list.norm.text-color": "S:3b590fc5c3ebc78e3f0b8a7a32603aa972e86621,",
-      "collapse.bota-list.norm.text-color": "S:bf3559be30f33134b9a3d9448e04fe0d6cf154b7,",
-      "collapse.ad-list.disabled.text-color": "S:e73e8262597e002c3723e5ccf73abef90f733930,",
-      "collapse.bota-list.disabled.text-color": "S:0636eac60e162bb0115bb036143df3bbee9172fa,",
-      "collapse.bota-list.border-color": "S:ed47f2bd65f141461fad839c28980b4be4578e0e,",
-      "list.bookmark.hov.bg-color": "S:32ce089e27005b680a6ea3bfec83bb54e25ae516,",
-      "list.bookmark.sel.border-color": "S:0ca2aa84fb5232bfae0291b6399d783fa4db229a,",
-      "list.bookmark.sel.bg-color": "S:897695661caf7b5d455c7eb891c7e1d16d9cf033,",
-      "list.bookmark.text-color": "S:1394b01755f565e39da07c3d1c6583b176ffe2fd,",
-      "list.markupheader.text-color": "S:5e99aab39bf18a880697441b49d2c5881482a91f,",
-      "segmented.item.sel.bg-color": "S:810284b5d34ecb6d270ef9020495e354ad81e4db,",
-      "segmented.segmented.bg-color": "S:8141dc448b9c71097c91fd6a4ba4a42419c8cfe7,",
-      "segmented.item.sel.text-color": "S:c4d2a678d18b32819851cdbc6c3fe27ca860b84f,",
-      "segmented.item.unsel.text-color": "S:da2164c1243f87a4cd105d79bbdd92f34c51e149,",
-      "tree.sel.bg-color": "S:52444388e1a8c49f46ca7de62bc647590de6da15,",
-      "tree.sel.border-color": "S:2c7b1b49e99dcf2df868fde1dd454ddab3795840,",
-      "drawer.bg-color": "S:ae0ddb429f2f65b8f17040180bc615b902982206,",
-      "avatar.icon-color": "S:fcd563fbe9f3228374b80d37db67d9a0b7703fe2,",
-      "list.markupnote.border-color": "S:31a361785c569f1bdebbcc81c9479dfa0b87d5ed,",
-      "list.markupnote.text-color": "S:4774c7d301bc8ff87ebe64bfae1173366ecb623f,",
-      "table.list.norm.border-color": "S:3d1d51b0837437cb4c03ff723de5acaa97774a30,",
-      "table.list.sel.border-color": "S:c3345736c7a308deb4cef70e867fef8a606e6f62,",
-      "table.list.hov.bg-color": "S:47dce728b7e13e381ab2060e96e7cf2eb9748fb7,",
-      "dropdown.hov.bg-color": "S:5ede468383a34649cffdc6ab894106eb5b40ec71,",
-      "dropdown.sel.bg-color": "S:6e65d0738b82f95d1b66b8b6739e9873e81148c6,",
-      "dropdown.norm.text-color": "S:102dcb6d74d5bd7bc05c879f036445881e7f5e03,",
-      "dropdown.sel.text-color": "S:a385db2061d43b7ab2ab0fcb3efb271ef7c2f472,",
-      "dropdown.disabled.text-color": "S:35dec6cbdf6ba97bc5d28b09a9cca9ac8611e4f2,",
-      "navmenu.hov.bg-color": "S:f5d6ef6b7276205ad5f3d8686140fcd2010c21da,",
-      "navmenu.sel.text-color": "S:a0e93ad8fea5d97bd01384a785e7be4e842b1e84,",
-      "navmenu.norm.text-color": "S:fbee15a3f191dc0ec757ce64c8c55d1a6ebe49f2,",
-      "checkbox.norm.text-color": "S:50f0fa9242d9d17bc1b546aeb1f133d04f461db4,",
-      "checkbox.disabled.text-color": "S:3443f718edc007118c469e790273d65abbc118da,",
-      "radio.norm.text-color": "S:939f0479404436e91425ab3adb6007c9f81ae70c,",
-      "radio.disabled.text-color": "S:5713fdafa32b6a346a49b838e1b6087de4bdf593,",
-      "input.error.text-tips-color": "S:b4ff16bf94a27df0427989db22776cef5b0902fe,",
-      "slider.track.norm-color": "S:dc8cde751eb45cd66952d9ad7d90bd0fe770eddc,",
-      "slider.track.disabled-color": "S:665d3711f45e59297908140d4a1bfbb641bfd15e,",
-      "slider.track-filled.disabled-color": "S:a93e0643b3e1e6982144f234c8a5c0ff7afc2008,",
-      "slider.knob.disabled-color": "S:c51542d3b78063e4e8810183b73b4c73f580ab2b,",
-      "slider.knob.border-color": "S:9d7bf6a327d95ed0c0d59b5e2c395e00fb5e892c,",
-      "input.bg-color": "S:c6e1228f2f9ecec9c48e64224634bbef41865266,",
-      "PDF-tools.custom.move.shadow": "S:4d6609f5c5fda98ec935c4cd09a5eae35e61a766,",
-      "table.header.border-color": "S:c3f631a492faaac87062e62aaeb3947e5f7abe0c,",
-      "table.text-main-color": "S:2e700e6dd58f42071efe2b3d65306d2b6cb1564f,",
-      "table.text-item-color": "S:b2db853b6a8866a6eb20d045ddc4f305d6c89fcc,",
-      "table.text-desc-color": "S:384fd51ffaab23e325f52fdbee68f246d23c8905,",
-      "general.icon.sidebar.nav.unsel-color": "S:b73606b909dd464b240f7b7de5a7c2fb2e9b51c6,",
-      "general.icon.sidebar.list.head-color": "S:0659e8a75a30fa0810b1c3d32a9f8e130000ef14,",
-      "general.icon.sidebar.nav.sel-color": "S:03cb2f0c824bb14949fbf36743e7b34d36862b98,",
-      "general.icon.propertybar.tab.unsel-color": "S:f42fecaeec1a0672986057dd114d6b6bb800f0ab,",
-      "general.icon.propertybar.tab.sel-color": "S:3ce5376347f5483d50683d3424955f059ac5974d,",
-      "general.icon.sidebar.list.body-color": "S:d85b60003fb886125a8d3f5a1191cc3a990a4747,",
-      "general.bg.hov-color": "S:199bb240769b9e1ddaef7f3bd99c38be2d6367c5,",
-      "general.bg.sel-border-color": "S:aeac3ba31e1c70a141832b41f200ea8331546842,",
-      "general.bg.sel-color": "S:14edaaed4ea6c2690ab0479674c75f4590de7e69,",
-      "general.icon.home.sidebar.unsel-color": "S:e36158d668c47541cb3de884665a1e2279b5e407,",
-      "general.icon.home.view.unsel-color": "S:f664d7ddc3680252ee53b1ca639b53667c6550ca,",
-      "general.icon.home.view.sel-color": "S:84cd9bfd84ce26cd2938a5326f946483f7c2c111,",
-      "general.icon.cursors.black-color": "S:f40dfb975b4d3b907ceb2f68010ac983b399034a,",
-      "general.icon.cursors.gold-color": "S:b39b571628156af30c89ae9b32c322b4dfde8d28,",
-      "general.icon.cursors.red-color": "S:dbc3ac6165c2a4b7c13a42ee3109fdd305650627,",
-      "general.icon.cursors.green-color": "S:e4ff5ca3b27cdb9f6915a1b26f00c711f1166a8e,",
-      "general.icon.cursors.purple-color": "S:21f487029a76c770f9c334de3eef823b401d32ff,",
-      "general.icon.cursors.pink-color": "S:4d8cdff11f56367ead8694df8deae8f6cb78a6b6,",
-      "general.icon.cursors.cyan-color": "S:b1d14361bd32d2ac6cd23e0657a2fcd1d8a4407d,",
-      "general.icon.cursors.border-color": "S:c4ad0970d23e07f3ce7851964665737bde3113b4,",
-      "general.icon.avatar.unlog-color": "S:7119619d6d95e3443ca6ad2eb77b0b1f65f7bfd0,",
-      "general.icon.avatar.login-color": "S:5e6083eefaeed7c676e9965eeed75da231ad71bc,",
-      "general.icon.btn.expand.lv1-color": "S:51b40b73e14fcb8f356527a59b69edf5a27e5891,",
-      "general.icon.btn.expand.lv2-color": "S:fa7249b569f8125aa4bcfcb0c43fdb37a17f2f02,",
-      "general.icon.btn.default.lv1-color": "S:9263b7681dd4fe536dce53212be97940cd31123c,",
-      "general.icon.multitab.unsel-color": "S:50e8c42bb343140d43701815b84811480ac5c070,",
-      "general.icon.view.bookmark-color": "S:5f9d5d116cf5cf078712df4aaf600fb3a97cd87f,",
-      "general.icon.propertybar.list.norm-color": "S:1f28719f40a42c95b74e8ad86ae2354da948c0b8,",
-      "general.icon.propertybar.list.disabled-color": "S:375e76f2108a54dd920bc8ccddc6709d3bfca71f,",
-      "general.icon.btn.default.lv2-color": "S:7ef9bfc7b4d3be6f9aa400a2cb836019a1aea9a8,",
-      "general.icon.subtoolbar.sel.red-color": "S:2301a569e3c5e21cdcae4f9ef8180ad09aba23c5,",
-      "general.icon.subtoolbar.sel.gold-color": "S:52431548c5cabd325dfea756eba7b499db902cf1,",
-      "general.icon.subtoolbar.sel.blue-color": "S:524a84671a35179de40bdd3eccffcc44edb6a7a7,",
-      "general.icon.subtoolbar.sel.gray-color": "S:6ea3e0005eeb85a84f253531ed4f0a0f81410ad2,",
-      "general.icon.subtoolbar.sel.green-color": "S:8752098849cb2ba9bdfda76f95ee4b2f8bc0354d,",
-      "general.icon.subtoolbar.sel.gold-note-color": "S:5079eaae88136ba65e0c0f14b0741c857f97c4cf,",
-      "general.icon.btn.default.disabled-color": "S:63c51bbca12f4e3a6b2a29f5ea7770ddd87619f9,",
-      "general.cta.sel.bg-color": "S:7e2a843e049bc3765c31ba4a7a54bf65b7cebc7b,",
-      "btn.outline.dis.bg-color": "S:33f8b6c6d94c5a8801eae269959033e6141966cb,",
-      "general.neutral.disabled.bg-color": "S:d8d48abcacfd282dd4ca890a5c78a43cd1ab102a,",
-      "card.custom.border-color": "S:8aac8dddfab7719530b837c5ab84f487b6ab83ae,",
-      "icon.neutral.norm.lv1-color": "S:c552104dc1ebe6152900d0bd590a94e27513a932,",
-      "icon.neutral.norm.lv2-color": "S:1c918dad354e41f95f150aa09f52a90d0a6cde97,",
-      "icon.neutral.sel.color": "S:d70e3f7d69066a10107d89ed9215469c7b80e336,",
-      "icon.pdf-tools.pink-color": "S:a83af5cdfcfd1bcbe1882c572570e86e4410a7f5,",
-      "icon.pdf-tools.cyan-color": "S:06240cb175046ba8e4e691f5ac04b91c0672922f,",
-      "icon.pdf-tools.blue-color": "S:d5e9a70e3a0697977cf48ccce9ecf49f6d77e2a8,",
-      "icon.pdf-tools.purple-color": "S:21f7e4907d6948ac7d490f9459ce53b0ed6c5a6b,",
-      "icon.pdf-tools.orange-color": "S:a54a764cec759c5489260835a4ea6f4055589335,",
-      "icon.btn.radio.bg-white-color": "S:ca7776c339be0a055afee45b9461e11b27e1c361,",
-      "icon.btn.radio.unsel-border-color": "S:e16e5d2837681a569a75489a91af503c8dae2a37,",
-      "icon.btn.radio.hov.border-color": "S:36ab1f95df6242bee8ac8158f7656d86f0bea0b1,",
-      "icon.btn.radio.sel.bg-color": "S:167c3640636182d6243b771e80045a7f4cd2e693,",
-      "icon.btn.radio.disabled.bg-color": "S:2d3212bcf419816af86e44d14abfd982e6d4a002,",
-      "icon.btn.radio.disabled.fill-color": "S:77963c5e74e9eef537fcda5eb21b772acf08e833,",
-      "icon.neutral.dis.color": "S:63e5592c1e9b7c1cd6a57e2ed07cee7a56d06691,",
-      "icon.neutral.norm.lv3-color": "S:ef7fc5d413a23d71264ba0c3267f849da62251af,",
-      "icon.tips.warning-color": "S:abaffe78ddd37c34a4c0decfa58fa1c2eef5a28a,",
-      "icon.tips.info-color": "S:2d75ee4c8780997d575ac41b42112d2ccb06c6fb,",
-      "icon.tips.success-color": "S:0f58833ff18d6da98c4b33eecca1fb50ebd040fb,",
-      "icon.tips.error-color": "S:992d09449eedfe4420f798021c8b220402b6a49e,",
-      "icon.tips.white-color": "S:87f733c6baf7a89578a9a3f7cb69a90a98988159,",
-      "icon.tips.wait-color": "S:3db5e5782f2edfc68acba8a44506636430a5ee87,",
-      "icon.popups.file.pdf-color": "S:087c85fe9b863f942c3d3347c0887d553edba13d,",
-      "icon.popups.file.image-color": "S:d88e83bed2893f5f4e92e8336a0484c2e5483df5,",
-      "icon.popups.file.white-color": "S:b82cd39298f6b1c0d5431ec875d45ebd97bc9b5f,",
-      "icon.neutral.norm.lv4-color": "S:1cce8d8bfa082d1655c1544c1da216b7954e9871,",
-      "icon.btn.arrow.gray.norm-color": "S:f0b8852aea7fd47e0441fd7b10ae6003811ed9ce,",
-      "icon.btn.arrow.gray.act-color": "S:c492b5eee4df331f6a2c53ec18d5c9f51ffc13ab,",
-      "icon.btn.arrow.gray.disabled-color": "S:1868bd2387d904c83e26b675d388ec3005e1b3dd,",
-      "icon.btn.arrow.white.norm-color": "S:71a7d48b602227597490c5544ff66d0fbeec46c9,",
-      "icon.btn.arrow.white.disabled-color": "S:6314f21de155c21137f928d9f96a21766e4e7505,",
-      "icon.btn.arrow.blue.norm-color": "S:dbce8db7fd46b5ab3df825b4c6082b78b2d1497e,",
-      "icon.btn.arrow.blue.hov-color": "S:bacd6c73d8fdc01609746406d5d49c9f9e2d5e9e,",
-      "icon.btn.arrow.blue.act-color": "S:7392ad1d8dafcae5dd74765363276d33585411a3,",
-      "icon.btn.arrow.blue.disabled-color": "S:9982840c08003dfbf84d5db82bb7a45d50210080,",
-      "general.neutral.layer.bg-color": "S:449dea0a51966bd6a2ca049b621026cb1361f8af,",
-      "general.neutral.layer.mg-color": "S:a718bc742d35214a422d99b3db2dd663c6b05bf2,",
-      "general.neutral.layer.fg-color": "S:79270259dab71a5ac0c70829d85191d505441e73,",
-      "general.neutral.s-shadow": "S:63104a4cd97c721fee34751f32f9bc9a9dc0a6e7,",
-      "general.accent.s-shadow": "S:bdd4d9fc36910f69829038cfa63c339997aff8ff,",
-      "general.neutral.m-shadow": "S:0415fc6b0ad49c2e010dc231fbb132e9eb4aff81,",
-      "slider.knob.norm-color": "S:09677e07c24011250d32c646fe97061282601135,",
-      "icon.brand.color": "S:f265948cb0fbff800028312e3897e6bdcd698f20,",
-      "icon.accent.color": "S:97db2a83bde5a7476cf923d30dcda9d6cd1ad2e2,",
-      "icon.btn.radio.dis.bg-color": "S:97cf3466ae72077384289b29c0cd094adea1d57f,",
-      "icon.btn.radio.dis.fill-color": "S:a83715b2169fad62653193e137435b898b1b7dd1,",
-      "slider.track-filled.norm-color": "S:8eaf44c8037b153fa22dc67ef6f259dd4af55b98,",
-      "btn.cta.bg-color.norm": "S:cc6a23488698856c92301a79cbd2a5422ff7d55e,",
-      "btn.cta.bg-color.hov": "S:c514a78788e7352db59232891e31678604dca835,",
-      "btn.cta.bg-color.act": "S:1fb105107729cf3c108156fe961c6e062a9d30ab,",
-      "btn.cta.bg-color.dis": "S:8e0f022661c71b27407667819dc6240c9632e7fe,",
-      "btn.brand.bg-color.norm": "S:5ce11999112e8c658ae123af8b423cd0b7d7bcb3,",
-      "btn.brand.bg-color.hov": "S:766ec0e3bda1f361d37e3493fe549cde2fdcfd5d,",
-      "btn.brand.bg-color.act": "S:cec1181f86b2d40912fffd9e566b9751e60b5fbf,",
-      "btn.brand.bg-color.dis": "S:26bdfd58e9f94e9b63e3e9cd4ab0454827d85eb3,",
-      "btn.icon-fill.bg-color.norm": "S:b85bd76e0aaeb74a46e04b39851aa8537a0371be,",
-      "btn.icon-fill.bg-color.hov": "S:e8b48712e76f9089c0b1f87b3de16bd422d61df0,",
-      "btn.icon-fill.bg-color.act": "S:dc6ec479e1a0c6a51c71253f012d6f620173445a,",
-      "btn.icon-fill.bg-color.dis": "S:43c3ebdc9fabe8f968aaa265048ca5d56285f131,",
-      "btn.ghost.bg-color.norm": "S:eb14e7c5441e51802e1aa2d6d0510f90adda6f4a,",
-      "btn.ghost.bg-color.hov": "S:628b9f320d9dc90b8528f72a5fefe5e79065823b,",
-      "btn.ghost.bg-color.act": "S:2e5f36da5be1c65b123fa816219c89f4d13a241b,",
-      "btn.ghost.bg-color.dis": "S:24b9cd9da6dd10207d52609cb223469745b1265f,",
-      "btn.link.bg-color.norm": "S:a04ffd6ca9327f3f76475974217c63c64aab381b,",
-      "btn.link.bg-color.hov": "S:23e031970c13199057c17bd45aa3e1d4f389b4c5,",
-      "btn.link.bg-color.act": "S:ee4d7d79d90eb5eb2a141d39057f7d63ce427812,",
-      "btn.link.bg-color.dis": "S:7a5388061a5260f326f422a2168350752b8ddf85,",
-      "btn.upgrade.bg-color.norm": "S:0b1aeb5d03a9792079928e5705a0bedcd09fed9d,",
-      "btn.upgrade.bg-color.hov": "S:fac11b6547e003a1b720b52576e5e2d18c68d441,",
-      "btn.upgrade.bg-color.act": "S:9c490ba1cced1cf54bf648d88d48d1b91a8085a6,",
-      "btn.upgrade.bg-color.dis": "S:f3635ad82f70f076d0d01c982cd9496fd792147b,",
-      "text.accent.text-color.norm": "S:39181a6d94818ac084c86198e46edd0a1942248c,",
-      "text.accent.text-color.hov": "S:1708e861c2fd603aad22a00acc9cbc24d69a8d4c,",
-      "text.accent.text-color.act": "S:c42c9c0b60015bb425f72ca4b3f12e07bf9541e6,",
-      "text.accent.text-color.dis": "S:760129e278da1cb7a7b3391449a1df94228eda58,",
-      "text.neutral.text-color.lv1": "S:94af6b69525beda397647b9c7608c0f2d9f36b77,",
-      "text.neutral.text-color.lv2": "S:56332e17f64acfc5676efe4f0c69d00ca8aa43d8,",
-      "text.neutral.text-color.lv3": "S:36516b25cf1ae95ab92241b96d7e0be4a53c8fd5,",
-      "text.neutral.text-color.dis": "S:d942de39b620b675d862139ed9e45c5b5fcc49ed,",
-      "text.anti.text-color.dis": "S:84aa48ee684aa5ad437de555746a96218eded7d7,",
-      "text.anti.text-color.norm": "S:cd5d6a84331f4e1ef9a9f4a3b3a51ca7f7d2d9e0,",
-      "text.error.text-color.norm": "S:f33c65827db82f5fa7f9b55acb523b6a6ee58730,",
-      "text.error.text-color.hov": "S:95ba7c8b2dfa9483ee9cba1ed120455f123004bd,",
-      "text.error.text-color.act": "S:29c2aeda57ad4be1c24f6cf6312daa367ec86e24,",
-      "text.error.text-color.dis": "S:d9dc4f0e436487ef10ce26a9aaf806cb8ec6fe3f,",
-      "text.upgrade.text-color.norm": "S:552460aaaddab4282a0ad1aa8d0ee79a708f2bbc,",
-      "text.upgrade.text-color.hov": "S:094f5bf18aa77d2f2589b8ddb55fc10f34751144,",
-      "text.upgrade.text-color.act": "S:f4618ff73770dda0791e58169589f6edbf1ae2ed,",
-      "text.upgrade.text-color.dis": "S:8dacd9de8c5be9e67c3d7a80641e368742c2b1d5,",
-      "state.hov.bg-color": "S:b5e255a3eeb92ca2e8c616101d655f8d77f19377,",
-      "state.sel.bg-color.lv1": "S:1d5e159ed11c571f1e2a6d45036fc9224c41b516,",
-      "state.sel.bg-color.lv3": "S:c29dd9318f1f6341fc00717925f3b24aa66c1c9c,",
-      "filed.bg-color.dis": "S:f23a87730b5b5bd9cfc2558844a1a95432890666,",
-      "field.border-color.norm": "S:8d97519b8279f6f50b19250fc5749974508c5776,",
-      "field.border-color.hov": "S:bdb07c09859cbc44c06511598a3d282bbdfa5b63,",
-      "field.border-color.focus": "S:e00d0ad4bc1970e6f72066b4a3a441c5145ff294,",
-      "state.sel.1border-color.lv3": "S:382ad8ea173a7a56f4b7c9ced1b3832cd302c63d,",
-      "state.error.border-color": "S:4c7096502b100f9a453259b94205765db4df77bf,",
-      "state.error.bg-color": "S:c3fab63763f885c51a32dff09078aa4f7960b83d,",
-      "state.warning.bg-color": "S:a6cc6ec0f3365729cfca692c4c8499c3ac945003,",
-      "state.info.bg-color": "S:a3f6edce070604bf727d9d6151b504c0e549c6a7,",
-      "state.note.bg-color": "S:7dc62870abc363c5c0891a4020d7b52a3980c633,",
-      "others.black.opacity.bg": "S:36d2119f4459464c14f829b31a3d774f3bcb736d,",
-      "others.black.bg": "S:d320d18dc1716da10f685512b7ecdaa9f5c5e726,",
-      "divider.bg": "S:b934577ee4f69421f6569a3dd9e93e8c8203b068,",
-      "color.badge.red.bg": "S:00c90e5896e7e9e2ab2de942920d9cbcb67587e2,",
-      "color.border.neutral.lv3": "S:0b45a82737997c8a57f223f36a7c013dd67ec812,",
-      "color.layout.fg.dark": "S:e182cb17183398fca3d167b3d2c307d90d2191db,",
-      "color.btn.cta.bg.norm": "S:765addbebce905bf58322d313e0e259237cca19d,",
-      "color.btn.cta.bg.hov": "S:bc80f67d9a083394d2bd24e329d1a86bd55482f5,",
-      "color.sys.text.anti.norm": "S:4c5c76e1deee14a1e4329c288e5a4a36f173365c,",
-      "color.btn.cta.bg.act": "S:afd4f195ebf70405340a12dfa5d32fa1d4b24c72,",
-      "color.sys.text.anti.dis": "S:da9fb56e8b738d9978fb6da0821b49c2c978f1bd,",
-      "color.btn.cta.bg.dis": "S:90da4853c92b43deb72f7e7cfe5c09a2918e0266,",
-      "color.btn.brand.bg.norm": "S:f2e96512ec38d33ee5817ecf56f28534df9e21bb,",
-      "color.btn.brand.bg.hov": "S:3c5b085d72ecd9c99eb09ed5a564579a981209c1,",
-      "color.btn.brand.bg.act": "S:ae69ca59703dc723ca92806955ade5435c184717,",
-      "color.btn.brand.bg.dis": "S:90d7676af3263ab2eea1e609cbe78de73e9b8fda,",
-      "color.btn.sec.border-color": "S:ce8e952cc4eb0c2c8bbbba5d04c6a3dabb9078fc,",
-      "color.btn.sec.bg.hov": "S:291c5bc9b95b4ffe66e36537b24fe8726d3d355f,",
-      "color.btn.sec.bg.act": "S:45f459fbd21a227025fac034cf8596cd4d48c789,",
-      "color.btn.sec.bg.dis": "S:7784fad4933569fe4428591c7457f36093ad56c5,",
-      "color.btn.icon-fill.bg.norm": "S:2fc61aaad1ce4e901b0fc18935163f817234379d,",
-      "color.btn.icon-fill.bg.hov": "S:ad2c0c2b420c1d085ca25af0f2600a003f4c1d8f,",
-      "color.btn.icon-fill.bg.act": "S:a5754ed6295576bb52da028038b1e31cf2b5a62a,",
-      "color.btn.icon-fill.bg.dis": "S:4f539399d17f1090564015d67ae75db823af00e6,",
-      "color.btn.ghost.border.norm": "S:08c62fb2f0fada6f55a3277ec86d6767f8a84af9,",
-      "color.btn.ghost.border.hov": "S:187b5d6d3a881bb369d6ea1180dca7610f36eb21,",
-      "color.btn.ghost.border.act": "S:aea3039b826de7ffe1dfe277b758f4f3be1c84e3,",
-      "color.btn.ghost.border.dis": "S:0448b147b1257488a73d284feb41c2f2f9770e5c,",
-      "color.btn.link.text.norm": "S:be443ea239c27cc6ffd512bbcd0406287210415d,",
-      "color.btn.link.text.hov": "S:7eea52628c0556c20c655a7eaf34a09bd449b6df,",
-      "color.sys.text.accent.norm": "S:dbe2e9c1ab40c1a807341d510662aeb59dc9ed35,",
-      "color.sys.text.accent.hov": "S:c7e6ea03d58eb76ddcbf8060a12efdf192b712ad,",
-      "color.btn.link.text.act": "S:ecbd0185e31944231c628ff020ff76fbbe8ecffd,",
-      "color.sys.text.accent.act": "S:f4b55647b58d22919c804ad4a437be9b829606f5,",
-      "color.btn.link.text.dis": "S:62f726ece27fe375c8607654773c4a200ae44b7a,",
-      "color.sys.text.accent.dis": "S:3c966a8d34f80b09e07311346f823a0768e8cb4c,",
-      "color.btn.upgrade.bg.norm": "S:58b46fe9200bd7d191b13b6052b6c539a769e01b,",
-      "color.btn.upgrade.bg.hov": "S:5368e168e142cf084cea30f77df3af1bcdf7bdda,",
-      "color.btn.upgrade.bg.act": "S:239346bcc7a3af305c5bce141d45da361ba565ff,",
-      "color.btn.upgrade.bg.dis": "S:45f8729819d9cd9b55bc2275aeb9c961a23cce12,",
-      "color.item-state.sel.bg.lv1": "S:5261ac3075f505fb2f9b41d54e99cf3961afadcd,",
-      "color.field.border.norm": "S:ed41f040240ee82fee8d8f23eae49551d328ee68,",
-      "color.field.border.hov": "S:b915eab301b2ec6577427b502d6d5e59f2751305,",
-      "color.field.border.focus": "S:b0906b3706682f0ea707c2afefa14a89d71c6aed,",
-      "color.sys.border.error": "S:db98e4119492ad963b38921d6986c6ba2f65641d,",
-      "color.field.border.dis": "S:faf8685103573ad9ce3239c0be3a4c4433d86f7a,",
-      "color.field.bg.def": "S:94cce0e50fc20fe894856ae11030b851ae174187,",
-      "color.field.bg.dis": "S:660b0bbb08bdc0140c280f0fbc54dd3db611c340,",
-      "color.sys.layout.bg.home": "S:b4a8ab540393ea13115973f60a210ebaed16947e,",
-      "color.sys.layout.bg.view": "S:a6347a6d5c0233b172bd07068b416eb239d2331b,",
-      "color.sys.layout.bg.tabbar": "S:c90d40f1976225e606eb07a9e9ba4e3080b440fb,",
-      "color.sys.layout.mg": "S:3bb671e051d56f1e898045efecd2d17fe31e744b,",
-      "color.sys.layout.fg.light": "S:0689bb26cb46af9afbc9b3108cb8ea32423e2c13,",
-      "color.slider.track.norm": "S:2e49e5421d3ada9326c705dec21bdb61f6fc0c15,",
-      "color.slider.track.dis": "S:c5dffe73e618f72c3f3ca0d9f9a38f3c98da6816,",
-      "color.slider.track-filled.norm": "S:08d3ba4be256d3c8d917eccb0fc3e8ceb9461b04,",
-      "color.slider.knob.norm": "S:ebc58762afca03c8570c58f920afdbf6af6ff417,",
-      "color.slider.track-filled.dis": "S:135fb1ff5d2bd7f25968987a108b420c88fd97c7,",
-      "color.slider.knob.dis": "S:1de1816635dd010258849662cd5f11d5d0052743,",
-      "color.slider.knob.border": "S:d75dd3a25120e7faa06fa3c988004ff5c2bd8aa7,",
-      "color.sys.border.neutral.lv1": "S:452cef03b607227e8f3a6877e631f64c5d201dd3,",
-      "color.sys.border.neutral.lv2": "S:b544c0eb17a46a5e1b74f60b99663b223ec58467,",
-      "color.sys.border.neutral.lv3": "S:c043510574c280a7cded9ad980efc35f015df877,",
-      "color.sys.layout.state.note": "S:dcc5c8f0a2ff107359c9ed5d5ee0dabfd32aebc7,",
-      "color.sys.layout.state.error": "S:77139d40bee240685dda3521a34b3dca98297d82,",
-      "color.sys.layout.state.warning": "S:96965d84a1480c723db04f602a4567fd516dcb05,",
-      "color.sys.text.neutral.lv1": "S:4aca66005adef0a2a4d28c5e625ec70647a4b657,",
-      "color.sys.text.neutral.lv2": "S:cf017af76ffb37bfdf6f56c9c46f0f115db91e2c,",
-      "color.sys.text.neutral.lv3": "S:07d467a04871fa19b3dbea346f384c551e2e8fce,",
-      "color.icon.base.neutral.norm.lv1": "S:bf84c0f5486074135d04f7fe829908d47ef6be07,",
-      "color.icon.base.brand": "S:53fe047d587e02691a3824a8197507db7714141f,",
-      "color.icon.base.accent": "S:7fb2a8149a204739c4838ee1dd153cb08d225f32,",
-      "color.icon.base.neutral.norm.lv2": "S:d44c814110f0ea31da81e323a038cb8585331a9a,",
-      "color.icon.base.neutral.sel": "S:ef83c0b047949d4ae95b1d4756d4a7c6be20d158,",
-      "color.icon.pdf-tools.pink": "S:00ddff7156d3b5977991de90e051a066e3439488,",
-      "color.icon.pdf-tools.cyan": "S:5e5e3a069b8d5c10a9272733db42702edf176ae4,",
-      "color.icon.pdf-tools.blue": "S:ccddb07a6e55915dc4775763109db289bfb8b5cf,",
-      "color.icon.pdf-tools.purple": "S:c4476e42064a3e9be596edab97549993c50ffbcb,",
-      "color.icon.pdf-tools.orange": "S:7f70d50b58036ed24548c1faa86e559656484759,",
-      "color.icon.checkbox-radio.norm.bg": "S:5d171a7631968ba38b8e1156f1afccfc95829663,",
-      "color.icon.checkbox-radio.hov.bg": "S:09f39bb9d266bb730e1c04e7eca57bdeb8ac5f37,",
-      "color.icon.checkbox-radio.norm.border": "S:a443930583513d1405733d394de872679c331d55,",
-      "color.icon.checkbox-radio.dis.bg": "S:21c2af6473ebd591f006d48205b7fc143652e3c2,",
-      "color.icon.checkbox-radio.dis.border": "S:d0117b0ce3d7da828a66b944d067aac7a58998dd,",
-      "color.icon.checkbox-radio.hov.border": "S:ab6508fb9386f21c8807d917ac32d7131c706904,",
-      "color.icon.checkbox-radio.sel.border-radio": "S:26d0b85f0f2ed32ba0c366938fa0bc03a114c928,",
-      "color.icon.checkbox-radio.dis.fill": "S:fca7139f311663047651f7276ba86be653e7f337,",
-      "color.icon.base.neutral.dis": "S:fc14c640d89530d2edb35237ee35ec81d411bcff,",
-      "color.icon.base.state.info": "S:2bc743b42eabdc4a0e47688a7252e0b52c3596f4,",
-      "color.icon.base.neutral.norm.lv3": "S:56eac57b51c92f7d0155541590ad6800b9eb4ada,",
-      "color.icon.base.state.success": "S:5e806770ba4f5d508c75fc8f3966d60e5e3e952a,",
-      "color.icon.base.state.warning": "S:cae964f0dc50597a366596e0916b1870dd66afa6,",
-      "color.icon.base.state.error": "S:77fb1da52af20ea50c5b4d0d0eec4f01dc454364,",
-      "color.item-state.hov.bg": "S:1d0eea71287e39194febc6b6c38783e8e7e756b5,",
-      "color.icon.file.pdf": "S:7d94a9c168267dff0cb3cd285554016becdb9252,",
-      "color.icon.file.image": "S:96bb4c579b3695e6507fe894cc8fa216798cb779,",
-      "color.sys.layout.anti": "S:56f97cfdb32f2ae7821e2b225d57db20cb992b02,",
-      "color.sys.layout.accent": "S:026e6fa61fc5afb35c845e75f0088b7604afa9d5,",
-      "color.sys.layout.brand": "S:7feb44e79a5fdbdd53b5002beeabdb6ec8110666,",
-      "color.icon.base.anti.norm": "S:48131e8b48cc54e6c2630b644eb9d3fdb289b128,",
-      "color.sys.layout.divider": "S:1247c5c7d325dd2dae1f47e787d49b3cdea59d8e,",
-      "color.item-state.sel.border.lv3": "S:3c13b9da56de2677dcdedd48a7774438073e0eca,",
-      "color.item-state.sel.bg.lv2": "S:1a46079bca81fe36713cb566352a32dcb0fd1a67,",
-      "color.item-state.sel.bg.lv3": "S:c6a134c120762b6416bc1e3ace9202ccb24fecfb,",
-      "color.icon.arrow.gray.act": "S:e2c08dc4388b2570376ce382657c69234c4d017f,",
-      "color.icon.arrow.gray.dis": "S:5b75cdc7d4b3a500d9ccf18a9a7128f6722f8a51,",
-      "color.icon.arrow.anti.dis": "S:97e4584fc495fc8cf192c3a9813fec37f1d41f5c,",
-      "color.icon.base.anti.dis": "S:170533bfd25426a9fee788d48097ee5be4b3268d,",
-      "color.icon.arrow.accent.norm": "S:971a1eb01f81f601603cb7b5fe5e51441554de90,",
-      "color.icon.arrow.accent.hov": "S:b9b8993c4e7daf42c5676f3625af45360595e75c,",
-      "color.icon.arrow.accent.act": "S:7d1ca5d481cc06f5cad4e469c794bf8da3872a22,",
-      "color.icon.arrow.accent.dis": "S:79ad41f7cb935f1326259597729cb9da9ad91f4f,",
-      "color.sys.layout.fg.light-dis": "S:e7772a83d207c0a8e2b93f663331ea957ccacf0d,",
-      "color.sys.layout.fg.dark": "S:d4bceeced9276b9c39d0eec8fd0422974c4aa83d,",
-      "color.sys.text.neutral.dis": "S:187127994ee27c26a98045c6ebe45077df73072b,",
-      "color.btn.cta.text.def": "S:6c25843546d9b3f214dee3440940426d87a985c3,",
-      "color.btn.cta.text.dis": "S:667c4982446a53849286f71982aa9dc7bbf78612,",
-      "color.btn.brand.text.def": "S:4286ef42d16501818970e38025c8b80b9fb62705,",
-      "color.btn.brand.text.dis": "S:ee6bd08afdf54f04c2d730ff7b8a4da06414328b,",
-      "color.btn.sec.text.def": "S:ce52854cfe1d4a6510a7b4a972cfb22187af5db6,",
-      "color.btn.sec.text.dis": "S:79571264150bb986d419767c69fa8a306f5face5,",
-      "color.sys.text.brand.norm": "S:5df714bc057a5c122f04c9a95daadcfe94ad1ecd,",
-      "color.btn.ghost.text.norm": "S:c883239d26b7851ac80aa27c4ec01e25fce8b267,",
-      "color.btn.ghost.text.hov": "S:e33c8bccf9b8bd8924066ec137f82489091ad134,",
-      "color.sys.text.brand.hov": "S:5a8216822c8d65e700c9191df312190e0b52a728,",
-      "color.btn.ghost.text.act": "S:76911d8ede3599160266398a0356e53881cb2772,",
-      "color.sys.text.brand.act": "S:3d52759c490c7c0e382b3b7938003666b295d899,",
-      "color.btn.ghost.text.dis": "S:da13408e2e58909632ccf66493ed593206a24a30,",
-      "color.sys.text.brand.dis": "S:af3949086124b9349794d656a3f428a2744cd337,",
-      "color.btn.upgrade.text.def": "S:f2a20549a4b3cc2a81c86c3c6d599ce7659768eb,",
-      "color.btn.upgrade.text.dis": "S:ab378e98e90b8b533f82fa732b7841497f0fe85b,",
-      "color.field.border.error": "S:d609e30f3531767e5add7d0cdfdee30ccefe2385,",
-      "color.sys.text.error.norm": "S:7a56ea2709c62a59a90342cdc87f95d4373ee6f2,",
-      "color.sys.border.accent.lv1": "S:0cbeb635b2521ba98ff366eab83abb46ea4f28ad,",
-      "color.sys.border.accent.lv2": "S:d2af716c6fb69e3d4e8b9b24df99b90fbb19dbf0,",
-      "color.field.border.sel": "S:6c1602a8339797daaefbd3cefad59c6a03bdf672,",
-      "text.mac.footnote": "S:db250374a5fd326fd00828d870177f71f65b5d6c,",
-      "text.mac.title.s": "S:45ec4c5b6e2a43043eb5436e07efa0cb44ab5ada,",
-      "text.mac.title.m-base": "S:aff0f89b6352a74322c41b27a12504b00c5cf323,",
-      "text.mac.title.l": "S:80eb5faaf427299f7d08200b52ea9d4a157c3e0a,",
-      "text.mac.body.m-base": "S:9d7d377f67ae19e3404b80d83c7f967893244e3f,",
-      "color.btn.sec.bg.norm": "S:bfaca72d48c3e7576894c642b655dfd1b41cab61,",
-      "color.sys.layout.state.info": "S:eb05397e5849bc4c5ab62276e558e3f8285e4a74,",
-      "color.field.bg-text.sel": "S:b53034ce0993a7235e15227c371c2dc0892ad3bc,",
-      "color.field.text.act": "S:fa13b87b3ab8f3f54dab4e358937bd8a73bc6756,",
-      "color.field.text.placeholder": "S:dff6db5b140060fbed0282a7990af0cf4c6e40bf,",
-      "color.field.text.dis": "S:f8f7202ac57e20a7954da9b00597cca8c521821e,",
-      "color.field.text.tips": "S:4e39c24145c97e1001b046f3c2becb99b2e78f7d,",
-      "color.field.text.tips-error": "S:a1a0c24b3657606032c4fd014a6393c7b73dd143,",
-      "text.mac.body.s": "S:fb88ca50dcbc05350fa6a53a9725d9cd640bc5bd,",
-      "text.mac.title.xl": "S:1d2e1a1b3089fa92535af98da6a37228daf1851e,",
-      "text.mac.body.l": "S:56b730858f2e74d875c4591dc3d38dddf2cd8ae2,",
-      "shadow.neutral.s": "S:8cdf022ee3da2f5974d5e0ec3028665aaaded4f7,",
-      "shadow.accent.s": "S:b20b0397d849da0d583aac0a5e0a3f9107e826c5,",
-      "shadow.neutral.m": "S:d835233bfdf3921c278dc8f819f959c742c2e876,",
-      "color.icon.checkbox-radio.sel.bg": "S:e578afb010c394726e0ec34c93f76dae4dc901b4,",
-      "color.icon.checkbox-radio.sel.fill": "S:3ac8b3d34b63157592eba9a14506fbfa5bce0272,",
-      "color.icon.arrow.gray.def": "S:60998d25050f1b5dabaee419b06ac384f522ebc2,",
-      "color.icon.arrow.anti.def": "S:2cd7b5c61ac6c3e8f2ddee24581ddf8bc71f14be,",
-      "shadow.error.s": "S:c2c00a412e5614816f7d5873df1dd184bb7012bb,",
-      "shadow.black-2-2": "S:7157c3676f5c6947a3e88284b5ee31e7db43306f,",
-      "shadow.blue-0-4": "S:60d69f69c5353642a765d549f1ecc1a5bb9149b5,",
-      "shadow.red-0-4": "S:007c5dee6ab741d01454d1fa0f7df149925a86bf,",
-      "color.sys.layout.dark.bg": "S:7894e947fe1272e9c3472eb09dcbe2fadc625454,",
-      "list.bookmark.mac-text": "S:bc5fbb808f1cc714f9ac145243f6763b0fe1bebe,",
-      "shadow.neutral.l": "S:2851a933742cf292bb92e945becb291a9d2b1796,",
-      "shadow.neutral.xl": "S:59c4f4cfbbf73f4eb03716b9963d3c100ce6aa4c,"
-    }
-  }
-]

+ 0 - 938
PDF Office/PDF Master/Class/ComponentLibrary/JSON/alias-light.json

@@ -1,938 +0,0 @@
-{
-  "spacing": {
-    "base": {
-      "element": {
-        "0": {
-          "value": "{spacing.0}",
-          "type": "spacing"
-        },
-        "1": {
-          "value": "{spacing.1}",
-          "type": "spacing"
-        },
-        "2": {
-          "value": "{spacing.2}",
-          "type": "spacing"
-        },
-        "4": {
-          "value": "{spacing.4}",
-          "type": "spacing"
-        },
-        "6": {
-          "value": "{spacing.6}",
-          "type": "spacing"
-        },
-        "8": {
-          "value": "{spacing.8}",
-          "type": "spacing"
-        },
-        "12": {
-          "value": "{spacing.12}",
-          "type": "spacing"
-        },
-        "16": {
-          "value": "{spacing.16}",
-          "type": "spacing"
-        },
-        "24": {
-          "value": "{spacing.24}",
-          "type": "spacing"
-        }
-      },
-      "module": {
-        "24": {
-          "value": "{spacing.24}",
-          "type": "spacing"
-        },
-        "32": {
-          "value": "{spacing.32}",
-          "type": "spacing"
-        }
-      }
-    },
-    "tree": {
-      "32": {
-        "value": "{spacing.32}",
-        "type": "spacing"
-      },
-      "40": {
-        "value": "{spacing.40}",
-        "type": "spacing"
-      },
-      "56": {
-        "value": "{spacing.56}",
-        "type": "spacing"
-      },
-      "64": {
-        "value": "{spacing.64}",
-        "type": "spacing"
-      },
-      "80": {
-        "value": "{spacing.80}",
-        "type": "spacing"
-      },
-      "88": {
-        "value": "{spacing.88}",
-        "type": "spacing"
-      }
-    }
-  },
-  "color": {
-    "btn": {
-      "cta": {
-        "bg": {
-          "norm": {
-            "value": "{color.light.blue.6}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.blue.5}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.blue.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.blue.2}",
-            "type": "color"
-          }
-        },
-        "text": {
-          "def": {
-            "value": "{color.sys.text.anti.norm}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.sys.text.anti.dis}",
-            "type": "color"
-          }
-        }
-      },
-      "brand": {
-        "bg": {
-          "norm": {
-            "value": "{color.light.navy-blue.6}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.navy-blue.5}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.navy-blue.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.navy-blue.3}",
-            "type": "color"
-          }
-        },
-        "text": {
-          "def": {
-            "value": "{color.sys.text.anti.norm}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.sys.text.anti.dis}",
-            "type": "color"
-          }
-        }
-      },
-      "sec": {
-        "border-color": {
-          "value": "{color.light.gray.4}",
-          "type": "color"
-        },
-        "bg": {
-          "norm": {
-            "value": "{color.light.gray.1}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.gray.3}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.gray.4}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.gray.3}",
-            "type": "color"
-          }
-        },
-        "text": {
-          "def": {
-            "value": "{color.sys.text.neutral.lv1}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.sys.text.neutral.dis}",
-            "type": "color"
-          }
-        }
-      },
-      "icon-fill": {
-        "bg": {
-          "norm": {
-            "value": "{color.light.gray.3}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.gray.4}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.gray.5}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.gray.3}",
-            "type": "color"
-          }
-        }
-      },
-      "ghost": {
-        "border": {
-          "norm": {
-            "value": "{color.light.navy-blue.6}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.navy-blue.5}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.navy-blue.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.navy-blue.3}",
-            "type": "color"
-          }
-        },
-        "text": {
-          "norm": {
-            "value": "{color.sys.text.brand.norm}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.sys.text.brand.hov}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.sys.text.brand.act}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.sys.text.brand.dis}",
-            "type": "color"
-          }
-        }
-      },
-      "link": {
-        "text": {
-          "norm": {
-            "value": "{color.sys.text.accent.norm}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.sys.text.accent.hov}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.sys.text.accent.act}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.sys.text.accent.dis}",
-            "type": "color"
-          }
-        }
-      },
-      "upgrade": {
-        "bg": {
-          "norm": {
-            "value": "{color.light.orange.6}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.orange.5}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.orange.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.orange.3}",
-            "type": "color"
-          }
-        },
-        "text": {
-          "def": {
-            "value": "{color.sys.text.anti.norm}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.sys.text.anti.dis}",
-            "type": "color"
-          }
-        }
-      }
-    },
-    "sys": {
-      "text": {
-        "anti": {
-          "norm": {
-            "value": "{color.light.gray.1}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.gray.2}",
-            "type": "color"
-          }
-        },
-        "accent": {
-          "norm": {
-            "value": "{color.light.blue.6}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.blue.5}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.blue.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.blue.3}",
-            "type": "color"
-          }
-        },
-        "neutral": {
-          "lv1": {
-            "value": "{color.light.gray.11}",
-            "type": "color"
-          },
-          "lv2": {
-            "value": "{color.light.gray.9}",
-            "type": "color"
-          },
-          "lv3": {
-            "value": "{color.light.gray.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.gray.6}",
-            "type": "color"
-          }
-        },
-        "brand": {
-          "norm": {
-            "value": "{color.light.navy-blue.6}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.navy-blue.5}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.navy-blue.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.navy-blue.3}",
-            "type": "color"
-          }
-        },
-        "error": {
-          "norm": {
-            "value": "{color.light.red.6}",
-            "type": "color"
-          }
-        }
-      },
-      "border": {
-        "error": {
-          "value": "{color.light.red.6}",
-          "type": "color"
-        },
-        "neutral": {
-          "lv1": {
-            "value": "{color.light.gray.5}",
-            "type": "color"
-          },
-          "lv2": {
-            "value": "{color.light.gray.4}",
-            "type": "color"
-          },
-          "lv3": {
-            "value": "{color.light.gray.3}",
-            "type": "color"
-          }
-        },
-        "accent": {
-          "lv1": {
-            "value": "{color.light.blue.6}",
-            "type": "color"
-          },
-          "lv2": {
-            "value": "{color.light.blue.4}",
-            "type": "color"
-          }
-        }
-      },
-      "layout": {
-        "bg": {
-          "home": {
-            "value": "{color.light.gray.1}",
-            "type": "color"
-          },
-          "view": {
-            "value": "{color.light.gray.5}",
-            "type": "color"
-          },
-          "tabbar": {
-            "value": "{color.light.gray.4}",
-            "type": "color"
-          }
-        },
-        "mg": {
-          "value": "{color.light.gray.2}",
-          "type": "color"
-        },
-        "fg": {
-          "light": {
-            "value": "{color.light.gray.1}",
-            "type": "color"
-          },
-          "light-dis": {
-            "value": "{color.light.gray.3}",
-            "type": "color"
-          },
-          "dark": {
-            "value": "{color.light.gray.4}",
-            "type": "color"
-          }
-        },
-        "dark": {
-          "bg": {
-            "value": "{color.light.gray.10}",
-            "type": "color"
-          }
-        },
-        "state": {
-          "note": {
-            "value": "{color.light.blue.1}",
-            "type": "color"
-          },
-          "info": {
-            "value": "{color.light.blue.2}",
-            "type": "color"
-          },
-          "error": {
-            "value": "{color.light.red.2}",
-            "type": "color"
-          },
-          "warning": {
-            "value": "{color.light.gold.2}",
-            "type": "color"
-          }
-        },
-        "anti": {
-          "value": "{color.light.gray.1}",
-          "type": "color"
-        },
-        "accent": {
-          "value": "{color.light.blue.6}",
-          "type": "color"
-        },
-        "brand": {
-          "value": "{color.light.navy-blue.6}",
-          "type": "color"
-        },
-        "divider": {
-          "value": "rgba({color.light.gray.12}, 0.1)",
-          "type": "color"
-        }
-      }
-    },
-    "item-state": {
-      "sel": {
-        "bg": {
-          "lv1": {
-            "value": "rgba({color.light.blue.6},0.1)",
-            "type": "color"
-          },
-          "lv2": {
-            "value": "{color.light.gray.4}",
-            "type": "color"
-          },
-          "lv3": {
-            "value": "rgba({color.light.gray.5}, 0.6)",
-            "type": "color"
-          }
-        },
-        "border": {
-          "lv3": {
-            "value": "{color.sys.border.neutral.lv1}",
-            "type": "color"
-          }
-        }
-      },
-      "hov": {
-        "bg": {
-          "value": "{color.light.gray.3}",
-          "type": "color"
-        }
-      }
-    },
-    "field": {
-      "border": {
-        "norm": {
-          "value": "{color.sys.border.neutral.lv2}",
-          "type": "color"
-        },
-        "hov": {
-          "value": "{color.sys.border.accent.lv2}",
-          "type": "color"
-        },
-        "focus": {
-          "value": "{color.sys.border.accent.lv1}",
-          "type": "color"
-        },
-        "dis": {
-          "value": "{color.sys.border.neutral.lv2}",
-          "type": "color"
-        },
-        "error": {
-          "value": "{color.sys.border.error}",
-          "type": "color"
-        },
-        "sel": {
-          "value": "{color.light.blue.3}",
-          "type": "color"
-        }
-      },
-      "bg": {
-        "def": {
-          "value": "{color.sys.layout.fg.light}",
-          "type": "color"
-        },
-        "dis": {
-          "value": "{color.sys.layout.fg.light-dis}",
-          "type": "color"
-        }
-      },
-      "bg-text": {
-        "sel": {
-          "value": "{color.light.blue.3}",
-          "type": "color"
-        }
-      },
-      "text": {
-        "act": {
-          "value": "{color.sys.text.neutral.lv1}",
-          "type": "color"
-        },
-        "placeholder": {
-          "value": "{color.sys.text.neutral.lv3}",
-          "type": "color"
-        },
-        "dis": {
-          "value": "{color.sys.text.neutral.dis}",
-          "type": "color"
-        },
-        "tips": {
-          "value": "{color.sys.text.neutral.lv3}",
-          "type": "color"
-        },
-        "tips-error": {
-          "value": "{color.sys.text.error.norm}",
-          "type": "color"
-        }
-      }
-    },
-    "slider": {
-      "track": {
-        "norm": {
-          "value": "{color.light.gray.5}",
-          "type": "color"
-        },
-        "dis": {
-          "value": "{color.light.gray.4}",
-          "type": "color"
-        }
-      },
-      "track-filled": {
-        "norm": {
-          "value": "{color.light.blue.6}",
-          "type": "color"
-        },
-        "dis": {
-          "value": "{color.light.gray.6}",
-          "type": "color"
-        }
-      },
-      "knob": {
-        "norm": {
-          "value": "{color.light.blue.6}",
-          "type": "color"
-        },
-        "dis": {
-          "value": "{color.light.gray.6}",
-          "type": "color"
-        },
-        "border": {
-          "value": "{color.light.gray.1}",
-          "type": "color"
-        }
-      }
-    },
-    "icon": {
-      "base": {
-        "neutral": {
-          "norm": {
-            "lv1": {
-              "value": "{color.light.gray.9}",
-              "type": "color"
-            },
-            "lv2": {
-              "value": "{color.light.gray.7}",
-              "type": "color"
-            },
-            "lv3": {
-              "value": "{color.light.gray.5}",
-              "type": "color"
-            }
-          },
-          "sel": {
-            "value": "{color.light.gray.11}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.gray.6}",
-            "type": "color"
-          }
-        },
-        "brand": {
-          "value": "{color.light.navy-blue.6}",
-          "type": "color"
-        },
-        "accent": {
-          "value": "{color.light.blue.6}",
-          "type": "color"
-        },
-        "state": {
-          "info": {
-            "value": "{color.light.blue.6}",
-            "type": "color"
-          },
-          "success": {
-            "value": "{color.light.green.6}",
-            "type": "color"
-          },
-          "warning": {
-            "value": "{color.light.gold.6}",
-            "type": "color"
-          },
-          "error": {
-            "value": "{color.light.red.6}",
-            "type": "color"
-          }
-        },
-        "anti": {
-          "norm": {
-            "value": "{color.light.gray.1}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.gray.2}",
-            "type": "color"
-          }
-        }
-      },
-      "pdf-tools": {
-        "pink": {
-          "value": "{color.light.pink.5}",
-          "type": "color"
-        },
-        "cyan": {
-          "value": "{color.light.cyan.5}",
-          "type": "color"
-        },
-        "blue": {
-          "value": "{color.light.blue.5}",
-          "type": "color"
-        },
-        "purple": {
-          "value": "{color.light.purple.5}",
-          "type": "color"
-        },
-        "orange": {
-          "value": "{color.light.orange.5}",
-          "type": "color"
-        }
-      },
-      "checkbox-radio": {
-        "norm": {
-          "bg": {
-            "value": "{color.sys.layout.fg.light}",
-            "type": "color"
-          },
-          "border": {
-            "value": "{color.sys.border.neutral.lv2}",
-            "type": "color"
-          }
-        },
-        "hov": {
-          "bg": {
-            "value": "{color.sys.layout.fg.light}",
-            "type": "color"
-          },
-          "border": {
-            "value": "{color.sys.border.accent.lv2}",
-            "type": "color"
-          }
-        },
-        "dis": {
-          "bg": {
-            "value": "{color.sys.layout.fg.light-dis}",
-            "type": "color"
-          },
-          "border": {
-            "value": "{color.sys.border.neutral.lv2}",
-            "type": "color"
-          },
-          "fill": {
-            "value": "{color.icon.base.neutral.dis}",
-            "type": "color"
-          }
-        },
-        "sel": {
-          "bg": {
-            "value": "{color.sys.layout.accent}",
-            "type": "color"
-          },
-          "fill": {
-            "value": "{color.icon.base.anti.norm}",
-            "type": "color"
-          },
-          "border-radio": {
-            "value": "{color.sys.border.accent.lv1}",
-            "type": "color"
-          }
-        }
-      },
-      "file": {
-        "pdf": {
-          "value": "{color.light.red.6}",
-          "type": "color"
-        },
-        "image": {
-          "value": "{color.light.navy-blue.4}",
-          "type": "color"
-        }
-      },
-      "arrow": {
-        "gray": {
-          "def": {
-            "value": "{color.light.gray.7}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.gray.8}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.icon.base.neutral.dis}",
-            "type": "color"
-          }
-        },
-        "anti": {
-          "def": {
-            "value": "{color.icon.base.anti.norm}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.icon.base.anti.dis}",
-            "type": "color"
-          }
-        },
-        "accent": {
-          "norm": {
-            "value": "{color.icon.base.accent}",
-            "type": "color"
-          },
-          "hov": {
-            "value": "{color.light.blue.5}",
-            "type": "color"
-          },
-          "act": {
-            "value": "{color.light.blue.7}",
-            "type": "color"
-          },
-          "dis": {
-            "value": "{color.light.blue.3}",
-            "type": "color"
-          }
-        }
-      }
-    },
-    "badge": {
-      "red": {
-        "bg": {
-          "value": "{color.light.red.6}",
-          "type": "color"
-        }
-      }
-    }
-  },
-  "radius": {
-    "base": {
-      "s": {
-        "value": "{border-radius.2}",
-        "type": "borderRadius"
-      },
-      "m": {
-        "value": "{border-radius.4}",
-        "type": "borderRadius"
-      },
-      "l": {
-        "value": "{border-radius.8}",
-        "type": "borderRadius"
-      }
-    },
-    "fullround-btn": {
-      "xs": {
-        "value": "{border-radius.10}",
-        "type": "borderRadius"
-      },
-      "s": {
-        "value": "{border-radius.12}",
-        "type": "borderRadius"
-      },
-      "m": {
-        "value": "{border-radius.16}",
-        "type": "borderRadius"
-      },
-      "l": {
-        "value": "{border-radius.20}",
-        "type": "borderRadius"
-      }
-    }
-  },
-  "text": {
-    "mac": {
-      "footnote": {
-        "value": "{text-mac.regular.11}",
-        "type": "typography"
-      },
-      "body": {
-        "s": {
-          "value": "{text-mac.regular.12}",
-          "type": "typography"
-        },
-        "m-base": {
-          "value": "{text-mac.regular.14}",
-          "type": "typography"
-        },
-        "l": {
-          "value": "{text-mac.regular.16}",
-          "type": "typography"
-        }
-      },
-      "title": {
-        "s": {
-          "value": "{text-mac.semibold.12}",
-          "type": "typography"
-        },
-        "m-base": {
-          "value": "{text-mac.semibold.14}",
-          "type": "typography"
-        },
-        "l": {
-          "value": "{text-mac.semibold.16}",
-          "type": "typography"
-        },
-        "xl": {
-          "value": "{text-mac.semibold.20}",
-          "type": "typography"
-        }
-      }
-    },
-    "win": {
-      "footnote": {
-        "value": "{text-windows.regular.11}",
-        "type": "typography"
-      },
-      "body": {
-        "s": {
-          "value": "{text-windows.regular.12}",
-          "type": "typography"
-        },
-        "m-base": {
-          "value": "{text-windows.regular.14}",
-          "type": "typography"
-        },
-        "l": {
-          "value": "{text-windows.regular.16}",
-          "type": "typography"
-        }
-      },
-      "title": {
-        "s": {
-          "value": "{text-windows.semibold.12}",
-          "type": "typography"
-        },
-        "m-base": {
-          "value": "{text-windows.semibold.14}",
-          "type": "typography"
-        },
-        "l": {
-          "value": "{text-windows.semibold.16}",
-          "type": "typography"
-        },
-        "xl": {
-          "value": "{text-windows.semibold.20}",
-          "type": "typography"
-        }
-      }
-    }
-  },
-  "shadow": {
-    "neutral": {
-      "s": {
-        "value": "{shadow.black-2-2}",
-        "type": "boxShadow"
-      },
-      "m": {
-        "value": "{shadow.black-2-8}",
-        "type": "boxShadow"
-      },
-      "l": {
-        "value": "{shadow.black-4-16}",
-        "type": "boxShadow"
-      },
-      "xl": {
-        "value": "{shadow.black-16-48}",
-        "type": "boxShadow"
-      }
-    },
-    "accent": {
-      "s": {
-        "value": "{shadow.blue-0-4}",
-        "type": "boxShadow"
-      }
-    },
-    "error": {
-      "s": {
-        "value": "{shadow.red-0-4}",
-        "type": "boxShadow"
-      }
-    }
-  }
-}

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 5809
PDF Office/PDF Master/Class/ComponentLibrary/JSON/comp-light.json


Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 1379
PDF Office/PDF Master/Class/ComponentLibrary/JSON/global.json


+ 0 - 564
PDF Office/PDF Master/Class/ComponentLibrary/KMAliasLightParser.swift

@@ -1,564 +0,0 @@
-//
-//  KMAliasLightParser.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-class KMAliasLightParser: KMBaseParser {
-    func startParse() -> KMAliasLight {
-        self.fileName = "alias-light"
-        self.fileType = "json"
-        return aliasLightParser(self.jsonParser)
-    }
-    
-    func aliasLightParser(_ jsonData: [String: Any]) -> KMAliasLight {
-        let data = jsonData
-        let allKey = data.keys
-        
-        let aliasLightModel = KMAliasLight.init()
-        if allKey.contains("spacing") {
-            aliasLightModel.spacing = ["spacing" : spacingNodeParser((data["spacing"] as! [String : Any]))]
-        }
-        if allKey.contains("color") {
-            aliasLightModel.color = ["color" : colorNodeParser((data["color"] as! [String : Any]))]
-        }
-        if allKey.contains("radius") {
-            aliasLightModel.radius = ["radius" : radiusNodeParser((data["radius"] as! [String : Any]))]
-        }
-        if allKey.contains("text") {
-            aliasLightModel.text = ["text" : textNodeParser((data["text"] as! [String : Any]))]
-        }
-        if allKey.contains("shadow") {
-            aliasLightModel.shadow = ["shadow" : shadowNodeParser((data["shadow"] as! [String : Any]))]
-        }
-        return aliasLightModel
-    }
-        
-    // MARK: spacing
-    
-    func spacingNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_spacing {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_spacing.init()
-        if allKey.contains("base") {
-            model.base = ["base" : spacingSubNodeParser(jsonData["base"] as! [String : Any])]
-        }
-        if allKey.contains("tree") {
-            model.tree = ["tree" : numberNodeParser(jsonData["tree"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    // MARK: color
-    
-    func colorNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_color {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_color.init()
-        if allKey.contains("btn") {
-            model.btn = ["btn" : controlNodeParser(jsonData["btn"] as! [String : Any])]
-        }
-        if allKey.contains("sys") {
-            model.sys = ["sys" : controlNodeParser(jsonData["sys"] as! [String : Any])]
-        }
-        if allKey.contains("item-state") {
-            model.item_state = ["item-state" : controlNodeParser(jsonData["item-state"] as! [String : Any])]
-        }
-        if allKey.contains("field") {
-            model.field = ["field" : attributeNodeParser(jsonData["field"] as! [String : Any])]
-        }
-        if allKey.contains("slider") {
-            model.slider = ["slider" : attributeNodeParser(jsonData["slider"] as! [String : Any])]
-        }
-        if allKey.contains("icon") {
-            model.icon = ["icon" : color_icon_baseParser(jsonData["icon"] as! [String : Any])]
-        }
-        if allKey.contains("badge") {
-            let subData = jsonData["badge"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMAliasLight_control.init()
-            if subKeys.contains("red") {
-                submodel.red = ["red" : attributeNodeParser2(subData["red"] as! [String : Any])]
-            }
-            model.badge = ["badge" : submodel]
-
-        }
-        return model
-    }
-    
-    func color_icon_baseParser(_ jsonData: [String: Any]) -> KMAliasLight_attribute {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_attribute.init()
-        if allKey.contains("neutral") {
-            model.neutral = ["neutral" : color_icon_base_neutralParser(jsonData["neutral"] as! [String : Any])]
-        }
-        if allKey.contains("brand") {
-            model.brand = ["brand" : valueTypeParser(jsonData["brand"] as! [String : Any])]
-        }
-        if allKey.contains("accent") {
-            model.accent = ["accent" : valueTypeParser(jsonData["accent"] as! [String : Any])]
-        }
-        if allKey.contains("state") {
-            model.state = ["state" : stateParser(jsonData["state"] as! [String : Any])]
-        }
-        if allKey.contains("anti") {
-            model.anti = ["anti" : stateParser(jsonData["anti"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func color_icon_base_neutralParser(_ jsonData: [String: Any]) -> KMAliasLight_state {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_state.init()
-        if allKey.contains("norm") {
-            model.norm = ["norm" : lvParser(jsonData["norm"] as! [String : Any])]
-        }
-        if allKey.contains("sel") {
-            model.sel = ["sel" : valueTypeParser(jsonData["sel"] as! [String : Any])]
-        }
-        if allKey.contains("dis") {
-            model.dis = ["dis" : valueTypeParser(jsonData["dis"] as! [String : Any])]
-        }
-        return model
-    }
-        
-    // MARK: radius
-
-    func radiusNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_radius {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_radius.init()
-        if allKey.contains("base") {
-            model.base = ["base" : sizeParser(jsonData["base"] as! [String : Any])]
-        }
-        if allKey.contains("fullround-btn") {
-            model.fullround_btn = ["fullround-btn" : sizeParser(jsonData["fullround-btn"] as! [String : Any])]
-        }
-        return model
-    }
-     
-    // MARK: text
-
-    func textNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_text {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_text.init()
-        if allKey.contains("mac") {
-            let subData = jsonData["mac"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMAliasLight_attribute.init()
-            if subKeys.contains("footnote") {
-                submodel.footnote = ["footnote" : attributeNodeParser2(subData["footnote"] as! [String : Any])]
-            }
-            if subKeys.contains("body") {
-                submodel.body = ["body" : sizeParser(subData["body"] as! [String : Any])]
-            }
-            if subKeys.contains("title") {
-                submodel.title = ["title" : sizeParser(subData["title"] as! [String : Any])]
-            }
-            model.mac = ["fullround-btn" : submodel]
-        }
-        if allKey.contains("win") {
-            let subData = jsonData["win"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMAliasLight_attribute.init()
-            if subKeys.contains("footnote") {
-                submodel.footnote = ["footnote" : attributeNodeParser2(subData["footnote"] as! [String : Any])]
-            }
-            if subKeys.contains("body") {
-                submodel.body = ["body" : sizeParser(subData["body"] as! [String : Any])]
-            }
-            if subKeys.contains("title") {
-                submodel.title = ["title" : sizeParser(subData["title"] as! [String : Any])]
-            }
-            model.win = ["fullround-btn" : submodel]
-        }
-        return model
-    }
-    
-    // MARK: shadow
-
-    func shadowNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_shadow {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_shadow.init()
-        if allKey.contains("neutral") {
-            model.neutral = ["neutral" : sizeParser(jsonData["neutral"] as! [String : Any])]
-        }
-        if allKey.contains("accent") {
-            model.accent = ["accent" : sizeParser(jsonData["accent"] as! [String : Any])]
-        }
-        if allKey.contains("error") {
-            model.error = ["error" : sizeParser(jsonData["error"] as! [String : Any])]
-        }
-        return model
-    }
-
-    // MARK: - sub node
-    
-    func controlNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_control {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_control.init()
-        if allKey.contains("cta") {
-            model.cta = ["cta" : attributeNodeParser(jsonData["cta"] as! [String : Any])]
-        }
-        if allKey.contains("brand") {
-            model.brand = ["brand" : attributeNodeParser(jsonData["brand"] as! [String : Any])]
-        }
-        if allKey.contains("sec") {
-            let subData = jsonData["sec"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMAliasLight_attribute.init()
-            if subKeys.contains("border-color") {
-                submodel.border_color = ["border-color" : valueTypeParser(subData["border-color"] as! [String : Any])]
-            }
-            if subKeys.contains("bg") {
-                submodel.bg = ["bg" : stateParser(subData["bg"] as! [String : Any])]
-            }
-            if subKeys.contains("text") {
-                submodel.text = ["text" : stateParser(subData["text"] as! [String : Any])]
-            }
-            model.sec = ["sec" : submodel]
-        }
-        if allKey.contains("icon-fill") {
-            model.icon_fill = ["icon-fill" : attributeNodeParser(jsonData["icon-fill"] as! [String : Any])]
-        }
-        if allKey.contains("ghost") {
-            model.ghost = ["ghost" : attributeNodeParser(jsonData["ghost"] as! [String : Any])]
-        }
-        if allKey.contains("link") {
-            model.link = ["link" : attributeNodeParser(jsonData["link"] as! [String : Any])]
-        }
-        if allKey.contains("upgrade") {
-            model.upgrade = ["upgrade" : attributeNodeParser(jsonData["upgrade"] as! [String : Any])]
-        }
-        if allKey.contains("text") {
-            model.text = ["text" : attributeNodeParser(jsonData["text"] as! [String : Any])]
-        }
-        if allKey.contains("border") {
-            let subData = jsonData["border"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMAliasLight_attribute.init()
-            if subKeys.contains("error") {
-                submodel.error = ["error" : valueTypeParser(subData["error"] as! [String : Any])]
-            }
-            if subKeys.contains("neutral") {
-                submodel.neutral = ["neutral" : stateParser(subData["neutral"] as! [String : Any])]
-            }
-            if subKeys.contains("accent") {
-                submodel.accent = ["accent" : stateParser(subData["accent"] as! [String : Any])]
-            }
-            model.border = ["border" : submodel]
-        }
-        if allKey.contains("layout") {
-            let subData = jsonData["layout"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMAliasLight_attribute.init()
-            if subKeys.contains("bg") {
-                submodel.bg = ["bg" : stateParser(subData["bg"] as! [String : Any])]
-            }
-            if subKeys.contains("mg") {
-                submodel.mg = ["mg" : valueTypeParser(subData["mg"] as! [String : Any])]
-            }
-            if subKeys.contains("fg") {
-                submodel.fg = ["fg" : stateParser(subData["fg"] as! [String : Any])]
-            }
-            if subKeys.contains("dark") {
-                submodel.dark = ["dark" : stateParser(subData["dark"] as! [String : Any])]
-            }
-            if subKeys.contains("state") {
-                submodel.state = ["state" : stateParser(subData["state"] as! [String : Any])]
-            }
-            if subKeys.contains("anti") {
-                submodel.anti = ["anti" : valueTypeParser(subData["anti"] as! [String : Any])]
-            }
-            if subKeys.contains("accent") {
-                submodel.accent = ["accent" : valueTypeParser(subData["accent"] as! [String : Any])]
-            }
-            if subKeys.contains("brand") {
-                submodel.brand = ["brand" : valueTypeParser(subData["brand"] as! [String : Any])]
-            }
-            if subKeys.contains("divider") {
-                submodel.divider = ["divider" : valueTypeParser(subData["divider"] as! [String : Any])]
-            }
-            model.layout = ["layout" : submodel]
-        }
-        if allKey.contains("sel") {
-            model.sel = ["sel" : attributeNodeParser(jsonData["sel"] as! [String : Any])]
-        }
-        if allKey.contains("hov") {
-            model.hov = ["hov" : attributeNodeParser2(jsonData["hov"] as! [String : Any])]
-        }
-        if allKey.contains("red") {
-            model.red = ["red" : attributeNodeParser(jsonData["red"] as! [String : Any])]
-        }
-        return model
-    }
-
-    func spacingSubNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_attribute {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_attribute.init()
-        if allKey.contains("element") {
-            model.element = ["element" : numberNodeParser(jsonData["element"] as! [String : Any])]
-        }
-        if allKey.contains("module") {
-            model.module = ["module" : numberNodeParser(jsonData["module"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func attributeNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_attribute {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_attribute.init()
-        if allKey.contains("bg") {
-            model.bg = ["bg" : stateParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("text") {
-            model.text = ["text" : stateParser(jsonData["text"] as! [String : Any])]
-        }
-        if allKey.contains("border") {
-            model.border = ["border" : stateParser(jsonData["border"] as! [String : Any])]
-        }
-        if allKey.contains("anti") {
-            model.anti = ["anti" : stateParser(jsonData["anti"] as! [String : Any])]
-        }
-        if allKey.contains("accent") {
-            model.accent = ["accent" : stateParser(jsonData["accent"] as! [String : Any])]
-        }
-        if allKey.contains("neutral") {
-            model.neutral = ["neutral" : stateParser(jsonData["neutral"] as! [String : Any])]
-        }
-        if allKey.contains("brand") {
-            model.brand = ["brand" : stateParser(jsonData["brand"] as! [String : Any])]
-        }
-        if allKey.contains("error") {
-            model.error = ["error" : stateParser(jsonData["error"] as! [String : Any])]
-        }
-        if allKey.contains("mg") {
-            model.mg = ["mg" : valueTypeParser(jsonData["mg"] as! [String : Any])]
-        }
-        if allKey.contains("fg") {
-            model.fg = ["fg" : stateParser(jsonData["fg"] as! [String : Any])]
-        }
-        if allKey.contains("dark") {
-            model.dark = ["dark" : stateParser(jsonData["dark"] as! [String : Any])]
-        }
-        if allKey.contains("state") {
-            model.state = ["state" : stateParser(jsonData["state"] as! [String : Any])]
-        }
-        if allKey.contains("bg-text") {
-            model.bg_text = ["bg-text" : stateParser(jsonData["bg-text"] as! [String : Any])]
-        }
-        if allKey.contains("track") {
-            model.track = ["track" : stateParser(jsonData["track"] as! [String : Any])]
-        }
-        if allKey.contains("track-filled") {
-            model.track_filled = ["track-filled" : stateParser(jsonData["track-filled"] as! [String : Any])]
-        }
-        if allKey.contains("knob") {
-            model.knob = ["knob" : stateParser(jsonData["knob"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func attributeNodeParser2(_ jsonData: [String: Any]) -> KMAliasLight_attribute {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_attribute.init()
-        if allKey.contains("bg") {
-            model.bg = ["bg" : valueTypeParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("footnote") {
-            model.footnote = ["footnote" : valueTypeParser(jsonData["footnote"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func stateParser(_ jsonData: [String: Any]) -> KMAliasLight_state {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_state.init()
-        if allKey.contains("norm") {
-            model.norm = ["norm" : valueTypeParser(jsonData["norm"] as! [String : Any])]
-        }
-        if allKey.contains("hov") {
-            model.hov = ["hov" : valueTypeParser(jsonData["hov"] as! [String : Any])]
-        }
-        if allKey.contains("act") {
-            model.act = ["act" : valueTypeParser(jsonData["act"] as! [String : Any])]
-        }
-        if allKey.contains("dis") {
-            model.dis = ["dis" : valueTypeParser(jsonData["dis"] as! [String : Any])]
-        }
-        if allKey.contains("def") {
-            model.def = ["def" : valueTypeParser(jsonData["def"] as! [String : Any])]
-        }
-        if allKey.contains("lv1") {
-            model.lv1 = ["lv1" : valueTypeParser(jsonData["lv1"] as! [String : Any])]
-        }
-        if allKey.contains("lv2") {
-            model.lv2 = ["lv2" : valueTypeParser(jsonData["lv2"] as! [String : Any])]
-        }
-        if allKey.contains("lv3") {
-            model.lv3 = ["lv3" : valueTypeParser(jsonData["lv3"] as! [String : Any])]
-        }
-        if allKey.contains("home") {
-            model.home = ["home" : valueTypeParser(jsonData["home"] as! [String : Any])]
-        }
-        if allKey.contains("view") {
-            model.view = ["view" : valueTypeParser(jsonData["view"] as! [String : Any])]
-        }
-        if allKey.contains("tabbar") {
-            model.tabbar = ["tabbar" : valueTypeParser(jsonData["tabbar"] as! [String : Any])]
-        }
-        if allKey.contains("light") {
-            model.light = ["light" : valueTypeParser(jsonData["light"] as! [String : Any])]
-        }
-        if allKey.contains("light-dis") {
-            model.light_dis = ["light-dis" : valueTypeParser(jsonData["light-dis"] as! [String : Any])]
-        }
-        if allKey.contains("dark") {
-            model.dark = ["dark" : valueTypeParser(jsonData["dark"] as! [String : Any])]
-        }
-        if allKey.contains("bg") {
-            model.bg = ["bg" : valueTypeParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("note") {
-            model.note = ["note" : valueTypeParser(jsonData["note"] as! [String : Any])]
-        }
-        if allKey.contains("info") {
-            model.info = ["info" : valueTypeParser(jsonData["info"] as! [String : Any])]
-        }
-        if allKey.contains("error") {
-            model.error = ["error" : valueTypeParser(jsonData["error"] as! [String : Any])]
-        }
-        if allKey.contains("warning") {
-            model.warning = ["warning" : valueTypeParser(jsonData["warning"] as! [String : Any])]
-        }
-        if allKey.contains("focus") {
-            model.focus = ["focus" : valueTypeParser(jsonData["focus"] as! [String : Any])]
-        }
-        if allKey.contains("sel") {
-            model.sel = ["sel" : valueTypeParser(jsonData["sel"] as! [String : Any])]
-        }
-
-        return model
-    }
-    
-    func stateParser2(_ jsonData: [String: Any]) -> KMAliasLight_state {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_state.init()
-        if allKey.contains("norm") {
-            model.norm = ["norm" : lvParser(jsonData["norm"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func lvParser(_ jsonData: [String: Any]) -> KMAliasLight_lv {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_lv.init()
-        if allKey.contains("lv1") {
-            model.lv1 = ["lv1" : valueTypeParser(jsonData["lv1"] as! [String : Any])]
-        }
-        if allKey.contains("lv2") {
-            model.lv2 = ["lv2" : valueTypeParser(jsonData["lv2"] as! [String : Any])]
-        }
-        if allKey.contains("lv3") {
-            model.lv3 = ["lv3" : valueTypeParser(jsonData["lv3"] as! [String : Any])]
-        }
-        return model
-    }
-
-    func numberNodeParser(_ jsonData: [String: Any]) -> KMAliasLight_number {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_number.init()
-        if allKey.contains("0") {
-            model.number0 = ["0" : valueTypeParser(jsonData["0"] as! [String : Any])]
-        }
-        if allKey.contains("1") {
-            model.number1 = ["1" : valueTypeParser(jsonData["1"] as! [String : Any])]
-        }
-        if allKey.contains("2") {
-            model.number2 = ["2" : valueTypeParser(jsonData["2"] as! [String : Any])]
-        }
-        if allKey.contains("4") {
-            model.number4 = ["4" : valueTypeParser(jsonData["4"] as! [String : Any])]
-        }
-        if allKey.contains("6") {
-            model.number6 = ["6" : valueTypeParser(jsonData["6"] as! [String : Any])]
-        }
-        if allKey.contains("8") {
-            model.number8 = ["8" : valueTypeParser(jsonData["8"] as! [String : Any])]
-        }
-        if allKey.contains("12") {
-            model.number12 = ["12" : valueTypeParser(jsonData["12"] as! [String : Any])]
-        }
-        if allKey.contains("16") {
-            model.number16 = ["16" : valueTypeParser(jsonData["16"] as! [String : Any])]
-        }
-        if allKey.contains("24") {
-            model.number24 = ["24" : valueTypeParser(jsonData["24"] as! [String : Any])]
-        }
-        if allKey.contains("32") {
-            model.number32 = ["32" : valueTypeParser(jsonData["32"] as! [String : Any])]
-        }
-        if allKey.contains("40") {
-            model.number40 = ["40" : valueTypeParser(jsonData["40"] as! [String : Any])]
-        }
-        if allKey.contains("56") {
-            model.number56 = ["56" : valueTypeParser(jsonData["56"] as! [String : Any])]
-        }
-        if allKey.contains("64") {
-            model.number64 = ["64" : valueTypeParser(jsonData["64"] as! [String : Any])]
-        }
-        if allKey.contains("80") {
-            model.number80 = ["80" : valueTypeParser(jsonData["80"] as! [String : Any])]
-        }
-        if allKey.contains("88") {
-            model.number88 = ["88" : valueTypeParser(jsonData["88"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func sizeParser(_ jsonData: [String: Any]) -> KMAliasLight_size {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_size.init()
-        if allKey.contains("s") {
-            model.s = ["s" : valueTypeParser(jsonData["s"] as! [String : Any])]
-        }
-        if allKey.contains("m") {
-            model.m = ["m" : valueTypeParser(jsonData["m"] as! [String : Any])]
-        }
-        if allKey.contains("l") {
-            model.l = ["l" : valueTypeParser(jsonData["l"] as! [String : Any])]
-        }
-        if allKey.contains("xs") {
-            model.xs = ["xs" : valueTypeParser(jsonData["xs"] as! [String : Any])]
-        }
-        if allKey.contains("m-base") {
-            model.m_base = ["m-base" : valueTypeParser(jsonData["m-base"] as! [String : Any])]
-        }
-        if allKey.contains("xl") {
-            model.xl = ["xl" : valueTypeParser(jsonData["xl"] as! [String : Any])]
-        }
-        return model
-    }
-
-    func valueTypeParser(_ jsonData: [String: Any]) -> KMAliasLight_valueType {
-        let allKey = jsonData.keys
-        let model = KMAliasLight_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
-    }
-}
-
-// MARK: - Parser Action
-
-extension KMAliasLightParser {
-    func startJSONParse() -> [String : Any] {
-        self.fileName = "alias-light"
-        self.fileType = "json"
-        return self.jsonParser
-    }
-}

+ 0 - 109
PDF Office/PDF Master/Class/ComponentLibrary/KMBaseParser.swift

@@ -1,109 +0,0 @@
-//
-//  KMBaseParser.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-class KMBaseParser: NSObject {
-    
-    var fileName: String = "comp-light"
-    var fileType: String = "json"
-    var jsonParser: [String: Any] {
-        let data = try? Data(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: fileName, ofType: fileType)!))
-        let jsonData = try! JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers)
-        return jsonData as! [String: Any]
-    }
-    var globalDict: [String : Any] = [:]
-    var aliasLightDict: [String : Any] = [:]
-    
-    var finalDict: [String : Any] = [:]
-
-    // MARK: Parser Action
-    
-    func valueParser(key : String) -> Any {
-        var parserKey = key
-        if key.first == "{" {
-            parserKey.removeFirst(1)
-        }
-        if key.last == "}" {
-            parserKey.removeLast(1)
-        }
-        let keys = parserKey.split(separator: ".")
-        var parserArr: [[String : Any]] = [aliasLightDict, globalDict]
-        for subKey in keys {
-            if subKey == keys.last {
-                if parserArr.count == 1 {
-                    let dict: [String : Any] = parserArr.last!
-                    let valueDict = dict[String(subKey)] as! [String : Any]
-                    let value = valueDict["value"]
-                    if value is [String : Any] {
-                        return value as Any
-                    } else if value is String {
-                        let valueStr = value as! String
-                        if (valueStr.first == "{") && (valueStr.last == "}") {
-                            return valueParser(key: valueStr)
-                        } else if (valueStr.first == "r" && valueStr.last == ")") {
-                            return rgbaParser(key: valueStr)
-                        } else {
-                            return valueStr
-                        }
-                    }
-                } else if parserArr.count == 2 {
-                    for model in parserArr {
-                        let allKey = model.keys
-                        if allKey.contains(String(subKey)) {
-                            let valueDict = model[String(subKey)] as! [String : Any]
-                            let allKey = valueDict.keys
-                            if allKey.contains("value") {
-                                let value = valueDict["value"]
-                                if value is [String : Any] {
-                                    return value as Any
-                                } else if value is String {
-                                    let valueStr = value as! String
-                                    if (valueStr.first == "{") && (valueStr.last == "}") {
-                                        return valueParser(key: valueStr)
-                                    } else if (valueStr.first == "r" && valueStr.last == ")") {
-                                        return rgbaParser(key: valueStr)
-                                    } else {
-                                        return valueStr
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            } else {
-                parserArr = parserAction(parserArr, String(subKey))
-            }
-        }
-        return ""
-
-    }
-        
-    func rgbaParser(key : String) -> Any {
-        var parserKey = key
-        if key.first == "r" {
-            parserKey.removeFirst(5)
-        }
-        if key.last == ")" {
-            parserKey.removeLast(1)
-        }
-        let parserKey1 = parserKey.replacingOccurrences(of: " ", with: "") as String
-        let keys = parserKey1.split(separator: ",")
-        return String(format: "%@,%@", valueParser(key: String(keys[0])) as! String, String(keys[1]))
-    }
-    
-    func parserAction(_ array: [[String : Any]], _ key: String) -> [[String : Any]] {
-        var parserArr: [[String : Any]] = []
-        for model in array {
-            let allKey = model.keys
-            if allKey.contains(key) {
-                parserArr.append(model[key] as! [String : Any])
-            }
-        }
-        return parserArr
-    }
-}

+ 0 - 836
PDF Office/PDF Master/Class/ComponentLibrary/KMCompLightParser.swift

@@ -1,836 +0,0 @@
-//
-//  KMCompLightParser.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-class KMCompLightParser: KMBaseParser {
-    
-    
-
-    func startParse() -> KMCompLight {
-        self.fileName = "comp-light"
-        self.fileType = "json"
-        return compLightParser(self.jsonParser)
-    }
-    
-    func compLightParser(_ jsonData: [String: Any]) -> KMCompLight {
-        let data = jsonData
-        let allKey = data.keys
-        
-        let compLightModel = KMCompLight.init()
-        if allKey.contains("btn") {
-            compLightModel.btn = ["btn" : btnNodeParser((data["btn"] as! [String : Any]))]
-        }
-        if allKey.contains("dropdown") {
-            compLightModel.dropdown = ["dropdown" : dropdownNodeParser((data["dropdown"] as! [String : Any]))]
-        }
-        if allKey.contains("navmenu") {
-            compLightModel.navmenu = ["navmenu" : navmenuNodeParser((data["navmenu"] as! [String : Any]))]
-        }
-        if allKey.contains("multi-tab") {
-            compLightModel.multi_tab = ["multi-tab" : multitabNodeParser((data["multi-tab"] as! [String : Any]))]
-        }
-        if allKey.contains("checkbox-radio") {
-            compLightModel.checkbox_radio = ["checkbox-radio" : checkboxradioNodeParser((data["checkbox-radio"] as! [String : Any]))]
-        }
-        if allKey.contains("input") {
-            compLightModel.input = ["input" : inputNodeParser((data["input"] as! [String : Any]))]
-        }
-        if allKey.contains("pagination") {
-            compLightModel.pagination = ["pagination" : paginationNodeParser((data["pagination"] as! [String : Any]))]
-        }
-        if allKey.contains("select") {
-            compLightModel.select = ["select" : selectNodeParser((data["select"] as! [String : Any]))]
-        }
-        if allKey.contains("slider") {
-            compLightModel.slider = ["slider" : sliderNodeParser((data["slider"] as! [String : Any]))]
-        }
-        if allKey.contains("stepper") {
-            compLightModel.stepper = ["stepper" : stepperNodeParser((data["stepper"] as! [String : Any]))]
-        }
-        if allKey.contains("badge") {
-            compLightModel.badge = ["badge" : badgeNodeParser((data["badge"] as! [String : Any]))]
-        }
-        if allKey.contains("collapse") {
-            compLightModel.collapse = ["collapse" : collapseNodeParser((data["collapse"] as! [String : Any]))]
-        }
-        if allKey.contains("list") {
-            compLightModel.list = ["list" : listNodeParser((data["list"] as! [String : Any]))]
-        }
-        if allKey.contains("progress") {
-            compLightModel.progress = ["progress" : progressNodeParser((data["progress"] as! [String : Any]))]
-        }
-        if allKey.contains("segmented") {
-            compLightModel.segmented = ["segmented" : segmentedNodeParser((data["segmented"] as! [String : Any]))]
-        }
-        if allKey.contains("tree") {
-            compLightModel.tree = ["tree" : treeNodeParser((data["tree"] as! [String : Any]))]
-        }
-        if allKey.contains("alert") {
-            compLightModel.alert = ["alert" : alertNodeParser((data["alert"] as! [String : Any]))]
-        }
-        if allKey.contains("drawer") {
-            compLightModel.drawer = ["drawer" : drawerNodeParser((data["drawer"] as! [String : Any]))]
-        }
-        if allKey.contains("notification") {
-            compLightModel.notification = ["notification" : notificationNodeParser((data["notification"] as! [String : Any]))]
-        }
-        if allKey.contains("table") {
-            compLightModel.table = ["table" : tableNodeParser((data["table"] as! [String : Any]))]
-        }
-        if allKey.contains("divider") {
-            compLightModel.divider = ["divider" : dividerNodeParser((data["divider"] as! [String : Any]))]
-        }
-        return compLightModel
-    }
-    
-    // MARK: Node Parser
-    
-    func btnNodeParser(_ jsonData: [String: Any]) -> KMCompLight_btn {
-        let allKey = jsonData.keys
-        let model = KMCompLight_btn.init()
-        if allKey.contains("cta") {
-            model.cta = ["cta" : sizeNodeParser(jsonData["cta"] as! [String : Any])]
-        }
-        if allKey.contains("brand") {
-            model.brand = ["brand" : sizeNodeParser(jsonData["brand"] as! [String : Any])]
-        }
-        if allKey.contains("sec") {
-            model.sec = ["sec" : sizeNodeParser(jsonData["sec"] as! [String : Any])]
-        }
-        if allKey.contains("ghost") {
-            model.ghost = ["ghost" : sizeNodeParser(jsonData["ghost"] as! [String : Any])]
-        }
-        if allKey.contains("link") {
-            model.link = ["link" : sizeNodeParser(jsonData["link"] as! [String : Any])]
-        }
-        if allKey.contains("upgrade") {
-            model.upgrade = ["upgrade" : sizeNodeParser(jsonData["upgrade"] as! [String : Any])]
-        }
-        if allKey.contains("icon-fill") {
-            model.icon_fill = ["icon-fill" : sizeNodeParser(jsonData["icon-fill"] as! [String : Any])]
-        }
-        if allKey.contains("sec-icon") {
-            model.sec_icon = ["sec-icon" : sizeNodeParser(jsonData["sec-icon"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func dropdownNodeParser(_ jsonData: [String: Any]) -> KMCompLight_dropdown {
-        let allKey = jsonData.keys
-        let model = KMCompLight_dropdown.init()
-        if allKey.contains("s") {
-            model.s = ["s" : uiAttributeParser(jsonData["s"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func navmenuNodeParser(_ jsonData: [String: Any]) -> KMCompLight_navmenu {
-        let allKey = jsonData.keys
-        let model = KMCompLight_navmenu.init()
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("base") {
-            model.base = ["base" : sizeNodeParser(jsonData["base"] as! [String : Any])]
-        }
-        if allKey.contains("has-icon") {
-            model.has_icon = ["has-icon" : sizeNodeParser(jsonData["has-icon"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func multitabNodeParser(_ jsonData: [String: Any]) -> KMCompLight_multiTab {
-        let allKey = jsonData.keys
-        let model = KMCompLight_multiTab.init()
-        if allKey.contains("bg") {
-            model.bg = ["bg" : uiAttributeParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func checkboxradioNodeParser(_ jsonData: [String: Any]) -> KMCompLight_checkboxRadio {
-        let allKey = jsonData.keys
-        let model = KMCompLight_checkboxRadio.init()
-        if allKey.contains("bg") {
-            model.bg = ["bg" : uiStateParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func inputNodeParser(_ jsonData: [String: Any]) -> KMCompLight_input {
-        let allKey = jsonData.keys
-        let model = KMCompLight_input.init()
-        if allKey.contains("m") {
-            model.m = ["m" : uiAttributeParser(jsonData["m"] as! [String : Any])]
-        }
-        if allKey.contains("tips") {
-            model.tips = ["tips" : uiAttributeParser(jsonData["tips"] as! [String : Any])]
-        }
-        if allKey.contains("s") {
-            model.s = ["s" : uiAttributeParser(jsonData["s"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func paginationNodeParser(_ jsonData: [String: Any]) -> KMCompLight_pagination {
-        let allKey = jsonData.keys
-        let model = KMCompLight_pagination.init()
-        if allKey.contains("Simple") {
-            model.simple = ["Simple" : uiAttributeParser2(jsonData["Simple"] as! [String : Any])]
-        }
-        if allKey.contains("multiple") {
-            model.multiple = ["multiple" : uiAttributeParser2(jsonData["multiple"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func selectNodeParser(_ jsonData: [String: Any]) -> KMCompLight_select {
-        let allKey = jsonData.keys
-        let model = KMCompLight_select.init()
-        if allKey.contains("s") {
-            model.s = ["s" : uiAttributeParser(jsonData["s"] as! [String : Any])]
-        }
-        if allKey.contains("m") {
-            model.m = ["m" : uiAttributeParser(jsonData["m"] as! [String : Any])]
-        }
-        if allKey.contains("Simple") {
-            model.simple = ["Simple" : uiAttributeParser2(jsonData["Simple"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func sliderNodeParser(_ jsonData: [String: Any]) -> KMCompLight_slider {
-        let allKey = jsonData.keys
-        let model = KMCompLight_slider.init()
-        if allKey.contains("knob") {
-            model.knob = ["knob" : uiStateParser(jsonData["knob"] as! [String : Any])]
-        }
-        if allKey.contains("track") {
-            model.track = ["track" : uiStateParser(jsonData["track"] as! [String : Any])]
-        }
-        if allKey.contains("track-filled") {
-            model.track_filled = ["track-filled" : uiStateParser(jsonData["track-filled"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func stepperNodeParser(_ jsonData: [String: Any]) -> KMCompLight_stepper {
-        let allKey = jsonData.keys
-        let model = KMCompLight_stepper.init()
-        if allKey.contains("item-spacing") {
-            model.item_spacing = ["item-spacing" : valueTypeParser(jsonData["item-spacing"] as! [String : Any])]
-        }
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("bg") {
-            model.bg = ["bg" : uiStateParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("arrow") {
-            model.arrow = ["arrow" : uiAttributeParser(jsonData["arrow"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func badgeNodeParser(_ jsonData: [String: Any]) -> KMCompLight_badge {
-        let allKey = jsonData.keys
-        let model = KMCompLight_badge.init()
-        if allKey.contains("dot") {
-            model.dot = ["dot" : valueTypeParser(jsonData["dot"] as! [String : Any])]
-        }
-        if allKey.contains("text") {
-            model.text = ["text" : uiAttributeParser2(jsonData["text"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func cardNodeParser(_ jsonData: [String: Any]) -> KMCompLight_card {
-        let allKey = jsonData.keys
-        let model = KMCompLight_card.init()
-        if allKey.contains("has-desc") {
-            model.has_desc = ["has-desc" : uiAttributeParser(jsonData["has-desc"] as! [String : Any])]
-        }
-        if allKey.contains("Simple") {
-            model.simple = ["Simple" : uiAttributeParser(jsonData["Simple"] as! [String : Any])]
-        }
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("item-spacing") {
-            model.item_spacing = ["item-spacing" : valueTypeParser(jsonData["item-spacing"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func collapseNodeParser(_ jsonData: [String: Any]) -> KMCompLight_collapse {
-        let allKey = jsonData.keys
-        let model = KMCompLight_collapse.init()
-        if allKey.contains("ad-list") {
-            let subData = jsonData["ad-list"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMCompLight_UIAttribute.init()
-            if subKeys.contains("mac-text") {
-                submodel.mac_text = ["mac-text" : uiStateParser(subData["mac-text"] as! [String : Any])]
-            }
-            if subKeys.contains("bg") {
-                submodel.bg = ["bg" : valueTypeParser(subData["bg"] as! [String : Any])]
-            }
-            if subKeys.contains("win-text") {
-                submodel.win_text = ["win-text" : uiStateParser(subData["win-text"] as! [String : Any])]
-            }
-            if subKeys.contains("item-spacing") {
-                submodel.item_spacing = ["item-spacing" : valueTypeParser(subData["item-spacing"] as! [String : Any])]
-            }
-            model.ad_list = ["ad-list" : submodel]
-        }
-        if allKey.contains("bota-list") {
-            let subData = jsonData["bota-list"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMCompLight_UIAttribute.init()
-            if subKeys.contains("bg") {
-                submodel.bg = ["bg" : valueTypeParser(subData["bg"] as! [String : Any])]
-            }
-            if subKeys.contains("mac-text-title") {
-                submodel.mac_text_title = ["mac-text-title" : uiStateParser(subData["mac-text-title"] as! [String : Any])]
-            }
-            if subKeys.contains("mac-text-desc") {
-                submodel.mac_text_desc = ["mac-text-desc" : uiStateParser(subData["mac-text-desc"] as! [String : Any])]
-            }
-            if subKeys.contains("win-text-title") {
-                submodel.win_text_title = ["win-text-title" : uiStateParser(subData["win-text-title"] as! [String : Any])]
-            }
-            if subKeys.contains("win-text-desc") {
-                submodel.win_text_desc = ["win-text-desc" : uiStateParser(subData["win-text-desc"] as! [String : Any])]
-            }
-            model.bota_list = ["bota-list" : submodel]
-        }
-        return model
-    }
-    
-    func listNodeParser(_ jsonData: [String: Any]) -> KMCompLight_list {
-        let allKey = jsonData.keys
-        let model = KMCompLight_list.init()
-        if allKey.contains("bookmark") {
-            let subData = jsonData["bookmark"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMCompLight_UIAttribute.init()
-            if subKeys.contains("mac-text") {
-                submodel.mac_text = ["mac-text" : valueTypeParser(subData["mac-text"] as! [String : Any])]
-            }
-            if subKeys.contains("win-text") {
-                submodel.win_text = ["win-text" : valueTypeParser(subData["win-text"] as! [String : Any])]
-            }
-            if subKeys.contains("bg") {
-                submodel.bg = ["bg" : uiStateParser(subData["bg"] as! [String : Any])]
-            }
-            model.bookmark = ["bookmark" : submodel]
-        }
-
-        if allKey.contains("markup-header") {
-            model.markup_header = ["markup-header" : uiAttributeParser2(jsonData["markup-header"] as! [String : Any])]
-        }
-        if allKey.contains("markup-note") {
-            model.markup_note = ["markup-note" : uiAttributeParser2(jsonData["markup-note"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func progressNodeParser(_ jsonData: [String: Any]) -> KMCompLight_progress {
-        let allKey = jsonData.keys
-        let model = KMCompLight_progress.init()
-        if allKey.contains("popup") {
-            let subData = jsonData["popup"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMCompLight_UIAttribute.init()
-            if subKeys.contains("bg") {
-                submodel.bg = ["bg" : valueTypeParser(subData["bg"] as! [String : Any])]
-            }
-            if subKeys.contains("mac-text") {
-                submodel.mac_text = ["mac-text" : valueTypeParser(subData["mac-text"] as! [String : Any])]
-            }
-            if subKeys.contains("win-text") {
-                submodel.win_text = ["win-text" : valueTypeParser(subData["win-text"] as! [String : Any])]
-            }
-            if subKeys.contains("progress-bar") {
-                submodel.progress_bar = ["progress-bar" : progressBarParser(subData["progress-bar"] as! [String : Any])]
-            }
-            if subKeys.contains("item-spacing") {
-                submodel.item_spacing = ["item-spacing" : valueTypeParser(subData["item-spacing"] as! [String : Any])]
-            }
-            model.popup = ["popup" : submodel]
-        }
-        if allKey.contains("loading") {
-            let subData = jsonData["loading"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMCompLight_sizeNode.init()
-            if subKeys.contains("m") {
-                submodel.m = ["m" : valueTypeParser(subData["m"] as! [String : Any])]
-            }
-            if subKeys.contains("s") {
-                submodel.s = ["s" : valueTypeParser(subData["s"] as! [String : Any])]
-            }
-            model.loading = ["loading" : submodel]
-        }
-        return model
-    }
-    
-    func segmentedNodeParser(_ jsonData: [String: Any]) -> KMCompLight_segmented {
-        let allKey = jsonData.keys
-        let model = KMCompLight_segmented.init()
-        if allKey.contains("bg") {
-            model.bg = ["bg" : valueTypeParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("bg-item") {
-            model.bg_item = ["bg-item" : uiStateParser(jsonData["bg-item"] as! [String : Any])]
-        }
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-
-    func treeNodeParser(_ jsonData: [String: Any]) -> KMCompLight_tree {
-        let allKey = jsonData.keys
-        let model = KMCompLight_tree.init()
-        if allKey.contains("base") {
-            model.base = ["base" : baseNodeParser(jsonData["base"] as! [String : Any])]
-        }
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("rename") {
-            let subData = jsonData["rename"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMCompLight_UIAttribute.init()
-            if subKeys.contains("bg-text") {
-                submodel.bg_text = ["bg-text" : uiStateParser(subData["bg-text"] as! [String : Any])]
-            }
-            if subKeys.contains("bg-field") {
-                submodel.bg_field = ["bg-field" : valueTypeParser(subData["bg-field"] as! [String : Any])]
-            }
-            model.rename = ["rename" : submodel]
-        }
-        if allKey.contains("has-arrow") {
-            model.has_arrow = ["has-arrow" : baseNodeParser(jsonData["has-arrow"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func alertNodeParser(_ jsonData: [String: Any]) -> KMCompLight_alert {
-        let allKey = jsonData.keys
-        let model = KMCompLight_alert.init()
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : valueTypeParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : valueTypeParser(jsonData["win-text"] as! [String : Any])]
-        }
-        if allKey.contains("bg") {
-            model.bg = ["bg" : uiStateParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("item-spacing") {
-            model.item_spacing = ["item-spacing" : valueTypeParser(jsonData["item-spacing"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func drawerNodeParser(_ jsonData: [String: Any]) -> KMCompLight_drawer {
-        let allKey = jsonData.keys
-        let model = KMCompLight_drawer.init()
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : valueTypeParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : valueTypeParser(jsonData["win-text"] as! [String : Any])]
-        }
-        if allKey.contains("bg") {
-            model.bg = ["bg" : valueTypeParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("item-spacing") {
-            model.item_spacing = ["item-spacing" : valueTypeParser(jsonData["item-spacing"] as! [String : Any])]
-        }
-        return model
-    }
-
-    func notificationNodeParser(_ jsonData: [String: Any]) -> KMCompLight_notification {
-        let allKey = jsonData.keys
-        let model = KMCompLight_notification.init()
-        if allKey.contains("toast") {
-            model.toast = ["toast" : uiAttributeParser2(jsonData["toast"] as! [String : Any])]
-        }
-        if allKey.contains("modal") {
-            let subData = jsonData["modal"] as! [String : Any]
-            let subKeys = subData.keys
-            let submodel = KMCompLight_UIAttribute.init()
-            if subKeys.contains("bg") {
-                submodel.bg = ["bg" : valueTypeParser(subData["bg"] as! [String : Any])]
-            }
-            if subKeys.contains("item-spacing") {
-                submodel.item_spacing = ["item-spacing" : valueTypeParser(subData["item-spacing"] as! [String : Any])]
-            }
-            if subKeys.contains("mac-text") {
-                submodel.mac_text = ["mac-text" : uiStateParser(subData["mac-text"] as! [String : Any])]
-            }
-            if subKeys.contains("win-text") {
-                submodel.win_text = ["win-text" : uiStateParser(subData["win-text"] as! [String : Any])]
-            }
-            model.modal = ["modal" : submodel]
-
-        }
-        return model
-    }
-    
-    func tableNodeParser(_ jsonData: [String: Any]) -> KMCompLight_table {
-        let allKey = jsonData.keys
-        let model = KMCompLight_table.init()
-        if allKey.contains("header") {
-            model.header = ["header" : uiAttributeParser2(jsonData["header"] as! [String : Any])]
-        }
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("list") {
-            model.list = ["list" : tableListNodeParser(jsonData["list"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        return model
-    }
-
-    func dividerNodeParser(_ jsonData: [String: Any]) -> KMCompLight_divider {
-        let allKey = jsonData.keys
-        let model = KMCompLight_divider.init()
-        if allKey.contains("horiz") {
-            model.horiz = ["horiz" : valueTypeParser(jsonData["horiz"] as! [String : Any])]
-        }
-        if allKey.contains("vert") {
-            model.vert = ["vert" : valueTypeParser(jsonData["vert"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    // MARK:
-    
-    func sizeNodeParser(_ jsonData: [String: Any]) -> KMCompLight_sizeNode {
-        let allKey = jsonData.keys
-        let model = KMCompLight_sizeNode.init()
-        if allKey.contains("s") {
-            model.s = ["s" : uiAttributeParser(jsonData["s"] as! [String : Any])]
-        }
-        if allKey.contains("m") {
-            model.m = ["m" : uiAttributeParser(jsonData["m"] as! [String : Any])]
-        }
-        if allKey.contains("l") {
-            model.l = ["l" : uiAttributeParser(jsonData["l"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func tableListNodeParser(_ jsonData: [String: Any]) -> KMCompLight_tableListNode {
-        let allKey = jsonData.keys
-        let model = KMCompLight_tableListNode.init()
-        if allKey.contains("file") {
-            model.file = ["file" : uiAttributeParser3(jsonData["file"] as! [String : Any])]
-        }
-        if allKey.contains("batch") {
-            model.batch = ["batch" : uiAttributeParser(jsonData["batch"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func uiAttributeParser(_ jsonData: [String: Any]) -> KMCompLight_UIAttribute {
-        //btn - cta - mac-text/
-        let allKey = jsonData.keys
-        let model = KMCompLight_UIAttribute.init()
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("bg") {
-            model.bg = ["bg" : uiStateParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        if allKey.contains("item-spacing") {
-            model.item_spacing = ["item-spacing" : valueTypeParser(jsonData["item-spacing"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func uiAttributeParser2(_ jsonData: [String: Any]) -> KMCompLight_UIAttribute {
-        let allKey = jsonData.keys
-        let model = KMCompLight_UIAttribute.init()
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : valueTypeParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("bg") {
-            model.bg = ["bg" : valueTypeParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : valueTypeParser(jsonData["win-text"] as! [String : Any])]
-        }
-        if allKey.contains("item-spacing") {
-            model.item_spacing = ["item-spacing" : valueTypeParser(jsonData["item-spacing"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func uiAttributeParser3(_ jsonData: [String: Any]) -> KMCompLight_UIAttribute {
-        //btn - cta - mac-text/
-        let allKey = jsonData.keys
-        let model = KMCompLight_UIAttribute.init()
-        if allKey.contains("mac-text") {
-            model.mac_text = ["mac-text" : uiStateParser(jsonData["mac-text"] as! [String : Any])]
-        }
-        if allKey.contains("bg") {
-            model.bg = ["bg" : uiStateParser(jsonData["bg"] as! [String : Any])]
-        }
-        if allKey.contains("win-text") {
-            model.win_text = ["win-text" : uiStateParser(jsonData["win-text"] as! [String : Any])]
-        }
-        if allKey.contains("item-spacing") {
-            model.item_spacing = ["item-spacing" : uiStateParser(jsonData["item-spacing"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func uiStateParser(_ jsonData: [String: Any]) -> KMCompLight_UIState {
-        let allKey = jsonData.keys
-        let model = KMCompLight_UIState.init()
-        if allKey.contains("def") {
-            model.def = ["def" : valueTypeParser(jsonData["def"] as! [String : Any])]
-        }
-        if allKey.contains("dis") {
-            model.dis = ["dis" : valueTypeParser(jsonData["dis"] as! [String : Any])]
-        }
-        if allKey.contains("norm") {
-            model.norm = ["norm" : valueTypeParser(jsonData["norm"] as! [String : Any])]
-        }
-        if allKey.contains("hov") {
-            model.hov = ["hov" : valueTypeParser(jsonData["hov"] as! [String : Any])]
-        }
-        if allKey.contains("act") {
-            model.act = ["act" : valueTypeParser(jsonData["act"] as! [String : Any])]
-        }
-        if allKey.contains("sel") {
-            model.sel = ["sel" : valueTypeParser(jsonData["sel"] as! [String : Any])]
-        }
-        if allKey.contains("placeholder") {
-            model.placeholder = ["placeholder" : valueTypeParser(jsonData["placeholder"] as! [String : Any])]
-        }
-        if allKey.contains("focus") {
-            model.focus = ["focus" : valueTypeParser(jsonData["focus"] as! [String : Any])]
-        }
-        if allKey.contains("error-def") {
-            model.error_def = ["error-def" : valueTypeParser(jsonData["error-def"] as! [String : Any])]
-        }
-        if allKey.contains("error-focus") {
-            model.error_focus = ["error-focus" : valueTypeParser(jsonData["error-focus"] as! [String : Any])]
-        }
-        if allKey.contains("error") {
-            model.error = ["error" : valueTypeParser(jsonData["error"] as! [String : Any])]
-        }
-        if allKey.contains("none") {
-            model.none = ["none" : valueTypeParser(jsonData["none"] as! [String : Any])]
-        }
-        if allKey.contains("custom") {
-            model.custom = ["custom" : valueTypeParser(jsonData["custom"] as! [String : Any])]
-        }
-        if allKey.contains("move") {
-            model.move = ["move" : valueTypeParser(jsonData["move"] as! [String : Any])]
-        }
-        if allKey.contains("change") {
-            model.change = ["change" : valueTypeParser(jsonData["change"] as! [String : Any])]
-        }
-        if allKey.contains("title") {
-            model.title = ["title" : valueTypeParser(jsonData["title"] as! [String : Any])]
-        }
-        if allKey.contains("desc") {
-            model.desc = ["desc" : valueTypeParser(jsonData["desc"] as! [String : Any])]
-        }
-        if allKey.contains("unsel") {
-            model.unsel = ["unsel" : valueTypeParser(jsonData["unsel"] as! [String : Any])]
-        }
-        if allKey.contains("main") {
-            model.main = ["main" : valueTypeParser(jsonData["main"] as! [String : Any])]
-        }
-        if allKey.contains("info") {
-            model.info = ["info" : valueTypeParser(jsonData["info"] as! [String : Any])]
-        }
-        if allKey.contains("warning") {
-            model.warning = ["warning" : valueTypeParser(jsonData["warning"] as! [String : Any])]
-        }
-        if allKey.contains("item") {
-            model.item = ["item" : valueTypeParser(jsonData["item"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func valueTypeParser(_ jsonData: [String: Any]) -> KMCompLight_valueType {
-        let allKey = jsonData.keys
-        let model = KMCompLight_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 uiValueParser(_ jsonData: [String: Any]) -> KMCompLight_UIValue {
-        let allKey = jsonData.keys
-        let model = KMCompLight_UIValue.init()
-        if allKey.contains("fill") {
-            model.fill = ["fill" : jsonData["fill"] as! String]
-        }
-        if allKey.contains("typography") {
-            model.typography = ["typography" : jsonData["typography"] as! String]
-        }
-        if allKey.contains("height") {
-            model.height = ["height" : jsonData["height"] as! String]
-        }
-        if allKey.contains("horizontalPadding") {
-            model.horizontalPadding = ["horizontalPadding" : jsonData["horizontalPadding"] as! String]
-        }
-        if allKey.contains("borderRadius") {
-            model.borderRadius = ["borderRadius" : jsonData["borderRadius"] as! String]
-        }
-        if allKey.contains("itemSpacing") {
-            model.itemSpacing = ["itemSpacing" : jsonData["itemSpacing"] as! String]
-        }
-        if allKey.contains("borderWidth") {
-            model.borderWidth = ["borderWidth" : jsonData["borderWidth"] as! String]
-        }
-        if allKey.contains("border") {
-            model.border = ["border" : jsonData["border"] as! String]
-        }
-        if allKey.contains("borderRadiusTopLeft") {
-            model.borderRadiusTopLeft = ["borderRadiusTopLeft" : jsonData["borderRadiusTopLeft"] as! String]
-        }
-        if allKey.contains("borderRadiusTopRight") {
-            model.borderRadiusTopRight = ["borderRadiusTopRight" : jsonData["borderRadiusTopRight"] as! String]
-        }
-        if allKey.contains("borderWidthBottom") {
-            model.borderWidthBottom = ["borderWidthBottom" : jsonData["borderWidthBottom"] as! String]
-        }
-        if allKey.contains("boxShadow") {
-            model.boxShadow = ["boxShadow" : jsonData["boxShadow"] as! String]
-        }
-        if allKey.contains("paddingLeft") {
-            model.paddingLeft = ["paddingLeft" : jsonData["paddingLeft"] as! String]
-        }
-        if allKey.contains("paddingRight") {
-            model.paddingRight = ["paddingRight" : jsonData["paddingRight"] as! String]
-        }
-        if allKey.contains("paddingTop") {
-            model.paddingTop = ["paddingTop" : jsonData["paddingTop"] as! String]
-        }
-        if allKey.contains("paddingBottom") {
-            model.paddingBottom = ["paddingBottom" : jsonData["paddingBottom"] as! String]
-        }
-        return model
-    }
-    
-    func progressBarParser(_ jsonData: [String: Any]) -> KMCompLight_progressBar {
-        let allKey = jsonData.keys
-        let model = KMCompLight_progressBar.init()
-        if allKey.contains("track") {
-            model.track = ["track" : valueTypeParser(jsonData["track"] as! [String : Any])]
-        }
-        if allKey.contains("track-filled") {
-            model.track_filled = ["track-filled" : valueTypeParser(jsonData["track-filled"] as! [String : Any])]
-        }
-        return model
-    }
-    
-    func baseNodeParser(_ jsonData: [String: Any]) -> KMCompLight_baseNode {
-        let allKey = jsonData.keys
-        let model = KMCompLight_baseNode.init()
-        if allKey.contains("parent") {
-            model.parent = ["parent" : uiAttributeParser(jsonData["parent"] as! [String : Any])]
-        }
-        if allKey.contains("children-lv2") {
-            model.children_lv2 = ["children-lv2" : uiAttributeParser(jsonData["children-lv2"] as! [String : Any])]
-        }
-        if allKey.contains("children-lv3") {
-            model.children_lv3 = ["children-lv3" : uiAttributeParser(jsonData["children-lv3"] as! [String : Any])]
-        }
-        if allKey.contains("children-lv4") {
-            model.children_lv4 = ["children-lv4" : uiAttributeParser(jsonData["children-lv4"] as! [String : Any])]
-        }
-        return model
-    }
-}
-
-// MARK: - Parser Action
-
-extension KMCompLightParser {
-    func startJSONParse() -> [String : Any] {
-        self.fileName = "comp-light"
-        self.fileType = "json"
-        return self.jsonParser
-    }
-    
-    func parserValueNode(_ dict: [String : Any], _ tokenKey: String) -> Void {
-        let valueDict = dict
-        var tokenStr = tokenKey
-        let allKey = valueDict.keys
-        if allKey.contains("value") {
-            let value = valueDict["value"]
-            if (value is [String : String]) {
-                var rootNode = value as! [String : Any]
-                let rootNodeKeys = rootNode.keys
-                for rootNodeKey in rootNodeKeys {
-                    let rootValue: String = rootNode[rootNodeKey] as! String
-                    if (rootValue.first == "{") && (rootValue.last == "}") {
-                        rootNode.updateValue(valueParser(key: rootValue), forKey: rootNodeKey)
-                    }
-                }
-                finalDict[tokenStr] = rootNode
-            }
-        } else {
-            for node in allKey {
-                if tokenKey == "" {
-                    tokenStr = node
-                } else {
-                    tokenStr = String(format: "%@.%@", tokenKey, node)
-                }
-                parserValueNode(valueDict[node] as! [String : Any], tokenStr)
-            }
-        }
-    }
-}

+ 0 - 393
PDF Office/PDF Master/Class/ComponentLibrary/KMDesignToken.swift

@@ -1,393 +0,0 @@
-//
-//  KMDesignToken.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-@objcMembers class KMDesignToken: NSObject {
-    
-    private static let  sharedInstance = KMDesignToken()
-    @objc class var shared: KMDesignToken {
-        return sharedInstance
-    }
-    var jsonPaser: KMJSONParser?
-    var finalDict: [String : Any] = [:]
-
-    func parserExcel(withPath path: String) -> Void {
-        let data = try? Data(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "$metadata", ofType: "json")!))
-        let jsonData = try! JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers)
-        let jsonDict = jsonData as! [String : [String]]
-                
-        jsonPaser = KMJSONParser.defaultJSONParser_JSONParser
-        jsonPaser?.parseFilePaths = jsonDict["tokenSetOrder"]
-        jsonPaser?.parseOutType = .ArrayObj
-        jsonPaser?.delete = self
-        jsonPaser?.parse()
-    }
-    
-    func tokenUsesAction(withToken token: String) -> [String : Any] {
-        return finalDict[token] as! [String : Any]
-    }
-    
-    // MARK: Design Token Uses
-/**
-    在仅知道Token值,或其余快捷接口不满足当前类型时,使用此方法。当其余接口处理失败后,自动调用此方法返回数据
-     - parameter token: 传入获取的Design Token
-     - returns: 返回 KMDesignTokenValue 数据模型
-*/
-    func tokenUsesModel(withToken token: String) -> KMDesignTokenValue {
-        let tokenDict = tokenUsesAction(withToken: token)
-        var model = KMDesignTokenValue.init()
-        let allKey = tokenDict.keys
-        if allKey.contains("sizing") {
-            model.sizing = tokenDict["sizing"] as Any
-        }
-        if allKey.contains("height") {
-            model.height = tokenDict["height"] as Any
-        }
-        if allKey.contains("width") {
-            model.width = tokenDict["width"] as Any
-        }
-        if allKey.contains("spacing") {
-            model.spacing = tokenDict["spacing"] as Any
-        }
-        if allKey.contains("verticalPadding") {
-            model.verticalPadding = tokenDict["verticalPadding"] as Any
-        }
-        if allKey.contains("horizontalPadding") {
-            model.horizontalPadding = tokenDict["horizontalPadding"] as Any
-        }
-        if allKey.contains("paddingTop") {
-            model.paddingTop = tokenDict["paddingTop"] as Any
-        }
-        if allKey.contains("paddingRight") {
-            model.paddingRight = tokenDict["paddingRight"] as Any
-        }
-        if allKey.contains("paddingBottom") {
-            model.paddingBottom = tokenDict["paddingBottom"] as Any
-        }
-        if allKey.contains("paddingLeft") {
-            model.paddingLeft = tokenDict["paddingLeft"] as Any
-        }
-        if allKey.contains("itemSpacing") {
-            model.itemSpacing = tokenDict["itemSpacing"] as Any
-        }
-        if allKey.contains("fill") {
-            model.fill = tokenDict["fill"] as Any
-        }
-        if allKey.contains("border") {
-            model.border = tokenDict["border"] as Any
-        }
-        if allKey.contains("borderColor") {
-            model.borderColor = tokenDict["borderColor"] as Any
-        }
-        if allKey.contains("borderTop") {
-            model.borderTop = tokenDict["borderTop"] as Any
-        }
-        if allKey.contains("borderRight") {
-            model.borderRight = tokenDict["borderRight"] as Any
-        }
-        if allKey.contains("borderBottom") {
-            model.borderBottom = tokenDict["borderBottom"] as Any
-        }
-        if allKey.contains("borderLeft") {
-            model.borderLeft = tokenDict["borderLeft"] as Any
-        }
-        if allKey.contains("borderRadius") {
-            model.borderRadius = tokenDict["borderRadius"] as Any
-        }
-        if allKey.contains("borderRadiusTopLeft") {
-            model.borderRadiusTopLeft = tokenDict["borderRadiusTopLeft"] as Any
-        }
-        if allKey.contains("borderRadiusTopRight") {
-            model.borderRadiusTopRight = tokenDict["borderRadiusTopRight"] as Any
-        }
-        if allKey.contains("borderRadiusBottomRight") {
-            model.borderRadiusBottomRight = tokenDict["borderRadiusBottomRight"] as Any
-        }
-        if allKey.contains("borderRadiusBottomLeft") {
-            model.borderRadiusBottomLeft = tokenDict["borderRadiusBottomLeft"] as Any
-        }
-        if allKey.contains("borderWidth") {
-            model.borderWidth = tokenDict["borderWidth"] as Any
-        }
-        if allKey.contains("borderWidthTop") {
-            model.borderWidthTop = tokenDict["borderWidthTop"] as Any
-        }
-        if allKey.contains("borderWidthRight") {
-            model.borderWidthRight = tokenDict["borderWidthRight"] as Any
-        }
-        if allKey.contains("borderWidthBottom") {
-            model.borderWidthBottom = tokenDict["borderWidthBottom"] as Any
-        }
-        if allKey.contains("borderWidthLeft") {
-            model.borderWidthLeft = tokenDict["borderWidthLeft"] as Any
-        }
-        if allKey.contains("boxShadow") {
-            model.boxShadow = tokenDict["boxShadow"] as Any
-        }
-        if allKey.contains("typography") {
-            model.typography = tokenDict["typography"] as Any
-        }
-        return model
-    }
-        
-    
-/**
-    当使用者希望传入控件/约束后绑定值时调用此方法。
-    仅支持系统控件默认属性/自定义控件的属性绑定,所以不支持设置以下属性 【borderTop】、【borderRight】、【borderBottom】、【borderLeft】、【borderRadiusTopLeft】、【borderRadiusTopRight】、【borderRadiusBottomRight】、【borderRadiusBottomLeft】、【borderWidthTop】、【borderWidthRight】、【borderWidthBottom】、【borderWidthLeft】
-     - parameter token:             传入Design Token
-     - parameter sizing:            包含 sizing 属性的控件;支持控件【NSTextField】、
-     - parameter height:            考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【高度】赋值
-     - parameter width:             考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【宽度】赋值
-     - parameter spacing:           考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【组件内控件与边框 上下左右 距离】赋值
-     - parameter verticalPadding:   考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【组件内控件与边框 垂直(上下)距离】赋值
-     - parameter horizontalPadding: 考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【组件内控件与边框 水平(左右)距离】赋值
-     - parameter paddingTop:        考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【组件内控件与边框 上 边距】赋值
-     - parameter paddingRight:      考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【组件内控件与边框 右 边距】赋值
-     - parameter paddingBottom:     考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【组件内控件与边框 下 边距】赋值
-     - parameter paddingLeft:       考虑约束冲突的问题,指定传入【NSLayoutConstraint】 类型来进行【组件内控件与边框 左 边距】赋值
-     - parameter itemSpacing:       组件内多个控件间距,多个控件水平排列,属于水平间距;多个控件垂直排列,属于垂直间距;建议传入【NSLayoutConstraint】 类型
-     - parameter fill:              传入需要调整【填充颜色】的控件;支持控件
-     - parameter border:            传入需要调整【边框属性合集,包括边框颜色、边框宽度、边框样式(虚线/直线)】的控件;支持控件
-     - parameter borderColor:       传入需要调整【边框颜色】的控件;支持控件
-     - parameter borderRadius:      传入需要调整【边框圆角】的控件;支持控件
-     - parameter borderWidth:       传入需要调整【边框宽度】的控件;支持控件
-     - parameter boxShadow:         传入需要调整【包含x/y 倾斜度、blur(模糊间距)】的控件;支持控件
-     - parameter typography:        传入需要调整【字体合集,包含字体/大小/字重/行高】的控件;支持控件
-
-     - returns: 当处理成功时返回Bool值,若处理失败,则返回 KMDesignTokenValue 数据模型
-*/
-    func designTokenUsesAction(withToken token: String,
-                               sizing           : Any = "",
-                               height           : Any = "",
-                               width            : Any = "",
-                               spacing          : Any = "",
-                               verticalPadding  : Any = "",
-                               horizontalPadding: Any = "",
-                               paddingTop       : Any = "",
-                               paddingRight     : Any = "",
-                               paddingBottom    : Any = "",
-                               paddingLeft      : Any = "",
-                               itemSpacing      : Any = "",
-                               fill             : Any = "",
-                               border           : Any = "",
-                               borderColor      : Any = "",
-                               borderRadius     : Any = "",
-                               borderWidth      : Any = "",
-                               boxShadow        : Any = "",
-                               typography       : Any = "") -> Any {
-        if (sizing              is String) &&
-           (height              is String) &&
-           (width               is String) &&
-           (spacing             is String) &&
-           (verticalPadding     is String) &&
-           (horizontalPadding   is String) &&
-           (paddingTop          is String) &&
-           (paddingRight        is String) &&
-           (paddingBottom       is String) &&
-           (paddingLeft         is String) &&
-           (itemSpacing         is String) &&
-           (fill                is String) &&
-           (border              is String) &&
-           (borderColor         is String) &&
-           (borderRadius        is String) &&
-           (borderWidth         is String) &&
-           (boxShadow           is String) &&
-           (typography          is String) {
-            return tokenUsesModel(withToken: token)
-        } else {
-            let tokenDict = tokenUsesAction(withToken: token)
-            let allKey = tokenDict.keys
-            if allKey.contains("sizing") {
-                let sizingNode = tokenDict["sizing"]
-                if nodeIsEmpty(control: sizing, node: sizingNode as Any) {
-                    if sizingNodeUsesAction(control: sizing, node: sizingNode as Any) {
-                        KMPrint("sizing node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-            if allKey.contains("height")            ||
-               allKey.contains("width")             ||
-               allKey.contains("spacing")           ||
-               allKey.contains("verticalPadding")   ||
-               allKey.contains("horizontalPadding") ||
-               allKey.contains("paddingTop")        ||
-               allKey.contains("paddingRight")      ||
-               allKey.contains("paddingBottom")     ||
-               allKey.contains("paddingLeft")       ||
-               allKey.contains("itemSpacing") {
-                var node: Any!
-                var control: Any!
-                if allKey.contains("height") {
-                    node = tokenDict["height"] as Any
-                    control = height
-                } else if allKey.contains("width") {
-                    node = tokenDict["width"] as Any
-                    control = width
-                } else if allKey.contains("spacing") {
-                    node = tokenDict["spacing"] as Any
-                    control = spacing
-                } else if allKey.contains("verticalPadding") {
-                    node = tokenDict["verticalPadding"] as Any
-                    control = verticalPadding
-                } else if allKey.contains("horizontalPadding") {
-                    node = tokenDict["horizontalPadding"] as Any
-                    control = horizontalPadding
-                } else if allKey.contains("paddingTop") {
-                    node = tokenDict["paddingTop"] as Any
-                    control = paddingTop
-                } else if allKey.contains("paddingRight") {
-                    node = tokenDict["paddingRight"] as Any
-                    control = paddingRight
-                } else if allKey.contains("paddingBottom") {
-                    node = tokenDict["paddingBottom"] as Any
-                    control = paddingBottom
-                } else if allKey.contains("paddingLeft") {
-                    node = tokenDict["paddingLeft"] as Any
-                    control = paddingLeft
-                } else if allKey.contains("itemSpacing") {
-                    node = tokenDict["itemSpacing"] as Any
-                    control = itemSpacing
-                }
-                if nodeIsEmpty(control: control as Any, node: node as Any) {
-                    if layoutConstraintNodeUsesAction(control: control as Any, node: node as Any) {
-                        KMPrint("node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-
-            if allKey.contains("fill") {
-                let fillNode = tokenDict["fill"]
-                if nodeIsEmpty(control: fill, node: fillNode as Any) {
-                    if fillNodeUsesAction(control: fill, node: fillNode as Any) {
-                        KMPrint("fill node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-            if allKey.contains("border") {
-                let borderNode = tokenDict["border"]
-                if nodeIsEmpty(control: border, node: borderNode as Any) {
-                    if borderNodeUsesAction(control: border, node: borderNode as Any) {
-                        KMPrint("border node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-            if allKey.contains("borderColor") {
-                let borderColorNode = tokenDict["borderColor"]
-                if nodeIsEmpty(control: borderColor, node: borderColorNode as Any) {
-                    if borderColorNodeUsesAction(control: borderColor, node: borderColorNode as Any) {
-                        KMPrint("borderColor node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-            if allKey.contains("borderRadius") {
-                let borderRadiusNode = tokenDict["borderRadius"]
-                if nodeIsEmpty(control: borderRadius, node: borderRadiusNode as Any) {
-                    if borderRadiusNodeUsesAction(control: borderRadius, node: borderRadiusNode as Any) {
-                        KMPrint("borderRadius node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-            if allKey.contains("borderWidth") {
-                let borderWidthNode = tokenDict["borderWidth"]
-                if nodeIsEmpty(control: borderWidth, node: borderWidthNode as Any) {
-                    if borderWidthNodeUsesAction(control: borderWidth, node: borderWidthNode as Any) {
-                        KMPrint("borderWidth node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-            if allKey.contains("boxShadow") {
-                let boxShadowNode = tokenDict["boxShadow"]
-                if nodeIsEmpty(control: boxShadow, node: boxShadowNode as Any) {
-                    if boxShadowNodeUsesAction(control: boxShadow, node: boxShadowNode as Any) {
-                        KMPrint("boxShadow node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-            if allKey.contains("typography") {
-                let typographyNode = tokenDict["typography"]
-                if nodeIsEmpty(control: typography, node: typographyNode as Any) {
-                    if typographyNodeUsesAction(control: typography, node: typographyNode as Any) {
-                        KMPrint("typography node user success")
-                    } else {
-                        return tokenUsesModel(withToken: token)
-                    }
-                } else {
-                    return tokenUsesModel(withToken: token)
-                }
-            }
-        }
-        return tokenUsesModel(withToken: token)
-    }
-        
-    // MARK: height、width、spacing、verticalPaddin、horizontalPadding、paddingTop、paddingRight、paddingBottom、paddingLeft、itemSpacing
-    
-    func layoutConstraintNodeUsesAction(control: Any, node: Any) -> Bool  {
-        if control is NSLayoutConstraint {
-            (control as! NSLayoutConstraint).constant = (node as! String).stringToCGFloat()
-            return true
-        }
-        return false
-    }
-                    
-    // MARK: Private Methods
-    
-    func nodeIsEmpty(control: Any, node: Any) -> Bool {
-        if (control is String) {
-            return false
-        } else {
-            if (node is String) {
-                if (node as! String == "") {
-                    return false
-                } else {
-                    return true
-                }
-            } else if (node is [String : Any]) {
-                return true
-            }
-        }
-        return false
-    }
-}
-
-extension KMDesignToken: KMJSONParserDelegate {
-    func parser(_ parser: KMJSONParser, success responseObj: Any) {
-        finalDict = responseObj as! [String : Any]
-    }
-}

+ 0 - 503
PDF Office/PDF Master/Class/ComponentLibrary/KMGlobalParser.swift

@@ -1,503 +0,0 @@
-//
-//  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
-    }
-}

+ 0 - 78
PDF Office/PDF Master/Class/ComponentLibrary/KMJSONParser.swift

@@ -1,78 +0,0 @@
-//
-//  KMJSONParser.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-enum KMParseOutType : Int {
-    case Json = 1   // json字符串格式
-    case ArrayObj   // 数组盛放对象格式
-    case ArrayDict  // 数组盛放字典格式
-}
-
-protocol KMJSONParserDelegate {
-    func parser(_ parser: KMJSONParser, success responseObj: Any)
-}
-
-class KMJSONParser: NSObject {
-    var delete: KMJSONParserDelegate? // 回调处理
-    var parseFilePaths: [String]?  // 等待解析的文件路径
-    var parseOutType: KMParseOutType = .ArrayObj   // 解析后数据的输出类型
-    var aliasLightParse: KMAliasLightParser = KMAliasLightParser.init()
-    var compLightParse: KMCompLightParser = KMCompLightParser.init()
-    var globalParse: KMGlobalParser = KMGlobalParser.init()
-    var colArr: [Any]?
-    
-    var globalDict: [String : Any] = [:]
-    var aliasLightDict: [String : Any] = [:]
-    var compLigntDict: [String : Any] = [:]
-    var globalModel = KMGlobal.init()
-    var aliasLightModel = KMAliasLight.init()
-    var compLigntModel = KMCompLight.init()
-    
-    static let defaultJSONParser_JSONParser: KMJSONParser? = {
-        var jsonParser = KMJSONParser()
-        return jsonParser
-    }()
-    
-    class func defaultJSONParser() -> Self {
-        return defaultJSONParser_JSONParser as! Self
-    }
-    
-    func parse() -> Void {        
-//        DispatchQueue.global().async {
-            // 解析 comp-lignt.json 文件
-            self.globalDict = self.parseGlobal()
-            self.aliasLightDict = self.parseAliasLight()
-            self.compLigntDict = self.parseCompLight()
-            
-            self.compLightParse.parserValueNode(self.compLigntDict, "")
-            self.delete?.parser(self, success: self.compLightParse.finalDict)
-//        }
-    }
-    
-    func parseCompLight() -> [String : Any] {
-        compLightParse.globalDict = globalDict
-        compLightParse.aliasLightDict = aliasLightDict
-        return compLightParse.startJSONParse()
-    }
-    
-    func parseAliasLight() -> [String : Any] {
-        aliasLightParse.globalDict = globalDict
-        return aliasLightParse.startJSONParse()
-    }
-    
-    func parseGlobal() -> [String : Any] {
-        return globalParse.startJSONParse()
-    }
-    
-    // MARK: Find
-    
-//    func findKeyValue(withKey: String) -> KMCompLight_UIValue {
-//        compLightParse.
-//        return
-//    }
-}

+ 0 - 181
PDF Office/PDF Master/Class/ComponentLibrary/Models/KMAliasLight.swift

@@ -1,181 +0,0 @@
-//
-//  KMAliasLight.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-class KMAliasLight: NSObject {
-    var spacing: [String : Any] = [:]
-    var color: [String : Any] = [:]
-    var radius: [String : Any] = [:]
-    var text: [String : Any] = [:]
-    var shadow: [String : Any] = [:]
-}
-
-class KMAliasLight_spacing: NSObject {
-    var base: [String : Any] = [:]
-    var tree: [String : Any] = [:]
-}
-
-class KMAliasLight_color: NSObject {
-    var btn: [String : Any] = [:]
-    var sys: [String : Any] = [:]
-    var item_state: [String : Any] = [:]
-    var field: [String : Any] = [:]
-    var slider: [String : Any] = [:]
-    var icon: [String : Any] = [:]
-    var badge: [String : Any] = [:]
-}
-
-class KMAliasLight_radius: NSObject {
-    var base: [String : Any] = [:]
-    var fullround_btn: [String : Any] = [:]
-}
-
-class KMAliasLight_text: NSObject {
-    var mac: [String : Any] = [:]
-    var win: [String : Any] = [:]
-}
-
-class KMAliasLight_shadow: NSObject {
-    var neutral: [String : Any] = [:]
-    var accent: [String : Any] = [:]
-    var error: [String : Any] = [:]
-}
-
-class KMAliasLight_control: NSObject {
-    var cta: [String : Any] = [:]
-    var brand: [String : Any] = [:]
-    var sec: [String : Any] = [:]
-    var icon_fill: [String : Any] = [:]
-    var ghost: [String : Any] = [:]
-    var link: [String : Any] = [:]
-    var upgrade: [String : Any] = [:]
-    var sel: [String : Any] = [:]
-    var hov: [String : Any] = [:]
-    var pdf_tools: [String : Any] = [:]
-    var checkbox_radio: [String : Any] = [:]
-    var file: [String : Any] = [:]
-    var arrow: [String : Any] = [:]
-    var red: [String : Any] = [:]
-    var text: [String : Any] = [:]
-    var border: [String : Any] = [:]
-    var layout: [String : Any] = [:]
-    var base: [String : Any] = [:]
-}
-
-class KMAliasLight_attribute: NSObject {
-    var neutral: [String : Any] = [:]
-    var accent: [String : Any] = [:]
-    var error: [String : Any] = [:]
-    var footnote: [String : Any] = [:]
-    var body: [String : Any] = [:]
-    var title: [String : Any] = [:]
-    var base: [String : Any] = [:]
-    var bg: [String : Any] = [:]
-    var text: [String : Any] = [:]
-    var border_color: [String : Any] = [:]
-    var border: [String : Any] = [:]
-    var anti: [String : Any] = [:]
-    var brand: [String : Any] = [:]
-    var mg: [String : Any] = [:]
-    var fg: [String : Any] = [:]
-    var dark: [String : Any] = [:]
-    var state: [String : Any] = [:]
-    var divider: [String : Any] = [:]
-    var bg_text: [String : Any] = [:]
-    var track: [String : Any] = [:]
-    var track_filled: [String : Any] = [:]
-    var knob: [String : Any] = [:]
-    var gray: [String : Any] = [:]
-    var element: [String : Any] = [:]
-    var module: [String : Any] = [:]
-}
-
-class KMAliasLight_state: NSObject {
-    var norm: [String : Any] = [:]
-    var hov: [String : Any] = [:]
-    var act: [String : Any] = [:]
-    var dis: [String : Any] = [:]
-    var def: [String : Any] = [:]
-    var home: [String : Any] = [:]
-    var view: [String : Any] = [:]
-    var tabbar: [String : Any] = [:]
-    var light: [String : Any] = [:]
-    var light_dis: [String : Any] = [:]
-    var dark: [String : Any] = [:]
-    var note: [String : Any] = [:]
-    var info: [String : Any] = [:]
-    var error: [String : Any] = [:]
-    var warning: [String : Any] = [:]
-    var focus: [String : Any] = [:]
-    var sel: [String : Any] = [:]
-    var placeholder: [String : Any] = [:]
-    var tips: [String : Any] = [:]
-    var tips_error: [String : Any] = [:]
-    var border: [String : Any] = [:]
-    var lv1: [String : Any] = [:]
-    var lv2: [String : Any] = [:]
-    var lv3: [String : Any] = [:]
-    var success: [String : Any] = [:]
-    var pdf: [String : Any] = [:]
-    var image: [String : Any] = [:]
-    var bg: [String : Any] = [:]
-}
-
-class KMAliasLight_stateSub: NSObject {
-    var bg: [String : Any] = [:]
-    var border: [String : Any] = [:]
-    var fill: [String : Any] = [:]
-    var border_radio: [String : Any] = [:]
-
-}
-
-class KMAliasLight_size: NSObject {
-    var s: [String : Any] = [:]
-    var m: [String : Any] = [:]
-    var m_base: [String : Any] = [:]
-    var l: [String : Any] = [:]
-    var xl: [String : Any] = [:]
-    var xs: [String : Any] = [:]
-}
-
-class KMAliasLight_lv: NSObject {
-    var lv1: [String : Any] = [:]
-    var lv2: [String : Any] = [:]
-    var lv3: [String : Any] = [:]
-}
-
-class KMAliasLight_colorValue: NSObject {
-    var pink: [String : Any] = [:]
-    var cyan: [String : Any] = [:]
-    var blue: [String : Any] = [:]
-    var purple: [String : Any] = [:]
-    var orange: [String : Any] = [:]
-}
-
-class KMAliasLight_number: NSObject {
-    var number0: [String : Any] = [:]
-    var number1: [String : Any] = [:]
-    var number2: [String : Any] = [:]
-    var number4: [String : Any] = [:]
-    var number6: [String : Any] = [:]
-    var number8: [String : Any] = [:]
-    var number12: [String : Any] = [:]
-    var number16: [String : Any] = [:]
-    var number24: [String : Any] = [:]
-    var number32: [String : Any] = [:]
-    var number40: [String : Any] = [:]
-    var number56: [String : Any] = [:]
-    var number64: [String : Any] = [:]
-    var number80: [String : Any] = [:]
-    var number88: [String : Any] = [:]
-}
-
-class KMAliasLight_valueType: NSObject {
-    var value: [String : Any] = [:]
-    var type: [String : String] = [:]
-}

+ 0 - 345
PDF Office/PDF Master/Class/ComponentLibrary/Models/KMCompLight.swift

@@ -1,345 +0,0 @@
-//
-//  KMCompLight.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-class KMCompLight: NSObject {
-    var btn                     : [String: KMCompLight_btn]?
-    var dropdown                : [String : KMCompLight_dropdown]?
-    var navmenu                 : [String : KMCompLight_navmenu]?
-    var multi_tab               : [String : KMCompLight_multiTab]?
-    var checkbox_radio          : [String : KMCompLight_checkboxRadio]?
-    var input                   : [String : KMCompLight_input]?
-    var pagination              : [String : KMCompLight_pagination]?
-    var select                  : [String : KMCompLight_select]?
-    var slider                  : [String : KMCompLight_slider]?
-    var stepper                 : [String : KMCompLight_stepper]?
-    var badge                   : [String : KMCompLight_badge]?
-    var card                    : [String : KMCompLight_card]?
-    var collapse                : [String : KMCompLight_collapse]?
-    var list                    : [String : KMCompLight_list]?
-    var progress                : [String : KMCompLight_progress]?
-    var segmented               : [String : KMCompLight_segmented]?
-    var tree                    : [String : KMCompLight_tree]?
-    var alert                   : [String : KMCompLight_alert]?
-    var drawer                  : [String : KMCompLight_drawer]?
-    var notification            : [String : KMCompLight_notification]?
-    var table                   : [String : KMCompLight_table]?
-    var divider                 : [String : KMCompLight_divider]?
-}
-
-// MARK: - btn
-
-class KMCompLight_btn: NSObject {
-    var cta                     : [String: Any]?
-    var brand                   : [String : Any]?
-    var sec                     : [String : Any]?
-    var ghost                   : [String : Any]?
-    var link                    : [String : Any]?
-    var upgrade                 : [String : Any]?
-    var icon_fill               : [String : Any]?
-    var sec_icon                : [String : Any]?
-}
-
-// MARK: - dropdown
-
-class KMCompLight_dropdown: NSObject {
-    var s                       : [String : Any]?
-    var m                       : [String : Any]?
-}
-
-// MARK: - navmenu
-
-class KMCompLight_navmenu: NSObject {
-    var mac_text                : [String : Any]?
-    var base                    : [String : Any]?
-    var has_icon                : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - multiTab
-
-class KMCompLight_multiTab: NSObject {
-    var bg                      : [String : Any]?
-    var mac_text                : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - checkboxRadio
-
-class KMCompLight_checkboxRadio: NSObject {
-    var bg                      : [String : Any]?
-    var mac_text                : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - input
-
-class KMCompLight_input: NSObject {
-    var m                       : [String : Any]?
-    var tips                    : [String : Any]?
-    var s                       : [String : Any]?
-}
-
-// MARK: - pagination
-
-class KMCompLight_pagination: NSObject {
-    var simple                  : [String : Any]?
-    var multiple                : [String : Any]?
-}
-
-// MARK: - select
-
-class KMCompLight_select: NSObject {
-    var s                       : [String : Any]?
-    var m                       : [String : Any]?
-    var simple                  : [String : Any]?
-}
-
-// MARK: - slider
-
-class KMCompLight_slider: NSObject {
-    var knob                    : [String : Any]?
-    var track                   : [String : Any]?
-    var track_filled            : [String : Any]?
-}
-
-// MARK: - stepper
-
-class KMCompLight_stepper: NSObject {
-    var item_spacing            : [String : Any]?
-    var mac_text                : [String : Any]?
-    var bg                      : [String : Any]?
-    var arrow                   : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - badge
-
-class KMCompLight_badge: NSObject {
-    var dot                     : [String : Any]?
-    var text                    : [String : Any]?
-}
-
-// MARK: - card
-
-class KMCompLight_card: NSObject {
-    var has_desc                : [String : Any]?
-    var simple                  : [String : Any]?
-    var mac_text                : [String : Any]?
-    var item_spacing            : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - collapse
-
-class KMCompLight_collapse: NSObject {
-    var ad_list                 : [String : Any]?
-    var bota_list               : [String : Any]?
-}
-
-// MARK: - list
-
-class KMCompLight_list: NSObject {
-    var bookmark                : [String : Any]?
-    var markup_header           : [String : Any]?
-    var markup_note             : [String : Any]?
-}
-
-// MARK: - progress
-
-class KMCompLight_progress: NSObject {
-    var popup                   : [String : Any]?
-    var loading                 : [String : Any]?
-}
-
-// MARK: - segmented
-
-class KMCompLight_segmented: NSObject {
-    var bg                      : [String : Any]?
-    var bg_item                 : [String : Any]?
-    var mac_text                : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - tree
-
-class KMCompLight_tree: NSObject {
-    var base                    : [String : Any]?
-    var mac_text                : [String : Any]?
-    var rename                  : [String : Any]?
-    var has_arrow               : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - alert
-
-class KMCompLight_alert: NSObject {
-    var mac_text                : [String : Any]?
-    var win_text                : [String : Any]?
-    var bg                      : [String : Any]?
-    var item_spacing            : [String : Any]?
-}
-
-// MARK: - drawer
-
-class KMCompLight_drawer: NSObject {
-    var bg                      : [String : Any]?
-    var mac_text                : [String : Any]?
-    var win_text                : [String : Any]?
-    var item_spacing            : [String : Any]?
-}
-
-// MARK: - notification
-
-class KMCompLight_notification: NSObject {
-    var toast                   : [String : Any]?
-    var modal                   : [String : Any]?
-}
-
-// MARK: - table
-
-class KMCompLight_table: NSObject {
-    var header                  : [String : Any]?
-    var mac_text                : [String : Any]?
-    var list                    : [String : Any]?
-    var win_text                : [String : Any]?
-}
-
-// MARK: - divider
-
-class KMCompLight_divider: NSObject {
-    var horiz                   : [String : Any]?
-    var vert                    : [String : Any]?
-}
-
-// MARK: - Child Node
-
-class KMCompLight_sizeNode: NSObject {
-    var s                       : [String: Any] = [:]
-    var m                       : [String: Any] = [:]
-    var l                       : [String: Any] = [:]
-}
-
-class KMCompLight_tableListNode: NSObject {
-    var file                    : [String: Any] = [:]
-    var batch                   : [String: Any] = [:]
-}
-
-class KMCompLight_UIAttribute: NSObject {
-    var mac_text                : [String : Any] = [:]
-    var bg                      : [String : Any] = [:]
-    var win_text                : [String : Any] = [:]
-    var mac_text_title          : [String : Any] = [:]
-    var mac_text_desc           : [String : Any] = [:]
-    var win_text_title          : [String : Any] = [:]
-    var win_text_desc           : [String : Any] = [:]
-    var item_spacing            : [String : Any] = [:]
-    var progress_bar            : [String : Any] = [:]
-    var bg_item                 : [String : Any] = [:]
-    var bg_text                 : [String : Any] = [:]
-    var bg_field                : [String : Any] = [:]
-}
-
-class KMCompLight_progressBar: NSObject {
-    var track                   : [String : Any] = [:]
-    var track_filled            : [String : Any] = [:]
-}
-
-class KMCompLight_baseNode: NSObject {
-    var parent                  : [String : Any] = [:]
-    var children_lv2            : [String : Any] = [:]
-    var children_lv3            : [String : Any] = [:]
-    var children_lv4            : [String : Any] = [:]
-}
-
-class KMCompLight_valueType: NSObject {
-    var value                   : [String : Any] = [:]
-    var type                    : [String : String] = [:]
-}
-
-class KMCompLight_UIState: NSObject {
-    var norm                    : [String : Any] = [:]
-    var hov                     : [String : Any] = [:]
-    var act                     : [String : Any] = [:]
-    var dis                     : [String : Any] = [:]
-    var sel                     : [String : Any] = [:]
-    var placeholder             : [String : Any] = [:]
-    var focus                   : [String : Any] = [:]
-    var error_def               : [String : Any] = [:]
-    var error_focus             : [String : Any] = [:]
-    var error                   : [String : Any] = [:]
-    var none                    : [String : Any] = [:]
-    var custom                  : [String : Any] = [:]
-    var move                    : [String : Any] = [:]
-    var change                  : [String : Any] = [:]
-    var title                   : [String : Any] = [:]
-    var desc                    : [String : Any] = [:]
-    var unsel                   : [String : Any] = [:]
-    var main                    : [String : Any] = [:]
-    var def                     : [String : Any] = [:]
-    var info                    : [String : Any] = [:]
-    var warning                 : [String : Any] = [:]
-    var item                    : [String : Any] = [:]
-    var item1                   : [String : Any] = [:]
-    var item2                   : [String : Any] = [:]
-    var item3                   : [String : Any] = [:]
-}
-
-class KMCompLight_UIValue: NSObject {
-    var height                  : [String : String] = [:]
-    var horizontalPadding       : [String : String] = [:]
-    var fill                    : [String : String] = [:]
-    var typography              : [String : String] = [:]
-    var borderRadius            : [String : String] = [:]
-    var itemSpacing             : [String : String] = [:]
-    var borderWidth             : [String : String] = [:]
-    var border                  : [String : String] = [:]
-    var borderRadiusTopLeft     : [String : String] = [:]
-    var borderRadiusTopRight    : [String : String] = [:]
-    var borderWidthBottom       : [String : String] = [:]
-    var boxShadow               : [String : String] = [:]
-    var paddingLeft             : [String : String] = [:]
-    var paddingRight            : [String : String] = [:]
-    var paddingTop              : [String : String] = [:]
-    var paddingBottom           : [String : String] = [:]
-}
-
-// MARK: PDF Reader Pro 初版数据
-
-class KMDesignTokenValue: NSObject {
-    var sizing                  : Any = ""  // 控件大小,圆形控件
-    var height                  : Any = ""  // (常用)高度
-    var width                   : Any = ""  // (常用)宽度
-    var spacing                 : Any = ""  // (常用)组件内控件与边框 上下左右 距离
-    var verticalPadding         : Any = ""  // (常用)组件内控件与边框 垂直(上下)距离
-    var horizontalPadding       : Any = ""  // (常用)组件内控件与边框 水平(左右)距离
-    var paddingTop              : Any = ""  // 组件内控件与边框 上 边距
-    var paddingRight            : Any = ""  // 组件内控件与边框 右 边距
-    var paddingBottom           : Any = ""  // 间距, 组件内控件与边框 下 边距
-    var paddingLeft             : Any = ""  // 间距, 组件内控件与边框 左 边距
-    var itemSpacing             : Any = ""  // 组件内多个控件间距,多个控件水平排列,属于水平间距;多个控件垂直排列,属于垂直间距
-    var fill                    : Any = ""  // (常用)填充颜色
-    var border                  : Any = ""  // (常用)边框属性合集,包括边框颜色、边框宽度、边框样式(虚线/直线)
-    var borderColor             : Any = ""  // (常用)边框颜色
-    var borderTop               : Any = ""  // 上边框颜色
-    var borderRight             : Any = ""  // 右边框颜色
-    var borderBottom            : Any = ""  // 下边框颜色
-    var borderLeft              : Any = ""  // 左边框颜色
-    var borderRadius            : Any = ""  // (常用)圆角大小
-    var borderRadiusTopLeft     : Any = ""  // 左上圆角大小
-    var borderRadiusTopRight    : Any = ""  // 右上圆角大小
-    var borderRadiusBottomRight : Any = ""  // 右下圆角大小
-    var borderRadiusBottomLeft  : Any = ""  // 左下圆角大小
-    var borderWidth             : Any = ""  // (常用)边框宽度
-    var borderWidthTop          : Any = ""  // 上边框宽度
-    var borderWidthRight        : Any = ""  // 右边框宽度
-    var borderWidthBottom       : Any = ""  // 下边框宽度
-    var borderWidthLeft         : Any = ""  // 左边框宽度
-    var boxShadow               : Any = ""  // 包含x/y 倾斜度、blur(模糊间距)
-    var typography              : Any = ""  // (常用)字体合集,包含字体/大小/字重/行高
-}

+ 0 - 214
PDF Office/PDF Master/Class/ComponentLibrary/Models/KMGlobal.swift

@@ -1,214 +0,0 @@
-//
-//  KMGlobal.swift
-//  PDF Reader Pro
-//
-//  Created by wanjun on 2022/12/21.
-//
-
-import Cocoa
-
-class KMGlobal: NSObject {
-    var sizing: [String : Any] = [:]
-    var spacing: [String : Any] = [:]
-    var color: [String : Any] = [:]
-    var border_radius: [String : Any] = [:]
-    var border_width: [String : Any] = [:]
-    var shadow: [String : Any] = [:]
-    var text_mac: [String : Any] = [:]
-    var text_windows: [String : Any] = [:]
-    
-
-}
-
-// MARK: sizing
-
-class KMGlobal_sizing: NSObject {
-    var sizing1: [String : Any] = [:]
-    var sizing4: [String : Any] = [:]
-    var sizing8: [String : Any] = [:]
-    var sizing10: [String : Any] = [:]
-    var sizing12: [String : Any] = [:]
-    var sizing14: [String : Any] = [:]
-    var sizing16: [String : Any] = [:]
-    var sizing18: [String : Any] = [:]
-    var sizing20: [String : Any] = [:]
-    var sizing21: [String : Any] = [:]
-    var sizing22: [String : Any] = [:]
-    var sizing24: [String : Any] = [:]
-    var sizing26: [String : Any] = [:]
-    var sizing28: [String : Any] = [:]
-    var sizing30: [String : Any] = [:]
-    var sizing32: [String : Any] = [:]
-    var sizing34: [String : Any] = [:]
-    var sizing36: [String : Any] = [:]
-    var sizing40: [String : Any] = [:]
-    var sizing48: [String : Any] = [:]
-    var sizing50: [String : Any] = [:]
-    var sizing58: [String : Any] = [:]
-    var sizing60: [String : Any] = [:]
-    var sizing64: [String : Any] = [:]
-    var sizing68: [String : Any] = [:]
-    var sizing72: [String : Any] = [:]
-    var sizing110: [String : Any] = [:]
-    var sizing116: [String : Any] = [:]
-    var sizing120: [String : Any] = [:]
-    var sizing132: [String : Any] = [:]
-    var sizing139: [String : Any] = [:]
-    var sizing180: [String : Any] = [:]
-    var sizing200: [String : Any] = [:]
-    var sizing228: [String : Any] = [:]
-    var sizing260: [String : Any] = [:]
-}
-
-// MARK: spacing
-
-class KMGlobal_spacing: NSObject {
-    var spacing0: [String : Any] = [:]
-    var spacing1: [String : Any] = [:]
-    var spacing2: [String : Any] = [:]
-    var spacing4: [String : Any] = [:]
-    var spacing5: [String : Any] = [:]
-    var spacing6: [String : Any] = [:]
-    var spacing8: [String : Any] = [:]
-    var spacing10: [String : Any] = [:]
-    var spacing12: [String : Any] = [:]
-    var spacing16: [String : Any] = [:]
-    var spacing24: [String : Any] = [:]
-    var spacing32: [String : Any] = [:]
-    var spacing40: [String : Any] = [:]
-    var spacing56: [String : Any] = [:]
-    var spacing64: [String : Any] = [:]
-    var spacing80: [String : Any] = [:]
-    var spacing88: [String : Any] = [:]
-}
-
-// MARK: color
-
-class KMGlobal_color: NSObject {
-    var light: [String : Any] = [:]
-    var dark: [String : Any] = [:]
-}
-
-// MARK: border-radius
-
-class KMGlobal_borderRadius: NSObject {
-    var number2: [String : Any] = [:]
-    var number4: [String : Any] = [:]
-    var number6: [String : Any] = [:]
-    var number8: [String : Any] = [:]
-    var number10: [String : Any] = [:]
-    var number12: [String : Any] = [:]
-    var number16: [String : Any] = [:]
-    var number20: [String : Any] = [:]
-}
-
-// MARK: border-Width
-
-class KMGlobal_borderWidth: NSObject {
-    var number1: [String : Any] = [:]
-    var number2: [String : Any] = [:]
-}
-
-// MARK: shadow
-
-class KMGlobal_shadow: NSObject {
-    var black_2_2: [String : Any] = [:]
-    var black_4_8: [String : Any] = [:]
-    var black_2_8: [String : Any] = [:]
-    var blue_0_4: [String : Any] = [:]
-    var red_0_4: [String : Any] = [:]
-}
-
-// MARK: text-mac
-
-class KMGlobal_textMac: NSObject {
-    var regular: [String : Any] = [:]
-    var semibold: [String : Any] = [:]
-}
-
-// MARK: text-Windows
-
-class KMGlobal_textWindows: NSObject {
-    var regular: [String : Any] = [:]
-    var semibold: [String : Any] = [:]
-}
-
-// MARK: -
-
-class KMGlobal_number: NSObject {
-    var number11: [String : Any] = [:]
-    var number12: [String : Any] = [:]
-    var number14: [String : Any] = [:]
-    var number16: [String : Any] = [:]
-    var number20: [String : Any] = [:]
-}
-
-class KMGlobal_colorNumber: NSObject {
-    var number1: [String : Any] = [:]
-    var number2: [String : Any] = [:]
-    var number3: [String : Any] = [:]
-    var number4: [String : Any] = [:]
-    var number5: [String : Any] = [:]
-    var number6: [String : Any] = [:]
-    var number7: [String : Any] = [:]
-    var number8: [String : Any] = [:]
-    var number9: [String : Any] = [:]
-    var number10: [String : Any] = [:]
-    var number11: [String : Any] = [:]
-    var number12: [String : Any] = [:]
-}
-
-class KMGlobal_colorValue: NSObject {
-    var blue: [String : Any] = [:]
-    var gray: [String : Any] = [:]
-    var navy_blue: [String : Any] = [:]
-    var green: [String : Any] = [:]
-    var gold: [String : Any] = [:]
-    var red: [String : Any] = [:]
-    var orange: [String : Any] = [:]
-    var cyan: [String : Any] = [:]
-    var purple: [String : Any] = [:]
-    var pink: [String : Any] = [:]
-}
-
-// MARK: Final data
-
-class KMGlobal_valueType: NSObject {
-    var value: [String : Any] = [:]
-    var type: [String : String] = [:]
-}
-
-class KMGlobal_UIValue: NSObject {
-    var fontFamily: [String : String] = [:]
-    var fontWeight: [String : String] = [:]
-    var lineHeight: [String : String] = [:]
-    var fontSize: [String : String] = [:]
-    var x: [String : String] = [:]
-    var y: [String : String] = [:]
-    var blur: [String : String] = [:]
-    var spread: [String : String] = [:]
-    var color: [String : String] = [:]
-    var type: [String : String] = [:]
-}
-
-// MARK: PDF Reader Pro 初版数据
-
-@objcMembers class KMBoxShadowValue: NSObject {
-    var x           : String = ""
-    var y           : String = ""
-    var blur        : String = ""
-    var spread      : String = ""
-    var color       : NSColor = .clear
-    var type        : String = ""
-}
-
-@objcMembers class KMTypographyValue: NSObject {
-    var fontFamily  : String = ""
-    var fontWeight  : String = ""
-    var lineHeight  : String = ""
-    var fontSize    : String = ""
-}
-
-@objcMembers class KMBorderValue: NSObject {
-    
-}

+ 3 - 98
PDF Office/PDF Master/Class/Home/ViewController/KMHomePopViewController.swift

@@ -22,7 +22,7 @@ typealias popCellViewWillShow = (_ cellView: KMBox, _ index: Int) -> Void
     var dataArr: [String]?
     var KMHorizontalLine: String = "KMHorizontalLine"
     
-    var enterFillColor          : NSColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.hov")
+    var enterFillColor          : NSColor = .black
     var textColor               : NSColor = .black  // 背景颜色
     var background              : NSColor = .white  // 背景颜色
     var background_hov          : NSColor = .clear  // 背景颜色
@@ -204,53 +204,8 @@ typealias popCellViewWillShow = (_ cellView: KMBox, _ index: Int) -> Void
             make?.centerY.equalTo()(0.0)
             make?.leading.equalTo()(8.0)
         }
-        let textTypography = KMDesignToken.shared.typography(withToken: "dropdown.m.mac-text.def")
-        var fontFamily: String = textTypography.fontFamily
-        let fontWeight: String = textTypography.fontWeight
-        if fontFamily.contains(" ") {
-            fontFamily = fontFamily.replacingOccurrences(of: " ", with: "")
-        }
-        if fontWeight != "" {
-            fontFamily = String(format: "%@-%@", fontFamily, fontWeight)
-        }
-        boxLabel.font = NSFont(name: fontFamily, size: textTypography.fontSize.stringToCGFloat()) ?? NSFont.systemFont(ofSize: textTypography.fontSize.stringToCGFloat())
-        let paragraphStyle = NSMutableParagraphStyle()
-        paragraphStyle.lineSpacing = textTypography.lineHeight.stringToCGFloat()
-        boxLabel.attributedStringValue = NSAttributedString(string: stringValue, attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
+         
         
-        box.moveCallback =  {(mouseEntered: Bool, mouseBox: KMBox) -> Void in
-            if !isDisabled {
-                if isSelected { // 选中没有 hover 效果
-                    return
-                }
-                if mouseEntered {
-                    mouseBox.fillColor = self.enterFillColor
-                } else {
-                    mouseBox.fillColor = NSColor.clear
-                }
-            }
-        }
-        box.downCallback = {(downEntered, mouseBox, event) -> Void in
-            if !isDisabled {
-                if downEntered {
-                    mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
-                    boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.sel")
-                    if let callback = self.downCallback {
-                        callback(true, stringValue)
-                    }
-                } else {
-                    mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.norm")
-                    boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.def")
-                }
-            }
-        }
-        if isDisabled {
-            box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.dis")
-            boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.dis")
-        } else if (isSelected) {
-            box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
-            boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.sel")
-        }
         
         let idx = self.dataArr?.index(of: stringValue) ?? 0
         self.viewWillShow?(box, idx)
@@ -439,45 +394,7 @@ class KMScrollPopViewController: KMHomePopViewController {
             make?.leading.equalTo()(8.0)
             make?.trailing.mas_equalTo()(0)
         }
-        let textTypography = KMDesignToken.shared.typography(withToken: "dropdown.m.mac-text.def")
-        var fontFamily: String = textTypography.fontFamily
-        let fontWeight: String = textTypography.fontWeight
-        if (fontFamily.contains(" ")) {
-            fontFamily = fontFamily.replacingOccurrences(of: " ", with: "")
-        }
-        if (fontWeight != "") {
-            fontFamily = String(format: "%@-%@", fontFamily, fontWeight)
-        }
-        
-        if NSFont(name: stringValue, size: 12) != nil {
-            fontFamily = stringValue
-        } else {
-            debugPrint("不支持字体" + stringValue)
-        }
         
-        if stringValue == "Al Tarikh" ||
-            stringValue == "Corsiva Hebrew" ||
-            stringValue == "DIN Condensed" ||
-            stringValue == "Damascus" {
-//            boxLabel.font = NSFont.systemFont(ofSize: 14)
-//            boxLabel.stringValue = stringValue
-            boxLabel.attributedStringValue = NSAttributedString(string: stringValue, attributes: [NSAttributedString.Key.font : NSFont.systemFont(ofSize: 14)])
-        } else {
-            boxLabel.font = NSFont(name: fontFamily, size: textTypography.fontSize.stringToCGFloat()) ?? NSFont.systemFont(ofSize: textTypography.fontSize.stringToCGFloat())
-            let paragraphStyle = NSMutableParagraphStyle()
-            paragraphStyle.lineSpacing = textTypography.lineHeight.stringToCGFloat()
-            boxLabel.attributedStringValue = NSAttributedString(string: stringValue, attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
-        }
-        
-        if (isDisabled) {
-            box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.dis")
-            boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.dis")
-        } else if (isSelected) {
-            box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
-            boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.sel")
-        } else {
-            boxLabel.textColor = self.textColor
-        }
         
         box.moveCallback =  { mouseEntered, mouseBox in
             if (isDisabled) {
@@ -501,19 +418,7 @@ class KMScrollPopViewController: KMHomePopViewController {
             if (isDisabled) {
                 return
             }
-            
-            if (downEntered) {
-                mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
-                boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.sel")
-  
-                guard let callback = self.downCallback else {
-                    return
-                }
-                callback(true, stringValue)
-            } else {
-                mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.norm")
-                boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.def")
-            }
+             
         }
         
         let idx = self.dataArr?.index(of: stringValue) ?? 0

+ 1 - 2
PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignBase.swift

@@ -107,8 +107,7 @@ import Cocoa
     // button 通用属性
     var _action: Selector?   // 点击事件
     weak var _target: AnyObject? // 对象目标
-    var _enabled: Bool = true // 是否可点击
-    var _state: KMDesignTokenState = .Norm
+    var _enabled: Bool = true // 是否可点击 
     var canHover: Bool = true // 是否可悬浮
     var _isHidden: Bool = false // 是否隐藏
     var editable: Bool = false //是否允许编辑

+ 1 - 9
PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignButton.swift

@@ -132,15 +132,7 @@ import Cocoa
         }
     }
     
-    var state: KMDesignTokenState {
-        get {
-            return _state
-        }
-        set {
-            _state = newValue
-            updateUI()
-        }
-    }
+    var state: KMDesignTokenState = .Norm
     
     var enabled: Bool {
         get {

+ 1 - 9
PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignPropertySelector.swift

@@ -78,15 +78,7 @@ class KMDesignPropertySelector: KMDesignBase {
     
     // MARK: Get、Set
 
-    var state: KMDesignTokenState {
-        get {
-            return _state
-        }
-        set {
-            _state = newValue
-            updateUI()
-        }
-    }
+    var state: KMDesignTokenState = .Norm
     
     var fillColor: NSColor {
         get {

+ 7 - 107
PDF Office/PDF Master/Class/Home/ViewController/customViewController/KMDesignSelect.swift

@@ -136,8 +136,7 @@ class KMSelectCell: NSTextFieldCell {
     var action: Selector?   // 点击事件
     var target: AnyObject? // 对象目标
     var _enabled: Bool = true // 是否可点击
-    var _state: KMDesignTokenState = .Norm
-    var canHover: Bool = true // 是否可悬浮
+     var canHover: Bool = true // 是否可悬浮
     var _isHidden: Bool = false // 是否隐藏
     var _editable: Bool = false // 是否允许编辑
     var _alignment: NSTextAlignment = .left //对齐
@@ -208,15 +207,7 @@ class KMSelectCell: NSTextFieldCell {
             }
         }
         self.mainBox.moveCallback = { [unowned self](mouseEntered: Bool, mouseBox: KMBox) -> Void in
-            if !self.createFilePopover.isShown && self.canHover && (self.state != .Disabled) {
-                self.canHover = true
-                if mouseEntered {
-                    self.state = .Hov
-                } else {
-                    self.state = .Norm
-                }
-                self.updateUI()
-            }
+            
         }
         
         createFilePopover.delegate = self
@@ -232,19 +223,7 @@ class KMSelectCell: NSTextFieldCell {
             _stringValue = newValue
             
             let paragraphStyle = NSMutableParagraphStyle()
-            if (state == .Norm) {
-                paragraphStyle.lineSpacing = lineHeight
-            } else if (state == .Hov) {
-                paragraphStyle.lineSpacing = lineHeight_hov
-            } else if (state == .Focus) {
-                paragraphStyle.lineSpacing = lineHeight_focus
-            } else if (state == .Disabled) {
-                paragraphStyle.lineSpacing = lineHeight_disabled
-            } else if (state == .Error_def) {
-                paragraphStyle.lineSpacing = lineHeight_errordef
-            } else if (state == .Error_focus) {
-                paragraphStyle.lineSpacing = lineHeight_errorfocus
-            }
+             
             paragraphStyle.lineBreakMode = .byTruncatingTail
             paragraphStyle.alignment = alignment
             textField.attributedStringValue = NSAttributedString(string: _stringValue, attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
@@ -263,24 +242,11 @@ class KMSelectCell: NSTextFieldCell {
         }
         set {
             _enabled = newValue
-            if _enabled {
-                _state = .Norm
-            } else {
-                _state = .Disabled
-            }
-            updateUI()
-        }
-    }
-    var state: KMDesignTokenState {
-        get {
-            return _state
-        }
-        set {
-            _state = newValue
+            
             updateUI()
         }
     }
-    var isHidden: Bool {
+     var isHidden: Bool {
         get {
             return _isHidden
         }
@@ -352,72 +318,7 @@ class KMSelectCell: NSTextFieldCell {
     // MARK: Private Methods
 
     func updateUI() -> Void {
-        if (state == .Norm) {
-            selectBox.fillColor = background
-            selectBox.borderWidth = CGFloat(borderWidth)
-            selectBox.cornerRadius = CGFloat(cornerRadius)
-            selectBox.borderColor = borderColor
-            textField.textColor = textColor
-            textField.font = font
-            imageView.image = NSImage(named: "KMImageNameSelectNormal")
-        } else if (state == .Hov) {
-            selectBox.fillColor = background_hov
-            selectBox.borderWidth = CGFloat(borderWidth_hov)
-            selectBox.cornerRadius = CGFloat(cornerRadius_hov)
-            selectBox.borderColor = borderColor_hov
-            textField.textColor = textColor_hov
-            textField.font = font_hov
-            imageView.image = NSImage(named: "KMImageNameSelectHover")
-        } else if (state == .Focus) {
-            selectBox.fillColor = background_focus
-            selectBox.borderWidth = CGFloat(borderWidth_focus)
-            selectBox.cornerRadius = CGFloat(cornerRadius_focus)
-            selectBox.borderColor = borderColor_focus
-            textField.textColor = textColor_focus
-            textField.font = font_focus
-            imageView.image = NSImage(named: "KMImageNameSelectFocus")
-        } else if (state == .Disabled) {
-            selectBox.fillColor = background_disabled
-            selectBox.borderWidth = CGFloat(borderWidth_disabled)
-            selectBox.cornerRadius = CGFloat(cornerRadius_disabled)
-            selectBox.borderColor = borderColor_disabled
-            textField.textColor = textColor_disabled
-            textField.font = font_disabled
-            imageView.image = NSImage(named: "KMImageNameSelectDisable")
-        } else if (state == .Error_def) {
-            selectBox.fillColor = background_errordef
-            selectBox.borderWidth = CGFloat(borderWidth_errordef)
-            selectBox.cornerRadius = CGFloat(cornerRadius_errordef)
-            selectBox.borderColor = borderColor_errordef
-            textField.textColor = textColor_errordef
-            textField.font = font_errordef
-            imageView.image = NSImage(named: "KMImageNameSelectNormal")
-        } else if (state == .Error_focus) {
-            selectBox.fillColor = background_errorfocus
-            selectBox.borderWidth = CGFloat(borderWidth_errorfocus)
-            selectBox.cornerRadius = CGFloat(cornerRadius_errorfocus)
-            selectBox.borderColor = borderColor_errorfocus
-            textField.textColor = textColor_errorfocus
-            textField.font = font_errorfocus
-            imageView.image = NSImage(named: "KMImageNameSelectNormal")
-        }
-        
-        if alert == true {
-            selectBox.borderColor = NSColor.km_init(hex: "#F3465B")
-        } else {
-            selectBox.borderColor = selectBox.borderColor
-        }
         
-        imageViewWidth_spacing.constant = CGFloat(imageWidth)
-        imageViewHeight_spacing.constant = CGFloat(imageHeight)
-        horizontalPadding_spacing.constant = CGFloat(horizontalPadding)
-        itemSpacing_spacing.constant = CGFloat(itemSpacing)
-
-        textField.isEditable = editable
-//        textField.placeholderString = placeholderString
-        textField.lineBreakMode = lineBreakMode
-        
-        popViewController?.updateUI()
     }
     
     func removeAllItems() {
@@ -532,8 +433,7 @@ extension KMDesignSelect: NSPopoverDelegate {
         if (createFilePopover == popover) {
             let vc = createFilePopover.contentViewController! as! KMHomePopViewController
             vc.disItems = disItems
-            
-            self.state = .Focus
+             
             self.canHover = false
         }
     }
@@ -541,7 +441,7 @@ extension KMDesignSelect: NSPopoverDelegate {
     func popoverWillClose(_ notification: Notification) {
         let popover = notification.object as! NSPopover
         if (createFilePopover == popover) {
-            self.state = .Norm
+          
             self.canHover = true
         }
     }

+ 14 - 87
PDF Office/PDF Master/Class/PDFTools/PageEdit/Controller/KMPDFEditViewController.swift

@@ -185,23 +185,18 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             guard let type = KMPageEditType(rawValue: index) else {
                 if (index == KMPageEditType.insert_files) {
                     self.insertFileAction()
-                    self.trackEvent(type: .insert, index: index)
+               
                 } else if (index == KMPageEditType.insert_blank_page) {
                     self.insertBlankPageAction()
-                    self.trackEvent(type: .insert, index: index)
-                } else if (index == KMPageEditType.insert_custom_page) {
+                 } else if (index == KMPageEditType.insert_custom_page) {
                     self.item_insertCustomPage(sender: nil)
-                    self.trackEvent(type: .insert, index: index)
-                } else if (index == KMPageEditType.insert_fromImage) {
+                 } else if (index == KMPageEditType.insert_fromImage) {
                     self.item_insertFromImage(sender: nil)
-                    self.trackEvent(type: .insert, index: index)
-                } else if (index == KMPageEditType.insert_fromClipboard) {
+                 } else if (index == KMPageEditType.insert_fromClipboard) {
                     self.item_insertFromClipboard(sender: nil)
-                    self.trackEvent(type: .insert, index: index)
-                } else if (index == KMPageEditType.insert_fromScanner) {
+                 } else if (index == KMPageEditType.insert_fromScanner) {
                     self.item_insertFromScanner(sender: nil)
-                    self.trackEvent(type: .insert, index: index)
-                } else if (index == KMPageEditType.extract_selected_pages) {
+                 } else if (index == KMPageEditType.extract_selected_pages) {
                     self.extractSelectPageItemAction()
                 } else if (index == KMPageEditType.split_selected_pages) {
                     self.splitMenuAction()
@@ -229,7 +224,6 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
                 self.deleteAction()
             } else if (type == .pageRange) {
             } else if (type == .insert) {
-                self.trackEvent(type: .insert)
             } else if (type == .copy) {
                 self.copyAction()
             } else if (type == .paste) {
@@ -523,8 +517,6 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
     }
     
     override func copyAction() {
-        self.trackEvent_copy()
-        
         super.copyAction()
     }
     
@@ -551,8 +543,6 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             if res != .alertFirstButtonReturn {
                 return
             }
-            self.trackEvent(type: .delete)
-            
             super.deleteAction()
             
             self.toolBar.unSelectItem(for: KMToolbarPageEditDeleteItemIdentifier)
@@ -579,13 +569,10 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             KMPurchaseCompareWindowController.sharedInstance().showWindow(nil)
             return
         }
-        
-        self.trackEvent(type: .leftRotate)
-        
+         
         super.leftRotateAction()
         
-//        self.toolBar.unSelectItem(for: KMToolbarPageEditLeftRotateItemIdentifier)
-    }
+     }
     
     override func leftRotateIndexpaths(indexpaths: Set<IndexPath>) {
         if (!self.indexpathsIsValid(indexpaths: indexpaths) || !self.canRotate()) {
@@ -611,12 +598,9 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             self._progressHUD(message: KMLocalizedString(Self.kNoPagesSelectedTipMessage))
             return
         }
-        
-        self.trackEvent(type: .rightRotate)
-        
+         
         super.rightRotateAction()
-        
-//        self.toolBar.unSelectItem(for: KMToolbarPageEditRightRotateItemIdentifier)
+         
     }
     
     override func rightRotateIndexpaths(indexpaths: Set<IndexPath>) {
@@ -691,9 +675,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             self._progressHUD(message: KMLocalizedString(Self.kNoPagesSelectedTipMessage))
             return
         }
-        
-        self.trackEvent(type: .extract)
-        
+         
         super.extractAction()
         
         DispatchQueue.main.async {
@@ -717,9 +699,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             self._progressHUD(message: KMLocalizedString(Self.kNoPagesSelectedTipMessage))
             return
         }
-        
-        self.trackEvent(type: .replace)
-        
+         
         super.replaceAction()
         
         DispatchQueue.main.async {
@@ -893,7 +873,7 @@ class KMPDFEditViewController: KMPDFThumbViewBaseController {
             self._progressHUD(message: KMLocalizedString("No page selected. Please select at least two pages to organize."))
             return
         }
-        self.trackEvent(type: .reverse)
+        
         self.toolBar.unSelectItem(for: KMToolbarPageEditReverseItemIdentifier)
         self.reverseMenuAction(sender: nil)
     }
@@ -2092,57 +2072,4 @@ extension KMPDFEditViewController {
         }
     }
 }
-
-// MARK: - Analytics (埋点)
-
-extension KMPDFEditViewController {
-    func trackEvent(type: KMPageEditType, index: Int = 0) -> Void {
-        if (type == .insert) {
-            if index == 0 {
-                KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Insert", parameters: [
-                    KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-                    KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-            } else if index == KMPageEditType.insert_blank_page || index == KMPageEditType.insert_custom_page {
-                self.trackEvent(eventName: "SubTbr_PageEdit", params: ["SubTbr_Btn" : "Btn_SubTbr_PageEdit_InsertBlankPage"], platform: .AppCenter)
-            } else if index == KMPageEditType.insert_files {
-                self.trackEvent(eventName: "SubTbr_PageEdit", params: ["SubTbr_Btn" : "Btn_SubTbr_PageEdit_InsertPDF"], platform: .AppCenter)
-            } else if index == KMPageEditType.insert_fromImage {
-                self.trackEvent(eventName: "SubTbr_PageEdit", params: ["SubTbr_Btn" : "Btn_SubTbr_PageEdit_InsertImage"], platform: .AppCenter)
-            } else if index == KMPageEditType.insert_fromClipboard {
-                self.trackEvent(eventName: "SubTbr_PageEdit", params: ["SubTbr_Btn" : "Btn_SubTbr_PageEdit_InsertClipboard"], platform: .AppCenter)
-            } else if index == KMPageEditType.insert_fromScanner {
-                self.trackEvent(eventName: "SubTbr_PageEdit", params: ["SubTbr_Btn" : "Btn_SubTbr_PageEdit_InsertScanner"], platform: .AppCenter)
-            }
-        } else if (type == .extract) {
-            KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Extract", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .leftRotate || type == .rightRotate) {
-            KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Rotate", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .replace) {
-            KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Replace", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .split) {
-            KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Split", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .reverse) {
-            KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Reverse", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-        } else if (type == .delete) {
-            KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Delete", parameters: [
-                KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-                KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-        }
-    }
-    
-    func trackEvent_copy() -> Void {
-        KMAnalytics.trackEvent(eventName: "Btn_SubTbr_Copy", parameters: [
-            KMAnalytics.Parameter.categoryKey : KMAnalytics.Category.subTbr_PageEdit,
-            KMAnalytics.Parameter.labelKey : KMAnalytics.Label.subTbr_Btn], platform: .AppCenter, appTarget: .all)
-    }
-}
+ 

+ 0 - 352
PDF Office/PDF Master/Class/PDFTools/PageEdit/View/KMPageEditInsertPageSizeItemView.swift

@@ -1,352 +0,0 @@
-//
-//  KMPageEditInsertPageSizeItemView.swift
-//  PDF Reader Pro
-//
-//  Created by tangchao on 2023/1/11.
-//
-
-import Cocoa
-// 页面编辑 页面大小视图
-class KMPageEditInsertPageSizeItemView: KMPageEditBaseItemView {
-    private var customXLabel = NSTextField(labelWithString: "X")
-    
-    private var currentPageVC: KMDesignButton?
-    private var standardVC: KMDesignButton?
-    private var standardComboVC: KMDesignSelect?
-    private var customVC: KMDesignButton?
-    
-    private var cwTextField: KMDesignTextField?
-    private var chTextField: KMDesignTextField?
-    private var customComboVC: KMDesignSelect?
-    
-    private var customSize: NSSize = NSZeroSize
-    var getCustomSize: NSSize {
-        get {
-            return self.customSize
-        }
-    }
-    
-    private var mySelectedPageSize: NSSize = NSZeroSize
-    var selectedPageSize: NSSize {
-        get {
-            return mySelectedPageSize
-        }
-        set {
-            mySelectedPageSize = newValue
-            if (newValue.width == 0 || newValue.height == 0) { /// 没有选中页面
-                self.currentPageVC?.enabled = false
-                self.currentPageVC?.state = .Disabled
-                self.currentPageVC?.stringValue = "\(NSLocalizedString("Current page", comment: ""))(0 x 0mm)"
-              
-                if let radio = self.standardVC {
-                    self.selectRadio(radio)
-                }
-            } else {
-                self.currentPageVC?.enabled = true
-                 var widthValue: String = "0"
-                var heightValue: String = "0"
-                 widthValue = String(format: "%.0f", newValue.width)
-                 heightValue = String(format: "%.0f", newValue.height)
- 
-                self.currentPageVC?.stringValue = "\(NSLocalizedString("Current page", comment: ""))(\(widthValue) x \(heightValue)mm)"
- 
-                if let radio = self.currentPageVC {
-                    self.selectRadio(radio)
-                }
-            }
-        }
-    }
-    
-    var getPageSize: NSSize {
-        get {
-            if let state = self.currentPageVC?.state, state == .Checked { /// 当前页面
-                return self.selectedPageSize
-            }
-            if let state = self.standardVC?.state, state == .Checked { /// 标准
-                if let value = self.standardComboVC?.stringValue {
-                    return KMPageEditTools.getPageSizeValue(value)
-                }
-            }
-            if let state = self.customVC?.state, state == .Checked {
-                let width = KMPageEditTools.convertSize(with: KMPageSizeUint(rawValue: self.currentUnit)!, to: .mm, value: self.customSize.width)
-                let height = KMPageEditTools.convertSize(with: KMPageSizeUint(rawValue: self.currentUnit)!, to: .mm, value: self.customSize.height)
-                var size = NSZeroSize
-                if let _value = Float(width) {
-                    size.width = CGFloat(_value)
-                }
-                if let _value = Float(height) {
-                    size.height = CGFloat(_value)
-                }
-                return size
-            }
-            return NSZeroSize
-        }
-    }
-    
-    private var currentUnit: String = "mm"
-    
-    override func initSubviews() {
-        super.initSubviews()
-        
-        self.addSubview(self.customXLabel)
-        
-        self.currentPageVC = KMDesignButton(withType: .RadioButton)
-        self.addSubview(self.currentPageVC!.view)
-        self.currentPageVC?.target = self
-        self.currentPageVC?.action = #selector(currentPageAction)
- 
-        self.standardVC = KMDesignButton(withType: .RadioButton)
-        self.addSubview(self.standardVC!.view)
-        self.standardVC?.target = self
-        self.standardVC?.action = #selector(standardAction)
-        self.standardVC?.stringValue = NSLocalizedString("Standard", comment: "")
- 
-        self.standardComboVC = KMDesignSelect(withType: .Combox)
-        self.addSubview(self.standardComboVC!.view)
-        self.standardComboVC?.delete = self
-        self.standardComboVC?.addItems(withObjectValues: KMPageEditTools.getPageSize())
-        self.standardComboVC?.stringValue = "A4"
-        
-        self.customVC = KMDesignButton(withType: .RadioButton)
-        self.addSubview(self.customVC!.view)
-        self.customVC?.target = self
-        self.customVC?.action = #selector(customAction)
-        self.customVC?.stringValue = NSLocalizedString("Customization", comment: "")
- 
-        self.cwTextField = KMDesignTextField()
-        self.cwTextField?.delegate = self
-        self.addSubview(self.cwTextField!)
-        self.chTextField = KMDesignTextField()
-        self.addSubview(self.chTextField!)
-        self.chTextField?.delegate = self
-        
-        self.customComboVC = KMDesignSelect(withType: .Combox)
-        self.addSubview(self.customComboVC!.view)
-        self.customComboVC?.delete = self
-        self.customComboVC?.addItems(withObjectValues: KMPageEditTools.getAllPageSizeUnit())
-        self.customComboVC?.stringValue = KMPageEditTools.getAllPageSizeUnit().first!
-        
-        self.titleLabel.stringValue = NSLocalizedString("Page Size", comment: "")
-        self.titleLabel.font = .SFProTextSemiboldFont(12)
-        self.titleLabel.textColor = NSColor.km_init(hex: "#616469")
-        
-        self.customSize = NSSize(width: 210, height: 297)
-        self.cwTextField?.stringValue = "\(self.customSize.width)"
-        self.chTextField?.stringValue = "\(self.customSize.height)"
-        
-        self.customXLabel.alignment = .center
-        self.customXLabel.font = NSFont.systemFont(ofSize: 14)
-    }
-    
-    override func layout() {
-        super.layout()
-        
-        let leftMargin = self.contentInset.left
-        let contentW = NSWidth(self.bounds)-leftMargin-self.contentInset.right
-        let contentY = NSMaxY(self.titleLabel.frame)
-        let radioH: CGFloat = 32
-        let vSpace: CGFloat = 12
-        self.currentPageVC?.view.frame = NSMakeRect(leftMargin, contentY, 280, radioH)
-        
-        let standardY: CGFloat = contentY+radioH+vSpace
-        let standardW: CGFloat = 90
-        self.standardVC?.view.frame = NSMakeRect(leftMargin, standardY, standardW+10, radioH)
-        
-        let comboH: CGFloat = 32
-        self.standardComboVC?.view.frame = NSMakeRect(leftMargin+standardW+10, standardY, 228, comboH)
-        
-        let customW: CGFloat = 120
-        self.customVC?.view.frame = NSMakeRect(leftMargin, standardY+radioH+vSpace, customW + 10, radioH)
-        
-        let customY: CGFloat = standardY+radioH+vSpace
-        let customViewW: CGFloat = 94
-        let customH: CGFloat = 32
-        self.cwTextField?.frame = NSMakeRect(leftMargin+customW+10, customY, customViewW, customH)
-        
-        self.customXLabel.frame = NSMakeRect(leftMargin+customW+10+customViewW, customY+7, 24, 18)
-        self.chTextField?.frame = NSMakeRect(self.customXLabel.frame.maxX, customY, customViewW, customH)
-        
-        self.customComboVC?.view.frame = NSMakeRect(self.customXLabel.frame.maxX+customViewW+8, customY, customViewW, customH)
-    }
-    
-    @objc private func currentPageAction() {
-        if let _radioVC = self.currentPageVC {
-            self.selectRadio(_radioVC)
-        }
-        
-        guard let callback = self.itemClick else {
-            return
-        }
-        callback(1, 1)
-    }
-    
-    @objc private func standardAction() {
-        if let _radioVC = self.standardVC {
-            self.selectRadio(_radioVC)
-        }
-        
-        guard let callback = self.itemClick else {
-            return
-        }
-        callback(1, 2)
-    }
-    
-    @objc private func customAction() {
-        if let _radioVC = self.customVC {
-            self.selectRadio(_radioVC)
-        }
-        
-        guard let callback = self.itemClick else {
-            return
-        }
-        callback(1, 3)
-        
-    }
-    
-    // MARK: - publick Methods
-    
-    public func changeDirection(isHor: Bool) {
-        var width: CGFloat = 0
-        if let data = self.cwTextField?.stringValue, let _value = Float(data) {
-            width = CGFloat(_value)
-        }
-        var height: CGFloat = 0
-        if let data = self.chTextField?.stringValue, let _value = Float(data) {
-            height = CGFloat(_value)
-        }
-        
-        if (isHor) { /// 横向
-            if (width > height) {
-                return
-            }
-            
-            self.exchangeCustomTextFieldValue()
-        } else { /// 纵向
-            if (width < height) {
-                return
-            }
-            
-            self.exchangeCustomTextFieldValue()
-        }
-    }
-    
-    public func selectRadio(_ radio: KMDesignButton) {
-        for radioVC in [self.currentPageVC, self.standardVC, self.customVC] {
-            guard let _radioVC = radioVC else {
-                continue
-            }
-            
-            if (_radioVC.isEqual(to: radio)) {
-                _radioVC.state = .Checked
-            } else {
-                _radioVC.state = .Norm
-            }
-        }
-        
-        if let state = self.standardVC?.state {
-            self.standardComboVC?.enabled = state == .Checked
-        }
-        
-        if let state = self.customVC?.state, state == .Checked {
-            self.cwTextField?.kmEnabled = true
-            self.chTextField?.kmEnabled = true
-            self.customComboVC?.enabled = true
-        } else {
-            self.cwTextField?.kmEnabled = false
-            self.chTextField?.kmEnabled = false
-            self.customComboVC?.enabled = false
-            self.window?.makeFirstResponder(nil)
-        }
-    }
-    
-    // MARK: Private Methods
-    
-    private func exchangeCustomTextFieldValue() {
-        guard let witdh = self.cwTextField?.stringValue else {
-            return
-        }
-        guard let height = self.chTextField?.stringValue else {
-            return
-        }
-        
-        self.cwTextField?.stringValue = height
-        self.chTextField?.stringValue = witdh
-        
-        updateCustomSize()
-    }
-    
-    private func updateCustomSize() {
-        var width: CGFloat = 0
-        if let data = self.cwTextField?.stringValue, let _value = Float(data) {
-            width = CGFloat(_value)
-        }
-        var height: CGFloat = 0
-        if let data = self.chTextField?.stringValue, let _value = Float(data) {
-            height = CGFloat(_value)
-            
-            
-            self.customSize = NSSize(width: width, height: height)
-        }
-    }
-}
-    
-extension KMPageEditInsertPageSizeItemView: KMTextFieldDelegate {
-    func km_controlTextDidChange(textField: AnyObject) {
-        if (textField.isEqual(to: self.cwTextField)) {
-            self.updateCustomSize()
-            
-            guard let callback = self.itemClick else {
-                return
-            }
-            callback(3, self.cwTextField!.stringValue as Any)
-        } else if (textField.isEqual(to: self.chTextField)) {
-            self.updateCustomSize()
-            
-            guard let callback = self.itemClick else {
-                return
-            }
-            
-            callback(4, self.chTextField!.stringValue as Any)
-        }
-    }
-}
-
-extension KMPageEditInsertPageSizeItemView: KMSelectPopButtonDelegate {
-    func km_comboBoxSelectionDidChange(_ obj: KMDesignSelect) {
-        if (obj.isEqual(to: self.standardComboVC)) {
-            guard let callback = self.itemClick else {
-                return
-            }
-            
-            if let idx = self.standardComboVC?.indexOfSelectedItem {
-                callback(2, max(0, idx))
-            }
-        } else if (obj.isEqual(to: self.customComboVC)) {
-            guard let callback = self.itemClick else {
-                return
-            }
-            
-            if let idx = self.customComboVC?.indexOfSelectedItem {
-                callback(5, max(0, idx))
-                
-                let fromUnit: String = self.currentUnit
-                let toUnit: String = KMPageEditTools.getAllPageSizeUnit()[idx]
-                self.currentUnit = toUnit
-                
-                var width: CGFloat = 0
-                if let data = self.cwTextField?.stringValue, let _value = Float(data) {
-                    width = CGFloat(_value)
-                }
-                
-                var height: CGFloat = 0
-                if let data = self.chTextField?.stringValue, let _value = Float(data) {
-                    height = CGFloat(_value)
-                }
-                self.chTextField?.stringValue = KMPageEditTools.convertSize(with: KMPageSizeUint(rawValue: fromUnit)!, to: KMPageSizeUint(rawValue: toUnit)!, value: height)
-                self.cwTextField?.stringValue = KMPageEditTools.convertSize(with: KMPageSizeUint(rawValue: fromUnit)!, to: KMPageSizeUint(rawValue: toUnit)!, value: width)
-            }
-            
-            self.updateCustomSize()
-        }
-    }
-}

+ 94 - 0
PDF Office/PDF Master/Class/PDFWindowController/MainWindowController/KMPresentTableViewCell.swift

@@ -0,0 +1,94 @@
+//
+//  KMPresentTableViewCell.swift
+//  PDF Reader Pro
+//
+//  Created by liujiajie on 5/14/24.
+//
+
+import Cocoa
+
+
+@objc enum KMPresentTableViewCellType: Int {
+    case img = 0
+    case text
+}
+
+class KMPresentTableViewCell: NSTableCellView{
+ 
+    var contentView: NSView?
+    var iv: NSImageView?
+    var label: NSTextField?
+    var type: KMPresentTableViewCellType?
+    
+    convenience init(type: KMPresentTableViewCellType) {
+        self.init()
+//        switch type {
+//        case .img:
+//            configuUIForImg()
+//        case .text:
+//            configuUIForText()
+//        default:
+//            break
+//        }
+        configuUi()
+        self.type = type
+    }
+//    convenience init() {
+//        self.init()
+//        configuUi()
+//    }
+    func configuUIForImg() {
+        self.iv = NSImageView(frame: .zero)
+        self.addSubview(self.iv!)
+        
+        self.iv?.mas_makeConstraints({ make in
+            make?.edges.equalTo()(self)
+//            make?.left.equalTo()(self)
+//            make?.top.equalTo()(self)?.offset()(12)
+//            make?.width.equalTo()(16)
+//            make?.height.equalTo()(16)
+        })
+    }
+    func configuUIForText() {
+        let tf = NSTextField(frame: .zero)
+        self.label = tf
+        self.label?.isBordered = false
+        self.label?.drawsBackground = true
+        self.label?.backgroundColor = NSColor.clear
+        self.label?.isEditable = false
+        self.addSubview(self.label!)
+        self.label?.mas_makeConstraints({ make in
+            make?.top.equalTo()(self)?.offset()(13)
+            make?.left.equalTo()(self)
+            
+        })
+        self.label?.textColor = KMAppearance.Layout.h0Color()
+        self.label?.font = NSFont.systemFont(ofSize: 12)
+    }
+    func configuUi() {
+        self.iv = NSImageView(frame: .zero)
+        self.addSubview(self.iv!)
+        self.iv?.mas_makeConstraints({ make in
+            make?.left.equalTo()(0)
+            make?.top.equalTo()(0)
+            make?.width.equalTo()(32)
+            make?.bottom.equalTo()(0)
+        })
+        let tf = NSTextField(frame: .zero)
+        self.label = tf
+        self.label?.isBordered = false
+        self.label?.drawsBackground = true
+        self.label?.backgroundColor = NSColor.clear
+        self.label?.isEditable = false
+        self.addSubview(self.label!)
+        self.label?.mas_makeConstraints({ make in
+//            make?.top.equalTo()(self)?.offset()(13)
+            make?.left.equalTo()(self.iv?.mas_right)
+            make?.right.equalTo()(self)
+            make?.centerY.equalTo()(self)
+        })
+        self.label?.textColor = KMAppearance.Layout.h0Color()
+        self.label?.font = NSFont.systemFont(ofSize: 12)
+        self.label?.maximumNumberOfLines = 1
+    }
+}

+ 53 - 54
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/Tools/KMNoteReplyHanddler.swift

@@ -138,60 +138,59 @@ class KMNoteReplyPopController: KMHomePopViewController {
             make?.centerY.equalTo()(0.0)
             make?.leading.equalTo()(28.0)
         }
-        let textTypography = KMDesignToken.shared.typography(withToken: "dropdown.m.mac-text.def")
-        var fontFamily: String = textTypography.fontFamily
-        let fontWeight: String = textTypography.fontWeight
-        if fontFamily.contains(" ") {
-            fontFamily = fontFamily.replacingOccurrences(of: " ", with: "")
-        }
-        if fontWeight != "" {
-            fontFamily = String(format: "%@-%@", fontFamily, fontWeight)
-        }
-        boxLabel.font = NSFont(name: fontFamily, size: textTypography.fontSize.stringToCGFloat()) ?? NSFont.systemFont(ofSize: textTypography.fontSize.stringToCGFloat())
-        let paragraphStyle = NSMutableParagraphStyle()
-        paragraphStyle.lineSpacing = textTypography.lineHeight.stringToCGFloat()
-        boxLabel.attributedStringValue = NSAttributedString(string: stringValue, attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
-        
-        box.moveCallback =  {(mouseEntered: Bool, mouseBox: KMBox) -> Void in
-            if !isDisabled {
-                if isSelected { // 选中没有 hover 效果
-                    return
-                }
-                if mouseEntered {
-                    mouseBox.fillColor = self.enterFillColor
-                } else {
-                    mouseBox.fillColor = NSColor.clear
-                }
-            }
-        }
-        box.downCallback = {(downEntered, mouseBox, event) -> Void in
-            if !isDisabled {
-                if downEntered {
-                    mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
-                    boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.sel")
-                    if let callback = self.downCallback {
-                        callback(true, stringValue)
-                    }
-                } else {
-                    mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.norm")
-                    boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.def")
-                }
-            }
-        }
-        if isDisabled {
-            box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.dis")
-            boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.dis")
-        } else if (isSelected) {
-            if KMAppearance.isDarkMode() {
-                box.fillColor = NSColor(hex: "#227AFF").withAlphaComponent(0.3)
-            } else {
-                box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
-            }
-//            boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.sel")
-        }
-        
-        let idx = self.dataArr?.index(of: stringValue) ?? 0
-        self.viewWillShow?(box, idx)
+//        let textTypography = KMDesignToken.shared.typography(withToken: "dropdown.m.mac-text.def")
+//        var fontFamily: String = textTypography.fontFamily
+//        let fontWeight: String = textTypography.fontWeight
+//        if fontFamily.contains(" ") {
+//            fontFamily = fontFamily.replacingOccurrences(of: " ", with: "")
+//        }
+//        if fontWeight != "" {
+//            fontFamily = String(format: "%@-%@", fontFamily, fontWeight)
+//        }
+//        boxLabel.font = NSFont(name: fontFamily, size: textTypography.fontSize.stringToCGFloat()) ?? NSFont.systemFont(ofSize: textTypography.fontSize.stringToCGFloat())
+//        let paragraphStyle = NSMutableParagraphStyle()
+//        paragraphStyle.lineSpacing = textTypography.lineHeight.stringToCGFloat()
+//        boxLabel.attributedStringValue = NSAttributedString(string: stringValue, attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
+//        
+//        box.moveCallback =  {(mouseEntered: Bool, mouseBox: KMBox) -> Void in
+//            if !isDisabled {
+//                if isSelected { // 选中没有 hover 效果
+//                    return
+//                }
+//                if mouseEntered {
+//                    mouseBox.fillColor = self.enterFillColor
+//                } else {
+//                    mouseBox.fillColor = NSColor.clear
+//                }
+//            }
+//        }
+//        box.downCallback = {(downEntered, mouseBox, event) -> Void in
+//            if !isDisabled {
+//                if downEntered {
+//                    mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
+//                    boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.sel")
+//                    if let callback = self.downCallback {
+//                        callback(true, stringValue)
+//                    }
+//                } else {
+//                    mouseBox.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.norm")
+//                    boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.def")
+//                }
+//            }
+//        }
+//        if isDisabled {
+//            box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.dis")
+//            boxLabel.textColor = KMDesignToken.shared.fill(withToken: "dropdown.m.mac-text.dis")
+//        } else if (isSelected) {
+//            if KMAppearance.isDarkMode() {
+//                box.fillColor = NSColor(hex: "#227AFF").withAlphaComponent(0.3)
+//            } else {
+//                box.fillColor = KMDesignToken.shared.fill(withToken: "dropdown.m.bg.sel")
+//            }
+//         }
+//        
+//        let idx = self.dataArr?.index(of: stringValue) ?? 0
+//        self.viewWillShow?(box, idx)
     }
 }
 

+ 2 - 11
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMPopMenuButton.swift

@@ -25,11 +25,7 @@ class KMPopMenuButton: NSButton {
         self.layer?.backgroundColor = NSColor.clear.cgColor
         self.font = NSFont.systemFont(ofSize: 14)
     }
-    
-//    override class var cellClass: AnyClass? {
-//        return KMPopMenuButtonCell.self
-//    }
-//    
+     
     func addTrackingArea() {
         let trackingArea = NSTrackingArea(rect: self.bounds, options: [.mouseEnteredAndExited, .inVisibleRect, .activeAlways, .mouseMoved], owner: self, userInfo: nil)
         self.addTrackingArea(trackingArea)
@@ -78,12 +74,7 @@ class KMPopMenuButton: NSButton {
             }
         }
     }
-    
-//    override func setTitle(_ title: String) {
-//        super.title = title
-//        self.setTitleColorWithColor(NSColor.labelColor, font: nil)
-//    }
-    
+     
     func setTitleColorWithColor(_ color: NSColor?, font: NSFont?) {
         // 设置按钮文本颜色和字体
         if let color = color {

BIN
PDF Office/PDF Master/KMClass/KMPDFViewController/PDFImages.xcassets/Toolbar/Tools/tools_AITools.imageset/tools_AITools.pdf


BIN
PDF Office/PDF Master/KMClass/KMPDFViewController/PDFImages.xcassets/Toolbar/Tools/tools_TTS.imageset/tools_TTS.pdf


Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 441
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj