Ver Fonte

【会员系统】比较表细节调整

wanjun há 4 meses atrás
pai
commit
fcea5d7483

+ 1 - 0
PDF Office/PDF Master/Class/Purchase/IAPProductsManager.h

@@ -59,6 +59,7 @@ extern NSString * const KMIAPSubscriptionLoadedNotification;
 @property (nonatomic, readonly) IAPProduct *liteAIProduct;
 @property (nonatomic, readonly) IAPProduct *proAIProduct;
 
+
 @property (nonatomic,readonly) IAPProduct *DMGAllAccessProduct;
 @property (nonatomic,readonly) IAPProduct *DMGPDFToOfficeProduct;
 

+ 6 - 2
PDF Office/PDF Master/MemberCenter/Model/KMMemberInfo.swift

@@ -59,7 +59,7 @@ import Cocoa
     var aiPoint: Int = 0 // AI 点数
     var validFlag: String = "" // 注销(0), * 正常(1), * 停用(2), * 注销中(5);
     var isHaveAIDiscount: String = "" // 是否有ai折扣
-    var canTrail: String = "" // 是否能试用
+    var canTrail: Bool = false // 是否能试用
     
 //    var currentTime: String = "" // 当前注销时间
 //    var logOffTime: String = "" // 注销时间
@@ -200,7 +200,11 @@ import Cocoa
         aiPoint = model.aiPoint
         validFlag = model.validFlag
         isHaveAIDiscount = model.isHaveAIDiscount
-        canTrail = model.canTrail
+        if model.canTrail == "1" {
+            canTrail = true
+        } else {
+            canTrail = false
+        }
         activeVips = model.activeVIP
         activeAis = model.activeAI
     }

+ 248 - 0
PDF Office/PDF Master/MemberCenter/ViewModel/KMProductModel.swift

@@ -0,0 +1,248 @@
+//
+//  KMProductModel.swift
+//  PDF Reader Pro
+//
+//  Created by wanjun on 2024/11/6.
+//
+
+import Foundation
+import Combine
+
+@objc enum KMCompareTableType : Int {
+    case trial = 0 // 试用比较表
+    case dmg_Base // DMG 基础版
+    case dmg_MacWindows // DMG Mac&Windows双平台高级版永久
+    case lite_Base // Lite 基础版
+    case lite_MacWindows // Lite Mac&Windows双平台高级版永久
+    case pro_Base // Pro 基础版
+    case pro_Advanced // Pro Mac单平台高级版永久
+}
+
+@objc enum KMCompareProductType : Int {
+    case free = 0 // 免费
+    case freeTrial // 试用
+    case allPlatformStandard // 全平台标准版年订阅
+    case dualPlatformAdvanced // Mac&Windows双平台高级版永久
+    case allPlatformAdvanced_6 // 全平台高级版6个月订阅
+    case allPlatformAdvanced_12 // 全平台高级版12个月订阅
+    case macPlatformAdvanced // MAC单平台高级版永久
+}
+
+@objcMembers
+class KMProductModel: ObservableObject {
+    /**
+     比较表类型
+     */
+    @Published var state: KMCompareTableType = .trial
+    /**
+     高级版半年 或 年订阅,true为年订阅,false为半年订阅,默认true为年订阅
+     */
+    @Published var isPurchaseSwitch: Bool = true
+    
+    // MARK: Public Method
+    
+    /**
+     @abstract 根据当前权益获取比较表类型
+     @param
+     */
+    func getCurrentComparisonTableType() -> Void {
+        if KMMemberInfo.shared.canTrail {
+            state = .trial
+        } else {
+#if VERSION_FREE
+#if VERSION_DMG
+    // DMG
+            if KMMemberInfo.shared.vip_levels == "1" {
+                state = .dmg_Base
+            } else if KMMemberInfo.shared.vip_levels == "2" {
+                state = .dmg_MacWindows
+            }
+#else
+    // AppStore 免费版本
+            if KMMemberInfo.shared.vip_levels == "1" {
+                state = .lite_Base
+            } else if KMMemberInfo.shared.vip_levels == "2" {
+                state = .lite_MacWindows
+            }
+#endif
+#else
+    // AppStore 付费版
+            if KMMemberInfo.shared.vip_levels == "1" {
+                state = .pro_Base
+            } else if KMMemberInfo.shared.vip_levels == "2" {
+                state = .pro_Advanced
+            }
+#endif
+        }
+    }
+    
+    /**
+     对应商品价格
+     */
+    func getProductPrice(_ type: KMCompareProductType) -> String {
+        if type == .freeTrial {
+            
+        } else if type == .allPlatformStandard {
+            
+        } else if type == .dualPlatformAdvanced {
+            
+        } else if type == .allPlatformAdvanced_6 {
+            
+        } else if type == .allPlatformAdvanced_12 {
+            
+        } else if type == .macPlatformAdvanced {
+            
+        }
+        return ""
+    }
+
+    // MARK: Private Method
+
+    // MARK: Action Method
+    
+    // MARK: Get & Set
+    
+    /**
+     当前比较表产品列表内容
+     */
+    var products: [KMCompareProductType] {
+        if state == .trial {
+            return [.free, .freeTrial]
+        } else if state == .dmg_Base {
+            return [.free, .allPlatformStandard, .allPlatformAdvanced_12, .dualPlatformAdvanced]
+        } else if state == .dmg_MacWindows {
+            return [.allPlatformAdvanced_12]
+        } else if state == .lite_Base {
+            return [.free, .allPlatformAdvanced_6, .allPlatformAdvanced_12, .dualPlatformAdvanced]
+        } else if state == .lite_MacWindows {
+            return [.allPlatformAdvanced_12]
+        } else if state == .pro_Base {
+            return [.allPlatformAdvanced_12, .macPlatformAdvanced]
+        } else if state == .pro_Advanced {
+            return [.allPlatformAdvanced_12]
+        }
+        return []
+    }
+    
+    /**
+     比较表数据源
+     */
+    var dataSource: [Any] {
+        if isPurchaseSwitch {
+            // 试用   全平台标准版年订阅   全平台高级版6/12个月订阅  Mac&Windows双平台高级版永久 MAC单平台高级版永久 
+            //MAC单平台标准版永久
+            return [
+                "Benefit",
+                ["Supported platforms",                                                 "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows", "mac"],
+                ["Maximum number of accessible devices",                                "2 devices",                    "4 devices",                    "4 devices",                    "2 devices",    "1 devices"],
+                "PDF to Office",
+                ["Convert PDFs to Word, HTML, TXT, JPEG or PNG files",                  "Only first 10 pages",          "Standard",                     "Advanced",                     "Advanced",     "Advanced"],
+                ["Turn PDF to PPT, Excel, RTF, CSV, and more",                          "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],
+                ["Convert PDF to TIFF, BMP, GIF or TGA files",                          "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],
+                "Edit PDF",
+                ["Add and edit text in PDF",                                            "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Edit, crop, replace image in PDF",                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "OCR",
+                ["Extract texts from image-based or scanned PDF",                       "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Organize Pages",
+                ["Extract, rotate, rearrange, replace, add, delete pages",              "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Split PDFs into multiple files",                                      "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Advanced Editing Tools",
+                ["Merge multiple documents into a new PDF", "Up to 2 files or 20 MB",   "✓",                            "✓",                            "✓",                            "∞",            "∞"],
+                ["Add & edit watermark",                                                "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Add header, footer, page numbers",                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Add Bates Number",                                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Insert PDF page background by color or image",                        "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Create fattened copies",                                              "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Extract Images",                                                      "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Extract tables",                                                      "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],
+                ["Measuring Tools",                                                     "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Fill & Sign",
+                ["Create digital signature",                                            "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Create & Edit & Fill Adobe Fillable PDF Forms",                       "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Security",
+                ["Batch encrypting PDF documents",                                      "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["PDF Password Remover",                                                "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Redact sensitive information",                                        "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Create PDF",
+                ["Convert JPEG, JPG, PNG, TIFF, BMP or PSD files to PDFs",              "1 file",                       "✓",                            "✓",                            "✓",            "✓"],
+                ["Create PDFs from a scanner and iOS devices",                          "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Annotations",
+                ["Customize PDF stamps",                                                "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Hyperlink",                                                           "Page Number",                  "Page Number, URL, Email",      "Page Number, URL, Email",      "Page Number, URL, Email", "Page Number, URL, Email"],
+                ["Signature",                                                           "Standard",                     "Advanced",                     "Advanced",                     "Advanced",     "Advanced"],
+                ["Table",                                                               "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "View PDF",
+                ["Multi-tab viewer",                                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Various printing types: poster, booklet, multi-page printing",        "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Customize theme colors: Light Mode, Dark Mode, Sepia Mode and more",  "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Split View to compare files",                                         "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Subscription Based Solution",
+                ["Access all premium features in app",                                  "X",                            "12 months",                    "12 months",                    "∞",            "∞"],
+                ["Priority customer support",                                           "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Ad-free",                                                             "X",                            "✓",                            "✓",                            "✓",            "✓"]
+            ]
+        } else {
+            return [
+                "Benefit",
+                ["Supported platforms",                                                 "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows, ios, android",   "mac, windows", "mac"],
+                ["Maximum number of accessible devices",                                "2 devices",                    "4 devices",                    "4 devices",                    "2 devices",    "1 devices"],
+                "PDF to Office",
+                ["Convert PDFs to Word, HTML, TXT, JPEG or PNG files",                  "Only first 10 pages",          "Standard",                     "Advanced",                     "Advanced",     "Advanced"],
+                ["Turn PDF to PPT, Excel, RTF, CSV, and more",                          "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],
+                ["Convert PDF to TIFF, BMP, GIF or TGA files",                          "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],
+                "Edit PDF",
+                ["Add and edit text in PDF",                                            "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Edit, crop, replace image in PDF",                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "OCR",
+                ["Extract texts from image-based or scanned PDF",                       "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Organize Pages",
+                ["Extract, rotate, rearrange, replace, add, delete pages",              "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Split PDFs into multiple files",                                      "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Advanced Editing Tools",
+                ["Merge multiple documents into a new PDF", "Up to 2 files or 20 MB",   "✓",                            "✓",                            "✓",                            "∞",            "∞"],
+                ["Add & edit watermark",                                                "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Add header, footer, page numbers",                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Add Bates Number",                                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Insert PDF page background by color or image",                        "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Create fattened copies",                                              "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Extract Images",                                                      "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Extract tables",                                                      "Only first 10 pages",          "Only first 10 pages",          "✓",                            "✓",            "✓"],
+                ["Measuring Tools",                                                     "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Fill & Sign",
+                ["Create digital signature",                                            "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Create & Edit & Fill Adobe Fillable PDF Forms",                       "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Security",
+                ["Batch encrypting PDF documents",                                      "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["PDF Password Remover",                                                "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Redact sensitive information",                                        "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Create PDF",
+                ["Convert JPEG, JPG, PNG, TIFF, BMP or PSD files to PDFs",              "1 file",                       "✓",                            "✓",                            "✓",            "✓"],
+                ["Create PDFs from a scanner and iOS devices",                          "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Annotations",
+                ["Customize PDF stamps",                                                "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Hyperlink",                                                           "Page Number",                  "Page Number, URL, Email",      "Page Number, URL, Email",      "Page Number, URL, Email", "Page Number, URL, Email"],
+                ["Signature",                                                           "Standard",                     "Advanced",                     "Advanced",                     "Advanced",     "Advanced"],
+                ["Table",                                                               "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "View PDF",
+                ["Multi-tab viewer",                                                    "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Various printing types: poster, booklet, multi-page printing",        "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Customize theme colors: Light Mode, Dark Mode, Sepia Mode and more",  "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Split View to compare files",                                         "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                "Subscription Based Solution",
+                ["Access all premium features in app",                                  "X",                            "6 months",                    "6 months",                      "∞",            "∞"],
+                ["Priority customer support",                                           "X",                            "✓",                            "✓",                            "✓",            "✓"],
+                ["Ad-free",                                                             "X",                            "✓",                            "✓",                            "✓",            "✓"]
+            ]
+        }
+    }
+}
+
+class ComparePlatformData: NSObject {
+    var productName: String = "" // 产品名
+    var amount: String = "" // 金额
+    var productIntroduce: String = "" // 产品详情
+    var buttonTitle: String = "" // 按钮文字
+    var button: String = "" //
+    
+}

+ 0 - 1
PDF Office/PDF Master/MemberCenter/ViewModel/KMUserInfoVCModel.swift

@@ -199,7 +199,6 @@ class KMUserInfoVCModel: ObservableObject {
      @param
      */
     private func maxDeviceNum() -> Int {
-        
         return 4
 //        return 0
     }

+ 1 - 1
PDF Office/PDF Master/MemberCenter/WindowsController/KMCloseApplyWC.xib

@@ -19,7 +19,7 @@
         <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
             <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
             <rect key="contentRect" x="196" y="240" width="358" height="312"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1800" height="1125"/>
             <value key="minSize" type="size" width="358" height="312"/>
             <value key="maxSize" type="size" width="358" height="312"/>
             <view key="contentView" id="se5-gp-TjO">

Diff do ficheiro suprimidas por serem muito extensas
+ 1307 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMProductCompareWC.swift


Diff do ficheiro suprimidas por serem muito extensas
+ 1724 - 0
PDF Office/PDF Master/MemberCenter/WindowsController/KMProductCompareWC.xib


+ 1 - 0
PDF Office/PDF Master/PDF_Reader_Pro DMG-Bridging-Header.h

@@ -133,3 +133,4 @@
 #import "KMPDFPosterPrintWindowController.h"
 
 #import "KMActivityALertViewController.h"
+#import "KMDiscountToSaveWindowController.h"

+ 1 - 0
PDF Office/PDF Master/PDF_Reader_Pro Edition-Bridging-Header.h

@@ -128,3 +128,4 @@
 #import "KMPDFBookletWindowController.h"
 #import "KMPDFMultiplePrintWindowController.h"
 #import "KMPDFPosterPrintWindowController.h"
+#import "KMDiscountToSaveWindowController.h"

+ 1 - 0
PDF Office/PDF Master/PDF_Reader_Pro-Bridging-Header.h

@@ -128,4 +128,5 @@
 #import "KMPDFMultiplePrintWindowController.h"
 #import "KMPDFPosterPrintWindowController.h"
 
+#import "KMDiscountToSaveWindowController.h"
 

+ 24 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -790,6 +790,15 @@
 		9F33C9E92CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9E82CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift */; };
 		9F33C9EA2CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9E82CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift */; };
 		9F33C9EB2CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9E82CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift */; };
+		9F33C9F02CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */; };
+		9F33C9F12CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */; };
+		9F33C9F22CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */; };
+		9F33C9F32CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */; };
+		9F33C9F42CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */; };
+		9F33C9F52CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */; };
+		9F33C9F72CDB3FB40080D3C2 /* KMProductModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */; };
+		9F33C9F82CDB3FB40080D3C2 /* KMProductModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */; };
+		9F33C9F92CDB3FB40080D3C2 /* KMProductModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */; };
 		9F39B9442A661ED500930ACA /* KMHomeScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F39B9432A661ED500930ACA /* KMHomeScrollView.swift */; };
 		9F39B9452A661ED500930ACA /* KMHomeScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F39B9432A661ED500930ACA /* KMHomeScrollView.swift */; };
 		9F39B9462A661ED500930ACA /* KMHomeScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F39B9432A661ED500930ACA /* KMHomeScrollView.swift */; };
@@ -6051,6 +6060,9 @@
 		9F33C9E02CDB05010080D3C2 /* KMOpenDMGPopupBootWC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOpenDMGPopupBootWC.swift; sourceTree = "<group>"; };
 		9F33C9E12CDB05010080D3C2 /* KMOpenDMGPopupBootWC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMOpenDMGPopupBootWC.xib; sourceTree = "<group>"; };
 		9F33C9E82CDB08990080D3C2 /* KMOpenDMGPopBootModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMOpenDMGPopBootModel.swift; sourceTree = "<group>"; };
+		9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMProductCompareWC.swift; sourceTree = "<group>"; };
+		9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMProductCompareWC.xib; sourceTree = "<group>"; };
+		9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMProductModel.swift; sourceTree = "<group>"; };
 		9F39B9432A661ED500930ACA /* KMHomeScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMHomeScrollView.swift; sourceTree = "<group>"; };
 		9F3A48C32C8017FA0047F565 /* KMPurchaseEmbeddedWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPurchaseEmbeddedWindowController.swift; sourceTree = "<group>"; };
 		9F3A48C42C8017FA0047F565 /* KMPurchaseEmbeddedWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPurchaseEmbeddedWindowController.xib; sourceTree = "<group>"; };
@@ -9102,6 +9114,8 @@
 				9F33C9D02CDA21D70080D3C2 /* KMCloseVerificationWC.xib */,
 				9F33C9D72CDA370D0080D3C2 /* KMCloseApplyWC.swift */,
 				9F33C9D82CDA370D0080D3C2 /* KMCloseApplyWC.xib */,
+				9F33C9EE2CDB34A50080D3C2 /* KMProductCompareWC.swift */,
+				9F33C9EF2CDB34A50080D3C2 /* KMProductCompareWC.xib */,
 				9F33C9DF2CDB04460080D3C2 /* DMG */,
 			);
 			path = WindowsController;
@@ -9353,6 +9367,7 @@
 			children = (
 				9FBD84332CC9DAA20071B9C3 /* KMSignUpViewModel.swift */,
 				9FC3466C2CD35D2800F35823 /* KMUserInfoVCModel.swift */,
+				9F33C9F62CDB3FB40080D3C2 /* KMProductModel.swift */,
 				9F33C9ED2CDB08AA0080D3C2 /* DMG */,
 			);
 			path = ViewModel;
@@ -15119,6 +15134,7 @@
 				AD2D74B029F0CEB300EDC5E4 /* KMCancellationWindowController.xib in Resources */,
 				9F4ACED12CC79D0B005CF727 /* MemberCenter.xcassets in Resources */,
 				9F0ACC072C883464009574D5 /* KMEmbeddedPaymentPopWC.xib in Resources */,
+				9F33C9F32CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */,
 				ADD1B6F02946C06C00C3FFF7 /* KMPrintChoosePageSizeSizeView.xib in Resources */,
 				BBFE6E602930809A00142C01 /* KMMergeCollectionPageViewItem.xib in Resources */,
 				BBFBE6C228DD7B98008B2335 /* Assets.xcassets in Resources */,
@@ -15700,6 +15716,7 @@
 				8997011228F40842009AF911 /* KMOutlineViewController.xib in Resources */,
 				9F4ACED22CC79D0B005CF727 /* MemberCenter.xcassets in Resources */,
 				BB0FE0562B734DD1001E0F88 /* AIUserInfoController.xib in Resources */,
+				9F33C9F42CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */,
 				9FF816E22AFA5BA80087EFC5 /* KMAnnotationTableViewController.xib in Resources */,
 				BB1B0AE72B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				BBB3769C2B10A7FD009539CC /* a_2a.png in Resources */,
@@ -16690,6 +16707,7 @@
 				BBC2BCCB295DA8F30036B983 /* KMCropPreviewController.xib in Resources */,
 				BB1B0AE82B4FC6E900889528 /* KMOpenFileGuideProperty.xib in Resources */,
 				ADD272D629B9CFE20032B5D6 /* KMLightNoNetworkView.xib in Resources */,
+				9F33C9F52CDB34A50080D3C2 /* KMProductCompareWC.xib in Resources */,
 				BB2EDF51296E63E5003BCF58 /* KMPageEditInsertCustomPageWindowController.xib in Resources */,
 				BBB376A32B10A7FD009539CC /* a_2b.png in Resources */,
 				9F4ACEAE2CC60273005CF727 /* MemberCenterLocalizable.strings in Resources */,
@@ -17697,6 +17715,7 @@
 				AD9527D32952D51A0039D2BC /* KMPrintPresenter.swift in Sources */,
 				ADEC7A7E299397F8009A8256 /* NSFont+SFProText.swift in Sources */,
 				ADDF83952B391A5D00A81A4E /* DSignDetailTypeACellView.swift in Sources */,
+				9F33C9F02CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */,
 				ADE86A922B0226AD00414DFA /* KMRemovePasswordView.swift in Sources */,
 				9F221ECF29A85D3700978A59 /* KMDesignBase.swift in Sources */,
 				ADB2D6F9294882AE0029D2B3 /* KMTextFieldStepperView.swift in Sources */,
@@ -18062,6 +18081,7 @@
 				BB67EE1A2B54FFEF00573BF0 /* ASIHTTPRequest.m in Sources */,
 				BB1B0AFB2B4FC6E900889528 /* KMCustomColorGuideView.swift in Sources */,
 				BB948CFE2BFF63C9000FBA01 /* KMToolbarConfigViewController.swift in Sources */,
+				9F33C9F72CDB3FB40080D3C2 /* KMProductModel.swift in Sources */,
 				BBB789872BE8BF2300F7E09C /* AINewConfigWindowController.swift in Sources */,
 				9F0CB4D92986553600007028 /* KMDesignToken+VerticalPadding.swift in Sources */,
 				BBF19E992B0B3218007154C8 /* KMAnnotationStamp.swift in Sources */,
@@ -18368,6 +18388,7 @@
 				9FF371DE2C69B93A005F9CC5 /* CAreaSettingWindowController.swift in Sources */,
 				BB4F7E8A2B0C55E70077EC8C /* KMFilterAuthorLabel.swift in Sources */,
 				AD5999372AD7D9C200412F8B /* KMPropertiesViewPopController.swift in Sources */,
+				9F33C9F82CDB3FB40080D3C2 /* KMProductModel.swift in Sources */,
 				AD3AAD392B0B7B1900DE5FE7 /* KMCompareToolbar.swift in Sources */,
 				ADE86AD72B05A52B00414DFA /* KMCompareFilesConfig.swift in Sources */,
 				9F1F82F329373D6E0092C4B4 /* String+KMExtensions.swift in Sources */,
@@ -18790,6 +18811,7 @@
 				9FBA0EEF28FFC716001117AF /* KMHomeFastToolViewController.swift in Sources */,
 				ADE8BC2629F7CCA600570F89 /* KMPageNumberDisplayView.swift in Sources */,
 				AD3AAD822B0E004B00DE5FE7 /* KMPostionIndicateView.swift in Sources */,
+				9F33C9F12CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */,
 				BB4DD048299B294000E80DF6 /* KMCloudFileEmptyView.swift in Sources */,
 				ADD272D129B9CFD30032B5D6 /* KMLightNoNetworkView.swift in Sources */,
 				BB31DA5F2AFA1B03006D63CB /* KMFontWell.swift in Sources */,
@@ -19846,6 +19868,7 @@
 				BB97BE262BC3E02D00BECEA8 /* SKExportAccessoryController.m in Sources */,
 				BB42A5DA2B8F0F860092C524 /* KMTabbingHintWindowController.swift in Sources */,
 				652E953F2C6670CE0061FA40 /* KMFreehandAnnotationController.swift in Sources */,
+				9F33C9F22CDB34A50080D3C2 /* KMProductCompareWC.swift in Sources */,
 				ADDDCE232B43A32A005B4AB5 /* AppSandboxFileAccessPersist.m in Sources */,
 				AD199DFA2B26A36500D56FEE /* KMPrintPosterPreviewView.swift in Sources */,
 				ADFA8EFF2B5649AE002595A4 /* KMAutoFlowOptionsSheetController.swift in Sources */,
@@ -20024,6 +20047,7 @@
 				BB1D41D52B26D9BD00994EDC /* KMReusable.swift in Sources */,
 				ADDF83882B391A5D00A81A4E /* DSignatureCreateInfoViewController.swift in Sources */,
 				ADE787AC2AA5A8D3002EC85A /* KMAccountExceptionView.swift in Sources */,
+				9F33C9F92CDB3FB40080D3C2 /* KMProductModel.swift in Sources */,
 				BBF62C6A2B033B34007B7E86 /* KMPDFEditExtractWindow.swift in Sources */,
 				9F1FE49529406E4700E952CA /* common.m in Sources */,
 				BB90E4F82AF3B71800B04B9F /* KMPDFWatermarkData.swift in Sources */,