can you make this: import SwiftUI
import CoreData

struct ContentView: View {
 @Environment(\.managedObjectContext) private var viewContext

 @FetchRequest(
 sortDescriptors: [NSSortDescriptor(keyPath: \Item.timestamp, ascending: true)],
 animation: .default)
 private var items: FetchedResults

 var body: some View {
 NavigationView {
 List {
 ForEach(items) { item in
 NavigationLink {
 Text("Item at \(item.timestamp!, formatter: itemFormatter)")
 } label: {
 Text(item.timestamp!, formatter: itemFormatter)
 }
 }
 .onDelete(perform: deleteItems)
 }
 .toolbar {
#if os(iOS)
 ToolbarItem(placement: .navigationBarTrailing) {
 EditButton()
 }
#endif
 ToolbarItem {
 Button(action: addItem) {
 Label("Add Item", systemImage: "plus")
 }
 }
 }
 Text("Select an item")
 }
 }

 private func addItem() {
 withAnimation {
 let newItem = Item(context: viewContext)
 newItem.timestamp = Date()

 do {
 try viewContext.save()
 } catch {
 // Replace this implementation with code to handle the error appropriately.
 // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
 let nsError = error as NSError
 fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
 }
 }
 }

 private func deleteItems(offsets: IndexSet) {
 withAnimation {
 offsets.map { items[$0] }.forEach(viewContext.delete)

 do {
 try viewContext.save()
 } catch {
 // Replace this implementation with code to handle the error appropriately.
 // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
 let nsError = error as NSError
 fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
 }
 }
 }
}

private let itemFormatter: DateFormatter = {
 let formatter = DateFormatter()
 formatter.dateStyle = .short
 formatter.timeStyle = .medium
 return formatter
}()

struct ContentView\_Previews: PreviewProvider {
 static var previews: some View {
 ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext)
 }
}
:have a page that is the "Main Menu" Page with iOS/Mac Themed buttons that are labeled: (Data/ CSV Formatting), below that button: (Json Parsing), below that button: (Html/Embed Generator), and below that button: (Notes) keep open the possibility of adding more later have a left side, make a side menu that you can click the hamburger style menu icon and when pressed the menu comes out from the left side of the screen to about 7/8ths of the screen, backgrounds black and slightly translucent with a fully functional CLI at the top of the menu screen with a grey user input text box that has a green trim and when typing in the input box has green text (CLI only) for default (But with a color optional feature that is fully customizable from the settings page) (which means I will also need a settings page code set), that is able to be used anywhere in the app from the left side menu, use with cocoa pods, and from the main page I want the Data/ CSV Formatting button to go to a page with a menu page with a new menu that also has iOS/Mac themed buttons one says "File Upload", one says "Site Extracting", and one says "User Input". when one of these buttons are pressed the other buttons fade out while the new content fades in, pressing File Upload Fades in a file input box with a Browse button to search the users folders/files for the file they want to upload to be extracted, pressing the Site extracting button fades in a fades in a user text input box that has Site url in pale grey text to let the user know to put a url in the box, and a confirm button below the box, putting the url into this box and pressing the button will grab the content of the site url provided and extracts the page text. pressing the User Input, fades in a Text box the user can type in that they want to be formatted to csv and next to the box is a button labeled Paste when they press that button it grabs what they have attached to their clipboard and pastes it in the text box area and below the box a submit button, the user is then given a pop up menu requesting what data from the text to be formatted to csv and that they separate their input with commas exactly how they want it formatted example:if they want the date,names,email,numbers,etc., they need to put it in the way they want it. the pop up also asks the user, in a checkbox option format, what delimiter they want to be used and a enter button. The app from here needs to analyzes the text, extracts the correct data they requested and formats the text/data into csv format in the order using the delimiter that was chosen. while doing this it should give the user a progress bar with percent until finished, when finished it is then offered to them to downloadable file and/or the text can be copied to the users clipboard at a tap of a button, the user should also have the option to save it to the app as a note in the Notes section of the app (which I need to code a notes section in the app). The user should also be given the option add more to be formatted, and if confirmed should fade back the three buttons for input choices.
이것을 만들 수 있습니까?
코어데이터 임포트

구조체 ContentView: View {
 @Environment(\.managedObjectContext) private var viewContext

 @FetchRequest(
 sortDescriptors: [NSSortDescriptor(키경로: \Item.timestamp, 오름차순: true)],
 애니메이션: .default)
 비공개 var items: FetchedResults

 var body: 일부 View {
 NavigationView {
 List {
 ForEach(items) { item in
 NavigationLink {
 Text("Item at \(item.timestamp!, formatter: itemFormatter)")
 } label: {
 Text(item.timestamp!, 포맷터: itemFormatter)
 }
 }
 .onDelete(수행: deleteItems)
 }
 .toolbar {
#if os(iOS)
 ToolbarItem(placement: .navigationBarTrailing) {
 EditButton()
 }
#endif
 툴바 아이템 {
 Button(action: addItem) {
 Label("Add Item", systemImage: "plus")
 }
 }
 }
 Text("아이템 선택")
 }
 }

 private func addItem() {
 withAnimation {
 let newItem = Item(context: viewContext)
 newItem.timestamp = Date()

 do {
 try viewContext.save()
 } catch {
 // 이 구현을 오류를 적절히 처리하는 코드로 대체합니다.
 // fatalError()는 애플리케이션이 충돌 로그를 생성하고 종료되도록 합니다. 개발 중에는 유용할 수 있지만 배송 애플리케이션에서는 이 함수를 사용해서는 안 됩니다.
 let nsError = error를 NSError로
 fatalError("해결되지 않은 오류 \(nsError), \(nsError.userInfo)")
 }
 }
 }

 비공개 함수 삭제 항목(오프셋: 인덱스셋) {
 withAnimation {
 offsets.map { items[$0] }.forEach(viewContext.delete)

 do {
 try viewContext.save()
 } catch {
 // 이 구현을 코드로 대체하여 오류를 적절히 처리합니다.
 // fatalError()는 애플리케이션이 충돌 로그를 생성하고 종료되도록 합니다. 개발 중에는 유용할 수 있지만 배송 애플리케이션에서는 이 함수를 사용해서는 안 됩니다.
 let nsError = error를 NSError로
 fatalError("해결되지 않은 오류 \(nsError), \(nsError.userInfo)")
 }
 }
 }
}

private let itemFormatter: DateFormatter = {
 let formatter = DateFormatter()
 formatter.dateStyle = .short
 formatter.timeStyle = .medium
 반환 포맷터
}()

구조체 ContentView\_Previews: PreviewProvider {
 static var previews: 일부 View {
 ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext)
 }
}
iOS/Mac용 테마 버튼이 있는 "메인 메뉴" 페이지가 있고, 그 아래에 (데이터/ CSV 서식 지정), 그 아래에 (Json 파싱), 그 아래에 (Html/임베드 생성기) 버튼이 있습니다: (참고) 나중에 더 추가 할 가능성을 열어두고 왼쪽에 햄버거 스타일 메뉴 아이콘을 클릭 할 수있는 사이드 메뉴를 만들고 누르면 화면 왼쪽에서 화면의 7/8 정도까지 메뉴가 나옵니다, 배경은 검정색이고 약간 반투명하며 메뉴 화면 상단에 모든 기능을 갖춘 CLI가 있고 회색 사용자 입력 텍스트 상자가 있으며 입력 상자에 입력하면 기본적으로 녹색 텍스트 (CLI 전용)가 있습니다 (그러나 설정 페이지에서 완전히 사용자 정의 할 수있는 색상 옵션 기능 포함) (즉, 설정 페이지 코드 설정도 필요함), 왼쪽 메뉴에서 앱의 어느 곳에서나 사용할 수 있고 코코아 포드와 함께 사용할 수 있으며 메인 페이지에서 데이터 / CSV 서식 지정 버튼이 "파일 업로드", "사이트 추출"및 "사용자 입력"이라는 새 메뉴가있는 메뉴 페이지가있는 페이지로 이동하기를 원합니다. 이 버튼 중 하나를 누르면 다른 버튼은 페이드 아웃되고 새 콘텐츠가 페이드 인되며, 파일 업로드 버튼을 누르면 파일 입력 상자에 페이드 인되고 찾아보기 버튼이 있어 사용자 폴더/파일에서 추출할 파일을 검색할 수 있습니다, 사이트 추출 버튼을 누르면 옅은 회색 텍스트로 사이트 URL이 있는 사용자 텍스트 입력 상자가 페이드 인하여 사용자에게 상자에 URL을 입력하라는 것을 알려주고 상자 아래에 확인 버튼이 있으며, 이 상자에 URL을 입력하고 버튼을 누르면 제공된 사이트 URL의 내용을 가져와 페이지 텍스트를 추출합니다. 사용자 입력을 누르면 사용자가 입력할 수 있는 텍스트 상자가 나타나고 상자 옆에는 붙여넣기 버튼이 있으며 이 버튼을 누르면 클립보드에 첨부한 내용을 가져와 텍스트 상자 영역에 붙여넣고 상자 아래에 제출 버튼을 누르면 텍스트의 어떤 데이터를 CSV로 형식화할지 묻는 팝업 메뉴가 나타나고 사용자가 원하는 형식대로 쉼표로 입력을 구분하는 예제가 표시됩니다: 날짜, 이름, 이메일, 숫자 등을 원하는 경우. , 예를 들어 날짜, 이름, 이메일, 번호 등을 원하는 경우 원하는 방식으로 입력해야 합니다. 또한 팝업은 사용자에게 어떤 구분 기호를 사용할지 체크박스 옵션 형식으로 묻고 입력 버튼을 표시합니다. 여기에서 앱은 텍스트를 분석하고, 요청한 올바른 데이터를 추출하고, 선택한 구분 기호를 사용하여 순서대로 텍스트/데이터를 CSV 형식으로 포맷해야 합니다. 이 작업을 수행하는 동안 사용자에게 완료될 때까지 퍼센트가 표시된 진행률 표시줄을 제공해야 하며, 완료되면 다운로드 가능한 파일로 제공되거나 버튼을 탭하여 텍스트를 사용자 클립보드에 복사할 수 있습니다.