import Foundation final class PageSettings: ObservableObject { @Published var contentWidth: Int @Published var largeImageWidth: Int @Published var pageLinkImageSize: Int @Published var defaultCssFile: FileResource? @Published var codeHighlightingJsFile: FileResource? @Published var audioPlayerJsFile: FileResource? @Published var audioPlayerCssFile: FileResource? @Published var modelViewerJsFile: FileResource? init(file: PageSettingsFile, files: [String : FileResource]) { self.contentWidth = file.contentWidth self.largeImageWidth = file.largeImageWidth self.pageLinkImageSize = file.pageLinkImageSize self.defaultCssFile = file.defaultCssFile.map { files[$0] } self.codeHighlightingJsFile = file.codeHighlightingJsFile.map { files[$0] } self.audioPlayerJsFile = file.audioPlayerJsFile.map { files[$0] } self.audioPlayerCssFile = file.audioPlayerCssFile.map { files[$0] } self.modelViewerJsFile = file.modelViewerJsFile.map { files[$0] } } var file: PageSettingsFile { .init(contentWidth: contentWidth, largeImageWidth: largeImageWidth, pageLinkImageSize: pageLinkImageSize, defaultCssFile: defaultCssFile?.id, codeHighlightingJsFile: codeHighlightingJsFile?.id, audioPlayerJsFile: audioPlayerJsFile?.id, audioPlayerCssFile: audioPlayerCssFile?.id, modelViewerJsFile: modelViewerJsFile?.id) } }